Станислав

Станислав

С нами с 11 апреля 2015; Место в рейтинге пользователей: #632
Станислав
03 октября 2017, 17:00
+1
Давно пора добавить в документацию инструкцию по расширению таблицы заказов. Лично мне потребовалось вывести столбец с emails покупателей.
Станислав
24 января 2016, 13:30
0
Вопрос решен. Неправильно соблюден синтаксис в условии:
if ($resource->isMember($group) )

Метод isMember() принимает только имя группы в кач-ве параметра: rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/class-reference/

Так правильно:
$selGroup = $modx->getObject('modResourceGroup',array('id'=>$group));
if ($resource->isMember($selGroup->get('name') ) ) {
    ...
}
Станислав
17 января 2016, 21:57
0
Случай вернул меня обратно к этому плагину. Захотелось довести его до ума. Повесил его на событие «OnDocFormDelete». По идее товар должен удаляться из группы ресурсов, в которую он попал при создании.
Однако, после «удаления» товара minishop, ничего не происходит.
В логах записывается такая строчка:
(ERROR @ /assets/components/minishop2/connector.php) OnDocFormDelete
Можно ли ее считать ошибкой?

Те ли события я использую для плагина? Какие имена событий привязаны к таким операциям с ресурсами minishop2 как: отключить/включить, удалить/восстановить? Да, и как удалить товар окончательно из БД через админку? Он по прежнему висит в таблице товаров.

Код плагина:
<?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;
Станислав
09 января 2016, 20:51
0
Проблема решилась деинсталляцией и установкой более свежей версии.
Станислав
09 января 2016, 20:18
0
В том и дело, что покупал компонент не я, поэтому обращаться в техподдержу нет основания. Суть в том, что процедура
$mSearch2->aliases
возвращает пустое значение. На странице с фильтром выводит и такие предупреждения:
Notice: Undefined property: mSearch2::$aliases in /.../core/cache/includes/elements/modsnippet/46.include.cache.php on line 352
Notice: Undefined property: mSearch2::$aliases in /.../core/cache/includes/elements/modsnippet/46.include.cache.php on line 479
Станислав
28 ноября 2015, 12:08
0
Отбой. Забыл Adidas убрать. Спасибо, Володя!
Станислав
28 ноября 2015, 11:59
0
Все равно пустой массив ):
<?php
$q = $modx->newQuery('msProduct');
$q->leftJoin('msProductData','msProductData','msProduct.id = msProductData.id');
$q->leftJoin('msVendor','msVendor','msProductData.vendor = msVendor.id');
$q->where(array('msVendor.name' => 'Adidas'));
$q->select(array('msProduct.id as id'));

$result = array();
if ($q->prepare() && $q->stmt->execute()) {
	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		$result[] = $row[id];
	}
}
echo "<pre>";print_r ($result);echo "</pre>";
Станислав
25 ноября 2015, 20:31
0
Благодарю за нужное направление. Вначале mb_substr() проблему не решил. Среди причин подозревал версию php (данный глюк был описан здесь) и неподходящие настройки php.

Проблему решил, указав дополнительный параметр кодировки:
mb_substr($brend, 0, 1,'utf-8');
Станислав
13 ноября 2015, 14:39
0
Задача в том, чтобы в базе хранилась такая запись (например): {«100»,«30»,«100»}. Из такого формата потом удобно извлекать значения. Как вариант можно создать простое текстовое поле и записывать значения с разделителем: 100,30,100 или 100*30*100.

Потом извлекать так:

$sizes = explode("*", $pack_size, 3);
list ($lenght, $width, $height) = $sizes;
Но из JSON, мне кажется, это делать удобнее, да и формат универсальный:
$sizes = json_decode ($pack_size, true);
Станислав
07 ноября 2015, 19:14
0
Нужно создать сниппет примерно с таким кодом:
<?php
$output;
$colors = $resource->get('options');
foreach ($colors as $color) {
	$output. = $color . ", ";
}
return $output;
?>
И вызвать сниппет:
<td class="col2">[[!getColors]]</td>
Вообще есть сниппет для вывода опций товара msOptions. Например вывод поля с именем 'color':
[[!msOptions?name=`color` &tplOuter=`tpl.msOptions.outerMy`]]
Станислав
21 октября 2015, 19:27
1
0
То есть создаем группу ресурсов, отправляем туда ресурс-категорию, и при добавлении в акцию группы ресурсов, под нее попадают все товары категории? Если это так, то круто.
Станислав
06 октября 2015, 19:22
0
Как можно выводить эту информацию в письме менеджеру? Вероятно, есть какой-нибудь префикс для плейсхолдеров?
Станислав
01 октября 2015, 14:43
0
Где можно посмотреть все плейсхолдеры для «tplOrderAddressComment»?
Станислав
10 июля 2015, 20:37
0
Кстати, вывод параметров в превью с помощью msOptions жутко тормозит работу msFilter2.
Станислав
09 июля 2015, 08:25
0
Такого сниппета вообще нет. Это название mysql таблицы.
Станислав
08 июля 2015, 23:37
0
У меня замечательно все выводится. Не забудьте прописать в каждом вызове сниппета параметры:
&product=`[[+id]]` &name=`имя опции`
Возможно, ошибки возникают из за пустого значения поля. Тогда надо делать проверку:
[[!msOptions:toPlaceholder=`result`? &product=`[[+id]]` &name=`имя опции`]]
[[+result:isnot=``:then=`[[+result]] `]]
Станислав
07 июля 2015, 09:43
0
Для каждой следующей опции вызывать сниппет [[!msoptions]]
Станислав
06 июля 2015, 10:30
0
1. ТВ не получится добавить на страницу категории. Нужно расширять свойства товара. Чтобы добавить свои поля (параметры) товара, то вот здесь решение:
winrecovery.ru/ms2plugin.html или
bezumkin.ru/modx/minishop2/classes/910/
2. Там вроде в столбце pagetitle в скобочках Id показывается. А отдельно да, не показывается почему то.
Станислав
05 июля 2015, 10:14
+1
Все получилось, благодарю за наводку.
[[!msOptions? &product=`[[+id]]` &name=`size` &tplOuter=`@INLINE <table><tr><td>Размеры:</td></tr>[[+rows]]</table>` &tplRow=`@INLINE <tr><td>[[+value]]</td></tr>`]]