Вопросы

[Решено] MS2 Не работает корзина

Здравствуйте!
Oleg
21 апреля 2019, 20:32
modx.pro
1 014
0

Вопрос по migx + formit

Добрый день!

На страницах сайта вывожу формы при помощи 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>

Вопрос. Как передать данные с такой формы в чанк письма администратору?
Константин
21 апреля 2019, 19:14
modx.pro
1 282
0

Условие для вывода модификаций

Как правильно написать условие для вывода модификаций товара?
Если одна модификация, то ничего не выводим, если больше, то выводим все

Вывожу так:
{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}
Denis Cherepanov
21 апреля 2019, 06:08
modx.pro
937
0

Фильтрация по опциям в 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» — список с автодополнением.
Evgeny Epifanov
20 апреля 2019, 23:33
modx.pro
1
1 506
0

PWA (Progressive web apps) на MODX

Друзья, приветствую! У кого-нибудь есть опыт реализации PWA на modx?
Andrey
20 апреля 2019, 18:52
modx.pro
1 212
0

miniShop2, изображение в тело письма не внедряется

Доброе время суток, уважаемое сообщество MODX!

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, без картинок.
Как внедрить изображение в тело письма?
Спасибо
Iskatel
20 апреля 2019, 12:27
modx.pro
935
0

Покупка и использование условных единиц

Подскажите, как проще всего организовать покупку и использование неких условных единиц, которые можно тратить на сайте же, скажем на нажатие кнопки.
Покупку, наверное, через miniShop2 — сделать несколько товаров 1, 5, 10, 100 единиц с разной ценой?
А вот как организовать их учет и использование? Чтобы после покупки лицевой счет пополнялся на количество условных попугаев, а по совершении определенного действия эти попугаи списывались, ну и естественно, чтобы без попугаев эти действия невозможно было совершить. Что-то даже в голову ничего не идет…
Андрей
19 апреля 2019, 19:32
modx.pro
868
0

Редактор HTML

Здравствуйте!

Заметил такую проблему и не могу понять в чём дело.
Редактор html тот который в ресурсах, как то странно глючит. Когда добавляю следующую строчку кода:
<table>
<thead>Заголовок таблицы</thead>
</table>
переделывает её в:
<p>Заголовок таблицы</p>
<table>
<thead></thead>
</table>
Автоматически, что не пытался сделать уже не знаю почему так?

Подскажите люди добрые!
Oleg
19 апреля 2019, 17:55
modx.pro
800
0

VirtualPage и получение данных о пользователя

Здравствуйте, через VirtualPage сделал ссылки по типу sitename.com/users/username

Через другие сниппеты и чанки, отображаю всех пользователей сайта, при клике на никнейм, я перехожу к именно этому пользователю, то есть ссылка правильная.
Как теперь в этот ресурс, отобразить любые данные, этого пользователя? В итоге, чтобы любой человек мог узнать информацию об этом пользователе?

Мне ведь по идее, нужно найти пользователя, взять с него все данные и передать в чанк?

Давным давно, делал это, но сейчас никак не получается.
Через fenom можно это сделать?
Заранее спасибо.
Пётр
19 апреля 2019, 15:43
modx.pro
745
0

Поле со скидкой

есть плагин для реализации скидки при добавлении товаров в корзину

<?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);
Максим
19 апреля 2019, 15:17
modx.pro
702
0