Алексей Шумаев

Алексей Шумаев

С нами с 30 ноября -0001; Место в рейтинге пользователей: #24
Алексей Шумаев
09 ноября 2016, 16:32
0
Разные. Есть совсем простые задачи, есть сложные. Каждая согласуется отдельно через СУП.
Алексей Шумаев
13 октября 2016, 18:22
0
Ну что же, посмеёмся над собой в конце тяжёлого дня…

Источником фантомных картинок оказалась таблица ms2_product_files, которая после первого тестирования, о котором все уже и забыли, содержала ~ 5000 записей. Пересечение по id и давало «картинки» при сохранении нового товара. Очевидное-невероятное.

Вопрос закрыт, всем отдыхать )
Алексей Шумаев
29 сентября 2016, 16:55
0
«Вроде исправлена ошибка с «передан пустой файл» в галерее на некоторых конфигурациях серверов с php 5.3»
Только что столкнулся как раз на 5.3: при создании товара сразу создаётся пустой файл в галерее. Иногда 2 штуки, но вижу я такое при попытке импорта из 1С посредством mSync.
http://prntscr.com/cns14q

Также выявлена такая ошибка: если меняем стандартное превью (в настройках и источнике файлов) на, например, 100x100, то в карточке товара и в списке товаров всё равно путь стоит 120x90. В галерее тоже вместо превью — дефолтное изображение.

Могу дать доступ к тесту, где можно видеть такие сбои.
Алексей Шумаев
08 августа 2016, 12:55
0
Примерно с июля массово фиксируется рандомное появление 404 на рабочих страницах.
Превышений по нагрузке вроде бы нет.
Но лог modhost у меня завален этой ошибкой, подозреваю связь с появлением 404.
Алексей Шумаев
08 августа 2016, 12:44
0
Подтверждаю наличие такой ошибки: prntscr.com/c3078j
Версия MS2: 2.1.12-pl
Предлагаемый в обсуждении по ссылке выше плагин решит проблему.
Алексей Шумаев
10 июля 2016, 03:02
0
Да, абсолютно любая галерея цепляется.
Используйте свои чанки (с соответствующим html галереи) вместо штатных и всё.
Алексей Шумаев
10 июля 2016, 03:00
+1
Можно просто хранить е.и. на категории в TV.
Или поставлять нужную е.и. в зависимости от параметров: категории, наличия какого-либо свойства товара и т.д.
Так я иногда делаю, если не нужно ничего пересчитывать.

Если нужен некий пересчёт или кратность/упаковка — лучше расширить класс продукта (документация), добавив поле кратности. Оно будет доступно при работе с товаром. Далее либо PrepareSnippet'ом делай пересчёт, либо налету fenom'ом.
Алексей Шумаев
20 июня 2016, 12:41
0
Создать свой класс-обработчик расширяющий mse2FiltersHandler (см. документацию).
Переопределить функцию buildParentsFilter (см. Файл core/components/msearch2/model/msearch2/filters.class.php).
вместо: $q->select('id,pagetitle,context_key,menuindex');
$q->select('id,pagetitle,menutitle,context_key,menuindex');

...

$titles[$value] = $parent['pagetitle'];
Добавить:
if(!empty($parent['menutitle'])) {
	$titles[$value] = $parent['menutitle'];
}
Алексей Шумаев
20 мая 2016, 10:11
0
Василий, а можно ли prepareSnippet передавать некие дополнительные параметры? Если да, то как?
Алексей Шумаев
12 апреля 2016, 10:33
0
В репозитории modstore доступна только версия 2.2.0, хотя текущая стоит — 2.4.0-beta1.
2.4.0 не доступна сейчас для загрузки?
Алексей Шумаев
02 апреля 2016, 19:47
0
Думаю, есть смысл подождать, если есть возможность:
modx.pro/components/8269-minishop2-version-2-4-0-beta0/#comment-57912

