Чето в парсере произошло
09.10.2010Голосование
| Тип | Вопрос |
| Состояние | Исправлено |
| Приоритет | Средний |
| Версия | 3.94 |
| Система | * |
| Воспроизводимость | Нет |
| Автор | dima |
| Исполнитель | Блоголётчик |
Понимаю, что нефиг лазить и с этим разберусь, откатом и прочее, но все таки думаю отпишусь, может пригодится.
Можно ли каким то образом сделать чтоб с ним такого не случалось, потому что в него я не лез, но только убрать попробывал
Код
Catchable fatal error: Argument 2 passed to tthemeparser::parse_excerpts() must be an array, object given, called in /site/lib/theme.parser.class.php on line 141 and defined in /site/lib/theme.parser.class.php on line 155
Вот эту строку из default.tml
<!--more--><a name="more-$post.id"></a><!--/more-->
и привел эту
<h2><a href="$post.link" rel="bookmark" title="$lang.permalink $post.title">$post.iconlink$post.title</a></h2>
к этому содержанию
<h2>$post.title</h2>
и эту
<!--more--> <a href="$options.url$post.url#more-$post.id" class="more-link">$post.moretitle</a><!--/more-->
к такому
<!--more--> <a href="$options.url$post.url" class="more-link">$post.moretitle</a><!--/more-->
думал не будет при щелчке Далее адрес отображаться так
www.site.site/post.htm#more
хочу так
www.site.site/post.htm
RSS комментарии к этой записи
Рубрики: Вопросы
Комментарии (7) на запись “Чето в парсере произошло”
Оставить комментарий
Все нормально, откатил на сервере сайт и в default.tml убрал только эту строку ибо не валидовалась писал, но это для 5го типа несвежий тег
The name attribute is obsolete. Consider putting an id attribute on the nearest container instead.
<a name="post"></a>
<!--more--><a name="more-$post.id"></a><!--/more-->
Окей понял
Первое сообщение, в нем говорится, что решил я сделать так чтоб щелкая на главной странице ссылку Далее и заходя в пост, в адресной строке адрес стал без #more и т.д.
поэтому, зашел я в файл default.tml и в нем одну строку идалил т две преобразовал и парсер накрылся, т.е. по админки и сайту лазить могу, но щелкнув на перезагрузку темы, появлялся ерор самая первая строка кода поста, типа парсер что то не может сделать, если бы строка полностью отобразилась то там написано что ему не понравилась строка 155 уже и не помню какого файла, но какого то из lib
потом откатил систему и все стало нормально, подумал если отпишусь то пригодится в разработке, чтоб если не исключить подобные ситуации то хоть минимизировать последствия от таких действий пользователя, ведь не лез я в движек но только default tml правил, хотя по сути понимаю что это уже не забота проекта, сам влез сам и вылазь и это правильно, но ерор может пригодится потому и отписался.
Теперь сообщение к тикету
в нем говорю что убрал такую то строку т.к. она не валидуется на html5 на котором у меня сайт и в общем на результат не повлияло это никак работы сайта, но теперь он полностью у меня валиден, все что хотел сказать там.
Теперь, благодарю за понимание в отношении писанины, теперь бу пробывать понормальному излагать тут в текст пожелания, вопросы и прочее.
Кстати, все хочу узнать, для чего сделано распарсивание?
в остальном все супер
dima1981 пишет:
Потому что php давно перестал быть просто навороченным шаблонизатором, и исполняемые шаблоны - стали злом (потенциальной угрозой безопасности).
Поэтому нынешняя модель шаблонизации - большой плюс Блоголета по сравнения с ВП. (и даже Друпалом). У нее есть очевидный минус - отсутствие логики представления - вся логика изначально зашита в ядро и плагины - но для простых сайтов этого и не нужно. Альтернатива - прикручивать что-то типа smarty - но ну его нафиг :)
Безопаснее. Что принципиально в корпоративных системах. Т.к. там надо защищаться не только от внешних, но и от внутренних угроз. А так специалист по темплейтам не имеет влияния на доступные ему данные, только на их представления. И не имеет возможности выполнять множество потенциально опасных действий. С этим же призван бороться safe_mode, но лекарство получается хуже болезни. Поэтому же в корпоративных системах любят xml - в него можно ввести логику представления, одновременно не давая возможности что-либо выполнить.
В принципе же пункт - "данные никак не управляют представлением" - недостаток. Данным очень полезна возможность управлять своим представлением (и ничем больше), даже в css приходится вносить подобие логики. Примитивной логики, типа firstChild/lastChild.