1,701

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

Андрей.
var_dump($_REQUEST['current_val']); что выдаёт? Если ничего, то выведите весь массив $_REQUEST и посмотрите что у Вас из запроса приходит.

1,702

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

Переустановка модуля здесь вообще не причём. А current_val у Вас вообще передаётся? Вы как проверяли? var_dump прерывает сохранение заказа?

1,703

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

Андрей пишет:

Александр
Да вот куда не вставлю var_dump ошибку выдает.
Вставил Ваш код, все равно не работает. Может какая то оошибка в шаблоне самом?

Какую?

1,704

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

Вот рабочий код:

function init()
    {
        $this
            ->bind('orm.beforewrite.shop-order');
    }
    
    /**
    * Действия перед записью в БД
    * 
    * @param array $data - массив с данными
    */
    public static function ormBeforewriteShopOrder($data) 
    {
        if (isset($_REQUEST['current_val'])){
  
            $config = \RS\Config\Loader::byModule('shop'); //Получам конфиг магазина
            $config['current_val'] = \RS\Http\Request::commonInstance()->request('current_val', TYPE_STRING, ""); //Записываем значение из поста
            $config->update(); //ЗДЕСЬ есть, т.к. сохраняется другой объект
        }
    }

1,705

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

Если я правильно понимаю, Вы добавили поле в заказе. Соответственно у Вас сохраняется объект заказа. Где находится ORM объект заказа в модуле shop? в /modules/shop/orm/order.inc.php
Соответственно, мы делаем хук на сохранение заказа, т.е. перед его сохранением, чтобы из поста записать значение. Т.е. делать нужно вот так:

function init()
    {
        $this
            ->bind('orm.beforewrite.shop-order');
    }
    
    /**
    * Действия перед записью в БД
    * 
    * @param array $data - массив с данными
    */
    public static function ormBeforewriteShopOrder($data) 
    {
        $config = \RS\Config\Loader::byModule('shop'); //Получам конфиг магазина
        $config['current_val'] = \RS\Http\Request::commonInstance()->request('current_val', TYPE_STRING, ""); //Записываем значение из поста
        $config->update(); //ЗДЕСЬ есть, т.к. сохраняется другой объект
    }

В $data['orm'] - здесь будет ORM объект заказа.

Пробуйте

P.S. Запишу видео скоро по beforewrite и afterwrite, чтобы вопросов не оставалось.

1,706

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

orm.beforewrite у Вас сработает в тех случаях если вызывался
insert() - запись объекта
или
update() - обновление объекта
Вы сами действия где производите? В каком разделе? я имею ввиду с полем Вашим.

1,707

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

Попробуйте вот для примера добавить var_dump и сохранить в Веб-сайт->Настройка модулей->Магазин сам конфиг.

1,708

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

как правильно вывести var_dump(а тут что?);

Всё, что угодно. Например var_dump($data['orm']);. Ваша задача просто понять, сработала у Вас функция перед записью объекта или нет. Для этого мы это пишем и если var_dump сработает, то когда будет сохранять конфиг у нас либо выведется это значение, либо запись прервётся и консоли браузера Вы сможете увидеть, что в запросе появился вывод var_dump. Это нужно в первую очередь для отладки.

Я попробовал хук orm.beforewrite.shop-config-file . Я меня всё сработало.
Этот хук вызывается перед записью ORM объекта в БД.
Зачем вы вызываете $config->update();? Вам нужно лишь установить Ваше значение.
$config->update(); - Вы опять вызовите запись в БД, т.к. этим вы говорите опять сохрани мне конфиг в БД. Т.е. зациклите сохранение до бесконечности.

Вот мой код:

function init()
    {
        $this
            ->bind('orm.beforewrite.shop-config-file');
    }
    
    /**
    * Действия перед записью в БД
    * 
    * @param array $data - массив с данными
    */
    public static function ormBeforewriteShopConfigFile($data) 
    {
        $config = $data['orm'];   
        $config = \RS\Config\Loader::byModule('shop');
        $config['current_val'] = \RS\Http\Request::commonInstance()->request('current_val', TYPE_STRING, ""); 
    }

1,709

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

В основном все ищут либо по цене, либо по названию. Но хитрые маркетологи придумали "импульсные продажи", т.е. тогда когда нужно продать определённый товар, они подсовывают на первую страницу определённые позиции. Тема не слишком востребованная, т.к. есть лидеры продаж, но тем не менее имеет место быть.

1,710

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

чтобы посмотреть срабатывает эта функция у Вас или нет.
Киньте код обоих попыток.
Кстати, первый хук немного не такой. Он же должен вести на контроллер в админ панели. Вы в каком контроллере данные сохраняете.
Просто если посмотрите в папку с контролерами админки, то там есть только orderctrl, а не order. Вы же понимаете как формируется хук?
controller.afterexec.ПАПКАМОДУЛЯ-ПАПКАКОНТРОЛЛЕРА(ADMIN)-ИМЯФАЙЛАКОНТРОЛЛЕРА.

А вот второй должен сработать. Надо сделать var_dump и посотреть прервётся ли сохранение.

1,711

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

Он совсем простой, поэтому я думаю, тоже что проже я javascript сделать. И всё будет мгновенно.

