Вопросы
Вопрос по migx + formit
Добрый день!
На страницах сайта вывожу формы при помощи formit и сделал возможность добавлять поля в форму с помощью migx. Все создаваемые поля типа select создаются в migx. Пункты в select создаются также с помощью migx. получается migx в migx.
В чанке формы код такой:
Вопрос. Как передать данные с такой формы в чанк письма администратору?
На страницах сайта вывожу формы при помощи formit и сделал возможность добавлять поля в форму с помощью migx. Все создаваемые поля типа select создаются в migx. Пункты в select создаются также с помощью migx. получается migx в migx.
В чанке формы код такой:
<form id="contact-page-form" class="uk-grid-small ajax_form form contact-form" method="post" action="#" data-uk-grid>
{set $form_fields = json_decode($_modx->resource.id | resource: 'form_fields', true)}
{foreach $form_fields as $form_field}
<div class="uk-width-1-1">
<label class="uk-form-label">{$form_field.label}*</label>
<div class="uk-form-controls">
{set $form_field_label = $form_field.label | lower | replace : " " : "_"}
<select name="{$form_field_label}" class="uk-select">
{set $options = json_decode($form_field.options, true)}
{foreach $options as $option}
<option value="{$option.name}" [[!+fi.$form_field_label:FormItIsSelected=`{$option.name}`]]>{$option.name}</option>
{/foreach}
</select>
</div>
</div>
{/foreach}
</form>Вопрос. Как передать данные с такой формы в чанк письма администратору?
Условие для вывода модификаций
Как правильно написать условие для вывода модификаций товара?
Если одна модификация, то ничего не выводим, если больше, то выводим все
Вывожу так:
Если одна модификация, то ничего не выводим, если больше, то выводим все
Вывожу так:
{set $modification = $_modx->runSnippet('!msOptionsPrice.modification', [
'tpl' => '@FILE chunks/tpl_product_modifications.tpl',
'includeThumbs' => 'small',
])}
{if $modification}
<div class="def-section products">
<div class="block-title">
<h2>Модификации товара</h2>
</div>
{$modification}
</div>
{else}
//если модификация одна, то ничего не выводим
{/if} Фильтрация по опциям в msProducts
Прошу помощи.
Нужно вывести список товаров, у которых пользовательская опция соответствует таковой же у текущего ресурса. Через msProducts делаю так:
Нужно вывести список товаров, у которых пользовательская опция соответствует таковой же у текущего ресурса. Через msProducts делаю так:
'where' => [
'Data.price:>=' => $_modx->resource.price * 0.85,
'Data.price:<=' => $_modx->resource.price * 1.15,
'Data.device_type:=' => $_modx->resource.device_type[0]
]Но не выводит вообще ничего. Ошибка Could not process query, error #1054: Unknown column 'Data.device_type' in 'where clause'Сама опция «device_type» — список с автодополнением. PWA (Progressive web apps) на MODX
Друзья, приветствую! У кого-нибудь есть опыт реализации PWA на modx?
miniShop2, изображение в тело письма не внедряется
Доброе время суток, уважаемое сообщество MODX!
miniShop2
Письмо пользователю о новом заказе, изображения прикрепляются ссылкой.
Нужно поместить в тело письма, не аттачем.
В шаблоне tpl.msEmail
$image — путь к файлу изображения.
$cid — идентификатор.
Остальные, определяются автоматически (из документации PHPMailer).
В Функции sendEmail, добавил embedImage, передал переменные.
В шаблоне, изменил
Как внедрить изображение в тело письма?
Спасибо
miniShop2
Письмо пользователю о новом заказе, изображения прикрепляются ссылкой.
Нужно поместить в тело письма, не аттачем.
В шаблоне tpl.msEmail
<img src="{$site_url}{$product.thumb}">В классе modPHPMailer, для этого есть функцияembedImage($image, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream')Обязательны 2 аргумента:$image — путь к файлу изображения.
$cid — идентификатор.
Остальные, определяются автоматически (из документации PHPMailer).
В Функции sendEmail, добавил embedImage, передал переменные.
В шаблоне, изменил
<img src="cid:{$product.id}">Письмо приходит в base64, без картинок.Как внедрить изображение в тело письма?
Спасибо
Покупка и использование условных единиц
Подскажите, как проще всего организовать покупку и использование неких условных единиц, которые можно тратить на сайте же, скажем на нажатие кнопки.
Покупку, наверное, через miniShop2 — сделать несколько товаров 1, 5, 10, 100 единиц с разной ценой?
А вот как организовать их учет и использование? Чтобы после покупки лицевой счет пополнялся на количество условных попугаев, а по совершении определенного действия эти попугаи списывались, ну и естественно, чтобы без попугаев эти действия невозможно было совершить. Что-то даже в голову ничего не идет…
Покупку, наверное, через miniShop2 — сделать несколько товаров 1, 5, 10, 100 единиц с разной ценой?
А вот как организовать их учет и использование? Чтобы после покупки лицевой счет пополнялся на количество условных попугаев, а по совершении определенного действия эти попугаи списывались, ну и естественно, чтобы без попугаев эти действия невозможно было совершить. Что-то даже в голову ничего не идет…
Редактор HTML
Здравствуйте!
Заметил такую проблему и не могу понять в чём дело.
Редактор html тот который в ресурсах, как то странно глючит. Когда добавляю следующую строчку кода:
Подскажите люди добрые!
Заметил такую проблему и не могу понять в чём дело.
Редактор html тот который в ресурсах, как то странно глючит. Когда добавляю следующую строчку кода:
<table>
<thead>Заголовок таблицы</thead>
</table>переделывает её в:<p>Заголовок таблицы</p>
<table>
<thead></thead>
</table>Автоматически, что не пытался сделать уже не знаю почему так?Подскажите люди добрые!
VirtualPage и получение данных о пользователя
Здравствуйте, через VirtualPage сделал ссылки по типу sitename.com/users/username
Через другие сниппеты и чанки, отображаю всех пользователей сайта, при клике на никнейм, я перехожу к именно этому пользователю, то есть ссылка правильная.
Как теперь в этот ресурс, отобразить любые данные, этого пользователя? В итоге, чтобы любой человек мог узнать информацию об этом пользователе?
Мне ведь по идее, нужно найти пользователя, взять с него все данные и передать в чанк?
Давным давно, делал это, но сейчас никак не получается.
Через fenom можно это сделать?
Заранее спасибо.
Через другие сниппеты и чанки, отображаю всех пользователей сайта, при клике на никнейм, я перехожу к именно этому пользователю, то есть ссылка правильная.
Как теперь в этот ресурс, отобразить любые данные, этого пользователя? В итоге, чтобы любой человек мог узнать информацию об этом пользователе?
Мне ведь по идее, нужно найти пользователя, взять с него все данные и передать в чанк?
Давным давно, делал это, но сейчас никак не получается.
Через fenom можно это сделать?
Заранее спасибо.
Поле со скидкой
есть плагин для реализации скидки при добавлении товаров в корзину
пока вывожу через сниппет, но при увеличении/уменьшении количества, сумма не меняется без перезагрузки страницы
<?php
if ($modx->event->name == 'msOnBeforeAddToCart') {
if ($modx->user->isAuthenticated()){
//$user = $modx->getObject('modUserProfile', $modx->user->get('id'));
$procent = 0;
$sqlz = $modx->query("SELECT count(id) as count,SUM(cost) as summa FROM `modx_ms2_orders` WHERE user_id=".$modx->user->get('id')." and status=10");
$parentz = $sqlz->fetchAll(PDO::FETCH_ASSOC);
foreach ($parentz as $resz) {
if ($resz['count'] == 0){
$procent = 0;
}else{
$sql = $modx->query("SELECT count(id) as count,SUM(cost) as summa FROM `modx_ms2_orders` WHERE `createdon` >= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY) and user_id=".$modx->user->get('id')." and status=10");
$parentu = $sql->fetchAll(PDO::FETCH_ASSOC);
if ($parentu) {
foreach ($parentu as $res) {
if (round($res['summa'],0) < 50000) {
$procent = 0;
}elseif (round($res['summa'],0) >= 50000 && round($res['summa'],0) < 100000){
$procent = 3;
}elseif (round($res['summa'],0) >= 10000 && round($res['summa'],0) < 150000){
$procent = 5;
}elseif (round($res['summa'],0) >= 150000 && round($res['summa'],0) < 200000){
$procent = 8;
}elseif (round($res['summa'],0) >= 200000){
$procent = 10;
}
}
}
}
}
if (/*$user->get('sale')*/$procent > 0){
$old_price = $product->get('price') - ($product->get('price') * ($procent / 100));
$product->set('price', round($old_price, 2));
}
}else{
$modx->event->output('Для покупки товаров, Вам нужно авторизоваться или зарегистрироваться!');
}
}если мы меняем количество в корзине, то сумма меняется — все ок, а как сделать, чтобы еще показывалась сумма без учета скидки?пока вывожу через сниппет, но при увеличении/уменьшении количества, сумма не меняется без перезагрузки страницы
<span>
{'TotalSale' | snippet : [
'price' => $total.cost
]}
</span>сниппет$procent = 4;
$sale = (str_replace(' ', '', $price) * 100) / (100 - $procent);
echo round($sale,1);