Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
21 февраля 2013, 21:55
0
В системных настройках включить публикацию по умолчанию.

Или добавить всем товарам поле published = 1, и указать соответствие при импорте.
21 февраля 2013, 21:43
0
На здоровье!
21 февраля 2013, 21:39
0
Да, защита там есть.

А слово не в сниппете, а в чанке, перепутал. По баннеру кликнул, проверяй.
21 февраля 2013, 21:17
0
Функция filter_var появилась вроде как в php 5.2, а у тебя, видимо, еще более старая версия.
Попробуй переключить её в панели управления хостинггом.

Слово изменить можно только заменив его в сниппете и плагине.

21 февраля 2013, 21:13
0
Вместо

if ($res = $modx->getObject('modResource', array('parent' => $category, 'pagetitle' => $product['pagetitle']))) {
	if ($mode == 'update') {
		$id = $res->get('id');
		$newproduct = array_merge($res->toArray(), $product, $ms);
		$newproduct['tags'] = $tags;
		$response = $modx->runProcessor(
			'mgr/goods/update'
			,$newproduct
			,array('processors_path' => MODX_CORE_PATH.'components/minishop/processors/')
		);
		if ($response->isError()) {
			return $modx->error->failure('Error on row '.$i.': '.$response->getMessage());
		}
		$modx->removeCollection('ModGallery', array('gid' => $id));
	}
	else {
		$i++;
		continue;
	}
}
else {
	$res = $modx->newObject('modResource');
	$res->fromArray($product);
	$newproduct = array_merge($res->toArray(), $product, $ms);
	$newproduct['tags'] = $tags;
	$response = $modx->runProcessor(
		'mgr/goods/create'
		,$newproduct
		,array('processors_path' => MODX_CORE_PATH.'components/minishop/processors/')
	);

	if ($response->isError()) {
		return $modx->error->failure('Error on row '.$i.': '.$response->getMessage());
	}
	else {
		$id = $response->response['object']['gid'];
		if (!$res = $modx->getObject('modResource', $id)) {
			return $modx->error->failure('Error on row '.$i.': '.print_r($response->response['object'],1));
		}
	}
}

Сделать вот так:

$res = $modx->newObject('modResource');
$res->fromArray($product);
$newproduct = array_merge($res->toArray(), $product, $ms);
$newproduct['tags'] = $tags;
$response = $modx->runProcessor(
	'mgr/goods/create'
	,$newproduct
	,array('processors_path' => MODX_CORE_PATH.'components/minishop/processors/')
);

if ($response->isError()) {
	return $modx->error->failure('Error on row '.$i.': '.$response->getMessage());
}
else {
	$id = $response->response['object']['gid'];
	if (!$res = $modx->getObject('modResource', $id)) {
		return $modx->error->failure('Error on row '.$i.': '.print_r($response->response['object'],1));
	}
}
21 февраля 2013, 21:10
0
Вот так надо смотреть ответ от сервера:
21 февраля 2013, 21:08
0
Правильно, товар в категории должен быть с уникальным именем.

Как избавиться? Убрать проверку в скрипте импорта или переназвать товары, добавив в них изменяющийся параметр.
21 февраля 2013, 21:00
0
В компоненте для проверки адреса используется функция filter_var. Рискну предположить, что у тебя на сервере с ней что-то не так.

Проверить можно одним способом — глянь в браузере, что приходит от сервера на запрос.
В гугле хроме это кнопка f12, там вкладка network И смотри запросы к connector.php, там вкладка response.

По идее, у тебя там должны быть или ошибка, или пустота.
21 февраля 2013, 20:53
0
Окей, показывай свой сайт с такими скоростями, чтобы работал на MODX Revolution и выводил внизу плейсхолдер [^t^]. Желательно, с таким же функционалом, но можно и без.

Тебе же есть, что показать, или мы будем обсуждать сферических «любых оптимизаторов»?

Я не заявляю, что мой сайт или MS2 самый быстрый на свете. Но одни из самых быстрых на Revolution — факт. Если ты готов с этим поспорить — давай свои реальные аргументы.
21 февраля 2013, 20:35
0
Лёша, ну в этом месте я просто обязан попросить тебя продемонстрировать твои достижения в написании быстрых сайтов.

Мой сайт медленный, ок. Покажи свой, быстрый.
21 февраля 2013, 20:30
0
На этом сайте, как ни странно, постоянно добавляются комментарии, вопросы, он всё время в движении.

Неудивительно, что иногда бывают заскоки, но они никак не влияют на общую картинку:
Сайт — быстрый.
21 февраля 2013, 20:29
0
Ты сказать то что хочешь? Говори, не стесняйся.

Циферки я внизу и сам вижу хорошо, в среднем там 0,35 — 0,7.

Заскоки могут быть по разным причинам, типа я зашел в админку и почистил кэш, или внес изменения в css и MinifyX перегенерирвал все стили сайта.

21 февраля 2013, 20:25
0
Что могу сказать? Какой-то глюк.

Хорошо, что такое случается крайне редко — я вот, ни разу не видел пока.
21 февраля 2013, 20:22
0
21 февраля 2013, 20:19
0
Полез искать самое тормозное место в работе сниппета, и нашел!
Это функция getChildIds, которая рекурсивно ищет потомков ресурса, из которого выводится каталог.

Немного уточнил лог и выходит вот это (смотрим на строчку «Query parameters are prepared.»)

Глубина выборки 10


Глубина выборки 1


Глубина 0, функция отключена


Очевидно, тормоза оттого, что в категории 10000 потомков. Но всегда можно указать параметр &depth=`1` и перечислить нужных родителей через запятую — так будет быстрее.

Очистка кэша как раз и влияет на построение дерева ресурсов, с которым работает getChildIds(). Поэтому с depth=1 сниппет отрабатывает за 0,12 сразу после очистки, а потом уже — 0,09.

Вот такие пироги. Куда еще убыстрить — не знаю.
21 февраля 2013, 20:03
0
У автора этого бага не наблюдается ни на одном сайте.
21 февраля 2013, 20:01
0
А если еще разок нажать F5, что будет?

Какая страница это, кстати?
21 февраля 2013, 20:00
0
Не может быть! Кэш ресурса очищается после добавления комментария?!

И что?
21 февраля 2013, 20:00
0
А ты попробуй на досуге научить работать Wayfinder и другие сниппеты с отдельной таблицей.
А потом напиши свой обработчик friendly urls.
А потом еще много чего вылезет.

Проще не использовать MODX вообще, и писать сразу свой магазин. Только зачем, когда вокруг есть толпа уже готовых?

miniShop2 — бесплатное расширение для движка MODX, и максимально его задействует.