Лучший Ответ 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
Да, в личку Вам отправляю данные.
Balance и заказыАвтор Кристина , 16 Oct 2017
|
|
|
||
Вывод списка заказовАвтор tiptopvkr , 28 Apr 2017
|
|
|
||
Основной форум JBZoo →
Корзина, цены и форма заказа →
Работа со списком заказов для продавцаАвтор Mirotvoretz , 02 Feb 2017
|
|
|
||
Основной форум JBZoo →
Организация каталога и внешний вид →
ограничение доступа к товару по пользователямАвтор kadet , 21 Jul 2016
|
|
|
||
![]() |
Права доступа поломалисьАвтор Владимир , 26 Apr 2016
|
|
|