Бывает такая проблема: Мамбот, который должен был бы работать (отображаться) только в статьях joomla, работает и в пользовательских модулях (User). Как сделать так, чтобы мамбот не показывался в таких модулях?
Способ 1 (пользовательский). Начиная с версии Joomla 1.0.11: Для того, чтобы для содержимого пользовательского модуля не вызывались мамботы, необходимо в параметрах модуля установить параметру Mambots значение No. Подробнее об этом
Способ 2 (для програмистов). Я столкнулся с такой проблемой, когда писал собственный мамбот. Решил её так. В самое начало функции, вызываемой по OnPrepareContent, добавил проверку:
1 2 3 4 |
if ($row->position){ return true; } |
Смысл этой проверки в том, что в таблице #__modules есть поле position, а в таблице #__content его нет.
Для примера более крупный кусок кода:
1 2 3 4 5 6 7 8 9 |
$_MAMBOTS->registerFunction('onPrepareContent', 'botSajgakLike' ); function botSajgakLike( $published, &$row, &$params, $page=0 ) { global $database, $_MAMBOTS, $mainframe, $my; if ($row->position){ return true; } |