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

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

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
22 февраля 2013, 13:22
0
Всё просто, ты должен дать согласие на использование твоего кода в их продукте. А вдруг ты в суд потом подашь?

Просто перестраховываются, так что прими этот CLA и не парься.
Василий Наумкин
22 февраля 2013, 12:01
0
Как то плавно обсуждение скорости выборки из 10000 товаров перешло на скорость моего сайта.

Причем, на предложение продемонстрировать «как надо» гражданин слился. Видимо, просто скучающий тролль забрёл.
Василий Наумкин
22 февраля 2013, 11:59
0
2 варианта:

1. Ты передаешь свой домен на обслуживание серверам Linode. Тогда надо прописать все данные у них в DNS manager, а у своего регистратора указать NS сервера зоны ns1(2.3.4.5).linode.com

или

2. Твой домен уже кто-то обслуживает, например Яндекс. Тогда ты заходишь в панель управления DNS Яндекса и прописываешь там соответствие твоего сайта и ip твоего VPS на Linode.
DNS manager Linode вообще не трогаешь, он не обслуживает твой домен.
Василий Наумкин
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
У автора этого бага не наблюдается ни на одном сайте.