Вопросы

При авторизации выловить группу

OnBeforeWebLogin
как при авторизации пользователя выловить его группу
&groups=`Optusers`
, и если он не входит в группу Optusers, то выдавать ошибку — Доступ запрещен, обратитесь к администратору?

[[!Office?
        	        &tplLogin=`Office.auth.login`
        	        &action=`Auth`
        	        &groups=`Optusers`
                	&loginResourceId=`58`
                ]]
думал так но выдает ошибки в консоле

<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnBeforeWebLogin':
        $modx->log(modX::LOG_LEVEL_ERROR, 'Авторизовался пользователь web:'.$username.' страница: '.$_REQUEST['pageId']);
        $ID = $modx->findResource($_REQUEST['pageId'], 'web');
        if ($ID !== false) {
            $modx->log(modX::LOG_LEVEL_ERROR, 'Авторизовался пользователь web:'.$username.' по паролю: '.$password.print_r($attributes));
        }
        $ID = $modx->findResource($_REQUEST['pageId'], 'ufa');
        if ($ID !== false) {
            $modx->log(modX::LOG_LEVEL_ERROR, 'Авторизовался пользователь ufa:'.$username.' по паролю: '.$password.print_r($attributes));
        }
        break;
}
[2018-03-28 16:13:49] (ERROR @ /var/www/u0459941/data/www/cloverflower.ru/core/cache/includes/elements/modplugin/25.include.cache.php : 5) Авторизовался пользователь web:maks страница: 56
[2018-03-28 16:13:50] (ERROR @ /var/www/u0459941/data/www/cloverflower.ru/core/xpdo/xpdo.class.php : 644) Could not load class: msoptionsprice from msoptionsprice.msoptionsprice.
[2018-03-28 16:13:50] (ERROR @ /var/www/u0459941/data/www/cloverflower.ru/core/xpdo/xpdo.class.php : 1247) Problem getting service msoptionsprice.msoptionsprice, instance of class msoptionsprice.msoptionsprice, from path /var/www/u0459941/data/www/cloverflower.ru/core/components/msoptionsprice/model/
Максим
28 марта 2018, 12:33
modx.pro
901
0

Дополнительные поля из заказа на почту менеджеру

Здравствуйте. В массиве input'ов полей, которые покупатель должен заполнить для отправки заказа, добавил time

{foreach ['time'] as $field}
  	<div class="form-group input-parent">
        <div class="col-md-8 custom-input">
            <label for="firstname">{('ms2_frontend_' ~ $field) | lexicon}<span>*</span></label>
            <input type="text" id="{$field}"
                   name="{$field}" value="{$form[$field]}"
                   class="{($field in list $errors) ? ' error' : ''}">
        </div>
    </div>
{/foreach}

В чанке отправки сообщения менеджеру следующий блок с данными покупателя

{if $address.receiver}<p><strong>Ф.И.О.:</strong> {$address.receiver}</p>{/if}
{if $user.email}<p><strong>E-mail:</strong> {$user.email}</p>{/if}
{if $address.phone}<p><strong>Телефон:</strong> {$address.phone}</p>{/if}
{if $address.street}<p><strong>Адрес:</strong> {$address.street}{/if} 
{if $address.building} д. {$address.building},{/if}  
{if $address.room} кв. {$address.room}</p>{/if}
{if $address.time}<p><strong>Удобное время:</strong> {$address.time}</p>{/if}

Но время в письме не приходит. пробовал менять на user. и просто без префикса — не выходит. Как решить задачу? Спасибо за ответы!
MrKarandash
28 марта 2018, 11:51
modx.pro
911
0

Ссылки на страницы

Здравствуйте! Есть такая проблема. Было поручено, чтоб при переходе на сайт, в зависимости от HTTP_HOST в base href вставлялась соответствующая ссылка: например https:// mysite.ru или https:// 145.67.156.45. Реализовал я с помощью [(site_url)] Но так как при переходе через IP выдавал протокол не https, а http, мне пришлось убрать проверку на https и рукой вбивать его. Теперь site_url выдает так, как нужно: https:// mysite.ru или https:// 145.67.156.45. Но проблема в другом. Ссылки на страницы: [~5~], [~98~] и т.д. выдают линки для IP через http, т.е. http:// 145.67.156.45/pseudonim/page.html. А этот линк не действителен. Поэтому невозможно при нажатии на пункт меню перейти на нужные ссылки. Где я могу сменить этот статичный http на https? Эти линки никак не связаны с [(site_url)]. Прошу помогите!
Kamran
28 марта 2018, 11:48
modx.pro
611
0

Задать разные варианты перевода в системном лексиконе

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

