alonelive
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 108
|
 |
« : 07.05.2012, 20:43:06 » |
|
Приветствую! Интересуюсь, есть ли доп. функционал для управления плагинами? К примеру, есть плагин, который выводит сообщение пользователю, посещающему сайт с использованием старой версии браузера о том, что браузер пора обновить. Есть некоторые страницы сайта, на которых я хотел бы отключить действие этого плагина. Подскажите, как реализовать затею. Заранее спасибо!
|
|
|
|
|
Записан
|
|
|
|
alonelive
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 108
|
 |
« Ответ #1 : 08.05.2012, 10:38:00 » |
|
Проще говоря, мне надо плагин привязать к конкретной странице сайта Joomla. Стандартными средствами я не могу это сделать - нужен сторонний функционал.
|
|
|
|
|
Записан
|
|
|
|
|
Fedor Vlasenko
|
 |
« Ответ #2 : 08.05.2012, 22:00:48 » |
|
по идее ваш плагин должен выводить сообщение в <jdoc:include type="message" /> тогда в шаблоне (обычно файл index.php) можно прописать иак <?php $Itemid = JRequest::getInt( 'Itemid', 1, 'get' ); if ($Itemid != '5') : ?> <jdoc:include type="message" /> <?php endif; ?> Параметр Itemid представляет собой числовой идентификатор пункта меню. В примере 5 если не получится тогда ковырять плагин, чтобы он не обрабатывал страницу меню с идентификатором простой костыль порою проще граблей 
|
|
|
|
« Последнее редактирование: 08.05.2012, 22:39:43 от Poznakomlus »
|
Записан
|
|
|
|
|
SDKiller
|
 |
« Ответ #3 : 08.05.2012, 22:03:37 » |
|
Вот не стОит так делать. Во-первых, не факт, что этот плагин именно туда выводит. Во-вторых, таким образом любые другие системные сообщения не будут выводиться на этих страницах.
Если нужно делать какие-то условия - так в самом плагине.
|
|
|
|
|
Записан
|
|
|
|
alonelive
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 108
|
 |
« Ответ #4 : 09.05.2012, 10:55:33 » |
|
 Увы, это все, что есть из опций.
|
|
|
|
|
Записан
|
|
|
|
|
SDKiller
|
 |
« Ответ #5 : 09.05.2012, 11:15:09 » |
|
Ну так если бы в опциях было то, что вам нужно, вы бы не создали бы тему. Сформулируйте условия (можете для примера посмотреть тему про условия в шаблонах). В файле browserupdatewarning.php в функции onAfterRoute() добавляйте свои условия, например после if($app->isAdmin()) return true;
|
|
|
|
|
Записан
|
|
|
|
alonelive
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 108
|
 |
« Ответ #6 : 09.05.2012, 21:16:03 » |
|
Мм.. Я не программист, к сожалению  Не справлюсь. Условие - одно: плагин должен быть выключен на странице с именем "../register" Это страница подачи заявок, желательно ее разгрузить от всего лишнего. Сама страница - пункт меню + компонент FoxContact. Можете набросать код?  Как это будет выглядеть..
|
|
|
|
|
Записан
|
|
|
|
|
Fedor Vlasenko
|
 |
« Ответ #7 : 09.05.2012, 21:26:34 » |
|
В плагине вставьте <?php if (JFactory::getURI()->toString() == 'http://joomlaforum.ru/register') die(); ?> или так <?php if (JFactory::getURI()->toString() == 'http://joomlaforum.ru/register') return true; ?>
|
|
|
|
« Последнее редактирование: 10.05.2012, 22:09:42 от Poznakomlus »
|
Записан
|
|
|
|
alonelive
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 108
|
 |
« Ответ #8 : 10.05.2012, 21:11:33 » |
|
Parse error: syntax error, unexpected '<' in /var/www/u2481342/data/www/сайт.com/plugins/system/browserupdatewarning/browserupdatewarning.php on line 14
Выдало не то, что хотелось бы.
|
|
|
|
|
Записан
|
|
|
|
|
Fedor Vlasenko
|
 |
« Ответ #9 : 10.05.2012, 22:02:43 » |
|
$arr = parse_url(JFactory::getURI()->toString()); $path = $arr[path]; if ($path == '/register') return true; //Ваш путь после имени сайта // if ($path == '/register') die();
|
|
|
|
« Последнее редактирование: 10.05.2012, 22:10:06 от Poznakomlus »
|
Записан
|
|
|
|
alonelive
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 108
|
 |
« Ответ #10 : 10.05.2012, 22:23:47 » |
|
Не помог вариант номер 1 (без результатов). Со вторым вариантом открывается пустой белый лист на все окно браузера (в любом браузере).
Может быть причиной то, что ссылка сформирована через sh404SEF?
|
|
|
|
« Последнее редактирование: 10.05.2012, 22:26:58 от alonelive »
|
Записан
|
|
|
|
|
Fedor Vlasenko
|
 |
« Ответ #11 : 10.05.2012, 22:29:13 » |
|
у вас ссылка точно /register что выводит код если вставить в шаблон сайта на нужной странице <?php $arr = parse_url(JFactory::getURI()->toString()); $path= $arr[path]; echo $path; ?> Вставлять сюда:class plgSystemBrowserUpdateWarning extends JPlugin { var $_initialized = false; function onAfterRoute() { $arr = parse_url(JFactory::getURI()->toString()); $path = $arr[path]; if ($path == '/register') return true;
|
|
|
|
« Последнее редактирование: 10.05.2012, 22:36:46 от Poznakomlus »
|
Записан
|
|
|
|
alonelive
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 108
|
 |
« Ответ #12 : 10.05.2012, 22:32:45 » |
|
Насчет первого - вставил в шаблон вывода компонента, выдало /register и только. Насчет второго - куда вставлять сам этот код, Вы не указали.. В index.php шаблона или в шаблон вывода компонента (в данном случае foxcontact, использующийся в качестве анкетной формы, файл default.php)? Не смог понять этого момента 
|
|
|
|
« Последнее редактирование: 10.05.2012, 22:42:18 от alonelive »
|
Записан
|
|
|
|
|
Fedor Vlasenko
|
 |
« Ответ #13 : 10.05.2012, 22:49:37 » |
|
В плагин class plgSystemBrowserUpdateWarning extends JPlugin { var $_initialized = false; function onAfterRoute() { $arr = parse_url(JFactory::getURI()->toString()); $path = $arr[path]; if ($path == '/register') return true;
|
|
|
|
|
Записан
|
|
|
|
alonelive
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 108
|
 |
« Ответ #14 : 10.05.2012, 23:02:54 » |
|
Поставил. Вроде как работает. Завтра на работе буду, протестирую с разных браузеров и машин, затем отпишусь вечером в теме и сообщу уже точные результаты  Спасибо, что потратили свое время на мои вопросы 
|
|
|
|
|
Записан
|
|
|
|
alonelive
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 108
|
 |
« Ответ #15 : 11.05.2012, 18:08:26 » |
|
Нормально работает. Благодарю еще раз! 
|
|
|
|
|
Записан
|
|
|
|
|