Совершенно верно. Сниппет — это чистый php, он весь в Вашем распоряжении. А как бонус — объект $modx со всеми плюшками. Только в сниппете формат [[snippet_name]] не пройдёт, нужно использовать методы $modx, в данном случае - $modx->runSnippet('snippet_name',$params)
чет я «Много ясностей » не догнал… так что в modx revo можно вызывать(сниппет из сниппета) или нет?
Я точно не подскажу, ни тем, ни другим не пользуюсь. Но как всегда советую идти смотреть исходники. И одно, и другое умеет переопределяться.
При регистрации через компонент Login, и вызов сниппета Register, происходит отправка письма для активации учетной записи. В поле «тема» приходит no-reply, а «от кого» — заглушка хостера. Есть ли способ сделать, как с FormIt написав emailFromName или emailFrom, для подмены этих данных?
Сделал сниппет: <?php
$modx->mail->set(modMail::MAIL_FROM,'mymail');
$modx->mail->set(modMail::MAIL_FROM_NAME,'myname');
$modx->mail->set(modMail::MAIL_SENDER,'myname'); Вставил сюда [[!Register? &postHooks=hookComEmail
]] Не помогло…
Спасибо большое.
Наконец вернулся к задаче и с Вашей помощью удалось дойти до следующей «мертвой точки». Данные верно попадают куда надо в переменных, кроме запроса. Запрос с ценой формируется в коде так: $q2 = $this->modx->newQuery('modResource');
$q2->command('update');
$q2->set($data);
$q2->where(array(
"id" => $tmp_object->resource_id,
)); и формируется честно, например: UPDATE modx_site_content
SET price
= 19 WHERE modx_site_content
.id
= 37216 а вот как только я пытаюсь, даже не добавить в дату, а заменить price на «amount» или хотя бы «test» запрос перестает нормально формироваться: UPDATE modx_site_content
WHERE modx_site_content
.id
= 21043 Насколько удалось понять — при формировании запроса (так и не нашел конкретное место, честно говоря) происходит что-то вроде проверки валидности наименования (price, amount и тд). И наименования полей к типу modResource (с указанием таблицы без префикса: site_content) прописаны в паре файлов xml и описаны в файлах php. Но ключевая проблема, что как раз таки где все это описано, конкретно описание «price» так и не удалось обнаружить во всем ядре.
Не могли бы Вы подсказать в каком направлении можно дальше подумать, а то идеи кончились. Может, например, известно, где может быть описано данное поле (ptice), что бы оно как-то обрабатывалось при формировании sql?
Я думал об этом, но это вопрос касательно самого formit. Через getResources такой же ведь результат.
Но если кто-то столкнется с такой-же проблемой делайте вывод через свой сниппет на modx api. Так чанк отправки письма правильно воспринимает синтаксис [[+value]].
Не знаю стоит ли писать код, так как нужные значения берутся из migx. Такой частный случай. :)
Ладно, я просто оставлю это здесь function translit($tit) {
$rus_alphabet = array(
'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й',
'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф',
'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я',
'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й',
'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф',
'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', ' '
);
$rus_alphabet_translit = array(
'A', 'B', 'V', 'G', 'D', 'E', 'IO', 'ZH', 'Z', 'I', 'I',
'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F',
'H', 'C', 'CH', 'SH', 'SH', '', 'Y', '
', 'E', 'IU', 'IA',
'a', 'b', 'v', 'g', 'd', 'e', 'io', 'zh', 'z', 'i', 'i',
'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f',
'h', 'c', 'ch', 'sh', 'sh', '', 'y', '
', 'e', 'iu', 'ia', '_'
);
$trans = str_replace($rus_alphabet, $rus_alphabet_translit, $tit);
echo '[[+'.$trans.'-col]]';
}
$resources = $modx->getCollection('modResource', array(
'template' => 27
));
$output = '<p>Всего ресурсов: '.count($resources).'</p>';
foreach ($resources as $k => $res) {
$resource = $modx->getObject('modResource',$k); $tv = $resource->getTVValue('calcUsl'); $tv = json_decode($tv, true); $x = count($tv); foreach ($tv as $key => $value) { $tit = ($tv[$key][name]); $unit = ($tv[$key][unit]); $price = ($tv[$key][price]); echo '<tr><td>'.$tit.'</td>'; echo '<td>'.$price.' рублей</td>'; echo '<td>'; translit($tit); echo '</td>'; echo '<td>'.$unit.'</td></tr>'; } }
Здравствуйте, после установки analytics dashboard перестала работать админка
По поводу pdoTools лучше задать вопрос на сайте modx.pro — это их разработка