Вопросы

Проверка file со стороны сервера перед отправкой письма

Добрый день, не могу ни как разобраться почему у меня не до конца срабатывает условие. Вроде как делаю все по документации formit
создал валидатор «checkfile»
<?php
$output = true;
$maxFileSize = 50 * 1024 * 1024;
$fileName = $_FILES[$key]['name'];
$fileSize = $_FILES[$key]['size'];

if ($fileName != '') {
  if($fileSize > $maxFileSize) {
    $validator->addError($key,'Размер файла превышает 50 Мб.');
    $output = false;
  }
}
return $output;
вызываю форму
[[!AjaxForm?
                &snippet=`FormIt`
                &form=`tpl.AjaxForm.example`
                &hooks=`email`
                &customValidators=`checkfile`
                &emailSubject=`Сообщение с сайта [[++site_name]]`
                &emailTo=`[[++emailsender]]`
                &validate=`name:required,email:required,phone:required,files:checkfile`
                &validationErrorMessage=`В форме содержатся ошибки!`
                &successMessage=`Сообщение успешно отправлено`
            ]]
и вот чанк самой формы
<form action="" class="ajax_form af_example" enctype="multipart/form-data">
	<div class="left">
	    <div class="group">
    		<input type="text" name="name" value="[[+fi.name]]" placeholder="Имя">
    		<span class="error_name">[[+fi.error.name]]</span>
		</div>
		<div class="group">
    		<input type="phone" name="phone" value="[[+fi.phone]]" placeholder="Телефон">
    		<span class="error_name">[[+fi.error.phone]]</span>
		</div>
		<div class="group">
    		<input type="email" name="email" value="[[+fi.email]]" placeholder="Электронная почта">
    		<span class="error_name">[[+fi.error.email]]</span>
    	</div>
		<input type="file" id="file" name="files" value="[[+fi.files]]">
		<label for="file" class="file">
			<p>Прикрепить файл</p>
			<p>не более 50 мб</p>
		</label>
		<p class="error_files">[[+fi.error.files]]</p>
	</div>
	<div class="right">
		<textarea name="text" placeholder="Сообщение"></textarea>
		<div class="range-slide">
			<p class="title">Ваш бюджет</p>
			<div id="slider" data-min="35000" data-max="400000"></div>
            <div class="numbers">
                <span id="input-with-keypress-2"></span>
                <p>–</p>
                <span id="input-with-keypress-3"></span>
                <input type="text" id="input-with-keypress-0" name="price_from" value="1000000">
                <input type="text" id="input-with-keypress-1" name="price_to">
            </div>
        </div>
		<button type="submit">Отправить</button>
		<p>Нажимая на кнопку «Связаться», я даю согласие на обработку персональных данных, как описано в «<a href="#">Соглашении об использовании сайта</a>»</p>
	</div>
	    [[+fi.success:is=`1`:then=`
    <div class="alert alert-success">[[+fi.successMessage]]</div>
    `]]
    [[+fi.validation_error:is=`1`:then=`
    <div class="alert alert-danger">[[+fi.validation_error_message]]</div>
    `]]
</form>
при отправки формы с файлом превышающим 50мб поля становиться не активными и больше ни чего не происходит, сообщение об ошибке не выскакивает. Подскажите пожалуйста что я сделал не так)
Александр
20 мая 2019, 10:38
modx.pro
1 055
0

Прошу подсказать как правильно импортировать товары через встроенный скрипт minishop2

Я не часто пользуюсь CMS но недавно решил выбрать ModX в качестве платформы для интернет магазина. Сам магазин сверстал и html и прочее на ModX натянул. Сейчас у меня есть csv файл с несколькими тысячами строк данных о товарах: заголовок(title), цена(price), картинки(от 1 на товар до 6)(img) и описание(description). Я знаю что есть скрипт Василия Наумкина, знаю что им много кто пользуется, но я не понимаю как происходит процесс от начала до конца.
Можете пожалуйста сказать, как происходит весь процесс импорта.
P.S. Не кидайтесь тапками pls
Марк
19 мая 2019, 14:23
modx.pro
1
2 503
+1

[РЕШЕНО] miniShop2. Связи товаров, вывод с условием, Fenom

