1,926

(9 ответов, оставленных в Вопросы по созданию тем оформления)

Сам код:

<div id="collapseYesNo" class="panel-collapse collapse in">
                <div class="panel-body">
                    

                    <select class="yesno" name="bfilter[isnum]" data-start-value="" >
                            <option value="">{t}Неважно{/t}</option>
                            <option value="1" {if $basefilters.isnum == '1'}selected{/if}>{t}Есть{/t}</option>
                           <option value="0" {if $basefilters.isnum == '0'}selected{/if}>{t}Нет{/t}</option>
                    </select>
                
                    <label><input type="radio" name="rad" value="" checked>{t}Неважно{/t}</label>
                    <label><input type="radio" name="rad" value="1"  {if $basefilters.isnum == '1'}{/if}>{t}Есть{/t}</label>
                    <label><input type="radio" name="rad" value="0"  {if $basefilters.isnum == '0'}{/if}>{t}Нет{/t}</label>
                </div>
            </div>

javascript:

<script type="text/javascript">
            $(function() {
                

                $('.typeInterval .pluginInput').each(function() {
                    var $this = $(this);
                    var fromTo = $this.siblings('.fromToLine').hide();
                    $this.jslider( $.extend( $(this).data('slider'), { callback: function(value) {
                        var values = value.split(';');
                        $('input[name$="[from]"]', fromTo).val(values[0]);
                        $('input[name$="[to]"]', fromTo).val(values[1]);
                        $this.trigger('change');
                    }}));
                    
                    $('input[name$="[from]"], input[name$="[to]"]', fromTo).change(function() {
                        var from = $('input[name$="[from]"]', fromTo).val();
                        var to = $('input[name$="[to]"]', fromTo).val();
                        $this.jslider('value', from, to);
                    });
                });
            });

            $('.cb').click( function(){
                $(this).find('i').toggleClass('fa fa-angle-up').toggleClass('fa fa-angle-down');
            });


            $("[name='rad']").on('click', function(){
                var context = $(this).closest('.panel-body'); //Определим область где будем всё менять
                var val     = $("[name='rad']:checked", context).val(); //Выберем, то что выбрали в радиокнопках
                $(".yesno", context).val(val).trigger('change'); //Поменяем значении и вызовем событие смены
            });

        </script>  

Пользуйтесь console.log когда отлаживаете и Firebug

Вы можете сколько угодно цен выгружать. Вы в фильтре в 1С выставили обе цены? Или она у Вас выгружается вторая, но вы хотите как-то её показать за место Розничной?

1,928

(9 ответов, оставленных в Вопросы по созданию тем оформления)

Код дайте весь.

1,929

(9 ответов, оставленных в Вопросы по созданию тем оформления)

После записи значения в выпадающий список, вызовите событие смены значения дополнительно.

$("МОЙ СЕЛЕКТ").trigger('change');

Оно заставит отреалировать как на ручную смену выпадающего списка.
И не пишите в атрибуте, это ведь не красиво. smile

В видео описываются настройки модулей Каталог товаров и Магазин, а также как они влияют на пользовательскую часть.
Вот ссылочка:
https://www.youtube.com/watch?v=59AbcVW … mp;index=3

1,931

(15 ответов, оставленных в Вопросы по Маркетплейсу)

Спасибо за ссылочку. Но ведь это тоже самое что и у нас. Вы можете изменить дизайн как Вы захотите. Ограничений нет.

1,932

(15 ответов, оставленных в Вопросы по работе с системой)

Ярослав пишет:

Отлично! А то костыли использую

Вот обещанный видеоурок
https://www.youtube.com/watch?v=n6ufZ2b … L4X2UTC6Aw

Специально для Вас Ярослав
https://www.youtube.com/watch?v=n6ufZ2b … L4X2UTC6Aw

Добрый день.
Выкладываю очередной ролик по программированию на ReadyScript. В этот раз речь пойдёт о запросах к БД. Какие онибывают, как записывать и извлекать данные. Запросы при помощи ORM Request
Видеоурок

Да tpl можно переопределить:
В той же папке где и system, нужно сделать папку mysystem и повторить тот же путь к шаблону.

Как вариант можно указать внешний шаблон в котором будет открывающий тег, а в другом контейнере во внешнем шаблоне закрывающий тег. У вас wrapper оборачивает весь контент внутри body? Какой он смысл несёт в Вашем случае?

