Перейти к содержимому
Русский язык для Invision Community 5

Запустить хук из скина

Добрый день!

 

Возникла необходимость запустить файл хука из того места, где нет hook point, то есть вручную из скина. Понимаю, что это не очень-то профессионально, но все же, как бы это можно было сделать?

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

Еще раз, не совсем понятно

  • Автор

М-да... Что-то сегодня меня никто не понимает :( Проблема на самом деле такая: мне нужно вставить блоки в правую колонку (типа последние темы, последние сообщение и прочие всякие последние). Эти блоки оформлены как хуки. На большинстве страниц все вставляется нормально - там есть, за что хуки зацепить hook point в скине. Но есть места, где цепляться не за что. Возникла идея, добавить код вызова хука (самого хука, а не точку вызова) прямо в скин (наверное, это не очень хорошо, но все же).

 

Как вставить рекламный блок я разобрался {$this->registry->getClass('IPSAdCode')->getAdCode('ad_code_sidebar_ХХХХ')}, а как вызвать тот же хук последних сообщений?И возможно ли это?

Рекламный блок это в принципе настройка, и его можно вывести как обычную настройку {$this->settings[''ad_code_sidebar_ХХХХ'']};

А хуки это отдельная песня, тем более шаблонные. Они не "вызываются", они запускаются системой хуков, и что-то вызвать там не так просто. Проще всего добавить свою метку в шаблоне по принципу http://ipbskins.ru/forum/topic10049.html/page__view__findpost__p__69237 (после сохранения метка конечно исчезнет из списка).

Автор, может тебе систему типа портала надо, куда можно вставлять в блоки PHP код? Может так проще будет?

 

А разве хуки типа "Последние темы" привязаны к метке хука? Они просто в панель выстраиваются в порядке их нахождения в админке, нет? Там, видимо, цикл в главном шаблоне.

  • Автор

Спасибо. Я уже тоже начал склоняться к варианту добавить свою точку. Я правда делал немного иначе: вручную добавлял метку в мастер-шаблон, чтобы все выглядело красиво и в списке она появлялась

  • Автор

А разве хуки типа "Последние темы" привязаны к метке хука? Они просто в панель выстраиваются в порядке их нахождения в админке, нет? Там, видимо, цикл в главном шаблоне.

Не-не. Они же обычные хуки: например хук последних тем (стандартный от IPS) цепляется за точку side_blocks в BoardIndexTemplate. (Все это относится к версии 3.3, про 3.4 ничего утверждать не стану)

 

Но мне нужно там, где точки нет - в этом я убедился.

Стандартные последние темы от IPS можно и отдельно вызвать, ибо это встроенный метод класса форумов. Хук тут только для зацепки к сайдбару. Но лучше все же добавить свою точку - так будет правильнее, и другие хуки если что там можно будет зацепить.

  • Автор

Это Вы верно подметили, эти информеры ведь действительно можно вызвать, минуя систему хуков. Спасибо, возможно пригодится.

  • 2 года спустя...

Пожалуйста, подскажите, где найти этот мастер-шаблон и куда добавить метку? Уже совсем запутался. Мне нужно вывести хук-слайдер под строку навигации в шаблон globalTemplate.

 

В этот шаблон я добавил метку:

 

После:

 

<div id='content' class='clearfix'>

Добавил:

 

<if test="myHookPoint:|:1==1"></if>

 

Где теперь мне искать мастер-шаблон чтобы добавить эту метку в список (чтобы она сохранилась)?

Под строку навигации есть свои стандартные метки. Ищите подходящую вам в шаблоне.

Нету там, в том-то и дело. Нужно под строку с приложениями (форум, пользователи, чат). Там стандартной метки я не нашел.

Лучше ищите. Многие приложения выводят блоки в этом месте.

Честно, я искал. Там все крайние условия (if) заканчиваются до тегов <div>, поэтому слайдер вписывался прямо в панель. А отдельного условия я так и не нашел.

 

Поэтому пришлось добавить метку, но как ее навсегда добавить в список, не подскажете?

Никак.

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.