Вопросы

Какой раздел отвечает за админку Tickets (нужно поле сортировки добавить)

Добавил новые поля в форму тикетов и хочу так же в сортировку по ним в админке добавить
Где находиться обратка Тикетов которая отвечает за админку?
Asd123q
02 июля 2018, 03:59
modx.pro
485
0

Удаление всех неактивных пользователей с одним условием.

Господа, поделитесь решением.

На двух сайтах скопилось достаточно большое количество пользователей, которые не активировали свои аккаунты. Необходимо из всех таблиц где они присутствуют, их удалить. Но с одним лишь условием — что с момента их регистрации прошло 365 дней.

Итого два условия удаления юзверей:
1. Пользователь не активирован
2. С момента регистрации прошло > 365 дней.

Буду рад любой помощи!
Jameson
01 июля 2018, 20:02
modx.pro
2
1 542
0

как сделать вывод pdofield через запятую

Есть tv типа список (множественный выбор).
если выводить его прямо [[*brands]], значения выводятся через запятую:
21, 22, 23, 24, 25, 26, 28, 30, 33, 35, 37, 40, 41, 43, 44, 50, 53, 57, 64, 65, 67, 69, 76, 77
а, если через pdofield :
[[pdoField?&id=`8`&field=`brands`]]
то данные разделяются двойной вертикальной:
21||22||23||24||25||26||28||30||33||35||37||40||41||43||44||50||53||57||64||65||67||69||76||77
в чем дело?
Evgeniy
01 июля 2018, 18:56
modx.pro
1 321
0

Уникальный email

Сейчас на сайте можно регистрировать на один email много аккаунтов. Стоит Login, уникальные поля только username, как сделать уникальным и email тоже? Спасибо.
Fiesto
01 июля 2018, 18:49
modx.pro
1 331
0

Политики доступа

Добрый день.
Есть вопрос по созданию нового пользователя, а точнее его возможности редактирования в админке.
Создаю нового пользователя (контент-менеждер), ограничиваю доступ к файловой системе, ресурсам.
Вообщем-то всё настраиваю, и всё работает, но есть один нюанс.

При входе менеджера в меню пользователи, менеджер видит пользователя Администратор сайта и может редактировать и удалять его. Как спрятать Администратора сайта для контент-менеджера?
Alex
01 июля 2018, 17:35
modx.pro
1 113
+1

Регистрация

где ошибся, при нажатии регистрация — перезагрузка страницы
[[!Register?
                    &submitVar=`registerbtn`
                    &activation=`1`
                    &activationResourceId=`11`
                    &usergroups=`Users`
                    &validate=`nospam:blank,
                      password:required,
                      password_confirm:password_confirm=^password^,
                      username:required,
                      email:required:email`
                    &usernameField=`email`
                ]]
				<form action="[[~[[*id]]]]" method="post">
				    <input type="hidden" name="nospam" value="[[!+reg.nospam]]" />
					<input type="text" name="usref" placeholder="Ваш пригласитель:">
					<input type="text" required name="username" placeholder="Логин:" maxlength="100" value="[[!+reg.username]]">
					<input type="text" required name="email" value="[[!+reg.email]]" placeholder="Текущий e-mail:"/>
					<input type="password" required name="password" value="[[!+reg.password]]"  placeholder="Пароль:"/>
					<input type="password" required name="password_confirm" value="[[!+reg.password_confirm]]"  placeholder="Повторите пароль:"/>
					<div class="checkbox">
	                    <input type="checkbox" required checked="" id="checkbox">
	                    <label for="checkbox">Я согласен с условиями <a href="">лицензионного соглашения</a></label>
	                </div>
					<button type="submit" name="registerbtn" class="btn-green">Регистрация</button>
				</form>
Максим
30 июня 2018, 23:13
modx.pro
994
0

miniShop2 Артикул - Уникальное поле

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

Создал плагин проверки на уникальность поля артикул при создании товара в miniShop2, как описано здесь:
modx.pro/help/4755/
<?php
if ($modx->event->name == 'OnBeforeDocFormSave') {
	if($resource->get('class_key') !== 'msProduct') {return;}
	$article = $resource->get('article');
	if(empty($article)) {return;}
	$q = $modx->newQuery('msProductData', array('article' => $article ));
	if ($mode == 'upd') {
		$q->where(array('msProductData.id:!=' => $resource->get('id')));
	}
	if ($modx->getCount('msProductData', $q)) {
		$response = array(
		'success' => false,
		'message' => 'Товар с таким артикулом уже существует!',
		'data' => array(),
		);
		echo $modx->toJSON($response);
		exit;
	}
	
}
Благодарность авторам!
Работает, не позволяет дублировать Артикулы.
Но есть проблема: при сохранении, очищаются все поля во вкладке «Свойства товара» (сохраняю, находясь в этой вкладке). Пустые поля после сохранения! При повторном вводе в эти поля — они сохраняются.
Даже, если Артикул новый уникальный — результат тот же, поля пустые!
Просьба помочь.
Только изучаю MODX и miniShop2.
Спасибо

PS Кликабельная ссылка на первоисточник вставляется, но не отображается, указал текстом без протокола
Iskatel
30 июня 2018, 15:53
modx.pro
1
1 656
0

Как вызвать mFilter2 через runSnippet с помощью API MODX ?

Здравствуйте, подскажите пожалуйста, я вызываю mFilter2 через MODX API, ну и к тому же это всё работает через ajax. То есть вот как всё происходит:
Есть ajax запрос:
$.ajax({
				type: "POST",
				url: 'assets/template/php/action.php',
				dataType: 'html',
				data:{"objectID":IdElem}, //Тут передаю ID ресурса на сервер
				success:function(msg) {
					$(".SectionContent").empty();
					$(".SectionContent").append(msg);
				}
			});
