PHP - статьи

Битва со списками или применение классов для вывода списков в PHP - часть 5


$list = empty ($arg['list']) ? '' : $arg['list']; $begin = empty ($arg['begin']) ? '' : $arg['begin']; $end = empty ($arg['end']) ? '' : $arg['end']; $item = empty ($arg['item']) ? '' : $arg['item']; $delimiter = empty ($arg['delimiter']) ? '' : $arg['delimiter']; $empty = empty ($arg['empty']) ? '' : $arg['empty']; foreach ($this->items as $id=>$one) {

$this->listitems .= $this->insertObjectToTemplate ($one, $item) . $delimiter;

} $this->listitems = $this->count == 0 ? $empty : $begin . substr ($this->listitems, 0, -strlen ($delimiter)) . $end; $res = $this->insertObjectToTemplate ($this, $list); unset ($this->listitems); return $this->insertObjectToTemplate ($this, $res);

}

Первые шесть строк кода нужны, чтобы предотвратить вывод сообщений об ошибках в случае несоответствия шаблона $arg введенным нами соглашениям. Далее по циклу перебираются все элементы массива items и вставляются в элемент item шаблона с добавлением разделителя delimiter. По окончании цикла, в случае, если количество элементов в items больше нуля, то listitems заменяется empty, если нет, то к нему добавляются begin и end с отбрасыванием последнего delimiter. Далее экземпляр нашего класса вставляется в list и еще раз в полученный результат но уже без поля listitems. Это необходимо для того, чтобы дать возможность разместить поле count в begin, end, item или delimiter, что иногда бывает необходимо.

В общем-то, уже почти все сказано. Но как полагается в любой статье по программированию, приведу один готовый к тестированию пример, чтобы мой читатель, который, как и всякий программист, достаточно ленив, мог оценить сей труд на своем сервере.

Скачайте файл и распакуйте его в один из каталогов вашего сервера. Код класса ListItems находится в файле cls_lstitems.inc, тестовый пример – в файле test.php, SQL-код для создания тестовой таблицы в вашей базе данных – в файле test.sql. Во второй-пятой строках файла test.php укажитете ваши данные для подключения к MySQL, создайте тестовую таблицу из файла test.sql и запускайте скрипт test.php. Результатом его работы будет список стран мира с их населением по последним данным из CIA World FactBook.

Раскомментируйте 20-ю строку скрипта. Теперь элемент item отличается от первоначального тэгами b и, соответственно, население страны выделяется жирным шрифтом. Раскомментируйте 22-ю и 23-ю строки, и список становится нумерованным. Если в 53-ей строке заменить параметр функции $template на $template1, то вы получите список в табличном виде. Шаблон $template2 позволяет вывести только названия всех стран мира через запятую с пробелом и завершающей точкой. Если 51-ую строку скрипта заменить на $list = new ListItems ('');




Начало  Назад  Вперед



Книжный магазин