2013-02-22 3 views
1

Я разработал системный плагин для Joomla 3.0, который заменяет ключевые слова для HTML-форматированных объектов. Это отлично работает в моей локальной лабораторной среде, но при установке на размещенном сайте (WHM/cPanel) это вызывает проблемы с областью администрирования и не позволяет администраторам редактировать статьи.Невозможно редактировать статью после установки системного плагина

Когда администратор нажимает на статью, чтобы отредактировать попытку загрузки страницы, она появляется на той же странице. Я разработал это как интерфейсный модуль, поэтому не должен влиять на административную область.

Проблема также предотвращение админ создавать что-то новое (пункты новости, блоги, содержание, меню и т.д.)

Поскольку это не происходит в моей лаборатории, я могу только предположить, что проблема связана с некоторыми настройками сервера, которые Возможно, мне нужно включить/отключить. У меня есть полный административный доступ и к WHM, Cpanel и Joomla так можно изменить настройки, где когда-либо необходимые ...

Вещи, которые я наблюдал:

Изменения в статье URL из:

/administrator/index.php?option=com_content&view=article&layout=edit&id=7 

до:

/administrator/index.php?option=com_content&view=article&layout=edit&id=7 

, когда плагин включен. Обратите внимание, что амперсанд изменился на amp;. Это заставляет меня думать, что это может быть что-то связанное с кодировкой символов UTF-8, было установлено в MySQL до utf8general_ci.

Любые указатели на конфигурациях Мне может потребоваться изменить, будет очень получен.

Вопрос: Как предотвратить это событие (без удаления моего основного плагина).

+1

Как вы храните его от работы в админ? На какие события отвечает плагин? Амперсанды, которые кодируются, не имеют ничего общего с utf8, это связано с амперсандами и всеми специальными символами, закодированными так, чтобы они проверяли. Вы можете указать код, чтобы получить справку. – Elin

+0

@Elin, с тех пор я добавил чек перед вызовом класса для обеспечения IsAdmin() === false; Это помешало плагину нарушить структуру Joomla, но кажется странным, что это происходит только в размещенной среде, а не локально. –

+0

Это определенно странно, и я не могу придумать, почему это произойдет, если, возможно, ваша версия php немного отличается? – Elin

ответ

0

Если вы создаете системный плагин, который должен работать только на интерфейсе, вы должны проверить свой плагин, если текущая страница является интерфейсом. Вы можете сделать это с помощью этой функции: JFactory::getApplication()->isSite() или JFactory::getApplication()->isAdmin()

Пример использования (я предполагаю, что вы используете onAfterRender событие):

function onAfterRender() { 
    // Exit if current page is from Administration panel 
    if(JFactory::getApplication()->isAdmin() ) return; 

    /* your plugin main code goes here*/ 
} 

Это предотвратит ваш плагин от изменения выходной панели администрирования. Если вы уже это сделали, и он проверяет, как это должно быть, нет причин, по которым ваши проблемы связаны с тем, что этот плагин.

Смежные вопросы