Переключатель панелей

#
Переключатель панелей

Мини-модуль для скрытия\отображения вспомогательных панелей без перезагрузки страницы.

Системные требования:
HostCMS 6.1.2 и выше


    Установка
  1. Скачать архив
  2. Распаковать в корень сайта
  3. Запустить файл http://ваш_сайт/installtogglepanel.php
  4. Установить, нажав на кнопку «Установить»


HostCMS: Переключение панелей


HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Переключатель панелей
AJAX ошибка in-place-editor'а

В режиме in-place-editor Ваш модуль добавляет "мусор" в AJAX-ответ серверного обработчика in-place-editor'а.

Предположительно из-за этого, после редактирования в режиме in-place-editor'а, в контент редактируемого элемента попадает картинка анимации ожидания окончания AJAX-запроса (см. по картинку ссылке https://drive.google.com/file/d/0B5-OEN2vmrU3Y1ZKaDlGbm91WTQ/view?usp=sharing)

Добавлено:
вылечил, отфильтровав в modules\hostdev\togglepanel\module.php POST-запросы:

...
   static function TogglePanel() {
      if (Core::checkPanel() && ($_SERVER['REQUEST_METHOD'] !== 'POST') )
      {
         $oHostcmsTopPanel = Core::factory('Core_Html_Entity_Div')
...

ARTatom
#
Re: Переключатель панелей
ARTatom,
поправил

      if (Core::$url['path'] == '/edit-in-place.php') {
         return;
      }
      if (Core::checkPanel())
HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Переключатель панелей
Но Ваше решение не учитывает случай, когда, находясь в админке, разработчик (а ведь прежде всего для него, родимого, предназначен Ваш плагин) пытается отладить AJAX-форму (либо другие штуковины на базе AJAX). В этом случае уже в серверный ответ обработчика пользовательской формы будет сыпаться "мусор". Мой способ не лучший (честно говоря, я не знаю как на сервере определить, является ли запрос AJAX-запросом), но по крайней мере он учитывает эту ситуацию.

з.ы. гугление показало, что наилучшим способом определить, что на сервер прислан AJAX-запрос, является тест http-заголовка на наличие переменной
HTTP_X_REQUESTED_WITH
и проверки ее значения:
isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'
ARTatom
Авторизация