БЛОГОДЖУМЛА - БЛОГ О ДЖУМЛА

Select с поиском для админки Joomshopping

  • Категория: Joomshopping
  • Автор:
  • Просмотров: 7801

joomla joomshopping jquery plugin select заказ

В админке Joomshopping  при редактировании заказа есть отличная возможность - заменить у заказа покупателя. Как показала практика общения с владельцами интернет магазинов - очень востребованная возможность. Все бы хорошо.... но когда у Вас в магазине 4000 покупателей - становиться сложно искать нужного покупателя в этом бесконечном селекте. Как быть? Хочется иметь какую-то форму поиска.

На помощь нам придет замечательный jQuery плагин Chosen. Посмотреть его демо страницу можно здесь.

Плагин Chosen после загрузки страницы кастомизирует выбранные селекты - добавляет поле поиска. У Chosen есть масса возможностей и настроек, но нам для нашей задачи вполне достаточно настроек по-умолчанию.

Напишем свой плагин, который подключит Chosen на странице с option=joomshopping, controller=orders и task=edit

В стандартном Joomshopping этот селект выглядит вот так:

 

После установки плагина будет выглядеть вот так:

Пусть это будет системный плагин js_admin_chosen.

Из файлов у нас будет:

  • js_admin_chosen.php 
  • js_admin_chosen.xml 
  • script.php
  • папка assets

js_admin_chosen.xml - это стандартный xml системного плагина без настроек. 

script.php - скрипт включения плагина после установки

Папка assets содержит 3 файла плагина Chosen - chosen.jquery.min.js chosen.css и chosen-sprite.png

js_admin_chosen.php - сам скрипт нашего плагина:

<?php

defined('_JEXEC') or die('Restricted access');
jimport('joomla.plugin.plugin');

class plgSystemJs_admin_chosen extends JPlugin {

    function onBeforeCompileHead() {
        if (!JFactory::getApplication()->isAdmin()) {
            return;
        }
        if (!(JRequest::getVar('option') == 'com_jshopping' && JRequest::getVar('controller') == 'orders' && JRequest::getVar('task') == 'edit')) {
            return;
        }
		
        $doc = JFactory::getDocument();
        $doc->addScript('/plugins/system/js_admin_chosen/assets/chosen.jquery.min.js');
		$doc->addStyleSheet('/plugins/system/js_admin_chosen/assets/chosen.css');
		
        $script = '
		jQuery(document).ready(function(){
			jQuery("select#user_id").chosen();  
		});
		
		';
        $doc->addScriptDeclaration($script);
    }
}


Несколько комментариев. 

Будем использовать для добавления своих javascript системное событие onBeforeCompileHead 

В 9-11 строке проверяем находимся ли мы в админке.  

В 12-14 - что мы находимся на странице редактирования заказа - /index.php?option=com_jshopping&controller=orders&task=edit...

В 16-18 - подключаем файлы плагина Chosen

А в 20 - 26 подключаем Chosen к нашему селекту с id user_id

Прикрепляю рабочую версию плагина. Пользуйтесь.

Вложения:
Доступ по ссылке (http://beagler.ru/files/plg_js_admin_chosen.zip)plg_js_admin_chosen.zip
Back to top