Просто у BS логика такая, что всегда должен быть контейнер.

1,937

(3 ответов, оставленных в Вопросы по работе с системой)

То что вы написали это вообще не то. Вам надо как я и насал вызвать статическую публичную функцию из своего дополнительного модуля.

{static_call var=result callback=['Путь к классу апи Вашего модуля','функция которая должна отработать'] params=['id пользователя']}

Предлоложим у Вас есть дополнительный модуль с именем custom, который вы создали. Если у нём будет лежать класс с Вашим API(набором функций). То к нему можно будет обратиться примерно так:

{static_call var=result callback=['\Custom\Mode\Api','getUserOrderCulc'] params=[$user.id]}

Соответственно код Вашего класса должен быть примерно таким:

<?php
namespace Custom\Model;

class Api
{
     /**
     * Подсчитывает количество заказов у пользователя
     * @param integer $user_id - идентификатор пользователя
     */
     public static function getUserOrdersCount($user_id){
          $order_api = new \Shop\Model\OrderApi();
          $order_count = $order_api->getUserOrdersCount($user_id);
          return $order_count;
     }
}

1,938

(3 ответов, оставленных в Вопросы по работе с системой)

smile Вам надо вызвать статическую функцию при помощи static_call из своего модуля, где в функции надо вызвать апи заказов вот так:

$order_api = new \Shop\Model\OrderApi();
$order_count = $order_api->getUserOrdersCount(id вашего пользователя);
return $order_count;

http://readyscript.ru/dev-manual/dev_sm … tatic_call

скажите, пожалуйста, как сделать то же самое только для классической темы оформления?

Ну алгоритм по сути тот же самый, что и описанный выше. Но есть одно НО. Т.к. тема классическая, то эта та тема, которая используется по-умолчанию, и все шаблоны там находятся не в папке /templates/default/, а в папках модулей которые использует система, для отображения содержимого.
Предварительно Вам надо для понимания пройти вот это:
http://readyscript.ru/text-blog/Kak-soz … adyScript/

Это Вам даст понимание как работать с шаблонами.

Но по сути, Вам надо во первых классическую тему оформления отклонировать, если Вы этого не сделали (Управление->Шаблоны->Справа вверху "Отклонировать тему"). А вторых скопировать себе шаблоны классической темы оформления в свою новую и затем их можно будет поправить.
А конкретно:

Шаг оформления адрес
/modules/shop/view/checkout/address.tpl копируем в
/templates/ВАША ТЕМА/moduleview/shop/checkout/address.tpl

Там есть:

<li><a class="item {if $order.user_type=='person'} act{/if}" data-tab="#user-tab1" data-input-val="person" href="JavaScript:;">Частное лицо</a></li>
<li><a class="item{if $order.user_type=='company'} act{/if}" data-tab="#user-tab1" data-class="thiscompany" data-input-val="company" href="JavaScript:;">Компания</a></li>

Заменяем на :

<li><a class="item {if $order.user_type=='person'} act{/if}" data-tab="#user-tab1" data-input-val="person" href="JavaScript:;">Частное лицо</a></li>

Личный кабинет
/modules/user/view/profile.tpl копируем в
/templates/ВАША ТЕМА/moduleview/user/profile.tpl

Там есть:

<li><a class="item {if !$user.is_company}act{/if}" data-input-val="0" data-tab="#profile"><i>частное лицо</i></a></li>
<li><a class="item {if $user.is_company}act{/if}" data-class="thiscompany" data-input-val="1" data-tab="#profile"><i>компания</i></a></li>

Заменяем на :

<li><a class="item {if !$user.is_company}act{/if}" data-input-val="0" data-tab="#profile"><i>частное лицо</i></a></li>

После сохранения сбрасываем кэш.

1,940

(18 ответов, оставленных в Вопросы по работе с системой)

Да действительно не понимаем.
Ну вот вы округлили разницу между ценами, она у Вас в delta.
Что теперь вам мешает применить round к нужной сумме?
$cost=round($cost)

?

Вы же функцию к переменной можете вызывать сколько угодно раз.

1,941

(18 ответов, оставленных в Вопросы по работе с системой)

Так и делается. Всё абсолютно верно. Может у Вас кеш?

1,942

(18 ответов, оставленных в Вопросы по работе с системой)

Так у Вас же здесь нет round. Вы что округляете то?

1,943

