Web-разработка, иностранные языки, Eclipse и разные разности

Zygo Profile

Санскрит - словоформы

Verbos Irregulares

Joomshopping - замена выпадающих списков с единственным элементом на текст в независимых атрибутах

27.02.2017
Независимые атрибуты могут отображаться в карточке товара на сайте следующим образом:
  • в виде выпадающего списка
  • в виде радиокнопок
Предположим, у нас есть независимый атрибут - цвет. В зависимости от цвета у нашего товара изменяется цена. Пусть для конкретного товара доступен только оранжевый цвет. Этот цвет будет отображаться в карточке товара в виде списка с единственной опцией. Вроде бы и есть выбор, а вроде бы и нет.
Предположим, что цвет - не единственный независимый атрибут, у которого для данного товара существует только одна опция. В таком случае, пользователь, заходя в карточку товара, видит ряд выпадающих списков с одной опцией - посмотрит первый список, второй, третий - и увидев, что выбирать особенно нечего, оставит это занятие, в то время как единственный список с несколькими опциями может находиться ближе к концу.

Чтобы предотвратить такую ситуацию, предлагаю следующее решение - заменить выпадающие списки с единственной опцией на текст:
  1. Автоматически сгенерировать при помощи https://extstore.com/tools/plugin-creator плагин. Указать поле "Plugin Group:" jshoppingproducts
  2. в файле plugins/jshoppingproducts/_имя_плагина_/_имя_плагина_.php

    после строк:

    1
    2
    3
    4
     
       function __construct(&$subject, $config = array()) {
            // call parent constructor
            parent::__construct($subject, $config);
        }
    


    добавить строки:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
     public function onBuildSelectAttribute(&$attributeValues, &$attributeActive, &$selects, &$options, &$attr_id, &$v){
    
            $app =JFactory::getApplication();
            if($app->isAdmin()) return;
    
            if(sizeof($options)==1){
                $selects[$attr_id]->selects="<span class='plain_attr'>".$options[0]->value_name.'</span>';
                if($options[0]->image){
    
                    $product = JSFactory::getTable('product', 'jshop');
                    $selects[$attr_id]->selects .= "<span class='prod_attr_img'>".$product->getHtmlDisplayProdAttrImg($attr_id, $options[0]->image)."</span>";
                }
            }
        }
    


    Где _имя_плагина_ - значение, указанное в поле Plugin Name:
Облако тегов
Меню
Архив
© Psytronica.ru. Блог существа SherZa. 2015-2017 Наверх