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

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

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
19 сентября 2014, 14:25
0
Не знаю.

И нет времени дальше разбираться.
Василий Наумкин
19 сентября 2014, 13:59
0
Думаю, это внутренняя защита Apache2 от зависонов — а то и правда до hard reset будет твоя задача крутиться.
Василий Наумкин
19 сентября 2014, 13:58
0
Вот этот метод в modResource — приводит в порядок адреса ресурсов.

Не менялся он уже очень давно, так что не знаю, почему в 2.2.15 работает, а в 2.3 виснет.
Василий Наумкин
19 сентября 2014, 13:47
0
Ну тогда да — серверный таймаут. MODX что-то делает и не может закончить.

Подозреваю, что он там проверяет статус публикации у 37 000 товаров или что-то в этом духе. Тут только лезть в процессор очистки кэша и дебажить, на каком этапе вылазит проблема.
Василий Наумкин
19 сентября 2014, 13:40
0
Откуда вывод про таймаут?

Ты видишь в логах сервера, что таймаут php, или просто ориентируешься на кнопочки в окошке, которые станут активны только когда придет верный ответ от сервера?

Если в ответе от сервера появился мусор, из-за которого ломается раскодировка JSON, то кнопочки так и будут неактивны.
Василий Наумкин
19 сентября 2014, 13:34
0
Надо смотреть в консоль браузера, что отдаёт сервер на первый ajax запрос. Вполне возможно, что там какой-нибудь E_NOTICE, который ломает JSON.

Ну и вручную удалить /core/cache никогда не помешает.
Василий Наумкин
19 сентября 2014, 11:27
+1
define('MODX_API_MODE', true);
Вот это нужно только если modX подключается через отдельный php файл.

В showResult нужно заменить
echo 'Тариф ' . $message . ' р\с на сумму '.$summ.': в банке ' . $bank . ' на срок ' . $time . ' мес. ';						
echo 'с процентной ставкой ' . $rate . ' будет ' . $bg . '
на
return 'Тариф ' . $message . ' р\с на сумму '.$summ.': в банке ' . $bank . ' на срок ' . $time . ' мес. ' .						
'с процентной ставкой ' . $rate . ' будет ' . $bg . ';

В начале searchInFile создать переменную $result = ''; и писать в неё данные, которые потом тоже вернуть через return:
$result = '';
while (($data = fgetcsv($handle, 2000, ';')) !== FALSE) {
	// ...
	if (!empty($ot1) && !empty($do1)) {
		$result .= showResult($summ, $time, $ot1, $do1, $t, $rate1, $min1, $bank, 'с открытием');
	}
	if (!empty($ot2) && !empty($do2)) {
		$result .= showResult($summ, $time, $ot2, $do2, $t, $rate2, $min2, $bank, 'без открытия');
	}
}
return $result;

Ну и в основном коде тоже нужен return:
$result = '';
if ( isset($_GET['summ']) && isset($_GET['time']) ) {
	// ...
	if ($handle)  {
		$result = searchInFile($handle, $summ, $time);
		fclose($handle);
	}
}
return $result;

То есть, всё что делается должно сохраняться в переменную и возвращаться только в конце работы сниппета. Никаких echo и print_r() быть не должно! Только для отладки, но никак не в рабочем коде.
Василий Наумкин
19 сентября 2014, 11:08
0
Может, просто стандартный фал заменить?

Разве что об это нужно помнить при обновлениях или выставить на него права read-only.
Василий Наумкин
19 сентября 2014, 10:38
0
Как минимум вижу лишнюю косую:
MODX_BASE_PATH.'/assets/files/banks.csv'
заменить на
MODX_BASE_PATH.'assets/files/banks.csv'

Пути для работы с файлами всегда абсолютные. Даже если где-то используются относительные, это просто означает, что в другом месте они всё равно приводятся к абсолютному виду.
Василий Наумкин
18 сентября 2014, 14:20
0
Версия от 13 августа, таки, не последняя.

Сделай одолжение, в следующий раз, прежде чем задавать вопросы, проверить репозиторий?
Василий Наумкин
18 сентября 2014, 13:59
0
А, понятно, ты не покупал mSearch2, поэтому у тебя там, видимо, старая версия без исправления работы с плейсхолдерами.

Вот коммит, который добавляет сборку выставленных плейсхолдеров из сниппета и запихивание их в results.

Просто я не подумал, что у тебя может быть не последняя версия.
Василий Наумкин
18 сентября 2014, 12:24
0
А, ясно.

Тогда видимо при сохранении из админки это поле просто перезаписывается пустотой из отправленной формы.
Василий Наумкин
18 сентября 2014, 12:23
0
Ну так результатов не найдено, говорит же, и в страницу вставляет.

А вот почему не найдено — другой вопрос. Подозреваю проблему с доступом к сессии из коннектора action.php — уже видел подобное.
Василий Наумкин
18 сентября 2014, 12:15
0
Оно не подтягивается с модели — ты его сам выставляешь =)
Василий Наумкин
18 сентября 2014, 06:03
0
Соответственно надо делать интерфейс привязки аккаунта соц сети
Который уже создан в haProfile. Нужно просто зарегистрировать и авторизовать юзера другим дополнением: Office или Login, а потом он уже сможет привязать соцсеть и входить через неё.

Иначе будут постоянные «я вчера зашел через яндекс, а теперь через mail и у меня все другое, ааа!!!!». И куча юзеров в админке.
Василий Наумкин
17 сентября 2014, 20:28
0
Как минимум вижу в коде, что все плейсхолдеры некэшированные, кроме собственно my_results.
Василий Наумкин
17 сентября 2014, 20:26
+1
Не уверен, но по моему значение по-умолчанию и не должно писаться в БД. Оно выводится при xPDOObject::toArray() и xPDOObject::get() — как у ТВ параметров.

А числовые поля в БД сохраняются согласен типу: если простой integer то будет 0, если float — то 0.00. Ну а для текста выходит пустая строка.

Сейчас нет ни времени, ни желания проверять, так что попробуй просто поэксперементировать с созданием и сохранением объекта товара без админки, на уровне xPDO.
Василий Наумкин
17 сентября 2014, 20:18
+1
Проект старый, написан не очень, поэтому отправка почты аж в трех местах и разным кодом. Поправил, теперь работает.

Жить ему все равно недолго осталось.
Василий Наумкин
17 сентября 2014, 18:30
0
Может, очепятался? Мне нормально приходит: