Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: В этом классе можно нарисовать таблицу?
Покинул форум
Сообщений всего: 59
Дата рег-ции: Нояб. 2013
Помог: 0 раз(а)
[+]
Слегка заколодило с простым классом генерации хтмля, решил пойти посмотреть что люди пишут. Пишут разное, в основном голимое г. Оно и понятно. Построить DOM одной нодой не получится, и даже с массивом. Цеплять весь "домный" класс слишком жирно, так что поиск привел к внешне по кодам вменяемому варианту, а именно сюда
Применительно к кодам использования класса я сразу ничего не понял и никакой красоты не заметил. Такая же чехарда как у всех. Но сам класс выглядел симпатично.
Так вот, я попытался нарисовать таблицу и ничего не вышло. Он не закрывает ее, зато закрывает то, чего не надо, потому что ориентирован на хмльные правила, а я ориентирован на хтмл5. Это можно исправить, но таблицу закрывать надо.
Таблица рисовалась конечо в цикле. Коды я давно стер, примерно так
Таблица нарисовалась, я даже css-класс ей приделал, но в хтмле следующая за ней строчка истекала кровью. FF на это сообщил что table наверно не закрыт. И он не был закрыт.
В общем я добил свою шнягу, получилось два маленьких класса - один нода, второй ноды. Приходится устраивать между ним некий пинг-понг, поскольку это самое простое что можно сделать для имитации дерева.
Но остался вопрос - может я неправильно применял класс с урла выше.
Покинул форум
Сообщений всего: 59
Дата рег-ции: Нояб. 2013
Помог: 0 раз(а)
[+]
Выкосил все что было написано, поскольку потребность самоочевидна.
Признак по которому применяется метод форматирования тегов - массовая доля тегов в массовой доле данных. Данных больше - разметка делается автоматом, тегов больше - разметка делается вручную, данные приготавливаются и одиночными выстрелами улетают. Поэтому домовой класс целиком и не нужен.
Особое удовольствие доставляют атрибуты наличие которых достаточное основание для изменения вида элемента.
Нарисуйте мне вручную пример как вы воткнете по условию такие атрибуты как selected, disabled, checked.
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
tato пишет:
Если хотите HTML5:
когда ето HTML5 нужно UPPERCASE?
deblogger
По сути, тоже самое что и в Yii CHtml, делает ровным счетем ничего, кроме стандартных оберток над HTML и тикаеться повсюду, для еще большей работы верстальщыка.
Вопрос: быть или не быть?
deblogger
Отправлено: 05 Ноября, 2013 - 13:59:11
Новичок
Покинул форум
Сообщений всего: 59
Дата рег-ции: Нояб. 2013
Когда вижу в аргументах функции array() и внутри нее еще один array() я думаю ну вещь серьезная. Оказывается эта вещь всего лишь хтмл-тег делает, причем специфический - конкретный input. Это сугубый перебор.
Пример выше - для любых тегов. Абсолютно то же самое что написать в хтмл по символам, но символы не разбегаются как вши в разные стороны от расчески.
В двойные кавычки я не верю, с одинарными такая строка в хтмле будет представлять поле боя этой самой расчески с теми самыми вшами. (Добавление)
Ну так вот, класс тега может засунуть себе хобот сами знаете куда. Функция add добавляет инстансь в узел элемента и можно вкладывать скольк хочешь. Цитату выше можно начать так:
Как видите оно может только расти вглубь. Вширь не может, потому что одноименные элементы это массив и в DOM'е именно так. Теоретически можно давать всем элементам уникальные ID и отчасти так и сделано в комплементарном микро-классе - теги. Который записывает в себя тег под уникальным ID, в который можно записать теги. В этом классе свой _toString() который попросту инициирует _toString() тегов путем вызова join(get_object_vars()) или типа того.
Так вот, у автора класса в начале темы теги не копятся как таковые, но складируются в буфере уже как строка. Похоже именно по этой причине их нельзя разрывать - как это приходится делать в цикле. Сохраняя в коллекции тег живьем его можно найти и починить, в том числе всунуть ему еще тег и так далее. Что позволяет не придерживаться структуры хтмля, а свободно собирать инфо для хтмля сохраняя структуру в объекте теги.
Все равно получается корявенько, зато все маленькое, даже микро по сравнению с ДОМами и той жутью которую я навидался у фрейморков. (Добавление)
А, да, вот это _text_b($text) - означает "атрибут" текст_впереди. Еще есть атрибут _text_a - текст_позади (before-after). Так сделано потому что текстовую ноду полностью выкашивает ссылка на инстансь дочернего тега будучи вставленной в него. Текст можно передать вторым аргументом _invoke($_tag, $_node) и если ничего не вставлять то он останется. Иначе приходится добавлять через атрибуты. Конечно через зарезервированные слова. Потому что инстансь класса это и есть "массив". То есть тег, текст и атрибуты в ней вперемешку. Что существенно все упрощает. (Добавление)
Поскольку из цитаты применения и так все понятно, полагаю нет нужды постить сырец класса который я сам себе накалякал.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.