Лучший Ответ SmetDenis , 24 April 2014 - 15:35
Сделал следующие изменения в файле jbevent.item.php
Перейти к сообщениюЛучший Ответ SmetDenis , 24 April 2014 - 15:35
Сделал следующие изменения в файле jbevent.item.php
Перейти к сообщениюОтправлено 18 April 2014 - 10:18
Доброго времени суток. Небольшая предыстория.
Мне необходимо реализовать проверку статуса заказа.
Решил сделать поиск по номеру заказа, он же ID.
ID перехватываю. как описано тут http://forum.jbzoo.c...?hl=поиск по id
Все норм сохраняется.
Сделал модуль JBZooSearch с поиском по ID но заказы не отображаются для Гостей.
Ссылка http://bike.keramaplaza.com/
Мне кажется это проблема в уровне доступа для элемента с типом "Заказ" (Картинка в приложении).
Внимание, вопрос!
Как изменить этот уровень доступа, чтобы гости могли видеть заказы через поиск по ID.
Искал в настройках, результат отрицательный.
Буду признателен за помощь.
Отправлено 18 April 2014 - 10:32
Вопрос в тот же топик.
Как сделать, чтобы при создании нового заказа пользователем с front-end, по умолчанию ставилось значение "Для поиска" - "Да"?
Отправлено 19 April 2014 - 04:06
При создании заказа указывается автор (если покупатель авторизован) и доступ насильно, для безопасности заказаов.
Это происходит тут media\zoo\applications\jbuniversal\framework\controllers\basket.php
Там можно поставить "0"
Как сделать, чтобы при создании нового заказа пользователем с front-end, по умолчанию ставилось значение "Для поиска" - "Да"?
Там же указать searchable = 1
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 19 April 2014 - 12:03
Да, помогло, только поставил
$item->access = 1;
С поиском тоже все отлично.
Один момент только остался...Не могу в синтаксисе разобраться.
В заказе есть элемент select - Состояние заказа. Нужно, чтоб при таком сохранении, по умолчанию значение выставлялось.
Настройку "По умолчанию" сделал в самом Типе "Заказ", но она не срабатывает при таком создании заказа.
Как правильно строчку написать?
Я добавил этот код туда же, перед return $item;
Отправлено 20 April 2014 - 07:30
Статус заказа по умолчанию указывается тут
media\zoo\applications\jbuniversal\elements\jbbasketitems\jbbasketitems.php
Список возможных статусов формируется тут _getStatusList()
Чтобы добавить свой код в сохранение вам лучше изменить функцию bindData() перед "parent::bindData($saveData);"
Статус заказа находится в переменной $saveData['order_info']['status']
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 20 April 2014 - 08:41
Извините, некорректно выразил суть проблемы. Select "статус заказа" - это мой пользовательский, точнее называется "состояние".
И мне нужно при создание заказа с front-end пользователем с правами доступа "гость", присвоить этому пользовательскому полю типа select с ID e49afd62-7370-4dc2-b37f-cd1e6480f908 опцию name "в обработке" c value "na-rassmotrenii".
Т.е. как мы тут http://forum.jbzoo.c...?hl=поиск по id сохраняли ID в дополнительное пользовательское поле, мне также надо дополнительному пользовательскому select присвоить определенное значение.
Уверен, решается проблема одной строчкой кода, но никак не могу с синтаксисом совладать. Приходится Вас отвлекать, но очень помощь нужна. Вы уж не ругайтесь
Отправлено 20 April 2014 - 17:58
Теперь кажется понял, попробуйте сделать так
if ($item->getElement('<ELEMENT_ID>')) { $item->getElement('<ELEMENT_ID>')->bindData(array( array('option' => array('na-rassmotrenii')) )); }
Отличие в том что ключ называется option а дополнительный массив, т.к элемент может быть множественным.
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 20 April 2014 - 21:06
Теперь кажется понял, попробуйте сделать так
if ($item->getElement('<ELEMENT_ID>')) { $item->getElement('<ELEMENT_ID>')->bindData(array( array('option' => array('na-rassmotrenii')) )); }Отличие в том что ключ называется option а дополнительный массив, т.к элемент может быть множественным.
К сожалению не помогло.
Вставлял код в оба файла, результат отрицательный. ID сохраняется в пользовательское поле типа text, а селект не хочет.
Может как-то нужно указать признак "выбранности" конкретной опции из селекта, что-то вроде "selected"=selected?
Листинг функции _createEmptyItem() файла /media/zoo/applications/jbuniversal/framework/controllers/basket.php
protected function _createEmptyItem($type, $application = null) { if (!$application) { $application = $this->application; } // get item $item = $this->app->object->create('Item'); $item->application_id = $application->id; $item->type = $type->id; $item->publish_up = $this->app->date->create()->toSQL(); $item->publish_down = $this->app->database->getNullDate(); $item->access = 1; // Joomla ViewLevel (Registered) $item->created = $this->app->date->create()->toSQL(); $item->created_by = JFactory::getUser()->get('id'); $item->created_by_alias = ''; $item->state = 0; $item->searchable = 1; $item->getParams() ->set('config.enable_comments', 1) ->set('config.primary_category', 0) ->set('metadata.robots', 'noindex, nofollow'); //Выставляем опцию состояние заказа if ($item->getElement('e49afd62-7370-4dc2-b37f-cd1e6480f908')) { $item->getElement('e49afd62-7370-4dc2-b37f-cd1e6480f908')->bindData(array( array('option' => array('na-rassmotrenii')) )); } // return $item; }
Листинг функции saved() файла /media/zoo/applications/jbuniversal/framework/events/jbevent.item.php
public static function saved($event) { // vars $app = self::app(); $item = $event->getSubject(); $itemType = $item->getType()->id; // hack for JBZoo import optimization if ($item->getParams()->get('jbzoo.no_index', 0) == 1) { return null; } ///////////////// код для копирования ID в нужное поле /////////////////////////// $item = $event->getSubject(); // получаем объект сохраняемого материала // чтобы не было бесконечного цикла (должно выполнятся всегда, иначе будут проблемы с импортом) $item->getParams()->set('jbzoo.no_index', 1); // для обычного поля text (а также проверка существования элемента) if ($item->getElement('35802a2e-42e0-4db3-8bd3-79af933c9cfc')) { $item->getElement('35802a2e-42e0-4db3-8bd3-79af933c9cfc')->bindData(array( array('value' => $item->id) )); // сохраняем изменения // self::app()->table->item->save($item); } ///////////////// конец вставки для копирования ID в нужное поле /////////////////////////// //Выставляем опцию состояние заказа if ($item->getElement('e49afd62-7370-4dc2-b37f-cd1e6480f908')) { $item->getElement('e49afd62-7370-4dc2-b37f-cd1e6480f908')->bindData(array( array('option' => array('na-rassmotrenii')) )); self::app()->table->item->save($item); } // // update index data $app->jbtables->checkSku(true); $indexTableName = $app->jbtables->getIndexTable($itemType); if ($app->jbtables->isTableExists($indexTableName, true)) { JBModelSearchindex::model()->updateByItem($item); } }
Подскажите, пожалуйста, где допустил ошибку?
Отправлено 23 April 2014 - 16:18
Работать должно.
Ваш сайт в интернете?
Можете дать мне временный ftp доступ? я попробую найти ошибку и исправить.
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 23 April 2014 - 17:23
Да, в личку Вам отправляю данные.
Вопрос решен
Основной форум JBZoo →
Корзина, цены и форма заказа →
Balance и заказыАвтор Кристина , 16 Oct 2017 balance, заказы 00 |
|
|
||
Вопрос решен
Основной форум JBZoo →
Корзина, цены и форма заказа →
Вывод списка заказовАвтор tiptopvkr , 28 Apr 2017 community builder, заказы и 2 еще... 00 |
|
|
||
Основной форум JBZoo →
Корзина, цены и форма заказа →
Работа со списком заказов для продавцаАвтор Mirotvoretz , 02 Feb 2017 заказы, менеджер 00 |
|
|
||
Основной форум JBZoo →
Организация каталога и внешний вид →
ограничение доступа к товару по пользователямАвтор kadet , 21 Jul 2016 доступ, граничение 00 |
|
|
||
|
Вопрос решен
Основной форум JBZoo →
Разное →
Права доступа поломалисьАвтор Владимир , 26 Apr 2016 acl, права, доступ 00 |
|
|