0 Пользователей и 1 Гость просматривают эту тему.
  • 15 Ответов
  • 1562 Просмотров
*

alonelive

  • Захожу иногда
  • 112
  • 3 / 0
Приветствую!
Интересуюсь, есть ли доп. функционал для управления плагинами? К примеру, есть плагин, который выводит сообщение пользователю, посещающему сайт с использованием старой версии браузера о том, что браузер пора обновить. Есть некоторые страницы сайта, на которых я хотел бы отключить действие этого плагина. Подскажите, как реализовать затею.
Заранее спасибо!
*

alonelive

  • Захожу иногда
  • 112
  • 3 / 0
Проще говоря, мне надо плагин привязать к конкретной странице сайта Joomla. Стандартными средствами я не могу это сделать - нужен сторонний функционал.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 731 / 7
  • Все начинается с Value
по идее ваш плагин должен выводить сообщение в <jdoc:include type="message" />
тогда в шаблоне (обычно файл index.php) можно прописать иак
Код: php-brief
<?php $Itemid = JRequest::getInt( 'Itemid', 1, 'get' );
if ($Itemid != '5') : ?>
 <jdoc:include type="message" />
<?php endif; ?>
Параметр Itemid представляет собой числовой идентификатор пункта меню. В примере 5
если не получится тогда ковырять плагин, чтобы он не обрабатывал страницу меню с идентификатором
простой костыль порою проще граблей  ^-^
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Вот не стОит так делать.
Во-первых, не факт, что этот плагин именно туда выводит.
Во-вторых, таким образом любые другие системные сообщения не будут выводиться на этих страницах.

Если нужно делать какие-то условия - так в самом плагине.
*

alonelive

  • Захожу иногда
  • 112
  • 3 / 0

Увы, это все, что есть из опций.
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Ну так если бы в опциях было то, что вам нужно, вы бы не создали бы тему.

Сформулируйте условия (можете для примера посмотреть тему про условия в шаблонах).

В файле browserupdatewarning.php в функции onAfterRoute() добавляйте свои условия, например после

Код
if($app->isAdmin()) return true;



*

alonelive

  • Захожу иногда
  • 112
  • 3 / 0
Мм.. Я не программист, к сожалению :( Не справлюсь.
Условие - одно: плагин должен быть выключен на странице с именем "../register"
Это страница подачи заявок, желательно ее разгрузить от всего лишнего. Сама страница - пункт меню + компонент FoxContact. Можете набросать код? :) Как это будет выглядеть..
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 731 / 7
  • Все начинается с Value
В плагине вставьте
<?php if (JFactory::getURI()->toString() == 'http://joomlaforum.ru/register') die(); ?>
или так
<?php if (JFactory::getURI()->toString() == 'http://joomlaforum.ru/register') return true; ?>
*

alonelive

  • Захожу иногда
  • 112
  • 3 / 0
Parse error: syntax error, unexpected '<' in /var/www/u2481342/data/www/сайт.com/plugins/system/browserupdatewarning/browserupdatewarning.php on line 14

Выдало не то, что хотелось бы.

[вложение удалено Администратором]
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 731 / 7
  • Все начинается с Value
$arr = parse_url(JFactory::getURI()->toString());
$path = $arr[path];
if ($path == '/register') return true; //Ваш путь после имени сайта
// if ($path == '/register') die();
*

alonelive

  • Захожу иногда
  • 112
  • 3 / 0
Не помог вариант номер 1 (без результатов).
Со вторым вариантом открывается пустой белый лист на все окно браузера (в любом браузере).

Может быть причиной то, что ссылка сформирована через sh404SEF?
« Последнее редактирование: 10.05.2012, 22:26:58 от alonelive »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 731 / 7
  • Все начинается с Value
у вас ссылка точно /register
что выводит код если вставить в шаблон сайта на нужной странице
Код: php
<?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;
*

alonelive

  • Захожу иногда
  • 112
  • 3 / 0
Насчет первого - вставил в шаблон вывода компонента, выдало /register и только.
Насчет второго - куда вставлять сам этот код, Вы не указали.. В index.php шаблона или в шаблон вывода компонента (в данном случае foxcontact, использующийся в качестве анкетной формы, файл default.php)? Не смог понять этого момента :)
« Последнее редактирование: 10.05.2012, 22:42:18 от alonelive »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 731 / 7
  • Все начинается с Value
В плагин
class plgSystemBrowserUpdateWarning extends JPlugin
{
        var $_initialized = false;
 function onAfterRoute()
   {
               
$arr = parse_url(JFactory::getURI()->toString());
$path = $arr[path];
if ($path == '/register') return true;
*

alonelive

  • Захожу иногда
  • 112
  • 3 / 0
Поставил. Вроде как работает.
Завтра на работе буду, протестирую с разных браузеров и машин, затем отпишусь вечером в теме и сообщу уже точные результаты :)
Спасибо, что потратили свое время на мои вопросы :)
*

alonelive

  • Захожу иногда
  • 112
  • 3 / 0
Нормально работает. Благодарю еще раз! :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Некорректная работа плагинов после переноса сайта на другой хостинг

Автор ICaR

Ответов: 1
Просмотров: 828
Последний ответ 26.01.2018, 09:21:26
от kern.USR
Ошибка в менеджере плагинов

Автор JayDS

Ответов: 1
Просмотров: 607
Последний ответ 10.03.2017, 15:47:35
от passer
Не работает менеджер плагинов

Автор NatellaLev

Ответов: 3
Просмотров: 1468
Последний ответ 09.05.2014, 10:22:39
от NatellaLev
Настройка плагинов в админке

Автор detector

Ответов: 4
Просмотров: 991
Последний ответ 09.08.2012, 16:23:18
от detector