RealAdmin.ru

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

MODX
Категория: Сайтострой
08 Май 2013 г. в 14:36

Константы путей к каталогам 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 сессии хранятся в базе данных и при правильной настройке хостинга устаревшие сессии удаляются автоматически. Но бывают случаи когда этого не происходит и таблица разрастается до огромных размеров. В этом случае можно очистить старые сессии вручную. Для этого на стороне сайта необходимо исполнить код.

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

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

Теги:
Посмотрите похожее — 6
Комментарии — 0
    © REALADMIN.RU   2016 г.
    Страница сгенерирована: 0,2141 s | 10 mb.
    На каком уровне Вы играете в шахматы?
    О П Р О С
    Home Question Top