Андрей
С нами с 28 октября 2016; Место в рейтинге пользователей: #322проблемы со сниппетом при переходе на ModX 3
есть 2 сниппета
$fields = $hook->getValues(); //поля из формы
$fields['filesToUpload'] = str_replace('assets/pdf/','',$fields['filesToUpload']);
$mail_z = $fields['contact_email'];
$message = $modx->getChunk('sentEmailTpl', $fields);
//формируем PDF
$pdo = $modx->getService('pdoFetch');
$pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true);
$content = $pdo->getChunk($pdfTpl, $fields);
$config = array();
$config = array_merge($config, $fields, array(
'content' => $content,
'author' => $author,
'title' => $title,
));
// формируем ссылку на PDF
$result = $modx->runSnippet('PdfCreate', $config);
и PdfCreate<?php
$date = date('Y-m-d_H-i-s', time()) . '_' .rand(1, 100);
$corePath = $modx->getOption('pdfresource.core_path', null, $modx->getOption('core_path') . 'components/pdfresource/');
$pdfresource = $modx->getService('pdfresource', 'PDFResource', $corePath . 'model/pdfresource/', array(
'core_path' => $corePath
));
$content = $modx->getOption('content', $scriptProperties, '', true);
$title = $modx->getOption('title', $scriptProperties, '', true);
$author = $modx->getOption('author', $scriptProperties, '', true);
$aliasPath = MODX_ASSETS_PATH . 'pdf/';
$site_url = $modx->getOption('site_url');
// настройки PDFResource (подробнее почитать здесь: http://jako.github.io/PDFResource/usage/)
$pdfresource->initPDF(array(
'mode' => 'utf-8',
'format' => 'A4',
'defaultFontSize' => intval(13),
'defaultFont' => '',
'mgl' => intval(30), // margin left
'mgr' => intval(10), // margin right
'mgt' => intval(30), // margin top
'mgb' => intval(10), // margin bottom
'mgh' => intval(10), // margin header
'mgf' => intval(10), // margin footer
'orientation' => 'P', // ориентация PDF
'customFonts' => '[]',
));
$pdfresource->pdf->SetTitle($title);
$pdfresource->pdf->SetAuthor($author);
$pdfresource->pdf->SetCreator($modx->getOption('site_url'));
$pdfresource->pdf->WriteHTML($content, 2);
$file_name = $date;
$pdfresource->pdf->Output($aliasPath . $file_name . '.pdf', 'F');
return $file_name;
они используются как хуки в FormIT и в сумме получают данные, формируют из них pdf файл, который потом отправляется по почте. В ModX 2.* все отлично работает, но при переходе на 3 версию файл генерится, но содержит массив, состоящий из плейсхолдеров, которые должны были использоваться при генерации pdf, видимо проблема либо с передачей чанка с шаблоном будущего pdf либо с его обработкой, то есть вероятно здесь$pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true);
$content = $pdo->getChunk($pdfTpl, $fields);
Никто не знает, что изменилось в 3-й версии и как это поправить? Как в хуке обратиться к дополнительному полю профиля?
Есть хук, в котором нужно получить дополнительное поле профиля пользователя, ну и дальше с ним провести манипуляции. пытался получить его так
Что я делаю не так?
$id_user = $hook->getValue('extended.id_club');
и так$id_user = $hook->getValue('id_club');
выдает пустоту, хотя если обратиться к штатным полям, например$id_user = $hook->getValue('fullname');
то все работает.Что я делаю не так?
Настройка членства в группе
Возникла необходимость выводить разный контент для разных групп пользователей.
Поэтому создал группу User, добавил себя туда и обернул нужный код fenom
если User заменить на Administrator то все работает, значит что-то не так с вновь созданной группой User, но не могу понять что, ведь речь идет по идее о проверке членства в группе, а в группу я себя включил
при этом с одной стороны я числюсь в группе, если смотреть из админки Modx
c другой стороны, если вывести список групп через
Поэтому создал группу User, добавил себя туда и обернул нужный код fenom
{if $_modx->isMember('User')}
{/if}
и — условие не работает, блок не выводится. права доступа перезагружал.если User заменить на Administrator то все работает, значит что-то не так с вновь созданной группой User, но не могу понять что, ведь речь идет по идее о проверке членства в группе, а в группу я себя включил
при этом с одной стороны я числюсь в группе, если смотреть из админки Modx
c другой стороны, если вывести список групп через
$modx->user->getUserGroupNames();
то там я числюсь только в группе Administrator PHPMailer перестал работать
С какого-то времени перестал работать PHPMailer, обнаружил только сейчас
MODX 2.8.3 php 7.4
почтовые настройки MODX не трогал с момента установки и раньше почта приходила, сейчас даже письма с восстановлением пароля не приходят.
В логах сервера ошибки нет.
В чем может быть проблема?
MODX 2.8.3 php 7.4
почтовые настройки MODX не трогал с момента установки и раньше почта приходила, сейчас даже письма с восстановлением пароля не приходят.
В логах сервера ошибки нет.
В чем может быть проблема?
Как получить TV параметр?
Есть такая выбора, без includeTVs она работает
$params['parents'] = 1470;
$params['limit'] = '0';
$params['depth'] = '0';
$params['showHidden'] = '1';
$params['showUnpublished'] = '1';
$params['includeTVs'] = 'vznos';
$params['where'] = 'pagetitle='.$stag.'';
$params['return'] = 'json';
$vst_json = $modx->runSnippet('pdoResources', $params);
в таком виде выдает ошибкуError 42S22 executing statement:Если поменять
Array
(
[0] => 42S22
[1] => 1054
[2] => Unknown column 'tv.vznos' in 'where clause'
)
$params['includeTVs'] = 'vznos';
на$params['includeTVs'] = 'tv.vznos';
ошибок нет, но и переменной $vst_json нет параметра tv.vznos, хотя у данного ресурса он точно есть. В чем проблема? Условие для выбора всех ресурсов
есть выборка pdoResources, в которой есть такое условие
Но если в форме не выбрать никого параметра и задать поиск, то выводятся все ресурсы и это тоже то, что нужно, единственный момент что в логах появляется ошибка
Вопрос: а можно ли задать на этой случай какой-то параметр, который будет возвращать [[!getIdKurs]] на случай если в него ничего не передано и чтобы выводились все ресурсы, но только чтобы не возникала ошибка? Может быть есть какая условная *, которая будет означать что условие сработает для всех ресурсов?
&where=`{"pagetitle:=":[[!getIdKurs]]}`
в сниппете исходя из переданного параметра из формы ищется его ID и в целом все нормально работает.Но если в форме не выбрать никого параметра и задать поиск, то выводятся все ресурсы и это тоже то, что нужно, единственный момент что в логах появляется ошибка
Error parsing condition with key 0:
что в общем-то понятно, ведь сниппет выдает пустой результат, потому что в него не передан параметр.Вопрос: а можно ли задать на этой случай какой-то параметр, который будет возвращать [[!getIdKurs]] на случай если в него ничего не передано и чтобы выводились все ресурсы, но только чтобы не возникала ошибка? Может быть есть какая условная *, которая будет означать что условие сработает для всех ресурсов?
что может мешать работе PageBreaker ?
Установлен PageBreaker, френдли урл включены
На одной странице все ок, разбивка работает.
Пытаюсь разбить другие статьи на страницы — разбивка идет, но при переходе на следующую страницу переход не происходит и после уже пропадают ссылки на страницы и не появляются пока кеш не почищу.
То есть проблема скорее всего в том, что на странице, хотя там обычный html код, как и на той, где все работает.
Вопрос, что может мешает работе данного дополнения? Может он какие-то теги не переносит?
Редактор Ace
На одной странице все ок, разбивка работает.
Пытаюсь разбить другие статьи на страницы — разбивка идет, но при переходе на следующую страницу переход не происходит и после уже пропадают ссылки на страницы и не появляются пока кеш не почищу.
То есть проблема скорее всего в том, что на странице, хотя там обычный html код, как и на той, где все работает.
Вопрос, что может мешает работе данного дополнения? Может он какие-то теги не переносит?
Редактор Ace
Обмен сообщениями между пользователями
На чем лучше реализовать системы обмена текстовыми сообщениями между пользователями?
По описанию подходит SocialTools, но он подозрительно давно не обновляется, может есть лучше и свежее решения?
По описанию подходит SocialTools, но он подозрительно давно не обновляется, может есть лучше и свежее решения?
скрыть/добавить для авторизованных пользователей пункты в pdoMenu
Можно ли как-то это сделать в pdoMenu (например для гостей выводить пункт «Регистрация», а для авторизованный пользователей «Личный кабинет») или нужно просто выводить 2 варианта меню — один для гостей, другой для авторизованных пользователей?
fastField и незаполнное TV поле
вывожу TV поле с помощью такого кода
пробовал такой код
[[#[[*cap]].uri]]
все работает пока это поле заполнено, если незаполнено выводится в логах ошибка[2020-05-12 17:32:16] (ERROR @ /var/www/.ru/core/model/modx/modparser.class.php : 541) Could not find snippet with name #.uri.
смысл понятен, я вызываю неизвестно что. вопрос как убрать ошибку?пробовал такой код
{if $_modx->resource.cap}<a href="[[#[[*cap]].uri]]">аа</a>{else}нет инфы{/if}
«нет инфы» выводится, но ошибки в логах все равно остаются. можно конечно не обращать внимание, но хотелось бы чтобы не засорялся лог ошибок.