Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
254 lines (188 sloc) 8.7 KB
title taxonomy
Популярые правки
category
docs

Обрезается название айтема в фильтре при поиске

Т.к речь про автодополнение, то дополнительно к правке VARCHAR нужно изменить контроллер.

media\zoo\applications\jbuniversal\framework\controllers\autocomplete.php Константа MAX_LENGTH

Автоматическая генерация названий

\media\zoo\applications\jbuniversal\templates\auto\assets\js\widget\namecreator.js

/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Sergey Kalistratov <kalistratov.s.m@jgmail.com>
 */
 
;
(function ($, window, document, undefined) {
 
    /**
     * NameCreator widget
     */
    JBZoo.widget('JBZoo.NameCreator', {
        'elResYear'  : '.jsNameYear',
        'elResColor' : '.jsNameColor',
        'elRestCity' : '.jsNameCity',
        'elRestCat'  : '.jsNameCat',
        'elCity'     : '#elements66f74b23-cd70-4f76-8a7e-a24412fad598option',
        'elYear'     : 'f83cbbe4-bb47-46f0-81cd-b885ae7a388e',
        'elColor'    : 'b8b4f50f-34ab-49f3-a56f-0e684d72a2f2',
        'elCategory' : '#elements_itemcategoryvalue',
        'elName'     : '_itemname'
    }, {
 
        init : function($this){
            $this.setupName($this);
        },
 
        /**
         * Setup name on submit form.
         *
         * @param $this
         */
        setupName : function($this) {
            $this.$('#submit-button').on('click', function (e) {
                $this._processCity($this);
                $this._processYear($this);
                $this._processColor($this);
                $this._processCategories($this);
 
                var itemName, category, color, year, city;
 
                category = $($this.options.elRestCat).text();
                year     = $($this.options.elResYear).text();
                color    = $($this.options.elResColor).text();
                city     = $($this.options.elRestCity).text();
 
                itemName = category + color + year + city;
 
                $('input[name*=' + $this.options.elName + ']').attr('value', itemName);
 
                setTimeout(function () {
                    document.submissionForm.submit();
                }, 200);
 
                e.preventDefault();
            });
        },
 
        /**
         * Find and set city value.
         *
         * @param $this
         * @private
         */
        _processCity : function ($this) {
            var city = $this.$($this.options.elCity + ' option:selected').text();
 
            //  Write city selected value.
            $($this.options.elRestCity).text(city);
        },
 
        /**
         * Find and ser color value.
         *
         * @param $this
         * @private
         */
        _processColor : function ($this) {
            var queryColor = 'input[name*=' + $this.options.elColor + ']';
            var color      = $this.$(queryColor + ':checked').val();
 
            //  Write color selected value.
            if (color) {
                $($this.options.elResColor).text(' (' + color + ')');
            }
        },
 
        /**
         * Find and set year.
         *
         * @param $this
         * @private
         */
        _processYear : function ($this) {
            //  Write year value.
            $($this.options.elResYear).text(' - ' +  $this.$('input[name*=' + $this.options.elYear + ']').val() + ', ');
        },
 
        /**
         * Find and set category values.
         *
         * @param $this
         * @private
         */
        _processCategories : function ($this) {
            var categoryName = '';
 
            $this.$($this.options.elCategory+ ' option:selected').each(function (index, value) {
 
                categoryName = categoryName + $this._clearStr($(this).html());
 
                if (index == 0) {
                    categoryName = categoryName + ' / ';
                }
 
            });
 
            $($this.options.elRestCat).text(categoryName);
        },
 
        /**
         * Clear string.
         *
         * @param str
         * @returns {*}
         * @private
         */
        _clearStr : function (str) {
            return str.replace(/(&nbsp;|\.&nbsp;|-&nbsp;)/g, '');
        }
 
    });
 
})(jQuery, window, document);
 

И все-таки у меня не получается задать свои элементы формы, которые бы участвовали в автособирании названия. Если я подставлю ID элемента вместо elYear, то нормально. Но если я создаю свое, то не получамба. Новый метод который вы сделали по аналогу _processYear добавьте в метод setupName, что бы он вызывался. В вашем случае необходимо добавить:

$this._processSn($this);

Создание названии объявлений при подаче

Например, если взять строку "'elResYear'  : '.jsNameYear'" то elResYear - Это название в котором хранится jQuery объект (html).

Он выбирается с помощью селектора-класса jsNameYear из страницы. 

Далее сборка имени происходит с помощью этого метода.

image

Т.е через функцию $.text() берется значение поле и объединяется через запятую прямо перед отправкой формы по кнопке #submit-button

Посмотрите шаблон сабмишен, там используется стиль позиции jbads, который и расставляет нужные классы у нужных полей.

jbuniversal\templates\auto\renderer\element\jbads.php

Убрать 0 в сервисе доставки

image

<?php
if ($element->identifier == 'element_id_1' || $element->identifier == 'element_id_2') {
echo 'по тарифам ТК';
} else {
echo $rate->html();
}
?>

Как убрать значение селекта по умолчанию?

image

Эта строка создает первую строку в списке Список опций создается тут

media\zoo\applications\jbuniversal\cart-elements\price\option\option.php

Эта строка создает первую строку в списке

Проблема с элементом цены "Скидка"

для цены вида 3,56 скидка выводится просто пустой оберткой без значения. При введении цены без десятичных значений - все работает.

От цены 35.59 - отобразится. А 3.59 - нет.

    /*if(!$this->hasValue($params)) {
            return $this->renderWrapper();
        }*/
 
        if(!$this->getValue('value')) {
            return $this->renderWrapper();
        } 

Проблема с вариациями цены

Недавно после импорта перестали работать вариации в цене. Т.е. при изменении параметра цены не меняется цена НО!!! если зайти в айтем и просто еще раз его сохранить то всё работает. Я помню что такие проблемы пару раз всплывали на форуме, но не помню как это решить.

Такая проблема чаще всего в калькуляторе и я знаю выход из нее, но мне очень не хочется.

Решение простое. Выгрузить всё, потом импортировать с галкой удалить все цены и загрузить заново.

Автопубликация item из submission

components\com_zoo\controllers\submission.php

if (!$this->submission->isInTrustedMode() && !in_array('_itemstate', array_keys($this->elements_config))) {
    $this->item->state = 0;
}
 
$this->item->state = 1; // добавить
You can’t perform that action at this time.