Задваиваются письма
При регистрации пользователя через LOGIN подключил сниппет '&postHooks=`email_reg_user`'
Как сделать так чтобы второе не уходило админу
<?php
$email = $hook->getValue('email');
$username = $hook->getValue('username');
$password = $hook->getValue('password');
$fullname = $hook->getValue('fullname');
$phone = $hook->getValue('phone');
//отправляем админу
$message_admin = $modx->getChunk('adminEmailTemplate_reg',array(
'email' => $email,
'fullname' => $fullname,
'username' => $username,
'phone' => $phone
));
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message_admin);
$modx->mail->set(modMail::MAIL_FROM,'noreply@site.ru');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Сайт');
$modx->mail->set(modMail::MAIL_SUBJECT,'регистрация участника');
$modx->mail->address('to', 'admin@site.ru');//$modx->getOption('emailsender'));
$modx->mail->setHTML(true);
$modx->mail->send();
//отправляем пользователю
$message = $modx->getChunk('myEmailTemplate_reg',array(
'email' => $email,
'fullname' => $fullname,
'username' => $username,
'password' => $password,
'phone' => $phone
));
//$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'noreply@site.ru');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Сайт');
$modx->mail->set(modMail::MAIL_SUBJECT,'регистрация');
$modx->mail->address('to', $email);
$modx->mail->setHTML(true);
$modx->mail->send();
проблема в том что на почту (администартора) admin@site.ru приходит два письма adminEmailTemplate_reg и myEmailTemplate_regКак сделать так чтобы второе не уходило админу
Вывести теги товара на странице товара zoomx (smarty)
Здравствуйте!
upd 29.05.2024:
Это простое решение как вывести теги товара на странице товара используя сниппет msOptions.
Просто выводит список тегов теги, которые можно оформить как нужно.
Вызов в шаблоне товара через сниппет (zoomx, smarty):
Код чанка:
Загрузить в /core/elements/chunks (создать папки «elements» и «chunks» если нет. Если изменяли путь до ядра — заменить на свой).
{ $tag } Можно оформить как нужно:
т.е:
upd 29.05.2024:
Это простое решение как вывести теги товара на странице товара используя сниппет msOptions.
Просто выводит список тегов теги, которые можно оформить как нужно.
Вызов в шаблоне товара через сниппет (zoomx, smarty):
{'msOptions'|snippet:[
'options' => 'tags',
'tplRow' => '',
'tplOuter' => '',
'tplEmpty' => '',
'tpl' => '@FILE chunks/tpl.msProductOptionsTags.tpl'
]}
Код чанка:
{foreach $options as $tagsname => $tags}
{foreach $tags as $tag}
{$tag}
{/foreach}
{/foreach}
Загрузить в /core/elements/chunks (создать папки «elements» и «chunks» если нет. Если изменяли путь до ядра — заменить на свой).
{ $tag } Можно оформить как нужно:
<a href="/search?tag={$tag}" class="some-class">{$tag}</a>
т.е:
{foreach $options as $tagsname => $tags}
<p>
{foreach $tags as $tag}
<a href="/search?tag={$tag}" class="some-class">{$tag}</a>
{/foreach}
</p>
{/foreach}
where по одному полю для двух ресурсов
Здравствуйте!
Хочу сделать связь ресурсов по одному полю.
Имею поле connection, в котором множественный выбор.
Это поле добавляется абсолютно ко всем ресурсам. И пытаюсь организовать связь ресурсов.
Но данная схема не работает:
Вот весь мой код вывода связи ресурсов:
Хочу сделать связь ресурсов по одному полю.
Имею поле connection, в котором множественный выбор.
Это поле добавляется абсолютно ко всем ресурсам. И пытаюсь организовать связь ресурсов.
'where' => '{"connection":[[*connection]]}'
Т.е., если у ресурсов сделан одинаковый выбор, то есть возможность вывести ссылку друг на друга.Но данная схема не работает:
'where' => '{"connection":[[*connection]]}'
Может так вообще делать нельзя.Вот весь мой код вывода связи ресурсов:
{var $output = 'ms2GalleryResources' | snippet: [
'tpl' => 'proekt-item-portfolio'
'parents' => '394'
'where' => '{"connection":"[[*connection]]","connection.value:!=":1 }'
'limit' => '6'
'includeThumbs' => 'medium'
'includeTVList' => 'days, connection, video'
'depth' => '0'
'showLog' => '1'
]}
{if $output}
<h3 class="text-center">[[*connection]] в наличии</h3>
<div class="row flex-content-center">
{$output}
</div>
{/if}
Ошибка: Fatal error: Allowed memory size of 104857600 bytes exhausted (tried to allocate 10917680 bytes)
Добрый день. Столкнулся с ошибкой Fatal error: Allowed memory size of 104857600 bytes exhausted (tried to allocate 10917680 bytes) на некоторых страницах сайта, а именно на главной странице и в части страниц раздела «О центре».
Требуется сделать перелинковку на сайте
7
Здравствуйте!
Требуется сделать перелинковку на сайте.
Простая перелинковка с выводом проекта из портфолио в проект товара и по этой же схеме — проект в разделе в наличии в проект товара и в раздел с товарами.
Все подробности можно обсудить в телеграмм.
Всё расскажу и объясню.
https://t.me/@ilya_gradov
Или в через личные сообщения.
По цене договоримся.
Требуется сделать перелинковку на сайте.
Простая перелинковка с выводом проекта из портфолио в проект товара и по этой же схеме — проект в разделе в наличии в проект товара и в раздел с товарами.
Все подробности можно обсудить в телеграмм.
Всё расскажу и объясню.
https://t.me/@ilya_gradov
Или в через личные сообщения.
По цене договоримся.
Как вызвать getService $this->modx в наследуемом классе?
MODX Revolution 2.8.3-pl
Как вызвать getService $this->modx в наследуемом классе, чтобы воспользоваться функциями из другого компонента?
Например в обработчике корзины:
Как вызвать getService $this->modx в наследуемом классе, чтобы воспользоваться функциями из другого компонента?
Например в обработчике корзины:
<?php
class msCartCustomHandler extends msCartHandler {
}
MyFavorites
MyFavorites – компонент, который позволяет добавить на сайт списки избранного. Основной упор сделан на работу с анонимными пользователями, аналитикой и защитой от ботов.
Основные возможности компонента
Основные возможности компонента
- Создание различных списков избранного.
- Работа как с анонимными пользователями, так и только с зарегистрированными.
- Пользовательские списки избранного (пользователь может сам создавать/переименовывать и удалять свои списки).
- Очистка сессий сайта и удаление кук пользователем не влияют на список избранного у анонимных пользователей.
- Идентификация анонимного пользователя и, как следствие, его списка избранного, посетившего сайт с разных браузеров (метод не срабатывает во всех 100% случаев. На сайте должна быть подключена Google Analytics или Яндекс.Метрика).
- Привязка списка избранного анонимного пользователя к зарегистрированному пользователю при его авторизации или создании заказа на сайте.
- Синхронизация избранного на разных устройствах/браузерах, если ранее не было определено, что они принадлежат одному и тому же пользователю.
- Передача данных о событиях добавления/удаления и очистки списка избранного в Google Analytics и Яндекс.Метрика.
- Черные списки IP.
- Защита от CSRF-атаки.
- Защита с помощью reCAPTCHA 3.
- Лимит на запросы для анонимных и зарегистрированных пользователей.
- Уведомление на Email о подозрительной активности пользователя.
- Доступ в админке сайта к информации о пользователях, их списках избранного и активности.
- Экспорт информации о пользователях и избранном в CSV, XLSX и ODS.
- Корректная работа с Cloudflare.
- Быстрая кастомизация стилей через CSS переменные.
- Возможность подписываться на JS события компонента для кастомизации его работы.
- Нативный JavaScript.
Zoomx получить данные родителя на странице товара
Здравствуйте!
Кто нибудь в этой игре «Zoomx» проходил квест: «Получить данные родителя на странице товара»? в шаблоне product.tpl?
Да, можно попробовать вывести через «pdoCrumbs», или другие… А что-нибудь попроще, как например на fenom?
Вроде:
или
Кто нибудь в этой игре «Zoomx» проходил квест: «Получить данные родителя на странице товара»? в шаблоне product.tpl?
Да, можно попробовать вывести через «pdoCrumbs», или другие… А что-нибудь попроще, как например на fenom?
Вроде:
{7 | resource: 'tv_name'}
или
{set $parent_id = $_modx->resource.parent} //Получаем id родителя
{set $grand_parent_id = $parent_id | resource : 'parent' } //Получаем id дедушки
{$grand_parent_id | resource : 'pagetitle'} //выводим заголовок
Modhost и облачное хранилище S3 (timeweb cloud)
Всем доброго времени суток.
Как многие, наверное, видели — в админке для источника файлов можно указать «Тип источника файлов» -> Amazon S3 (Использует хранилище Amazon S3.). Не знаю, работает ли сервера амазона в РФ, и как их оплачивать заметка не об этом.
Смысл в том, что используя технологию «Amazon S3» (облачное объектное хранилище) можно хранить, например, в том числе, медиа файлы (картинки, изображения) не на modhost, а на стороннем сервисе (ничоси). Для сайтов, которые используют большое количество изображений в высоком разрешении это отличное решение. НО!
Как многие, наверное, видели — в админке для источника файлов можно указать «Тип источника файлов» -> Amazon S3 (Использует хранилище Amazon S3.). Не знаю, работает ли сервера амазона в РФ, и как их оплачивать заметка не об этом.
Смысл в том, что используя технологию «Amazon S3» (облачное объектное хранилище) можно хранить, например, в том числе, медиа файлы (картинки, изображения) не на modhost, а на стороннем сервисе (ничоси). Для сайтов, которые используют большое количество изображений в высоком разрешении это отличное решение. НО!
Проблема с контекстами Babel
Здравствуйте! у меня есть 5 контекстов: en|ua|ru|fr|de. Проблема заключается в том, что если я в web версии в адресной строке прописываю такую ссылку www.site.com/franchiza, то меня перебрасывает на 404 страницу франц. версии. Код htaccess и роутинга:
htaccess
htaccess
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(en|ua|ru|fr|de)/favicon.ico$ favicon.ico [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(en|ua|ru|fr|de)/assets(.*)$ assets$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(en|ua|ru|fr|de)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
и Роутинг <?php
if($modx->context->get('key') != "mgr"){
switch ($_REQUEST['cultureKey']) {
case 'ua':
/* switch the context */
$modx->switchContext('ua');
break;
case 'fr':
/* switch the context */
$modx->switchContext('fr');
break;
default:
/* Set the default context here */
$modx->switchContext('web');
break;
}
unset($_GET['cultureKey']);
}