Вот решения для плагина.
http://stackoverflow.com/questions/5643 … -correctly

$(".autocomplete").autocomplete({
    ...
    open: function() {
        $("ul.ui-menu").width( Нужная ширина );
        ...
    }
    ...
});

1,577

(59 ответов, оставленных в Вопросы по разработке модулей и API системы)

К публичной части можно через getUrlPattern('catalog-front-product', array(':id' => '@entity_id'));
Аналог getAdminPattern соответственно.

1,578

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

Владимир пишет:

Скажите. На облачной версии RS я смогу разве добавить модуль и все файлы которые нужны?

К сожалению нет. Если Вы хотите дорабатывать систему, то только на своём хостинге это можно сделать. Вам доступны только модули из marketplace.

1,579

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

В одном из следующих релизов сделаем эту возможность.

1,580

(59 ответов, оставленных в Вопросы по разработке модулей и API системы)

Видите у Вас id пустой. В select вы добавили, чтобы entity_id доставался?

Чуть ниже у Вас в common.js есть

if (!noShowCartDialog) {
                    $.openDialog({
                        url: url,
                        data: params,
                        callback: initCart,
                        colorboxOptions: {
                            width: 940,
                            className: 'noBorder cartDialog'
                        },
                        bindSubmit: false
                    });
                } else {
                    $.post(url, params, function(response) {
                        try {
                            //Обновляем сведения в основном окне, если действие происходит во всплыв
ающем
                            window.opener.jQuery.cart('updateCartBlock', response);
                        } catch (e) {
                            $.cart('updateCartBlock', response);
                        }
                    }, 'json');
                }

Замените просто на:

                    $.post(url, params, function(response) {
                        try {
                            //Обновляем сведения в основном окне, если действие происходит во всплыв
ающем
                            window.opener.jQuery.cart('updateCartBlock', response);
                        } catch (e) {
                            $.cart('updateCartBlock', response);
                        }
                    }, 'json');

Чтобы только post запрос шёл

Попробуйте на всякий случай Ctrl+F5.
И куда нажимаете конкретно, на какую кнопку и какой она имеет вид в html?

1,583

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

Если Вам не срочно, то на дня выйдет моё очередное видео посвящённое, как раз этому хуку. Если не хотите ждать, то можно полистать документацию по хукам:
http://readyscript.ru/dev-manual/dev_hooks.html

И посмотреть канал начиная с первого видео где создаётся первый модуль.
https://www.youtube.com/watch?v=KoF2IyG … L4X2UTC6Aw

И пользуясь документацией сделать как надо.
Хук Вам нужен:
orm.beforewrite.catalog-product

Что у Вас получилось в результате?

1,585

(59 ответов, оставленных в Вопросы по разработке модулей и API системы)

Не может этого быть, т.к. это просто класс для ссылки. У вас ссылка какая получается?

1,586

(59 ответов, оставленных в Вопросы по разработке модулей и API системы)

Тогда уберите:

, 'LinkAttr' => array('class' => 'crud-edit')

1,587

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

Мы такой возможности массовой установки не предусматривали за ненадобностью. Но тут 2 варианта можно сделать.
Первый это выгрузка в CSV, автоматическое проставление в Excel артикулов и потом обратная загрузка товаров. (Однако т.к. артикулов нет, то нужно проверить настройки модуля Каталог товаров в части CSV опознания товаров. Там по умолчанию идёт по артикулу. Ато если не найдёт, то создаст копию товаров.)

Вторая это из дополнительного модуля подвеситься на beforeWrite(Действия перед записью объкта) товара и там проверить, если поле артикула пустое, то генерировать артикул. Например так:

$api                   = new \Catalog\Model\Api();
$this['barcode'] = $api->genereteBarcode();


где $this это объект, \Catalog\Model\Orm\Product, т.е. сам товар

P.S.
Однако, т.к. при импорте артикул записывается, то в настройках модуля обмена с 1С поставьте галочку не обновлять артикул.

Дмитрий пишет:
Закусило Александр пишет:

Тогда всё ещё проще. У ссылок на добавление в корзину, или у самой корзины нужно поставить класс noShowCart.

Да, это все стоит. Но на мобильном разрешении все равно перекидывает в корзину.

Тогда комментируем ещё

if ($.detectMedia && ($.detectMedia('mobile') || $.detectMedia('portrait')) ) return true;

1,589

(59 ответов, оставленных в Вопросы по разработке модулей и API системы)

Надо ещё в select получать A.entity_id.
Тогда:

new TableType\Text('title', t('Товар'), array('href' => $this->router->getAdminPattern('edit', array(':id' => '@entity_id'), 'catalog-ctrl' ), 'LinkAttr' => array('class' => 'crud-edit') )),

Тогда всё ещё проще. У ссылок на добавление в корзину, или у самой корзины нужно поставить класс noShowCart.

1,591

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

Шаг ширины блоков слишком большой, не нравится как выглядит конечный сайт. Хотелось бы более тонкую настройку системы разметки. Подумываю уже даже перейти на 24 колоночную.
Подскажите хотя бы куда смотреть? Может сам смогу разобраться.

Там очень много завязок, т.к. там же ещё CSS JS конструктора. Мы обсудим на днях, может добавим в общее. Но пока ещё не решили.  Подождите немного.

1,592

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

Официально Bootstrap 3 поддерживает только 12 колонок. Хотя впринципе это возможно, поэтому пишите пожелание.

1,593

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

Сейчас мы работаем только с 12 колоночным вариантом. Вы можете оставить пожелание у нас helpdesk.readyscript.ru, если Вам нужна поддержка 16 и 24 колоночной системы.
Почему кстати Вы выбрали 16 колоночный вариант?

