1,726

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

Всё верно. Ведь парядок имеет значение. Вы сначала разрешаете, а потом всё запрещаете.

1,727

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

Что такое нормальный урл? Разве /text-novii-material/ не нормальный урл? Или поисковик его не поймёт? Или есть штрафные санкции к text- ? smile
Я думаю, что для поисковой машины это семечки и плевать ей на text-.

1,728

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

У нас упор на функционал магазинов. Это же не движок блога.
Что бы Вы хотели бы видеть?

1,729

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

В системе используются маршруты (маски адресов). Новости открываются по маске. /text-aliasраздела/ . Вы можете только alias раздела менять, просто указав при редактировании категории псевдоним. Если псевдоним не указывать, то действительно будет /text-1/ и т.д.

Что касается блок контроллера, то можно просто его отклонировать в свой модуль и потом подключить, просто указав свой блок контроллер, его кстати можно отнаследовать от стандартного блок контроллера, чтобы просто добавить потом одно поле.
С остальными моментами сложнее, т.к. нужно, в контроллере списка товаров listproducts.inc.php обрабатывать приём параметра фильтра из запроса подготовленного блок контроллером.
Но здесь можно воспользоваться хуком controller.beforeexec.catalog-front-product (controller.beforeexec.КОРОТКОЕ_ИМЯ_КОНТРОЛЛЕРА).
О хукам можно почитать здесь:
http://readyscript.ru/dev-manual/dev_ho … hooks_list

В результате чего у нас должна появится публичная статическая функция

public static function [b]controllerBeforeExecCatalogFrontProduct($data)[/b]
{
      $controller = $data['controller'];//Объект фронт контроллера listproducts
      $action = $data['action'];//Метод класса который отрабатывает страницу. Надо проверить на index
      
      //Приём параметра из запроса
      $param = \RS\Http\Request::commonInstance()->request('Наш параметр из $_REQUEST который нужно принять', TYPE_STRING); 

      //Получаем объект запроса из апи товаров, т.к. в контроллере listproduct параметр $api публичный
      $q = $controller->api->queryObj(); 
      //Дальше запрос который Вам нужне и нужные действия
}

Т.к. у нас есть публичная переменная класса $api и первым всегда отрабатывает функция init в контроллере listproducts, то в $this->api будет объект АПИ для запросов, мы его из вне дополним.
Видео по запросам, можно посмотреть у нас в разделе видеоуроки

1,731

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

Во первых, я плагина 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,732

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

Директива Allow

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

1,734

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

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

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

1,736

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

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

1,737

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

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

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

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

1,738

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

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

1,739

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

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

1,740

(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,741

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

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

1,742

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

Илья пишет:

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

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

1,743

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

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

1,744

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

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

1,745

(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,748

(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,749

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

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

1,750

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

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