Захарий

Захарий

С нами с 02 февраля 2015; Место в рейтинге пользователей: #326
Захарий
29 июля 2016, 14:00
0
ну я уже придумал костылище ибо ничего лучшего не могу придумать. Через pdoMenu выведу как надо, а обработчик сам напишу, да js тоже. Проблема будет только с js подменой ссылки и т.д. Так как я калека в этом
Захарий
29 июля 2016, 13:59
0
Ну а как заставить mfilter сделать свою работу? Я то могу под категорией вручную вывести другую, могу и подменить адресс и отправить в коннектор запрос. Но внутри все равно идет проверка на фильтры, если там стоит
parents:categories
то ничего кроме них, я не могу получить.(Специально выделил, ибо возможно проблема как раз во мне)
Захарий
28 июля 2016, 10:50
0
Ну хорошо тогда!) Удачи вам в поиске
Захарий
28 июля 2016, 10:45
+1
для начала посмотрите в debugparser в чем проблема, что именно тормозит. Возможно там тривиальная ошибка, у меня бывали проекты, где в tpl вывода товаров вставляли сниппет с очисткой кэша всего сайта.
Захарий
28 июля 2016, 10:34
0
То бишь, вы спрашиваете при каких условиях перестает нормально работать(у вас еще исправно), но уже ищете решение? Тут очень много факторов: что тормозит?(админка или выгрузка в фронтэнд(разные решение)), не очень удобно и эфективно работать? и т.д. Можно много привести и, думаю, для каждого из них можно найти здесь решение.
Захарий
27 июля 2016, 11:48
+1
А вот с getIterator
$q = $modx->newQuery('msProduct');
$q->limit('500','0'); //($limit,$offset)
$modx->addDerivativeCriteria('msProduct', $q);// 
$docs = $modx->getIterator('msProduct', $q);
Захарий
27 июля 2016, 11:41
1
+1
ну дак вылетев из-за большого времени. Как я говорил можно через
$modx->getIterator()
. Если через твой вариант
$q = $modx->newQuery('msProduct');
$q->limit('500','0'); //($limit,$offset)
$docs = $modx->getCollection('msProduct',$q);
Играйся с limit & offset. Делай частями
Захарий
27 июля 2016, 11:29
0
Как варианты: посмотреть response от работы процессора. И может быть, ты меняешь исправно, ошибки идут о других ресурсах, которые даже не участвуют? Ну, например: ты обновляешь для 1,2,3,4. А ошибки выбивает для 5 = 7, 6 =7. Собственно, нужно будет их и исправить потом
Захарий
27 июля 2016, 11:13
0
почему ты просто не сохраняешь объект?
$doc->save();
А через процессор?
Захарий
27 июля 2016, 11:02
0
Вчитайся в ошибку Resource URI kategoriya-s-tovarami/semena-czvetov/odnoletnie/.html ты присваиваешь кривой алиас, из-за этого он у тебя и дублируется. И вместо getCollection
$modx->getIterator();
Для экономии памяти. А для ускорения работы можно поиграться с
$q->select();
Если будут проблемы с выборкой(CRC) modxclub.ru/topics/xpdoaddderivativecriteria-class-key-crc-i-prochie-svyazannyie-drug-s-drugom-tonkosti.html
Захарий
26 июля 2016, 13:03
+2
Установи
https://docs.modx.pro/components/debugparser
?debug=1 в поисковую к юрлке и смотри в чем проблема.
Захарий
19 июля 2016, 13:40
0
modx.pro/help/7566/ была похожая тема
DELETE FROM modx_site_content WHERE deleted = 1
— код от Василия. Через php ну или СУБД. Для товаров нужно еще будет почистить modx_ms2_products и modx_ms2_product_files. Также папку с картинками /assets/images/products/ по желанию. Если очистили не все товары, а только некоторые то мой вариант частично не подходит.
Захарий
19 июля 2016, 13:01
0
if (empty($response['success'])) {
	return;
}
Значит эту проверку не проходит. Посмотрите что у вас в массиве $response обычным дебагом.
Посмотрите еще в $_POST['customer'] после
$_POST['customer'] = array_merge(array(
	'delivery' => 1,
	'payment' => 1,
	'adress' => 'Quickbuy',
), $_POST['customer']);
Захарий
18 июля 2016, 15:32
0
Нужно использовать
$miniShop2->cart->add();
У меня такой сниппет QuickOrdera — остался еще от старых программистов
$context = $modx->context->get('key');
if ($context == 'mgr' || empty($_POST['quick_order']) || empty($_POST['id']) || empty($_POST['customer'])) {
	return;
}


/**
 * @var miniShop2 $miniShop2
 */
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize($context, array(
	'json_response' => false,
));
if (!($miniShop2 instanceof miniShop2)) {
   
	return;
}

$_POST['customer'] = array_merge(array(
	'delivery' => 1,
	'payment' => 1,
	'adress' => 'Quickbuy',
), $_POST['customer']);
foreach (array('email', 'phone', 'receiver', 'delivery', 'payment','adress') as $field) {
	$response = $miniShop2->order->add($field, $modx->getOption($field, $_POST['customer'], ''));
    
	if (empty($response['success'])) {
		return;
	}
}

$response = $miniShop2->cart->clean();

if (empty($response['success'])) {
	return;
}

$response = $miniShop2->cart->add($_POST['id'], $modx->getOption('count', $_POST, 1), $modx->getOption('options', $_POST, array()));


if (empty($response['success'])) {
	return;
}

$miniShop2->order->submit();
Захарий
15 июля 2016, 14:31
0
Кинь доступы на мыло, попробую глянуть. И ссылку на каталог
Захарий
15 июля 2016, 14:13
0
Что бесполезно? Не находит в словаре? Или не выводит на странице? Думаю здесь тривиальная проблема, компонент работает как часы. Берет название и через функцию достает из словаря. Проблемы могут быть разные, не правильная запись в словаре, не там создал запись в словаре, проблема в кодировке(очень сомнительно).
Захарий
15 июля 2016, 13:45
+1
Словари очень чувствительны до регистров, особых символом и пробелов. Попробуй скопировать вручную те, которые не вывелись в словарь и найти. Если не нашло, значит проблема в этом.
Захарий
15 июля 2016, 13:42
0
Вручну почисти кэш — в /core/ папку cache переименуй. Если не помогло, как вариант переустанови еще minishop. У тебя полностью белое окно? Или не видно вкладок, как тут modx.pro/help/9166/?
Захарий
14 июля 2016, 14:00
0
Попробуй поиграться с
&sortdir=``
Попробуй ASC или DESC. Хотя странно, что page.nav меняет сортировку
Захарий
14 июля 2016, 11:40
+1
Ну если хочется аж тру MODX идеологию, то rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/modx-services/modmail
$message = $modx->getChunk('myEmailTemplate');
 
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'me@example.org');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Johnny Tester');
$modx->mail->set(modMail::MAIL_SUBJECT,'Check out my new email template!');
$modx->mail->address('to','user@example.com');
$modx->mail->address('reply-to','me@xexample.org');
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
    $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
Не знаю, актуально ли еще это. Все отправляю через mail() или smtp.