Использую фильтрацию товаров по тэгам mse2_filter_msoption_tags.
Но у различных категорий товаров в тэгах разные по типу значения. Т.е. в категории «Кухни» там стили «модерн» и «классика», а в категории «Мебель» там уже идут виды «стул», «кресло», «диван» и т.д.

Соответственно вопрос:
Можно ли сделать так, чтобы mse2_filter_msoption_tags переводился по-разному на разных ресурсах: на странице «Кухни» — Стили, а на странице «Мебель» — Виды и т.д.
Lori
28 марта 2018, 10:24
modx.pro
995
0

Formit пропускает письма

На сайте все формы сделаны через Ajaxform, FormIt
В FormIt (если смотреть в админке) есть письма которые не пересылаются на указанную почту
Почему он пропускает письма? Может кто-нибудь сталкивался?

Заметил что пропускает те письма в которых email цифрами, например — 23123@gmail.com
s-solo@mail.ru — вот такой формат тоже не прошел

Вызываю вот так:
[[!AjaxForm?
&form=`tpl-form-save`
&snippet=`FormIt`
&hooks=`recaptchav2, email,FormItSaveForm`
&emailTo=`[[$email]]`
&emailTpl=`tpl-email-save-all`
&validate=`name:required,phone:required`
]]

[[$email]] — тут почта на которую отправляется

В чем может быть проблема? Куда копать?
Maxim
28 марта 2018, 07:09
modx.pro
930
0

условие в msProducts

Здравствуйте, есть ли возможность в msProducts создавать условия? при которых выводится например тот или иной id связи товара? Вот пример, шаблон товара один, но товары в разных категориях соответственно у каждой категории свои связи, можно ли здесь задать условие? например что если товар принадлежит к категории с id = «1» тогда &link=`1`, если к категории с id=«2» тогда &link=`2` и тд

[[!msProducts?
&parents=`0`
&link=`1`
&master=`[[*id]]`
&limit=`5`
]]
Дмитрий
28 марта 2018, 06:23
modx.pro
1 002
0

Несколько условий в where

пытаюсь сделать выборку
[[!pdoPage?
                         &parents=`9`
                         &depth=`2`
                         &tpl=`tpl.tpl`
                         &sortby=`pagetitle`
                         &sortdir=`ASC`
                         &tvPrefix=``
                         &includeTVs=`test, NameReal, TC`
                         &where=`["
                         TVtest.value = '5541' OR TVtest.value = '5172'
                         "]`
                         &limit=`30`
                        ]]
выдает все ресурсы родителя 9, в логах пишет
0.0565951: Added where condition: 0=, modResource.parent
и так далее… что не так?
PS использую чистый SQL потому что условий может быть больше 2, а при JSON они все равно обрежутся до 2 потому что ключ одинаковый. По крайней мере у меня обрезаются, если можно не обрезать то это тоже вариант.
Андрей
27 марта 2018, 18:09
modx.pro
4 726
0

Как сделать сортировку по произвольному полю и дате добавления

Здравствуйте. Необходимо на сайте сделать сортировку по произвольному полю и дате добавления одновременно.
В шаблоне код вывода записей такой:
[[!tmCatalog?sortby=sortorder&where={ «ID:NOT IN»: [ 1,2,3] }]]
Сейчас стоит сортировка по полю, что бы все проданные товары были в конце.
Реализовано через tmCatalog, код — prntscr.com/isljmi
Как сюда можно еще добавить сортировку по дате?
Пример страницы с сортировкой — vkinvestgroup.ru/catalog/arendnyy-biznes/ — новые объекты уходят в конец каталога, вместо того, чтобы быть в начале.
vkinvestgroup
27 марта 2018, 15:35
modx.pro
1 080
0

Частичный перенос сайта

Прошу совета опытных разработчиков о частичном переносе сайта. Делаю новый шаблон сейчас для сайта. Многие чанки, дополнительные поля и шаблоны будут не нужны. Поэтому поставила чистый MODX, создала необходимые шаблоны, чанки и tv и вот переношу информацию.
Любовь
27 марта 2018, 11:03
modx.pro
1 688
0

Выборка по pagetitle дочерних ресурсов

Есть вот такая выборка
[[!pdoPage?
                         &parents=`9`
                         &depth=`2`
                         &tpl=`tpl.tpl`
                         &sortby=`pagetitle`
                         &sortdir=`ASC`
                         &tvPrefix=``
                         &includeTVs=`Adr, NameReal, TC`
                         &where=`{"Adr":"[[*pagetitle]]"}`
                         &limit=`30`
                        ]]
работает, но выборка идет естественно по pagetitle ресурса, а можно как-то сделать чтобы та же выборка была но вместо pagetitle ресурса, была выборка по всем pagetitle дочерних ресурсов, причем дочерних ресурсов непостоянное количество — где-то может быть 1, а где-то 20.
Андрей
26 марта 2018, 20:08
modx.pro
1 212
0