А на сервере вот такой обработчик:
define('MODX_API_MODE', true);
require_once($_SERVER['DOCUMENT_ROOT'].'/index.php');
$modx=new modX();
$modx->initialize('web');
/* include MODX_API END */
$IDResureses = $_POST["objectID"];
$parametrArray = array(
		'suggestions' => '',
		'class' => 'msProduct',
		'element' => 'msProducts',
		'limit' => '8',
		'sort' => 'ms_vendor|Id:asc',
		'parents' => $IDResureses,
		'tplOuter' => 'mSearch2_blockElement2',
		'tpls' => 'tpl.msProducts.row2',
		'includeTVs' => 'fileDowl,Proiz',
		'includeThumbs' => 'medium',
		'filters' => 'ms|vendor:vendors',
		'tplFilter.outer.ms|vendor' => 'tpl.mFilter2.filter.outerMain',
		'tplFilter.row.ms|vendor' => 'tpl.mFilter2.filter.checkboxMain',
		'ajaxMode' => 'button',
		'CurrentID' => $IDResureses, //Это я добавил параметр в mFilter2 в него передаю ID ресурса который пришел из ajax
		);
$output = $modx->runSnippet('mFilter2My',$parametrArray); //И сделал копию mFilter2 только с именем mFilter2My
$modx->getParser()->processElementTags('', $output, false, false, '[[', ']]', array(), 10);
$modx->getParser()->processElementTags('', $output, true, true, '[[', ']]', array(), 10);
$modx->log(1, print_r($output, 1));
echo $output;
Ну добавил в mFilter2 только по сути одно условие вот оно:
if (!empty($CurrentID)) {$modx->setPlaceholder('AjaxId',$CurrentID);}
И потом вот после того как php выполнился, получаю вот такую вот разметку, это код чанка 'tplOuter' => 'mSearch2_blockElement2', но соответственно вместо плейсхолдеров и всего остального я получаю html соответствующий:
<div class="msearch2" id="mse2_mfilter">
    <div class="row" id="filterBlock">
        <div class="col-md-12 main-filter-Config">
            <ul class="nav nav-pills nav-justified" id="myTab" role="tablist">
              <li class="nav-item checkElemBefore">
                <a class="witdhElement nav-link active" title="Фильтр по производителю" id="fabr-tab" data-toggle="tab" href="#fabr" role="tab" aria-controls="fabr" aria-selected="true">Производитель <span class="count-check-checkElem1 disNon">(<span class="elemcheck currentCheck-checkElem1"></span> из <span class="elemcheck allCheckbox-checkElem1"></span>)</span></a>
              </li>
            </ul>
            <div class="main-line-default"></div>
            <form action="[[+AjaxId]]" method="post" id="mse2_filters">
                <div class="resultQuery tab-content" id="pills-tabContent">
                    [[+filters]]
                </div>
                [[+filters:isnot=``:then=`
				<button type="reset" class="restartBtn btn btn-default hidden">[[%mse2_reset]]</button>
				<button type="submit" class="btn btn-success pull-right hidden">[[%mse2_submit]]</button>
				<div class="clearfix"></div>
			    `]]
            </form>
        </div>
    </div>
    <div class="informationBlock"></div>
    <div class="row gridElementShop">
        <div class="col-md-12 Arraycollection">
            <div id="mse2_results" class="contentBlock row">
                [[+results]]
            </div>
            <div id="pdopage" class="mse2_pagination">
    			[[!+page.nav]]
    		</div>
        </div>
    </div>
</div>
Вся вот эта разметка возвращается с сервера и я с помощью Jquery вставляю полученный html в блок
$(".SectionContent").empty();
$(".SectionContent").append(msg);
Но вот проблема в том, что фильтры теперь не работают после этого. Подскажите пожалуйста как сделать так что бы когда мы вызываем mFilter2 через ajax, и получаем html с фильтрами, сами фильтры работали?
Просто вот кстати что я заметил, когда я выбираю какой либо фильтр, после того как получил html и вставил его на страницу с помощью ajax. Сам Ajax запрос от mFilter2 отправляется и соответственно ответ получаю см. скриншот «ajax запрос», но он не вставляется на страницу и вот пагинация тоже, у меня стоит параметр 'ajaxMode' => 'button', а в итоге получаются пагинация цифрами, а должна быть кнопкой. Ну и в итоге данная проблема только когда я используя ajax и API MODX-а для вызова mFilter2. Когда он просто вызывается в ресурсе таким вот образом [[!mFilter2… ]] всё в порядке.
Подскажите пожалуйста что тут можно сделать, заранее благодарю за внимание и ответ.
Сергей Хлопов
30 июня 2018, 09:35
modx.pro
1
1 530
0

Отдельное TV для определенного контекста

Народ, подскажите, как для контекста сделать TV, чтобы у документов с аналогичным шаблоном в другом контексте его не было видно?
Murashkin
29 июня 2018, 18:03
modx.pro
2
1 256
0

Вывод TV со множественным списком

Вывод TV со множественным списком, не пойму. Ставлю вывод Разделитель (,) запятая, а выводит 81||82||84. В «Разделитель» пробовал многое писать… Вывод один и тот же.

TV заполнен так:
Русский ru==80||Литовский lt==81||Польский pl==82||Английский en==83||Немецкий de==84||Французкий fr==85||Голландский nl==86||Украинский uk==87
Евгений
29 июня 2018, 16:35
modx.pro
1 013
0