Станислав
С нами с 11 апреля 2015; Место в рейтинге пользователей: #632Ошибка PHP warning: array_flip() expects parameter
Полный текст ошибки:
(ERROR @ [....]/core/cache/includes/elements/modsnippet/46.include.cache.php : 474) PHP warning: array_flip() expects parameter 1 to be array, null given
Код, на который ругается система:Выборка товаров по бренду
Нужно сделать выборку товаров, у которых задан определенный производитель. SQL запрос:
В phpMyAdmin запрос обрабатывается корректно. Вызываю методами xPDO в консоли. Возвращает пустой массив 'result'. Подскажите, в чем ошибка?
SELECT msProducts.id
FROM modx_ms2_products as msProducts
LEFT JOIN modx_ms2_vendors as msVendors
ON msVendors.name=msProducts.vendor
WHERE msVendors.name='4M'
В phpMyAdmin запрос обрабатывается корректно. Вызываю методами xPDO в консоли. Возвращает пустой массив 'result'. Подскажите, в чем ошибка?
<?php
$q = $modx->newQuery('msProduct');
$q->leftJoin('msVendor','msVendor','msProduct.vendor = msVendor.name');
$q->where(array('msVendor.name' => 'Adidas'));
$q->select(array('msProduct.id'));
$result = array();
if ($q->prepare() && $q->stmt->execute()) {
while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
$result[$row[product_id]] = $row[vendor];
}
}
echo "<pre>";print_r ($result);echo "</pre>";
Вывод алфавитного списка брендов.
Собственно, имеется родитель «Бренды» с ресурсами брендами. Задача: вывести списки названий ресурсов, разделенных буквенными заголовками (по алфавиту). Написал сниппет. Однако в результате вижу вопросики вместо кириллицы.
Кто нибудь может посоветовать, как состыковать кодировки для нормального отображения русских букв. Код сниппета:
Кто нибудь может посоветовать, как состыковать кодировки для нормального отображения русских букв. Код сниппета:
<?php
$objects = $modx->getCollection('modResource',array('parent'=>$parents,'published'=>1));
$brends=array();
foreach($objects as $object) {
$brends[] = $object->get('pagetitle');
}
sort($brends);
reset($brends);
$words = array();
$i=0;
foreach ($brends as $id=>$brend) {
if ($id == 0) {
$words[0] = substr($brend, 0, 1); $i++;
} else {
if( $words[$i-1] !== substr($brend, 0, 1)) {
$words[$i] = substr($brend, 0, 1);
$i++;
}
}
}
$result = "<ul>";
foreach ($words as $word) {
$result.= "<li><h3>" . $word . "</h3></li>";
foreach ($objects as $object) {
if($word == substr($object->get('pagetitle'), 0, 1)) {
$result.= "<li><a href='/" . $object->get('uri') . "'>" . $object->get('pagetitle') . "</a></li>";
}
}
}
echo $result;
Проблема начинается с массива $words. Вызов print_r ($words);
вовращает:Array ( [0] => A [1] => B [2] => C [3] => D [4] => E [5] => F [6] => G [7] => H [8] => I [9] => J [10] => K [11] => L [12] => M [13] => N [14] => P [15] => R [16] => S [17] => T [18] => W [19] => Y [20] => Z [21] => i [22] => � )
Опция товара minishop - длина*ширина*высота
Уважаемые разработчики. Потребовался параметр товара minishop — размер упаковки. Нужно задавать 3 значения: длина*ширина*высота. Создал дополнительную опцию товара minishop2 по типу штатного «color» (назвал 'pack_size'), руководствуясь данным мануалом: winrecovery.ru/ms2plugin.html.
SQL тип данных: text
php тип: json
extended js type: minishop2-combo-options'
Столкнулся с проблемой. Задавать одинаковые значения нельзя. А ведь часто бывают квадратные упаковки.
Кто разбирается, подскажите, какие типы задавать для этого поля, чтобы можно было вбить 3 любых значения в формате JSON.
Благодарю.
SQL тип данных: text
php тип: json
extended js type: minishop2-combo-options'
Столкнулся с проблемой. Задавать одинаковые значения нельзя. А ведь часто бывают квадратные упаковки.
Кто разбирается, подскажите, какие типы задавать для этого поля, чтобы можно было вбить 3 любых значения в формате JSON.
Благодарю.
Добавление и удаление товаров из групп ресурсов.
Доброго времени. После приобретения компонента msDiscount, обнаружил, что нет возможности добавлять целые категории в акции. msDiscount позволяет добавлять в акции группы ресурсов. В итоге набросал плагин для добавления товаров в группы ресурсов при сохранении/публикации.
Это работает. Но нужно еще сделать обратное — удалять из группы ресурсов товар при отключении или удалении. Не могу победить, пока это не работает:
<?php
if ($modx->event->name != "OnDocFormSave" || $resource->get('template') != 7) {return;}
$category = $modx->getObject('modResource',$resource->get('parent'));
$catGroup = $modx->getObject('modResource',$category->get('parent'));
// у группы ресурсов будет такое же имя как и у родителя товара (pagetitle)
$name = $category->get('pagetitle').'-'.$catGroup->get('pagetitle');
// проверяем, сущетвует ли группа ресурсов с таким именем, если нет, то создаем ее
$group = $modx->getObject('modResourceGroup', array('name' => $name));
if (empty($group)) {
$group = $modx->newObject('modResourceGroup', array('name' => $name));
$group->save();
}
// записываем в группу элемент-ресурс.
if (!$resource->isMember($group->get('id'))) {
$resource->joinGroup($group->get('id'));
}
return;
Имя группы ресурсов выглядит так: [имя родителя] — [имя родителя-родителя].Это работает. Но нужно еще сделать обратное — удалять из группы ресурсов товар при отключении или удалении. Не могу победить, пока это не работает:
<?php
if ($resource->get('template') != 7) return;
$modx->log(1, print_r( 'OnDocUnPublished', 1 ));
$msDiscount = $modx->getService('msDiscount');
$groups = $msDiscount->getProductGroups($resource->get('id'));
if($groups) {
foreach (array_keys($groups) as $group) {
if ($resource->isMember($group) ) {
$resource->leaveGroup($group);
}
}
} $resource->save();
return;
Подскажите где ошибка? И правильно ли выбрано событие: OnDocUnPublished? Выбор пунктов самовывоза в корзине.
10 10 000
Приветствую! Кто возьмется разработать на заказ компонент для сайта Limpopo.club? Нужно организовать выбор Пунктов самовывоза заказов в нескольких городах для minishop2. Типа как у Ozon.ru.
Задача такая:
Backend:
===========
Требуемые таблицы БД:
— список городов;
— список ПВЗ для каждого города (в городе может быть несколько ПВЗ);
— для каждого ПВЗ должны иметься поля: id, название (адрес точки), название логистической компании;
— cписок логистических компаний.
В админке возможность создавать города, для каждого города в отдельном окне создавать список точек ПВЗ.
Реализовать как спопособ доставки для minishop с соответствующим классом — обработчиком.
Frontend:
===========
Как это прмерно должно выглядеть. В корзине при выборе способа доставки «Доставка до ПВЗ» справа появляется select со списком городов, после выбора города ниже повляется (или становится актвным) другой select со списком ПВЗ.
С радостью рассмотрю предложения и замечания к ТЗ.
Задача такая:
Backend:
===========
Требуемые таблицы БД:
— список городов;
— список ПВЗ для каждого города (в городе может быть несколько ПВЗ);
— для каждого ПВЗ должны иметься поля: id, название (адрес точки), название логистической компании;
— cписок логистических компаний.
В админке возможность создавать города, для каждого города в отдельном окне создавать список точек ПВЗ.
Реализовать как спопособ доставки для minishop с соответствующим классом — обработчиком.
Frontend:
===========
Как это прмерно должно выглядеть. В корзине при выборе способа доставки «Доставка до ПВЗ» справа появляется select со списком городов, после выбора города ниже повляется (или становится актвным) другой select со списком ПВЗ.
С радостью рассмотрю предложения и замечания к ТЗ.
Вывод параметра msoption в превью товара
Подскажите, как можно реализовать вывод размеров товара в превью товара. Вот здесь пример: www.childrensalon.com/girl?order=new.
Далее вытекает второй вопрос: как можно вывести значение параметра minishop (size в нашем случае, тип msoption) в виде простого списка?
Далее вытекает второй вопрос: как можно вывести значение параметра minishop (size в нашем случае, тип msoption) в виде простого списка?
Скидка незарегистрированному покупателю.
Доброго времени. Как назначить скидку конкретному юзеру, который еще не зарегистрировался, но заказ оформлял? В msDiscount для назначения скидки указывается конкретная группа пользователей. Анонимы, сделавшие заказ в minishop2, запоминаются в какой то таблице. Как бы записать пользователей из этой таблицы в группу Modx?