Подскажите, пожалуйста, как правильно указать переменную условия наличия у товара связанных товаров?..
Вызываю Связанные товары с условием:
{if ***************}
<h3>Сопутствующие товары:</h3>
     {'!pdoPage@Bootstrap4' | snippet : [
            'element' => 'msProducts',
            'tpl' => 'tpl.msProducts.row',
            'parents' => '2',
            'link' => '1',
            'limit' => '5',
            'master' => $_modx->resource.id,
        ]}
{/if}
Решение:
{var $links = '!pdoPage@Bootstrap4' | snippet : [
    'element' => 'msProducts',
    'tpl' => 'tpl.msProducts.row',
    'parents' => '2',
    'link' => '1',
    'limit' => '5',
    'master' => $_modx->resource.id,
	'showlog' => 1
]}
{if $links?}
<h3>Сопутствующие товары:</h3>
<div class="card-deck">
    <div class="row justify-content-around">
        {$links}
   </div>
</div>
{'page.nav' | placeholder}
{/if}
websfera
19 мая 2019, 11:50
modx.pro
1
2 671
0

Как через плагин внести изменения в поле content?

Какое событие нужно брать?
<?php
if ($modx->event->name == 'OnLoadWebDocument') {
     $content = str_replace(' src='," data-src=",$content);   
}
Николай
19 мая 2019, 09:40
modx.pro
1 069
-1

runProcessor('resource/update', $data) стирает существующие значения TV

Обновляю ресурс, например так:
$data = Array
(
'class_key' => 'msProduct',
'context_key' => 'web',
'tvs' => '1',
'tv93' => '1558185960',
'price' => '5',
'article' => '20015',
'tv91' => '9',
'id' => '3014',
'alias' => 'alia-takoi-vot',
'pagetitle' => 'Заголовок'
);
$response = $modx->runProcessor('resource/update', $data);
А значения других tv, которые не указаны в $data стираются. Это так и должно работать и нужно до этого получить как-то значения всех tv данного ресурса и передавать в data?
Или есть какой-то способ, чтобы обновлять только нужные tv у ресурса?
Павел
18 мая 2019, 16:48
modx.pro
2 124
0

[РЕШЕНО] Показать/скрыть кастомные свойства товара в админке для одного шаблона товара в зависимости от категории

Добый день. Возникла задача — настраивать какие свойства товара (в том числе и дополнительные) будут отображаться в админке для менеджера при использовании одного шаблона товара в зависимости от того в какой категории находится товар.
Хотел бы спросить совет у старших коллег по цеху — насколько мой вариант «живуч» и есть ли какие-то альтернативы?
Владислав
17 мая 2019, 18:40
modx.pro
1 272
+1

Отправка уведомления владельцу компании при покупке промо-кода

Добрый день! На сайта MODX Revo+minishop2 организована продажа промо-кодов при помощи msKuponator. Появилась задача настроить оповещение владельца компании (почта берётся из поля email производителя msVendor) при покупке промо-кода. Для этого был написан плагин (код под катом), отправка работает, но подробности о промо не удается вывести в письмо из-за того, что
$modx->getCollection('msKuponatorItem', array('order_id' => $msOrder->get('id'), 'status' => 'buyed'));
ничего не возвращает. Хотя при подстановке вместо $msOrder->get('id') конкретного ID всё корректно срабатывает. В чём проблема?
Владимир
17 мая 2019, 17:30
modx.pro
1
1 036
+1

Tickets - Загрузка файлов по группам с фронта

Есть задача добавить в Tickets загрузку файлов (фронт). Логотип и обложку. Но чтоб не путать пользователей, хочу разбить загрузку на 2 отдельных поля. Можно ли сделать это средствами самого Tickets?

Что в идеале хотелось бы получить:
  • вывод в тиккете плейсхолдеры {$img1} и {$img2}
  • ограничение на кол-во изображений — те в поле можно загрузить лишь одно изображение
Есть ли у кого опыт в таких задачах? как вы решили?
Pavel
17 мая 2019, 16:59
modx.pro
891
0

Навесить скидку на производителя Vendors в msDiscount

При попытке навесить скидку на все товары производителя — скидка не добавляется, такого функционала я так понимаю нет?
skiv86
17 мая 2019, 12:32
modx.pro
750
0

Как отправить письмо после регистрации?

Возник такой вопрос:
На сайте отключена активация аккаунта (то-есть активируется пользователь сразу после регистрации)
Соответственно, на почту ему ничего не приходит.
Как сделать отправку простого приветственного письма на почту пользователя, после регистрации?

(Не путать с письмом, которое содержит в себе ссылку для активации аккаунта)
Нужно отправить обычное письмо с приветствием.

Есть мысля сделать это как-то при помощи formit, но с чего начать и как действовать не понимаю.
Возможно есть и другие варианты.
Буду благодарен за помощь!
Андрей
17 мая 2019, 10:06
modx.pro
1
2 229
0