Максим Кузнецов

Максим Кузнецов

Был в сети 04 августа 2021, 21:51
Заказы принимаю
Даже не знаю, что вам посоветовать — это достаточно простая и базовая область MODX'a, поэтому о них особо ничего не расписано, разве что тут.

(на всякий случай): чтобы попасть в просмотр системных настройек — выберите шестеренку в верхнем меню админки и перейдите по пункту «системные настройки».
В вопросе содержится ответ: ваш плейсхолдер [[+resource]] не возвращает или не успевает возвратить айди страницы (числом), для которой нужно сформировать url.

Если вы используется самописный сниппет или конструкцию вида [[~[[+resource]]]] — проверяйте возвращаемое значение.
Если вы используется плейсхолдер внутри фенома — получайте его через {$resource} или {$_modx->getPlaceholder('!resource')}.
Что касается порядкового номера — просто создайте произвольную системную настройку, например «Всего отправлено сообщений» (formit_total) и дергайте ее непосредственно в хуке:

$formit_total = $modx->getObject('modSystemSetting', 'formit_total');
$new_total = intval($formit_total->get('value')) + 1;

$formit_total->set('value', $new_total);
$formit_total->save();
$modx->cacheManager->refresh(array('system_settings' => array()));
Нет, не обязательно. Достаточно перенести директории и прописать новые пути в следующих файлах:
/core/config/config.inc.php
/config.core.php
/connectors/config.core.php
/manager/config.core.php

(manager и connectors, соответственно будут расположены там, где вы их разместили)
Вообще — согласен, сам не представляю, как поисковики узнают о системных папках со фронта, если они там нигде не упоминаются.

Но порой в темах возникают вопросы, связанные с тем, что эти папки все-таки проиндексировались.
Как — не интересовался.
Вариант 1:
— вынести директории за пределы доступной с браузера области (тогда robots.txt можно вообще не трогать)

Вариант 2:
— создать папку с нейтральным названием, допустим, system (и закрыть к ней доступ через robots.txt)
— засунуть в нее переименованные manager, connectors
Тогда уж лучше со значением 0..)

А вообще, скрытые поля на фронтэнде (при наличии вредительских желаний) легко отредактировать через консоль браузера, поэтому лучше решить задачу через плагин:

<?php
	switch ($modx->event->name) {
		case 'OnDocFormSave':
			//при желании можно дополнительно ограничить применение только для определенных шаблонов
			if ($resource->get('template') == 8 && $mode == 'new' && $resource->class_key == "Ticket") {  
             	  		 $resource->set('published', 0);
			}
			
			$resource->save();
 
		break;
	}

Вешать на событие OnDocFormSave, соответственно.
Новая панель отличная.)

Вопросы:
— закладка действия — переустановка. «Дополнения Выбрано 7 из 5» — неправильно считается суммарное количество дополнений?
— можно ли прописать кастомные пути до системных директорий, не переустанавливая сам MODX?