Василий Столейков

Василий Столейков

С нами с 19 декабря 2012; Место в рейтинге пользователей: #23
Виктор
26 июня 2015, 11:15
1
+1
Обновил вам sikvel.pro до 2.3.5 ;(
Поменяйте пароль на бд.
От админки вернул старый, но если что то не так то
UPDATE modx_users SET hash_class = 'hashing.modMD5', password = MD5('the-new-password') WHERE username = 'theusername';
Василий Наумкин
25 июня 2015, 05:07
1
+2
Думаю, вот так:
if (file_exists(MODX_CORE_PATH . 'components/pdotools')) {
	// твой код
}
Василий Наумкин
24 июня 2015, 15:19
1
+1
Инкремент сбрасывается очень просто — надо зайти в свойства таблицы через PhpMyAdmin и указать нужное число.

id, по умолчанию — это число INT из 10 цифр длиной, которое может держать до 4 294 967 295. А есть еще BIG INT, там до 18 446 744 073 709 551 615.

Думаю, должно хватить. Хотите узнать больше?
Іван Клімчук
20 июня 2015, 23:53
1
+3
Перепробовал уже много вариантов. Пока что Gitify максимально приблизился к тому, что хотелось бы, но все равно не то. modx.today через него полностью деплоится, для примера. Есть исходники github.com/modmore/MODX.today

В остальном деплой MODX — БОЛЬ. Код в базе сподвигает на велосипеды и костыли. Я люблю MODX, но эта мелочь многое портит (ложка дегтя так сказать).

В идеале видится схема такая.
Рабочие копии (у программистов) разворачиваются через Gitify. Код туда-сюда гоняется легко, есть в последних версиях разрешение конфликтов ID (когда 2 разработчика создали разные чанки с одним id например) и умное удаление «мусора» (удалил файл и следом удалилась запись из БД на сайте). На stage тоже код попадает через gitify. Со stage код должен упаковываться в транспортный пакет и устанавливаться на продакшен. Тут поможет Teleport. Но в таком случае доступ на продакшен для всех через админку закрыт. Изменения должны вноситься заказчико на stage, а затем попадать на продакшен. Такой подход касательно Teleport одобрил Jason Coward, когда в общем чате в Slack это обсуждалось (Teleport его рук творение).
У подхода есть плюсы: продакшен изолирован от вмешательства человека, живет как отдельное приложение (данные, генерируемые пользователями не относятся к разработке и не нужны на dev-машинах, заменяются фикстурами).
И минусы: настраивать такое для рядовых проектов накладно, требует много ресурсов для поддержки, в свое очередь не выгодно для коротких или малых проектов.
Но если делается совсем большой проект, то стоит задуматься, а нужен ли MODX? Каким бы фанатом и евангелистом я не был, реальность сурова: MODX дорог в эксплуатации на очень крупных проектах, хотя и позволяет экономить на старте.
Володя
19 июня 2015, 22:07
2
+1
этого должно хватить
switch ($modx->event->name) {
	case 'OnResourceDelete':
		$modx->runProcessor('resource/emptyrecyclebin');
		break;
}
Fi1osof
Fi1osof
18 июня 2015, 10:13
2
+1
&where=`{"parent:not in":[41,35,47............]}`
Воеводский Михаил
15 июня 2015, 02:44
4
+3
Потребуется свой сниппет, который запустит всего 2 метода minishop2:

$minishop2->cart->add($productId, $count);

$orderData = array(/* Здесь много полей, имеющихся в стандартной форме заказа */);
$minishop2->order->submit($orderData);
Виталий Серый
05 июня 2015, 22:31
1
+1
Надо написать плагин и повесить его на OnDocFormSave.
Теория:
if ($mode == 'new' && $resource->class_key == "Ticket") {
	if(!$resource->published){
	//!!! Пример отправки тупо скопирован с документации, надо менять на свое
		$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();
	}
}
Василий Наумкин
02 июня 2015, 18:40
1
+1
Если на новом pdoTools с Fenom, то очень просто:
{if $tv != 'stati' && $tv != 'mednews'}
	{set $tv = 'video'}
{/if}

{if $tv != 'stati' && $tv != 'mednews' && $tv != 'video'}
	{set $tv = 'news'}
{/if}

Результат: {$tv}
Ну или как-то так, потому что логика задачи не ясна.