1,712

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

Ну прямая вставка php в шаблон запрещена, т.к. она depricated (тег php) в Smarty. Так в мире уже никто не делает, кроме пожалуй Битрикса где идёт нативное подключение HTML в перемешку с PHP. У вас там калькулятор АПИ или просто обыкновенный код?
Если там сложная логика, то я думаю лучше будет выделить это всё в отдельный файл апи и в дополнительном модуле через Ваш блок контроллер вызывать обращения к этому API, где будет происходить калькуляция. Вообщем опишите более детально, что нужно сделать.

1,713

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

А можно вообще наверное ещё проще использовать orm.beforewrite.shop-config-file, тогда это сразу в объекте сработает.

1,714

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

Ну Вы die или var_dump сделайте, чтобы понять срабатывает ли функция.
Я думаю дело в хуке
controller.afterexec.shop-admin-order
Пропустили видимо admin

1,715

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

if (isset($_POST['current_val'])){
        $order['current_val'] = \RS\Http\Request::commonInstance()->request('current_val', TYPE_STRING);
    }

Всё гораздо проще, функция принимает третий параметр. Это значение по умолчанию. Поэтому не нужно проверять через $_POST. А просто:

$order['current_val'] = \RS\Http\Request::commonInstance()->request('current_val', TYPE_STRING, false);

И далее уже проверять на не false
Или просто сделать значением пустую строку. Тогда ввоще ничего проверять не нужно.

1,716

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

Ну конечно будут задвоены.
Ведь МойСклад выгружает товары со своим уникальным идентификатором. И при импорте из МойСклад в RS проверяется именно этот уникальный идентификатор. У товаров заведённых в RS совершенно другой идентификатор у товара. И т.к. они не совпадают, то и получается задвоение. Нужно либо в RS вести товар, либо в МойСклад.
Возможности загружать в мой склад уже заведённые товары нет. МойСклад этого не поддерживает по стаандарту впрочем, как и 1С.

1,717

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

Sergey T. пишет:

Победил все-таки эту проблему. Нужно было добавить вот такую запись, чтобы разрешить конкретный раздел или страницу в конце robots.txt

Allow: */catalog/krossovki/?bfilter*

Теперь все работает так как задумано!

Дайте полный код

1,718

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

Связка простая. Товары заводятся в Мой Склад, далее выгружаются в ReadyScript, с заведёными свойствами и данными.
У Вас конкретно, какие проблемы?

1,719

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

1. В каких CMS есть данная функция в коробке, чтобы мы постморели?
2. Я могу скинуть Вам наработки по данной теме, чтобы облегчить задачу. Но там без .my.inc.php, не обойтись скорее всего Вам будет.

1,720

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

Юрий пишет:

спасибо, робит

Видео по СЕО здесь.
https://www.youtube.com/watch?v=-iDMbYo … mp;index=8

1,721

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

Дмитрий пишет:

На самом деле,  RS очень гибкая система и всегда можно найти выход. Если необходим полноценный блог, то лучше делать отдельным поддоменом, что сделано у многих крупных фирм.

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

Сортировка статей происходит по дате по убыванию. Вы можете там это сделать. И в админке отсортировать по полу размешено. Добавляется справа на шестирёнке.

Что касается товаров, то мы как-то на заказ делали такую вещь, но Вы себе даже не представляете масштаб этой задачи. Особенно в рамкам множественных категорий. За несколько лет с такой просьбой обратились пару человек. Остальным 99% пользователей такая задача не понадобилась. И она сильно усложняла логику и контроллеры. Поэтому в коробку это не вошло.

1,722

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

Юрий пишет:

Добрый день,
Изменения для данной страницы не сохраняются , в чем может быть проблема?
http://prntscr.com/bjimt1
для вот этой страницы http://deva7km.com/warehouse/sklad-na-7 … re-odessa/

Проблема в домене, адрес должен быть относительным, а не абсолютным
/warehouse/sklad-na-7-kilometre-odessa/

В следующем обновлении у складов появятся мета-теги напрямую.

1,723

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

А какого плана проверку хотите сделать?

1,724

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

Дмитрий пишет:

Что такое нормальный урл? Разве /text-novii-material/ не нормальный урл? Или поисковик его не поймёт? Или есть штрафные санкции к text- ?

Ну это просто какие то полумеры, хочется полный контроль и не хочется объясняться по поводу этого с клиентами.

А Вы им так и объясните, что это требование системы. ЧПУ будет строится от text- и на SEO не влияет. Это в "лохматых" годах делали такие url, что довало абсолютную неоднозначность, и замедлчло работу. Т.к. если сайт становился огромным, и все сведения хранились в одной таблице (какой url чему соответствует), то увеличивалось время на поиск в этой таблице, например если записей несколько миллионов. Маршруты, не общаются к БД, а сразу получают контроль и передают всё в контроллер. Для этого они и были придуманы. Это более современный подход. Хотя способы есть, но тут придётся покрутится. Например как делает Ярослав из предыдущего хоста, но по умолчанию всё именно так происходит.

1,725

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

как вариант, можно прописать конкретные запреты на "?" если это нужно. Например для главной страницы

/?*

и т.д.

Если Вам не нужно запрещать ?, то тогда можно удалить.