Формирование массива данных в PHP

1.Установить веб-окружение битрикс на свой рабочий компьютер.

Для этого скачать себе файл bitrix_env.exe и запустить его. Все настройки и пути для установки оставить по умолчанию. После установки проверить корректность работы сервера, в браузере по адресу localhost:6448 должна открыться страница, на которой будет информация по BitrixEnvironment.

Скачать веб-окружение можно по адресу: http://www.1c-bitrix.ru/products/env/

Это наиболее простой и удобный способ установки веб-окружения.

2. Сервер установлен, создаем свой первый скрипт.

В папке c:\Bitrix\www\ создадим файл lesson_01.php со следующим содержимым:

<?php

echo "Hello, World!";

?>

Теперь в браузере, по адресу localhost:6448/lesson_01.php мы должны пронаблюдать данное приветствие. Если всё хорошо, значит окружение готово для выполнения основного задания.

3. Для выполнения задачи рекомендуется сразу скачать набор инструментов Bootstrap: http://getbootstrap.com/getting-started/

4. Распаковать из скачанного архива в папку с созданным файлом lesson_01.php, файлы: bootstrap.css, jquery-1.12.2.min.jsи bootstrap.js

5. Создать файл style.cssв той же папке.

6.За основу будет использоваться профиль пользователя:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Профиль</title>

<link rel="stylesheet" href="bootstrap.css">

<link rel="stylesheet" href="style.css">

<scriptsrc="jquery-1.12.2.min.js"></script>

<script src="bootstrap.js"></script>

</head>

<body>

<div class="container">

<divclass="row">

<!-- левая колонка -->

<div class="col-md-2 col-md-offset-2">

<a href="#" class="thumbnail">

<imgsrc="_.jpg" width="155" height="200" />

</a>

<ul class="navnav-pills nav-stacked">

<li class="active"><a href="#">Моидрузья<span class="badge">23</span></a></li>

<li><a href="#">Сообщения<span class="badge">8</span></a></li>

<li><a href="#">Моигруппы</a></li>

<li><a href="#">Мои новости</a></li>

</ul>

</div>

<!-- правая колонка -->

<div class="col-md-6">

<h1 class="page-header">Имя<small>Город</small></h1>

<blockquote>НачальникЦИОТПГУТИ</blockquote>

<table class="table table-striped">

<tr>

<td width="150"><strong>Роднойгород:</strong></td>

<td>Родной город</td>

</tr>

<tr>

<td><strong>Образование:</strong></td>

<td>Образование</td>

</tr>

<tr>

<td><strong>Языки:</strong></td>

<td>Русский</td>

</tr>

<tr>

<td><strong>Вуз:</strong></td>

<td>Вуз</td>

</tr>

<tr>

<td><strong>Факультет:</strong></td>

<td>Факультет</td>

</tr>

<tr>

<td><strong>Кафедра:</strong></td>

<td>Кафедра</td>

</tr>

<tr>

<td><strong>Формаобучения:</strong></td>

<td>Форма обучения</td>

</tr>

</table>

</div>

</div>

</div>

</body>

</html>

Данный код следует сохранить в файле index.html.

7. Следует перенести содержимое вашего файла html, с выполненным заданием, в созданный на пункте 2 файл lesson_05.php, если есть дополнительные файлы (картинки, css, js) – помещаем их в папку c:\Bitrix\www\ рядом с файлом lesson_05.php, сохраняя при этом структуру.

Проверка в браузере, должна показать условный профиль пользователя.

8.Разобьем информацию о себе на логические части, однообразные элементы можно вынести в группы и создадим многомерный массив, для этого в файле lesson_05.php перед html кодом вставим следующий код:

<?php

$arProfile = Array(

"FOTO" => "",

"NAME" => "",

"JOB" => "",

"CONTROL" =>Array(

0 =>Array(

"ACTIVE" => "Y",

"NAME" => "МоиДрузья",

"COUNT" => 42

),

...

),

"INFO" =>Array(

0 =>Array(

"NAME" => "Роднойгород",

"VALUE" => "Самара"

),

...

)

);

?>

Т.е. вмассиве $arProfile[“CONTROL”] у нас будут храниться элементы, отвечающие за управление профилем, которые в свою очередь имеют три значения – количество элементов, название и активность.

