stud 0 07/19/12 10:26 Примеры:<if test="comment:|:$condition && $other_condition"> Только если истинны оба условия </if> <foreach loop="comment:$variable as $key => $value"> Здесь должен быть код для вывода каждого элемента </foreach> Пишут, что comment:|: - это "название условия, оно не обязательно, но используется хуками для определения мест в которых могут быть выведены данные".Более подробных сведений об этих условиях я не нашел и я хоть убей не понимаю, откуда берутся эти "условия", в данном случае comment. Я их сам придумываю какие хочу и пишу только в тех <if> и <foreach> в которых мне хочется? Откуда они (comment:|: и ему подобные "условия") берутся, что они означают и когда их нужно писать, а когда нет? Поделиться сообщением Ссылка на сообщение
newbie 1723 07/19/12 10:49 но используется хуками для определения мест в которых могут быть выведены данные".http://community.invisionpower.com/resources/documentation/index.html/_/developer-resources/hooks/template-hooks-r400 Поделиться сообщением Ссылка на сообщение
Ritsuka 540 07/19/12 10:50 Попробуйте создать новый template хук. Вам будет предложен список мест, куда вы можете добавить своим хуком контент. Эти места и будут определены с помощью данных якорей. Т.е. если в шаблоне есть Поделиться сообщением Ссылка на сообщение
stud 0 07/19/12 11:24 ААаа точно, там, (в <if test="blahblah) можно писать все что угодно, и этим blahblah потом можно будет воспользоваться для создания новых хуков. Я думал, они еще для чего-то служат.А эту статью http://community.invisionpower.com/resources/documentation/index.html/_/developer-resources/hooks/template-hooks-r400 я читал, но там говорилось, что это просто якори, для создания хуков, и я как-то не вьехал сразу, что я могу вообше сам напихать сколько угодно таких якорей в любой шаблон. А такой, более глобальный вопрос: если по многим скинам я делаю небольшие вставки, где-то ссылку добавлю на паблик моего приложения, где-то еще одну переменную из массива, передаваемого в данный шаблон выведу, еще что-то...все это лучше (правильнее) сделать в виде хуков, или просто непосредственно редактировать руками нужные шаблоны. Все изменения, которые я делаю, достаточно специфические и вероятность того, что мне понадобиться их установить на какой-то другой IPB - крайне мала! Ну и + ко всему, мне, почему-то, кажется, что хуки замедляют работу скрипта в целом. Ведь движок ипб каждый раз сканирует папку hooks на наличие новых хуков, инклюдит найденные там классы в индексный файл, я так думаю, я не знаю как у них там собирается функционал одной страницы перед тем, как отдать HTML клиенту.А так, он (ипб) сразу бы отдавал шаблон с небольшими измениями в самом шаблоне, без всей этой рутины. Так ведь быстрее должно быть? Поделиться сообщением Ссылка на сообщение
Ritsuka 540 07/19/12 14:47 Если сделаете хуками - то потом будет проще обновляться и добавлять новые темы оформления. Если вы что-то отредактируете в шаблоне одного скина, то вам придется:- повторять все и в других, буде вы захотите предложить пользователям несколько дизайнов,- в случае выхода новой версии форума и скина, переносить все свои правки из старой версии. Чем больше доработок - тем больше переносов, и довольно быстро вы упретесь в то, что обновление с сохранением правок станет невыносимо сложным. Например, по этой причине мой desu.ru застрял на 3.2. Мне нужна минимум неделя, чтобы перенести все модификации в 3.3, и руки просто не поднимаются это делать. Проще с нуля пересоздать все в хуках и кастомных приложениях, чем я сейчас и занимаюсь, а потом спокойно ставить любые скины и обновления. Поделиться сообщением Ссылка на сообщение
stud 0 07/19/12 18:58 Тогда такой вопрос: допустим, я хуком шаблона вывожу виджет на страницу. Как лучше будет сформировать XTML для этого виджета?1) Создать в админке шаблон и в методе хука getOutput() вернуть что-то типаreturn $this->registry->output->getTemplate('ololoshaContent')->ololo();И все. 2) Не создавать в админке никакого шаблона для моего виджета, а прямо в хуке, в методе getOutput() формировать его как-то так:return <<<HTML <p>На главную</p> <input type="checkbox" name="on_main" value = "не добавлена"/> <p>Фильтры по материалу</p> И прочий ХТМЛ... HTML; Вроде как, второй способ менее удобный, потому, что в нем невозможно использовать никаких тегов шаблона (иф, парсе, форич и прочие удобные теги). Но с другой стороны, первый способ вызовет проблемы при переходе на новую версию или, может еще что-то. Или нет? Поделиться сообщением Ссылка на сообщение
Ritsuka 540 07/20/12 10:43 Первый способ правильнее второго только по одной причине - он будет более удобным для будущих пользователей хука - они легко смогут подправить что-то в шаблоне под себя. То же самое и с использованием системы локализаций (и вынесением всех строк в языковой набор), и с вынесением параметров хука в настройки. С технической точки зрения вынесение кода в шаблоны чуть замедляет скорость работы хука, но отличия минимальны, и кодить "говнокод", где вывод замешан с представлением, безусловно проще :) Поделиться сообщением Ссылка на сообщение