Создать свой хук.... - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

api hooks

Страница 1 из 1

Создать свой хук....

#1 Пользователь не на сайте   Predator ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 26-Март 12
  • Репутация: -2
  • IPB version:2.1.x
 

Отправлено 03 Ноябрь 2014 - 18:22

Ребят, выручайте. Задача стоит такая, нужно создать свой хук. Аналогичный "последним темам", создал.
Данные приближенные к тем же, что и у другого хука.
Так вот, я не пойму. А где мне прописывать тот самый php код? И потом нет его в правом блоке на гл странице форума...
Короче ничего не понятно, выручайте..

Указал ключ, а где тот самый класс прописывать с данным ключем.. Один огромный геморой...
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 292
  • Регистрация: 20-Март 09
  • Репутация: 2 090
  • IPB version:3.1.x
 

Отправлено 03 Ноябрь 2014 - 19:16

Так нужно создать новый хук, или изменить уже имеющийся? Тема про хуков обсуждалась здесь.
Если в целом, то для вывода данных в сайдбаре создается хук типа "Хук шаблона" к группе шаблонов 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";
	}
}
?>

0

#3 Пользователь не на сайте   Predator ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 26-Март 12
  • Репутация: -2
  • IPB version:2.1.x
 

Отправлено 03 Ноябрь 2014 - 20:47

Вложение  header_logo.png (13,55К)
Количество загрузок: 5

Вот те данные моего добавленного хука. Он в списке есть но в папке hooks, нет какого то php файла относящегося к данному хуку...
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 292
  • Регистрация: 20-Март 09
  • Репутация: 2 090
  • IPB version:3.1.x
 

Отправлено 03 Ноябрь 2014 - 20:51

Просмотреть сообщениеPredator сказал(а):

Вот те данные моего добавленного хука.

При создание хука есть поля где нужно вводить имя файла и класса хука. В папке /hooks/ вы создаете файл с указанным именем и описанным выше для этого типа хуков класса.
0

#5 Пользователь не на сайте   Predator ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 26-Март 12
  • Репутация: -2
  • IPB version:2.1.x
 

Отправлено 03 Ноябрь 2014 - 20:52

Хотя, посмотрел я в таблицу "core_hooks_files", название не то у данного файла
contentTopicComment_e4eac9fe415c2ca2075159d893d00f91.php

Тупик какой то, название у хука "Топ авторс". При чем тут коментс...
0

#6 Пользователь не на сайте   Predator ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 26-Март 12
  • Репутация: -2
  • IPB version:2.1.x
 

Отправлено 03 Ноябрь 2014 - 20:53

Удалил хук, удалилась строчка в тб core_hooks. В таблице core_hooks_files,строчка осталась...
hook_hook_id = 14, в таблице core_hooks нет данного хука с таким айди
0

#7 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 292
  • Регистрация: 20-Март 09
  • Репутация: 2 090
  • IPB version:3.1.x
 

Отправлено 03 Ноябрь 2014 - 20:58

Нет так нет, вас это не должно волновать какие там записи есть а какие нету. Вы вообще что делаете? И старайтесь внятно объяснить свои действия и цели.
0

#8 Пользователь не на сайте   Predator ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 26-Март 12
  • Репутация: -2
  • IPB version:2.1.x
 

Отправлено 03 Ноябрь 2014 - 20:59

Извиняюсь , с айди напутал... Короче создал еще один хук, все ок...
В таблице посмотрел имя файла (core_hooks ,core_hooks_files), такоета... (айди и тд верно)
Смотрю в папку, не вижу php с данным именем...

Мне нужно бы php код вписать, а файла такого нет..
0

#9 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 292
  • Регистрация: 20-Март 09
  • Репутация: 2 090
  • IPB version:3.1.x
 

Отправлено 03 Ноябрь 2014 - 21:00

Просмотреть сообщениеPredator сказал(а):

Смотрю в папку, не вижу php с данным именем...

Просмотреть сообщениеsiv1987 сказал(а):

В папке /hooks/ вы создаете файл

При следующих вопросов внимательно несколько раз перечитайте все выше сказанное.
0

#10 Пользователь не на сайте   Predator ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 26-Март 12
  • Репутация: -2
  • IPB version:2.1.x
 

Отправлено 03 Ноябрь 2014 - 21:06

Ах, мне самостоятельно нужно создавать его :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 вызывается. Где и кто ее вызывет?
0

#11 Пользователь не на сайте   Predator ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 26-Март 12
  • Репутация: -2
  • IPB version:2.1.x
 

Отправлено 03 Ноябрь 2014 - 21:09

Ура, все работает. Видать еще расширение файла нужно было указывать...
0

#12 Пользователь не на сайте   Predator ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 26-Март 12
  • Репутация: -2
  • IPB version:2.1.x
 

Отправлено 03 Ноябрь 2014 - 21:10

siv1987, Спасибо :)

Пардон, спама много. Хотел репутацию вам поднять, а оказывается еще раз пост создал.
Непревычное расположение кнопок, да и порой кнопки не совм понятны..
0

#13 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 292
  • Регистрация: 20-Март 09
  • Репутация: 2 090
  • IPB version:3.1.x
 

Отправлено 03 Ноябрь 2014 - 21:12

Имя файла - полное имя файла вместе с расширением.
Имя класса - имя своего класса в хуке.
Если данные не выводится проверьте еще раз имя файла и имя класса. Чтобы отредактировать эти поля включите админку в режим разработчика, в conf_global.php добавить или заменить - define('IN_DEV', IN_ACP ? 1 : 0);

Цитата

Я одного не понимаю, как функция getOutput вызывается. Где и кто ее вызывет?

Вызывается системой хуков.
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна