Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
stud

Конструкции <if> и <foreach>

Рекомендованные сообщения

Примеры:

<if test="comment:|:$condition && $other_condition">
   Только если истинны оба условия
</if>

 

<foreach loop="comment:$variable as $key => $value">
   Здесь должен быть код для вывода каждого элемента
</foreach>

 

Пишут, что comment:|: - это "название условия, оно не обязательно, но используется хуками для определения мест в которых могут быть выведены данные".Более подробных сведений об этих условиях я не нашел и я хоть убей не понимаю, откуда берутся эти "условия", в данном случае comment. Я их сам придумываю какие хочу и пишу только в тех <if> и <foreach> в которых мне хочется?

 

Откуда они (comment:|: и ему подобные "условия") берутся, что они означают и когда их нужно писать, а когда нет?

Поделиться сообщением


Ссылка на сообщение

Попробуйте создать новый template хук. Вам будет предложен список мест, куда вы можете добавить своим хуком контент. Эти места и будут определены с помощью данных якорей.

 

Т.е. если в шаблоне есть

Поделиться сообщением


Ссылка на сообщение

ААаа точно, там, (в <if test="blahblah) можно писать все что угодно, и этим blahblah потом можно будет воспользоваться для создания новых хуков. Я думал, они еще для чего-то служат.

А эту статью http://community.invisionpower.com/resources/documentation/index.html/_/developer-resources/hooks/template-hooks-r400 я читал, но там говорилось, что это просто якори, для создания хуков, и я как-то не вьехал сразу, что я могу вообше сам напихать сколько угодно таких якорей в любой шаблон.

 

А такой, более глобальный вопрос: если по многим скинам я делаю небольшие вставки, где-то ссылку добавлю на паблик моего приложения, где-то еще одну переменную из массива, передаваемого в данный шаблон выведу, еще что-то...все это лучше (правильнее) сделать в виде хуков, или просто непосредственно редактировать руками нужные шаблоны. Все изменения, которые я делаю, достаточно специфические и вероятность того, что мне понадобиться их установить на какой-то другой IPB - крайне мала! Ну и + ко всему, мне, почему-то, кажется, что хуки замедляют работу скрипта в целом. Ведь движок ипб каждый раз сканирует папку hooks на наличие новых хуков, инклюдит найденные там классы в индексный файл, я так думаю, я не знаю как у них там собирается функционал одной страницы перед тем, как отдать HTML клиенту.

А так, он (ипб) сразу бы отдавал шаблон с небольшими измениями в самом шаблоне, без всей этой рутины. Так ведь быстрее должно быть?

Поделиться сообщением


Ссылка на сообщение

Если сделаете хуками - то потом будет проще обновляться и добавлять новые темы оформления.

 

Если вы что-то отредактируете в шаблоне одного скина, то вам придется:

- повторять все и в других, буде вы захотите предложить пользователям несколько дизайнов,

- в случае выхода новой версии форума и скина, переносить все свои правки из старой версии.

 

Чем больше доработок - тем больше переносов, и довольно быстро вы упретесь в то, что обновление с сохранением правок станет невыносимо сложным. Например, по этой причине мой desu.ru застрял на 3.2. Мне нужна минимум неделя, чтобы перенести все модификации в 3.3, и руки просто не поднимаются это делать. Проще с нуля пересоздать все в хуках и кастомных приложениях, чем я сейчас и занимаюсь, а потом спокойно ставить любые скины и обновления.

Поделиться сообщением


Ссылка на сообщение

Тогда такой вопрос: допустим, я хуком шаблона вывожу виджет на страницу. Как лучше будет сформировать 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;

 

Вроде как, второй способ менее удобный, потому, что в нем невозможно использовать никаких тегов шаблона (иф, парсе, форич и прочие удобные теги). Но с другой стороны, первый способ вызовет проблемы при переходе на новую версию или, может еще что-то. Или нет?

Поделиться сообщением


Ссылка на сообщение

Первый способ правильнее второго только по одной причине - он будет более удобным для будущих пользователей хука - они легко смогут подправить что-то в шаблоне под себя. То же самое и с использованием системы локализаций (и вынесением всех строк в языковой набор), и с вынесением параметров хука в настройки.

 

С технической точки зрения вынесение кода в шаблоны чуть замедляет скорость работы хука, но отличия минимальны, и кодить "говнокод", где вывод замешан с представлением, безусловно проще :)

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...