В свою очередь в массиве $arProfile[“INFO”] будут храниться элементы, отвечающие за информацию о Вас, имеющие название и значение.

Элементы FOTO, NAME, JOBзаполнить самостоятельно актуальными данными, в качестве фото просто указать путь до файла относительно текущей директории (например, images/myphoto.jpg).

Дозаполняем поля самостоятельно.

9.Когда массив готов приступим к шаблонизации нашей страницы:

Одиночные, не повторяющиеся строчные элементы в htmlкоде заменим выводом информации из нашего массива. Для этого будем использовать альтернативную запись вывода информации (<?=$variable?>).

Пример:

<imgsrc=” images/myphoto.jpg ”class=”myclass”>

Заменимна

<imgsrc=” <?=$arProfile[“FOTO”]?> ” class=”myclass”>

Таких записей у нас должно получиться три (имя, фото, должность) – остальное заменяем по аналогии.

10.Перейдем к списку ссылок (левая колонка). Они имеют однообразную структуру, поэтому их можно вывести с помощью цикла. Дляэтогоблокабудемиспользоватьконструкциюforeach;

<?foreach($arProfile["CONTROL"] as $key => $value):?>

...

<?endforeach;?>

На каждой итерации цикла переменная $keyбудет иметь значение ключа массива $arProfile["CONTROL"], а переменная $valueбудет представлять собой массив со значениями данного элемента.

Внутри цикла будем выводить соответствующую информацию из массива, т.е. блок

<ul class="nav nav­pills nav­stacked">

<li class="active"><a href="">Мои Друзья <span class="badge">42</span></a></li>

<li><a href="">Сообщения <span class="badge">10</span></a></li>

<li><a href="">Мои Группы</a></li>

<li><a href="">Мои Новости</a></li>

</ul>

Заменимна

<ul class="nav nav­pills nav­stacked">

<?foreach($arProfile["CONTROL"] as $key => $value):?>

<li><a href=""><?=$value[“NAME”]?></a></li>

<?endforeach;?>

</ul>

Проверяем что получилось, должны получиться однотипные ссылки, но в нашем первоначальном варианте имелось выделение активных ссылок цветом, и показывалось кол-во данных элементов. Для реализации данного момента воспользуемся тернарным оператором

(условие)? “значение 1”: “значение 2”

Т.е. если условие имеет значение true(истинно) данный оператор выведет значение 1, если нет, то значение 2. Тогда реализация активных ссылок будет выглядеть следующим образом:

<li<?=($value["ACTIVE"] == “Y”) ?‘class="active"’ : ‘’?>><a href=""><?=$value[“NAME”]?></a></li>

Таким образом, все элементы массива, которые имеют значение “ACTIVE” равное “Y” будут выводиться с классом “active”. Проверяем, по аналогии делаем вывод кол-ва элементов. Условием для вывода будет служить проверка на то, что $value[“COUNT”] больше нуля. Для приведения типа к целочисленному используем функцию IntVal($param1); В качестве $param1 она принимает люое значение, и если его можно привести к целочисленному виду возвращает нам число, если нет false.

11. Переходим к блоку с выводом информации, для его шаблонизации воспользуемся циклом for;

Перед этим заведем переменную $countхранящую в себе количество элементов соответсвующего массива, понадобится нам для организации цикла:

$count = count($arProfile[“INFO”]);

Итеперь, заменимблок

<table class="table table­striped">

<tr>

<td><strong>Родной город:</strong></td> <td>Самара</td>

</tr>

</table>

Наследующий:

<table class="table table­striped">

<?

for($i = 0; $i< $count; $i++)

{

echo '<td><strong>' . $arProfile["INFO"][$i]["NAME"] . ':</strong></td><td>' . $arProfile["INFO"][$i]["NAME"] . '</td>';

}

?>

</table>

На этом примере мы познакомились с оператором конкатенации строк “.”, его работа заключается в объединении строковых переменных в одну строку.

Самостоятельно сделать вывод класса, который отвечает за цвет строки, для каждой второй строки. Для этого нужно использовать оператор “%” – остаток от деления.

Пример его работы:

$test = 10 % 3;

Переменная $testв итоге получит значение равное 1.


Наши рекомендации