Predator 2 11/03/14 15:23 Ребят, выручайте. Задача стоит такая, нужно создать свой хук. Аналогичный "последним темам", создал. Данные приближенные к тем же, что и у другого хука.Так вот, я не пойму. А где мне прописывать тот самый php код? И потом нет его в правом блоке на гл странице форума...Короче ничего не понятно, выручайте.. Указал ключ, а где тот самый класс прописывать с данным ключем.. Один огромный геморой... Поделиться сообщением Ссылка на сообщение
siv1987 2628 11/03/14 16:17 Так нужно создать новый хук, или изменить уже имеющийся? Тема про хуков обсуждалась здесь. Если в целом, то для вывода данных в сайдбаре создается хук типа "Хук шаблона" к группе шаблонов skin_boards, шаблон boardIndexTemplate, тип хука цикл foreach, ID хука side_blocks, расположение - перед началом цикла. В папке /hooks/ создается файл с названием хука и его классом которые прописываются в соответствующие поля при создания хука - Имя файла в директории хука и Имя класса. Сам класс из себя представляет класс с обязательным методом getOutput который и возвращает код сайдбара. <?php class sexy_hook { public $registry; public function __construct() { $this->registry = ipsRegistry::instance(); $this->DB = $this->registry->DB(); $this->settings =& $this->registry->fetchSettings(); $this->request =& $this->registry->fetchRequest(); $this->lang = $this->registry->getClass('class_localization'); $this->member = $this->registry->member(); $this->memberData =& $this->registry->member()->fetchMemberData(); $this->cache = $this->registry->cache(); $this->caches =& $this->registry->cache()->fetchCaches(); } public function getOutput() { /* Здесь тот самый php код */ return "SIDEBAR HTML"; } } ?> Поделиться сообщением Ссылка на сообщение
Predator 2 11/03/14 17:48 Вот те данные моего добавленного хука. Он в списке есть но в папке hooks, нет какого то php файла относящегося к данному хуку... Поделиться сообщением Ссылка на сообщение
siv1987 2628 11/03/14 17:52 Вот те данные моего добавленного хука.При создание хука есть поля где нужно вводить имя файла и класса хука. В папке /hooks/ вы создаете файл с указанным именем и описанным выше для этого типа хуков класса. Поделиться сообщением Ссылка на сообщение
Predator 2 11/03/14 17:53 Хотя, посмотрел я в таблицу "core_hooks_files", название не то у данного файла contentTopicComment_e4eac9fe415c2ca2075159d893d00f91.php Тупик какой то, название у хука "Топ авторс". При чем тут коментс... Поделиться сообщением Ссылка на сообщение
Predator 2 11/03/14 17:54 Удалил хук, удалилась строчка в тб core_hooks. В таблице core_hooks_files,строчка осталась...hook_hook_id = 14, в таблице core_hooks нет данного хука с таким айди Поделиться сообщением Ссылка на сообщение
siv1987 2628 11/03/14 17:59 Нет так нет, вас это не должно волновать какие там записи есть а какие нету. Вы вообще что делаете? И старайтесь внятно объяснить свои действия и цели. Поделиться сообщением Ссылка на сообщение
Predator 2 11/03/14 18:00 Извиняюсь , с айди напутал... Короче создал еще один хук, все ок...В таблице посмотрел имя файла (core_hooks ,core_hooks_files), такоета... (айди и тд верно)Смотрю в папку, не вижу php с данным именем... Мне нужно бы php код вписать, а файла такого нет.. Поделиться сообщением Ссылка на сообщение
siv1987 2628 11/03/14 18:01 Смотрю в папку, не вижу php с данным именем...В папке /hooks/ вы создаете файлПри следующих вопросов внимательно несколько раз перечитайте все выше сказанное. Поделиться сообщением Ссылка на сообщение
Predator 2 11/03/14 18:07 Ах, мне самостоятельно нужно создавать его :lol: Так создал, класс я указывал при первом добавлении 'informer'. Имя у хука тоже informerЗначит нужно прописать так <?php class informer { public $registry; public function __construct() { $this->registry = ipsRegistry::instance(); $this->DB = $this->registry->DB(); $this->settings =& $this->registry->fetchSettings(); $this->request =& $this->registry->fetchRequest(); $this->lang = $this->registry->getClass('class_localization'); $this->member = $this->registry->member(); $this->memberData =& $this->registry->member()->fetchMemberData(); $this->cache = $this->registry->cache(); $this->caches =& $this->registry->cache()->fetchCaches(); } public function getOutput() { /* Здесь тот самый php код */ return "SIDEBAR HTML"; } } ?> Сделал, не вижу сообщение в правом блоке.Я одного не понимаю, как функция getOutput вызывается. Где и кто ее вызывет? Поделиться сообщением Ссылка на сообщение
Predator 2 11/03/14 18:10 Ура, все работает. Видать еще расширение файла нужно было указывать... Поделиться сообщением Ссылка на сообщение
Predator 2 11/03/14 18:11 @siv1987, Спасибо :) Пардон, спама много. Хотел репутацию вам поднять, а оказывается еще раз пост создал.Непревычное расположение кнопок, да и порой кнопки не совм понятны.. Поделиться сообщением Ссылка на сообщение
siv1987 2628 11/03/14 18:13 Имя файла - полное имя файла вместе с расширением.Имя класса - имя своего класса в хуке.Если данные не выводится проверьте еще раз имя файла и имя класса. Чтобы отредактировать эти поля включите админку в режим разработчика, в conf_global.php добавить или заменить - define('IN_DEV', IN_ACP ? 1 : 0); Я одного не понимаю, как функция getOutput вызывается. Где и кто ее вызывет?Вызывается системой хуков. Поделиться сообщением Ссылка на сообщение