Как из хука получить topicid

Здравствуйте, вопрос следующий:
У меня есть хук определенный в шаблоне.
При его вызове не надо определить ид топика для которого он был вызван:
host/blog/61.html
мне надо выудить 61.
Если я работаю через Router тогда $id = Router::GetActionEvent(); выдает мне 61.html
Я какбы из этого могу выудить 61 но будет ли это универсальным способом?

Вопрос по хукам

Плагин вставляет свое содержимое по хуку. Допустим, есть 1 хук, и два плагина, которые вставляют контент по этому хуку. Но мне нужно контент одного плагина вывести в другом месте. Как это сделать? Это вообще можно сделать, не обладая навыками программирования?

Еще раз про JS-хуки - мое представление о том, как должно быть

Ежу понятно, что гибкость и расширяемость – это одни из основных характеристик любой CMS. И LiveStreet в этом плане весьма неплохо организован. Но, на мой взгляд, иногда движку не хватает какой-то концептуальной структурированности. Давайте рассмотрим, как мы можем расширять и менять скины (шаблоны), серверную часть (PHP) и клиентскую часть (javascript).
Читать дальше →

Хуки в JS

Пожалуйста, поясните как использовать хуки в JS.
И чем отличаются:
ls.hook.marker
от
ls.hook.run
Вернее даже со вторым понятно, он запускает код, а первый под вопросом.

хуки

Прочитал все на данный момент работающую тех. документацию, но все равно не понимаю где лежат стандартные хуки например шаблона.

У меня вообще сложилось впечатление, что изначально они не объявлены. Просто в шаблоне лежат некие ссылки на пустные хуки, и ничего не делают. Т.е предполагается что я сам захочу на них написать действия в hooks/

Например идем сюда www\templates\skin\synio\ header_top.tpl

В самом верху видим такую строку {hook run='header_banner_begin'}

Я правильно понял что она НИЧЕГО НЕ ДЕЛАЕТ?, Ну т.е ничего не делает, до тех пор пока я явно не создам для неё свой обработчик в папке? Или есть стандартные хуки зарытые в недра движка?

Использование хука в плагине (баян)

Ребята знаю что тема уже не раз подымалась но пишу уже от безисходности — два часа на такую простую задачу это уже слишком…
Нужно добавить еще одно обязательное поле при регистрации пользователя. Есть действующий плагин, назвал я его Tweaker, т.к. с помощью его кастомизирую движок под себя. В папку plugins/tweaker/classes/hooks ложу файл HookTweaker.class.php следующего содержания:
class PluginTweaker_HookTweaker extends Hook {
	/**
	* Регистрируем хуки
	*/
	public function RegisterHook() {
		$this->AddHook('registration_begin','add',__CLASS__,-100);
	}
	
	public function add($aVars) {
		return "There are new input!";
	}
}

После чего чищу все что только можно но вывод не происходит.
Что еще нада? Помогите плииииз!

UPD
А теперь внимание правильный ответ — вместо:
$this->AddHook('registration_begin','add',__CLASS__,-100);

это:
$this->AddHook('template_registration_begin','add',__CLASS__,-100);

не забывайте добавлять template_ перед именем хука.
Документация по хукам здесь.
Спасибо Chiffa за правильный ответ и Chiliec за дальнейшие наставления.

Идея "плагин протокол ПП"

Итак идея такова
надо, чтобы сайт был доступен по http:// при анонимном просмотре. Если же осуществляешь вход на сайт, то происходит перенаправление на , при выходе опять — на http://
Вычитал информацию в интернете
Нужно написать хук:
function hook_user_logout(){
global $base_url;
$base_url = str_replace('https://', 'http://', $base_url);
}

Тогда при выходе — редирект с https:// на http://

[РЕШЕНО]Использование хуков в плагине

Дочитал документацию и этот топик, пытаюсь добавить поле при регистрации, но, похоже, поставил функцию не там, где её ищет движок:

//PluginMyPlugin.class.php
public function Init() {
      $this->Hook_AddExecFunction('template_form_registration_end','add_field',10);
    }
    public function add_field($aVars) {
      var_dump("some additional field");
    }

В этом случае при регистрации появляется следующая ошибка:
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'add_field' not found or invalid function name in /var/www/localhost/htdocs/live/engine/modules/hook/Hook.class.php on line 139

Также пробовал создавать внутри плагина каталог classes/hooks с файлом hookMyPlugin.class.php:
class PluginMyPlugin_HookMyPlugin extends Hook {
public function RegisterHook ()
{
  this -> AddHook('template_form_registration_end','RegEnd',__CLASS__,10);
}
public function RegEnd ($aVars) {
  //return $this -> Viewer_Fetch (Plugin::GetTemplatePath (__CLASS__) . 'reg_end.tpl');
  var_dump("Hook it!");
}
}

Но в этом случае совсем ничего не происходит. Если просто добавить хук в /classes/hooks в корневой каталог, то всё работает. Но хотелось бы расположить все файлы внутри каталога плагина

Вопрос: как вставить свои значения в форму редактирования, на наследуя Action (ответ найден)

В данный момент очень криво выглядит добавление какого-либо поля плагином в стандартные поля форм topic/add или blog/add
и вот, почему:

для добавления поля, что бы не переопределять системные функции, пользуюсь хуками на ActionBlog.
все удобно, кроме одного момента:
при редактировании топика\блога вернуть в форму сохраненные плагином значения нельзя посредством хуков, т.к. blog_edit_before обрабатывается только при сабмите формы.
очень нехватает системного хука чуть выше по коду (или ниже, после else) для того, что бы можно было впихнуть $_REQUEST['myfield']='myvalue';

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

код под катом

Читать дальше →