Т.е. Вам всегда нужен физический переход в корзину?
Если да, то просто нужно сделать за место этой строки return true;, тогда всегда будет переход в корзину.

1,595

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

Дмитрий пишет:
Антон пишет:

весь код шаблона между if содержится.

Ну я ж написал что с if мне все ясно )) я про другое спрашивал. Ну да ладно, подключил уже через инклюид

Всё правильно

{if $dir.alias=='Мой алиас'}
   {include file="%THEME%/my.tpl"}
{else}
   {include file="%catalog%/my2.tpl"} 
{/if}

где %THEME% - короткий путь в папку с Вашей темой оформления. Например: /templates/ВАША ТЕМА/.
а %catalog% - это короткий путь к папке модуля каталога товаров в Вашей теме оформления. Например: /templates/ВАША ТЕМА/moduleview/catalog/.

Если в шаблон нужно передать переменную, то пишем:

   {include file="%catalog%/my2.tpl" list=$list} 

Тогда в шаблоне тоже появится переменная с именем $list.

Дело всё в том, что открывающееся окно может не поместиться в экран на мобильной версии, поэтому существует код функции $.detectMedia

if ($.detectMedia && ($.detectMedia('mobile') || $.detectMedia('portrait')) ) return true; //Не открываем окна в мобильной версии

Эта функция, которая физически находится в theme.js проверяет ширину экрана и переходит по ссылке если ширина меньше заданной.

Как вариант...
У оборачивающего контейнера нужно назначить position:relative;
У внутреннего блока, который будет расти position:absolute;left:0px;top:0px;
И соответственно большую нужную ширину.
Например можно подвеситна :focus в CSS.
http://htmlbook.ru/css/focus

А чтобы было с анимацей, нужно прочитать и поупражняться с transition http://html5book.ru/css3-transition/

1,598

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

Спасибо!

1,599

(59 ответов, оставленных в Вопросы по разработке модулей и API системы)

Ну естественно, Вы в файле API несколько раз переназначили с чем оно работает при вызове  parent::__construct(.
Правильный API должен содержать только один экземпляр объекта того с чем он работает.

<?php
namespace Newpage\Model;
/**
* Класс API
*/
class MyApi extends \RS\Module\AbstractModel\EntityList
{
    
    function __construct()
    {
        parent::__construct(new \Shop\Model\Orm\OrderItem, //С какой таблицей через ORM объект работать
        array(
            'multisite' => false, //Объект является не мультисайтовым (без поля site_id)
            //'defaultOrder' => 'id DESC' //Сортировка по умолчанию при выборке
        ));
    }

}

Этим самым мы объявили, что мы будем работать через API только с объектом \Shop\Model\Orm\OrderItem. А именно с таблицей order_items.

Теперь, что касается контроллера... Там в самом начале Вы уже объявили API с которым работает контроллер через присвоение АПИ контроллеру в конструкторе класса.

function __construct()
    {
         parent::__construct(new \Newpage\Model\MyApi()); //API с которым будет работать контроллер
    }

Но я думаю при переносе у Вас ничего не получилось, т.к. Вы написали запрос в ручную и скорее всего у Вас на удалёнке свой префикс к таблицам БД совсем другой. Я иногда проверяю сам запрос просто выполнив его, например на удалённом PHPMyAdmin, если он доступен. Чтобы не запоминать префиксы, правильно будет строить запросы ORM запросом, тогда всё будет учтено.
Я думаю, что правильный код контроллера должен быть такой:

namespace Newpage\Controller\Admin;
use \RS\Html\Table\Type as TableType,
    \RS\Html\Toolbar\Button as ToolbarButton,
    \RS\Html\Toolbar,
    \RS\Html\Tree,
    \RS\Html\Table,
    \RS\Html\Filter;


class MyCtrl extends \RS\Controller\Admin\Crud
{
        function __construct()
    {
         parent::__construct(new \Newpage\Model\MyApi());
    }
    
    function helperIndex()
    {
           
        
        $helper = parent::helperIndex();
        $q = $this->api->queryObj(); //Получаем объект запроса
        //Изменяем запрос под наши нужды
        $q->join(new \Newpage\Model\Orm\Mydiscount(), 'A.order_id=B.order_id', 'B') //JOIN к таблице с нужными сведениями
             ->join(new \Shop\Model\Orm\Discount(), 'B.discount_id=C.id', 'C'); //JOIN к таблице с скидками

        //Теперь, что выбирать
        $q->select = "A.order_id, A.title, B.discount_id, C.descr ";
            
        $helper = parent::helperIndex();
        $helper->setTopTitle(t('Товары со скидками'));
        $edit_pattern = $this->router->getAdminPattern('edit', array(':id' => '@id'));
        $helper->setTable(new Table\Element(array(
            'Columns' => array(         
                new TableType\String('order_id', '1'),
                new TableType\String('title', t('2')), 
                new TableType\String('discount_id', t('3')),
                new TableType\String('descr', t('14')),             
        ))));

        return $helper;
    }
    
}

1,600

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

Ну всё дело в том я так думаю, про то что я говорил, что нужно проверять на флажок приходящий из поста о том, что нужно генерировать пароль.
Вы можете свой код закомментировать и попробовать туже схему. Я думаю всё будет как надо. Т.е. Вам не хватает проверок на то, что именно сейчас делается с пользователем. Попробуйте завардампить объекты в Вашем коде и приходящий POST или GET запрос, чтобы проанализировать.