(4 ответов, оставленных в Вопросы по работе с системой)

Скорее всего Вам нужно это:
Модуль оформления заказа на одной странице

Что касается информации о доставке, то Вам надо скорее информацию разместить в разделе доставка. Или же править шаблон с выводом нужной Вам страницы. Но честно, я не совсем понимаю зачем Вам выводить информацию от...до на моменте уже оформления заказа. Мне кажется это надо делать до. Просто доставка вся там считается автоматически.

1,944

(11 ответов, оставленных в Вопросы по работе с системой)

Сделал модуль для интеграции, чтобы ничего не делать.
E-commerce модуль

1,945

(18 ответов, оставленных в Вопросы по работе с системой)

Sergey T. пишет:

А как округлить цену и результат? Вот, например товар http://luchski.ru/product/bryuki-razmin … -ws-10298/

{$delta=($oldcost-$cost)} - вот такой формулой я могу посчитать разницу
{$delta=round($oldcost-$cost)} - вот так я могу ее округлить, но если я делаю так, то округляется разница, а результат нет.

Если рассматривать товар, предложенный выше как сделать, чтобы итоговая сумма была не 2379,30 а 2380 ?

Дайте полный код, который делаете с выводом цены.

1,946

(1 ответов, оставленных в Вопросы по работе с системой)

Вы в облаке у нас или на отдельном хостинге? У нас можно сделать на отдельном хостинге 2 сайта в рамках мультисайтовости.
http://readyscript.ru/manual/multisite.html

1,947

(1 ответов, оставленных в Вопросы по работе с системой)

Результаты поиска генерирует jquery autocomlete, который в ответ на запрос получает варианты ответа. У Вас он находится в файле theme.js. Что то типо:

/**
    * Автозаполнение в строке поиска
    */
    $( ".searchLine .query.autocomplete" ).each(function() {
        $(this).autocomplete({
            source: $(this).data('sourceUrl'),
            appendTo: '#queryBox',
            minLength: 3,
            select: function( event, ui ) {
                location.href=ui.item.url;
                return false;
            },
            messages: {
                noResults: '',
                results: function() {}
            }
        }).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
            ul.addClass('searchItems');
            var img = $('<img />').attr('src', item.image).css('visibility', 'hidden').load(function() {
                $(this).css('visibility', 'visible');
            });
            
            return $( "<li />" )
            .append($('<div class="image" />').append(img))
            .append( '<a><span class="label">' + item.label + 
                     '</span><span class="barcode">' + item.barcode + '</span><span class="price">' + item.price + '</span> </a>' )
            .appendTo( ul );
        };
    });  

Добавление элемента происходит на

.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
            ul.addClass('searchItems');
            var img = $('<img />').attr('src', item.image).css('visibility', 'hidden').load(function() {
                $(this).css('visibility', 'visible');
            });
            
            return $( "<li />" )
            .append($('<div class="image" />').append(img))
            .append( '<a><span class="label">' + item.label + 
                     '</span><span class="barcode">' + item.barcode + '</span><span class="price">' + item.price + '</span> </a>' )
            .appendTo( ul );
        };

Судя из документации к плагину  http://api.jqueryui.com/autocomplete/#m … renderMenu Вам нужно ещё использовать _renderMenu.
Т.к. оно рендерит все готовое меню. В нём можно добавить ещё одну <li> со ссылкой на поиск.
Ссылка в вашем случае будет /catalog/?query=Вашпоисковый запрос

Запрос можно взять из значения поля строки поиска.

Ну это у же новостной движок получается какой-то:) Нет в  стандарте такого нет. Надо делать.

1,949

(8 ответов, оставленных в Вопросы по работе с системой)

Это было просто Вам для примера smile

1,950

(1 ответов, оставленных в Вопросы по работе с системой)

Модуль теги "качует" ещё с ReadyScript 1.0. В системе он нигде не фигурирует, кроме статей. Поэтому и в документации про него ничего нет. Это достаточно редкая по надобности возможность. Но идею я Вашу понял. То что вы хотите, Вы можете на данный момент реализовать внешним модулем, расширив объект товара и реализовав функционал как у статей. За всё вреся нам только 1 раз понадобилась такая процедура. Но Ваша тема вполне логична.

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

Поэтому Вы можете на текущий момент заказать нам такую возможно, либо реализовать теги самостоятельно. Но там надо Вам будет поразбираться.