Константы путей в MODX, отправка почты и другое

Константы путей в MODX, отправка почты и другое
Комментарии: 0

Константы путей к каталогам MODX, пример отправки писем из сниппета, вывод копирайта средствами движка и принудительная очистка кэша. Эти небольшие, но полезные заметки я решил объединить в одну статью.

В MODX можно использовать постоянные константы, содержащие пути к основным директориям движка. Константы эти определяются при помощи PHP функции «define» в файле «config.inc.php». Полезность этих постоянных заключается в том, что при переносе сайта на другой хостинг достаточно будет поменять пути в одном конфигурационном файле, чтобы все сниппеты и скрипты остались в рабочем состоянии.

КОНСТАНТАПРИМЕР
MODX_BASE_PATH/home/www/
MODX_ASSETS_PATH/home/www/assets/
MODX_CORE_PATH/home/www/core/
MODX_MANAGER_PATH/home/www/manager/
MODX_CONNECTORS_PATH/home/www/connectors/
MODX_PROCESSORS_PATH/home/www/core/model/modx/processors/
MODX_ASSETS_URL/assets/
MODX_MANAGER_URL/manager/
MODX_CONNECTORS_URL/connectors/
MODX_URL_SCHEMEhttp:// или https://

Описывать не буду, из таблицы должно быть понятно. Пример использования в сниппете:

require_once(MODX_ASSETS_PATH.'includes/idna_convert.class.php');

Отправка почтового сообщения средствами API MODX

MODX для отправки писем использует популярный скрипт PHPMailer. Но при этом использует в качестве прослойки свой API. Рассмотрим как отослать сообщение из какого-то сниппета или плагина.

$body = 'Текст письма';
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$body);
$modx->mail->set(modMail::MAIL_FROM,'info@RealAdmin.ru');
$modx->mail->set(modMail::MAIL_FROM_NAME,'RealAdmin');
$modx->mail->set(modMail::MAIL_SUBJECT,'Почтовое сообщение с сайта RealAdmin.ru');
$modx->mail->address('to','exemple-1@mail.ru');
$modx->mail->address('to','exemple-2@mail.ru');
$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();

В примере отсылается письмо на два почтовых адреса с указанием отправителя «info@RealAdmin.ru». Если сообщение не доставлено, то проверяйте корректность работы модуля sendmail на хостинге и не забудьте просмотреть письма в спаме.

Вывод копирайта средствами MODX

В дополнение информация о том, как вывести год в MODX, чтобы сделать копирайт. Используем PHX, который встроен в ядро движка.

   [[+phx:input=`now`:strtotime:date=`%Y`]]

Результат: 2024

Чистка таблицы с сессиями

В MODX сессии хранятся в базе данных и при правильной настройке хостинга устаревшие сессии удаляются автоматически. Но бывают случаи когда этого не происходит и таблица разрастается до огромных размеров. В этом случае можно очистить старые сессии вручную. Для этого на стороне сайта необходимо исполнить код.

$session = new modSessionHandler($modx);
$session->gc();

Если сессий скопилось очень много, то выполнение операции может занять длительное время. До нескольких минут. Стоит помнить, что при выполнении операций удалятся не все сессии, а только устаревшие.

Темы:
MODX
Ещё интересное — 6
Комментарии —
    © REALADMIN.RU   2024 г.
    Страница сгенерирована: 0,1868 s | 4 mb.
    На каком уровне Вы играете в шахматы?
    OPROS