1,801

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

Вы хотите сделать перенос из другой системы на другой платформе?

1,802

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

Во первых, я плагина masked input не обязательно указывать id. Нужно лишь привязать его к нужному элементу, выбрав при помощи jquery. Лучше всего просто вписать код в конце шаблона с формой.

<script type="text/javascript">
$("селектор нужного поля").inputmask("+7(999)999-99-99");
Например для поля с аттрибутом name="user_phone"
$('[name="user_phone"]').inputmask("+7(999)999-99-99");
</script>

1,803

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

Директива Allow

Выкладывайте тему в маркет smile

1,805

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

Причина запрета в
Disallow: *?*
Т.е.:
Запретить: ВСЁЧТОДОЗНАКА?ИВСЁЧТОПОСЛЕНЕГО

Спасибо за подсказку

1,807

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

Ну тогда уже GIT Tourtoise ставим, всё подсвечивает smile

1,808

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

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

Интеграция идет с любой системой, поддерживающей commerce ML2 (мой склад, 1С 8 и другие). В 1с 7.7 выгрузки из коробки в данном формате нет. Но возможно найти дополнения.
Можно написать со стороны 1с выгрузку csv файлика с данными, а со стороны RS загрузку. И загрузку заказов из RS.
Был опыт реализации подобного для 2 магазинов.

Классно было бы, если бы Вы выложили плагин в наш магазин дополнений

1,809

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

А лучше всё таки перейти на 8ку, чтобы всё было в норме. Правда если у Вас много доделок, то это проблематично.

1,810

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

Да, папки, а не шаблона самого. Для сравнения двух файлов можете использовать quickdiff.com

1,811

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

Ну если Вы внимательно читали документацию, то Вам в этом методе приходит массив в параметре. Где в этом массиве есть ключ orm, который хранит объект ORM для которого Вы вызываете событие.
Например:

/**
* Событие перед записью объекта в данном случае заказа в БД
*
* @param array $data - массив данных
*/
public static function ormBeforeWriteShopOrder($data)
{
     /**
     * @var \Shop\Model\Orm\Order
     */
     $order = $data['orm']; //Получаем объект заказа

     if (isset($_POST['mystock'])){ //Если нужное поле пришло из запроса
          $order['mystock'] = \RS\Http\Request::commonInstance()->request('mystock', TYPE_STRING); //Присваеваем из поста значение с экранированием.
     }
     
}

Запись произойдёт т.к. модифицировать объект объявленного класса можно редактировать из любого места (В соответствии с правилами PHP).

1,812

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

Вы в шаблонах можете делать всё что угодно. Шаблон там одинаковый на этих редакциях.

1,813

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

Илья пишет:

Не могли бы на счет echo $_POST['total_stock'];подробнее подсказать?
Данный хук у меня уже используется, что бы вычитать из поля итого.

Что конкретно у Вас не получается?

1,814

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

ах да, забыл.
Ещё момент. Подмените common.js из оригинальной темы. Т.е. у себя его полностью замените.

1,815

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

Нет. Просто нужно скопировать себе обновлённый шаблон корзины. Для Вашей темы(детская) это:
/templates/young/moduleview/shop/cartpage.tpl
Соответственно копируем его себе по тому же пути только для Вашей темы.

1,816

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

1. Что бы данные передавались в базу, пришлось добавить в файл orderctrl.inc.php после , 'user_phone'  добавил , 'mystock'. Можно ли как то без этого обойтись?

Поле user_phone надо поменять, т.е. оно уже зарезервировано.
Можно подвесится на событие перед записью объекта заказа, и из POST вытащить значения Ваших полей, чтобы их записать.
Для этого нужен хук orm.beforewrite.КОРОТКОЕ_ИМЯ_ORM_ОБЪЕКТА
А именно:
orm.beforewrite.shop-order
http://readyscript.ru/dev-manual/dev_ho … hooks_list
И в этой функции произвести нужные действия.

2. Как сделать что бы в конце суммы добавлялось .руб и что бы выводилось 1 999, а не 1999

Просто в шаблоне написать руб.

и что бы выводилось 1 999, а не 1999

Есть модификатор format_price. Например если есть переменная $price, то вывод будет такой:

{$price|format_price}

Само видео находится здесь:
https://www.youtube.com/watch?v=AeOKRd5 … L4X2UTC6Aw
или смотрите у нас в видеоуроках.

Видео посвящено добавлению дополнительных полей в конфиге, создаваемого Вами модуля. Также показывается как записывать и извлекать данные из настроек.
Само видео находится здесь:
https://www.youtube.com/watch?v=5qZq8lf … L4X2UTC6Aw
или в видеоуроках на нашем сайте.

1,819

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

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

{assign var=shop_config value=ConfigLoader::byModule('shop')}

И далее просто выводить значения полей в инпуты.
Сам шаблон Вы естественно можете перегрузить в своей теме оформления.
Что касается обработки полей, то я думаю Вам нужен хук:
controller.afterexec.КОРОТКОЕ_ИМЯ_КОНТРОЛЛЕРА из таблицы http://readyscript.ru/dev-manual/dev_ho … hooks_list
Где можно из POST вытащить Ваши поля и сохранить у конфига.
Ну например:

$config = \RS\Config\Loader::byModule('shop');
$config['нужное мне поле'] = \RS\Http\Request::commonInstance()->request('ПОЛЕ', TYPE_STRING);
$config->update();

Т.е. объект конфига, тоже ORM объект, то у него доступны методы update и insert как и у всех

1,820

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

Ну вы же их в при правке записи в SEOControl указываете. Заголовок, описание и т.д.
Просто SEOContol с внутренней системой никак не свзязан, он просто применяет теги с наивысшим приоритетом, перекрывая установленные ранее.

1,821

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

Спасибо Вам Андрей за подсказки.

1,822

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

Дело всё в том, что заказ это практически единственный ORM объект, который обладает своим уникальным шаблоном для редактирования в виду жёсткой специфики. И там жестко прописан вывод полей в самом шаблоне.
Т.е. если подменить шаблон на свой в своей теме оформления, то можно вывести Ваше поле.

Сам шаблон находится здесь:
/modules/shop/view/orderview.tpl
Его можно подменить для своей темы скопировав в :
/templates/Ваша тема/moduleview/shop/orderview.tpl

Скидка: <span class="summary">{$order_data.mystock}</span>

Ну всё правильно. Если вы сделаете var_dump($order_data), то увидите, что это объект не \Shop\Model\Orm\Order, который Вы расширяете, а \Shop\Model\Orm\OrderItem. Это разные вещи. У вас объект заказа в Вашем шаблоне находится в переменной $order

1,823

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

А Вы хотите откуда их редактировать? Из заказа?

1,824

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

Переменная всегда Вам доступна, модуль её не заменяет, он просто либо подставляет эту переменную либо нет.
Вот что внутри:

$api = new \SeoControl\Model\Api();
$rule = $api->getRuleForUri(\RS\Http\Request::commonInstance()->server('REQUEST_URI'));
if ($rule){
     return $rule['h1'];
}
        
return $this->getParam('default');

Где default это, то что передали в параметр default. Если ничего не передали, то .

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

Например:

<h1>
{$seocontent={moduleinsert name="\SeoControl\Controller\Block\SeoH1"}}
{if $seocontent}
     {$category.name} {$seocontent}
{else}
     {$category.name} 
{/if}
</h1>

1,825

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

Если бы в ReadyScript был какой-нибудь файловый менеджер, то и вопроса бы такого не было.

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

А вы каждый раз с новым названием прайс генерируете? Не проще ли с один и тем же названием перезаливать файл.