Всего 123 811 комментариев

Роман
16 августа 2022, 09:34
+2
За-то когда сделаете, можете написать статью на modx.pro, другим будет тоже интересно, как вы это реализовали.
Сергей Фещуков
16 августа 2022, 06:52
0
Добрый день. Компонент добавляет в miniShop2 кастомный класс cfOrderHandler, в нём реализована отправка заказов из разных городов разным менеджерам. Для этого надо назначить класс cfOrderHandler в качестве класса-обработчика заказов miniShop2 и городам добавлять плейсхолдер ms2_email_manager. Если для города отдельный email менеджера не будет указан, то в качестве адреса отправки будет взято значение системной опции ms2_email_manager.

С другой стороны, даже без класса обработчика компонент добавляет в заказ свойство cf.from_city в массив properties с ID города, из которого был сделан заказ. Так что в теле письма вывести город вполне возможно. Но вот чтобы в тему письма добавить метку, наверное надо будет дорабатывать класс cfOrderHandler.
Ivan K.
15 августа 2022, 22:28
0
Но теперь seofilter некорректно работает, что же такое))
Ivan K.
15 августа 2022, 22:18
0
Так как я не очень дружу с js. Использовал топорный метод:
закомментировал в функции handlePagination

if (mse2Config['page'] > 1) {
//mse2Config['page'] = '';
//mSearch2.Hash.remove('page');
//mSearch2.load();
}

Все вроде заработало как я хотел.
Ivan K.
15 августа 2022, 22:03
0
Попробовал ваш способ, появились две пагинации, как я и хотел. Большое спасибо за подсказку.

Но некорректно работает, если нажимать на кнопку «загрузить еще» то нормально работает.
И циферки меняются в цифровой пагинации.

Но если начать нажимать на цифровую пагинацию, то «загрузить еще» перестает работать.
Также пропадет гет-параметры в строке "?page=2".
Возможно это связанно с ajaxHistory, но пробовал в любом режиме ajaxHistory, некорректно работает.
Как бы все-таки заставить работать обе пагинации одновременно и корректно?
Роман
15 августа 2022, 21:30
+1
Нужно переписать функцию handlePagination в assets/components/msearch2/js/web/default.js
там для button есть this.pagination.hide(); это нужно убрать.
Копируете файл, там делаете правки, потом указываете в настройка mse2_frontend_js новый файл.
Алексей
15 августа 2022, 16:25
0
Как то решили этот вопрос? Тоже столкнулся с такой необходимостью?
Дима Касаткин
15 августа 2022, 15:34
0
Попробуйте [[*imgBlogDetails]] поменять на → [[#[[+id]].imgBlogDetails]], раз не получается проверить, задан ли
&includeTVs
Анастасия
15 августа 2022, 14:49
0
я не программист, так много не понимаю) как описано в той теме.
Алексей
15 августа 2022, 14:48
0
Тоже интересует этот вопрос.
Роман
15 августа 2022, 14:35
0
а в вызове есть &includeTVs?
вот тут был вариант решения modx.pro/help/18517
сравните
Анастасия
15 августа 2022, 14:16
0
пробовала, не помогло
Ксения
15 августа 2022, 13:42
0
Здравствуйте! Подскажите пожалуйста, с этим модулем будет работать выставление счетов через 1с?
Роман
15 августа 2022, 13:35
0
а если заменить *imgBlogDetails на +tv.imgBlogDetails?
Роман
15 августа 2022, 10:38
0
Используйте у производителя поле страна(country), и пропишите, там если не оригинал, скажем(Китай).
И потом проверяйте
{$vendor.country=='Китай'? 'Реплика' : 'Оригинал'}
Или у вас у одного товара может быть несколько производителей?
Верхний код нужно переписать, так не пишут.
<div class="stock"><span></span> <span class="status-stock">
{switch  $available}
	{case 1}
		В наличии
	{case 2}
		Нет в наличии
	{case 3}
		Под заказ
	{case 4}
		Ожидается (в дороге)
	{case default}	
		Нет в наличии
{/switch}
</span></div>
Роман
15 августа 2022, 10:20
+1
<noscript>
<script type="text/javascript">!function(){
	var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src='https://vk.com/js/api/openapi.js?149',t.onload=function(){
	VK.Retargeting.Init("VK-RTRG-1202537-15OjH"),VK.Retargeting.Hit()},document.head.appendChild(t)}();</script>
	<noscript><img src="https://vk.com/rtrg?p=VK-RTRG-1542597-12OjH" style="position:fixed; left:-999px;" alt=""/></noscript>
</noscript>
Роман
15 августа 2022, 10:19
0
Скорее всего это кэш страницы, мне так кажется.
Артур Шевченко
14 августа 2022, 21:31
1
0
Тикет это ресурс. У ресурса есть поле createdby, которое содержит Id пользователя создавшего тикет. У каждого пользователя, есть поле email. Так же modx генерирует системные события, в частности при сохранении ресурса возникает событие OnDocFormSave. Соответственно, нужно при сохранении ресурса проверять значение поля published у сохраняемого ресурса, если оно true, то нужно получить email пользователя и отправить ему уведомление. Ниже сниппет, который может это сделать
<?php
if(!isset($chunk)){
    $modx->log(1, 'Письмо не отправлено. Не передеан чанк');
    return false;
}

if(!isset($to)){
    $modx->log(1, 'Письмо не отправлено. Не передеан email получателя');
    return false;
}else{
    $to = explode (',',$to);
}

if(!isset($subject)){$subject = 'noreply@'.$_SERVER['HTTP_HOST'];}
if(!isset($from)){$from = 'noreply@'.$_SERVER['HTTP_HOST'];}
if(!isset($reply)){$reply = $from;}
if(!isset($fromName)){$fromName = $modx->getOption('site_name');}
if(!isset($params)){
    $params = array();
}elseif(!is_array($params)){
    $params = json_decode($params, 1);
}

$pdoTools = $modx->getService('pdoTools');
$modx->getService('mail', 'mail.modPHPMailer');

$message = $pdoTools->getChunk($chunk, $params);
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM, $from);
$modx->mail->set(modMail::MAIL_FROM_NAME, $fromName);
$modx->mail->set(modMail::MAIL_SUBJECT, $subject);
foreach($to as $t){
    $modx->mail->address('to',$t);
}
$modx->mail->address('reply-to', $reply);
if(isset($attachment)){
    $modx->mail->attach($attachment);
}

$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
    $modx->log(1,'При отправке письма произошла ошибка: '.$modx->mail->mailer->ErrorInfo);
}

$modx->mail->reset();

Пример вызова
$modx->runSnippet('sendEmail', array(
    'subject' => $hook->formit->config['emailSubjecct'], // тема письма
    'to' => $hook->formit->config['emailTo'], // email получателя
    'from' => $hook->formit->config['emailFrom'], // email отправителя
    'chunk' => $hook->formit->config['emailTpl'], // чанк письма
    'params' => $_POST // параметры, которые передаются в чанк письма
));
Артур Шевченко
14 августа 2022, 21:21
+1
Поставьте пробелы после {, которые внутри пикселя.