Predator Posted November 3, 2014 Share Posted November 3, 2014 Ребят, выручайте. Задача стоит такая, нужно создать свой хук. Аналогичный "последним темам", создал. Данные приближенные к тем же, что и у другого хука.Так вот, я не пойму. А где мне прописывать тот самый php код? И потом нет его в правом блоке на гл странице форума...Короче ничего не понятно, выручайте.. Указал ключ, а где тот самый класс прописывать с данным ключем.. Один огромный геморой... Link to comment Share on other sites More sharing options...
siv1987 Posted November 3, 2014 Share Posted November 3, 2014 Так нужно создать новый хук, или изменить уже имеющийся? Тема про хуков обсуждалась здесь. Если в целом, то для вывода данных в сайдбаре создается хук типа "Хук шаблона" к группе шаблонов 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"; } } ?> Link to comment Share on other sites More sharing options...
Predator Posted November 3, 2014 Author Share Posted November 3, 2014 Вот те данные моего добавленного хука. Он в списке есть но в папке hooks, нет какого то php файла относящегося к данному хуку... Link to comment Share on other sites More sharing options...
siv1987 Posted November 3, 2014 Share Posted November 3, 2014 Вот те данные моего добавленного хука.При создание хука есть поля где нужно вводить имя файла и класса хука. В папке /hooks/ вы создаете файл с указанным именем и описанным выше для этого типа хуков класса. Link to comment Share on other sites More sharing options...
Predator Posted November 3, 2014 Author Share Posted November 3, 2014 Хотя, посмотрел я в таблицу "core_hooks_files", название не то у данного файла contentTopicComment_e4eac9fe415c2ca2075159d893d00f91.php Тупик какой то, название у хука "Топ авторс". При чем тут коментс... Link to comment Share on other sites More sharing options...
Predator Posted November 3, 2014 Author Share Posted November 3, 2014 Удалил хук, удалилась строчка в тб core_hooks. В таблице core_hooks_files,строчка осталась...hook_hook_id = 14, в таблице core_hooks нет данного хука с таким айди Link to comment Share on other sites More sharing options...
siv1987 Posted November 3, 2014 Share Posted November 3, 2014 Нет так нет, вас это не должно волновать какие там записи есть а какие нету. Вы вообще что делаете? И старайтесь внятно объяснить свои действия и цели. Link to comment Share on other sites More sharing options...
Predator Posted November 3, 2014 Author Share Posted November 3, 2014 Извиняюсь , с айди напутал... Короче создал еще один хук, все ок...В таблице посмотрел имя файла (core_hooks ,core_hooks_files), такоета... (айди и тд верно)Смотрю в папку, не вижу php с данным именем... Мне нужно бы php код вписать, а файла такого нет.. Link to comment Share on other sites More sharing options...
siv1987 Posted November 3, 2014 Share Posted November 3, 2014 Смотрю в папку, не вижу php с данным именем...В папке /hooks/ вы создаете файлПри следующих вопросов внимательно несколько раз перечитайте все выше сказанное. Link to comment Share on other sites More sharing options...
Predator Posted November 3, 2014 Author Share Posted November 3, 2014 Ах, мне самостоятельно нужно создавать его :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 вызывается. Где и кто ее вызывет? Link to comment Share on other sites More sharing options...
Predator Posted November 3, 2014 Author Share Posted November 3, 2014 Ура, все работает. Видать еще расширение файла нужно было указывать... Link to comment Share on other sites More sharing options...
Predator Posted November 3, 2014 Author Share Posted November 3, 2014 @siv1987, Спасибо :) Пардон, спама много. Хотел репутацию вам поднять, а оказывается еще раз пост создал.Непревычное расположение кнопок, да и порой кнопки не совм понятны.. Link to comment Share on other sites More sharing options...
siv1987 Posted November 3, 2014 Share Posted November 3, 2014 Имя файла - полное имя файла вместе с расширением.Имя класса - имя своего класса в хуке.Если данные не выводится проверьте еще раз имя файла и имя класса. Чтобы отредактировать эти поля включите админку в режим разработчика, в conf_global.php добавить или заменить - define('IN_DEV', IN_ACP ? 1 : 0); Я одного не понимаю, как функция getOutput вызывается. Где и кто ее вызывет?Вызывается системой хуков. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now