Или узнать у Василия по возможности ускорить разработку именно этого функционала.
Алексей Шумаев
04 марта 2016, 10:28
0
Пока дизайн.
Код после праздников будет ибо хочу это реализовать, подумаю на досуге.
НО. Весьма вероятно, что это будет кастомизация, закрывающая возможность обновления компонента. Опять же — я не профессиональный разработчик, качества не гарантирую ;-)

Здесь пример кода, частично реализующего нужный функционал.

Поэтому, если сообществу нужен такой функционал, то правильнее — попросить Василия о новой версии mSearch2 или даже отдельном продукте на базе mSearch2…
Соответственно, чтобы понять, надо оно или нет — те кому надо — «лайкаем» тему.
Алексей Шумаев
03 марта 2016, 13:51
1
+3
Добавлю изображение, наглядно поясняющее, как можно было бы использовать наличие возможности сортировки по типу ресурса или, что ещё лучше — разбитие выдачи поиска по типу ресурса/шаблону/...:


Аналогично для полного поиска.
Алексей Шумаев
01 марта 2016, 10:19
0
На странице выводов результата вызываем последовательно:

{$_modx->runSnippet('!mSearch2', [
	'where' => '{"class_key:!=":"msProduct"}'
])}
,

затем

{$_modx->runSnippet('!mFilter2@Products', [ #дополнительные параметры ])}
.

Получаем работающие фильтры по найденным товарам + отдельно оформленный результат поиска по остальным ресурсам.
Алексей Шумаев
01 марта 2016, 09:59
+1
Можно было бы сразу join'ить данные товаров при запуске mSearchForm, но у меня есть разные типы цен, зависящие от группы покупателя. Цена для вывода на фронт определяется плагином на msOnGetProductPrice, поэтому в данном случаем мне представляется правильным сделать именно так.
Алексей Шумаев
01 марта 2016, 02:03
2
+1
Итак, временное решение — может кому пригодиться.

1. Запуск (Fenom)
{$_modx->runSnippet('mSearchForm', [
	'pageId' => 5,
	'element' => 'pdoResources',
	'limit' => 15,
	'tpl' => 'tpl.mSearch2.ac',
	'class' => 'modResource'
])}

2. Результат работы mSearchForm в tpl.mSearch2.ac отдаётся сниппету prepareSearchResult:
<?php
$out = '';

$tpls = array (
	'msCategory'  => 'tpl.mSearch2Category.ac',
	'modDocument' => 'tpl.mSearch2Document.ac',
	'msProduct'  => 'tpl.mSearch2Product.ac'
	);

if(isset($class_key) && isset($id)) {
	
	$pdo = $modx->getService('pdoTools');
	$tpl = $tpls[$class_key];
	
	$placeholders['pagetitle'] = $pagetitle;
	$placeholders['description'] = $description;
	
	if($class_key == 'msProduct') {
		$product = $modx->getObject('msProduct', $id);
		$placeholders['price'] = $product->get('price');
		$thumb = $product->get('thumb');
		if(empty($thumb)) {
			$placeholders['thumb'] = '/assets/templates/img/no-photo.png';
		}
		else {
			$placeholders['thumb'] = $product->get('thumb');
		}
	}
	
	$out = $pdo->getChunk($tpl, $placeholders);
}
return $out;

3. Пример куска чанка для продукта (с использованием Fenom):
<div class="img-wrapp">
		<img src="{$thumb}" alt="{$pagetitle}">
	</div>
	<div class="search-body">
		<span class="item-name">{$pagetitle}</span>
		{if $decription?}
			<span class="item-descript">{$description}</span>
		{/if}
	</div>
	<div class="item-price">{$price}<small> руб.</small></div>
Алексей Шумаев
29 февраля 2016, 13:15
+1
в .htaccess
RewriteCond %{QUERY_STRING} ^(.*)an= [NC]
RewriteRule (.*) http://xxx/404.html? [R=301]
Алексей Шумаев
28 февраля 2016, 22:05
0
Василий, спасибо. Попробую.

Вообще, я думаю, этот функционал нужен любому магазину.
Т.к. искать нужно не только по товарам, но и по категориям. Конечно, если в выводе на фронт нужны данные товаров…