Вопросы

Вывод различных визуальных редакторов для разных групп пользователей

Как можно настроить применение разных визуальных редакторов в административной панели для разных групп пользователей?
Вот к примеру для группы пользователей Admin нужен редактор Ace, а для пользователей группы Content Editor нужен редактор TinyMCE. Возможно ли как-то это реализовать?
Антон
02 ноября 2017, 13:20
modx.pro
2
1 700
0

Не работает пагинация PdoTools на главной

Доброго всем времени! Не получается реализовать пагинацию на главной странице. В разделе новости всё работает, но на главной странице отказывается работать.
Делаю так:

[[!pdoPage?
&parents=`4`
&includeTVs=`MFO.Name, MFO.URL, MFO.URL.Referral, MFO.Logo, MFO_PaymentSystems, MFO.Percent, MFO.Sum.Max, MFO.Period.Max, MFO.Period.Min, MFO.ReactionTime, MFO.Advantages`
&tpl=`Item.MFO`
&where=`[[+where]]`
&showLog=`0`
&limit=`10`
&pageLinkScheme=`[[+pageVarKey]]-[[+page]]`
]]
[[!+page.nav]]
404 ошибка страницы 2 и остальных.
Плагин для их обработки
<?php
// Реагируем только на событие OnPageNotFound
if ($modx->event->name == 'OnPageNotFound') {
// Определяем ключ запроса из настроек
$req = $modx->getOption('request_param_alias');
// Ловим нужный ключ страницы
$pageVarKey = 'page';
// Если в запросе повторяется наш шаблон «pageVarKey-page», то работаем дальше
if (preg_match("#.*?({$pageVarKey}-(\d+))#", $_REQUEST[$req], $matches)) {
// Отрезаем ЧПУ строку и получаем точный адрес текущей страницы
$uri = str_replace($matches[1], '', $matches[0]);

// Ищем страницу по этому адресу
$id = 0;
// Сначала как есть, со слешем на конце
if (!$id = $modx->findResource($uri)) {
// Если не находим — то пробуем отрезать слэш и ищем повторно
$id = $modx->findResource(rtrim($uri, '/'));
}

// Если ресурс найден
if ($id) {
// Добавляем номер страницы в глобальные массивы, чтобы pdoPage их там увидел
$_GET[$pageVarKey] = $_REQUEST[$pageVarKey] = $matches[2];
// И загружаем эту страницу
$modx->sendForward($id);
}
// Если ресурс не был найден — ничего не делаем, возможно запрос поймает другой плагин
}
}
Помогите решить проблему пожалуйста.
leonbolier1986
02 ноября 2017, 11:15
modx.pro
768
0

Подписка при регистрации

Здравствуйте! Подскажите, как можно подписывать пользователя на «уведомление о новых записях» сразу в две ветки (секции) tickets плагином после регистрации? Единственное решение, которое здесь нашлось
$subscribers[] = $user->get('id');
$properties = $resource->get('properties');
$properties['subscribers'] = $subscribers;
$resource->set('properties',$properties);
$resource->save();

$resource — секция тикетов
но оно не работает. Спасибо.
Ksu
Ksu
02 ноября 2017, 08:50
modx.pro
698
0

Tickets: свои поля

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

Кто-нибудь знает есть ли возможность у «TicketComments» создавать свои поля и как их помещать в шаблон комментария чтобы они отображались на странице? Просто изначально форма создания комментария содержит следующие поля: имя, email, текст комментария и капча. А что если нужно добавить например поле с темой сообщения или местоположением автора?

Я именю ввиду не путем правки исходных файлов, поскольку таким способом можно конечно сделать все что угодно но мне интересно наличие более простого варианта.

Всем заранее спасибо!
Павлик
02 ноября 2017, 08:38
modx.pro
1
980
0

Отключить парсинг чанка

Добрый день, подскажите, можно ли для определенного чанка отключить парсинг modx?
Чтобы не распарсивались конструкции вида [[.
Попробовал через сниппет вставлять в виде обычного текста — modx все равно парсит такие конструкции.
skripov.in
02 ноября 2017, 06:19
modx.pro
1 312
0

Не отображаются категории на сайте

Здравствуйте! После переноса на новый хост перестали работать категории на сайте. Выдает 500 ошибку
sva2510
02 ноября 2017, 05:24
modx.pro
644
0

`` is not a valid integer and may not be passed to

помогите разобраться с ошибками, просто при обновлении страницы на сайте в журнале появляются 2 сообщения об ошибках:
[2017-11-02 02:03:04] (ERROR @ /home/evgek987/public_html/core/model/modx/modx.class.php : 991) `` is not a valid integer and may not be passed to makeUrl()
[2017-11-02 02:03:04] (ERROR @ /home/evgek987/public_html/core/model/modx/modresponse.class.php : 208) Attempted to redirect to an empty URL.
в чем может быть проблема? На сайте не работают комментарии, и дополнение для подсчета рейтинга статьи (думаю, что ошибки укажут и на источник проблемы с работой етих модулей)
Yevhenii
02 ноября 2017, 00:18
modx.pro
1 950
0

Как сделать сортировку товаров по цене, названию?

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

Использую minishop2 и столкнулся с тем, что не знаю, как вывести на странице категории товаров сортировку по цене, названию, количеству выводимых товаров? Подскажите, пожалуйста, кто знает.

Заранее спасибо!
Константин
01 ноября 2017, 21:14
modx.pro
6
9 245
+1

Один каталог товаров для разных контекстов

Добрый день.
Подмогните плз если кто-то сталкивался с подобной задачей.

Есть сайт с множеством городов, реализованных на субдоменах(обычная реализация с документации).
Задача: не делать копии одних и тех же документов в контекстах и обращаться только к одному каталогу который в контексте «web».

Примерно вот такая структура документов:
Основной контекст(Москва):
— текстовая страница
— текстовая страница
— Каталог товаров
— — Товар 1
Дополнительный контекст(Санкт-Петербург):
— текстовая страница
— текстовая страница

Должно быть вот так:
site.ru/catalog/product-1.html
spb.site.ru/catalog/product-1.html

Т.е. один каталог, но разные поддомены.
Получается, что мы ссылаемся не несуществующий документ. Как можно вот эту проблему с URL подфиксить?
Давно откладывал этот вопрос… но вот сейчас пришлось это сделать, так как очень много этих товаров и дублировать их очень геморно и не нужно если можно обойти это каким-то образом.

ps: если где-то обсуждалось ткните носом.
Заранее спс!
Владимир
01 ноября 2017, 17:07
modx.pro
2
1 538
0

Ошибка в плагине минишоп

подскажите где ошибся
написал плагин, если впервые добавляем в корзину, то он не присваивает в зависимости от условия новую цену, а если там товар этот уже был и мы еще добавили, то пересчитывает

<?php

switch ($modx->event->name) {
     case 'msOnBeforeAddToCart': case 'msOnAddToCart': case 'msOnChangeInCart': // Обрабатывать только события добавления в корзину и изменения количества

        $cartArray = $cart->get(); // Массив корзины
        $cartStatus = $cart->status(); // Состояние корзины

        foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
            if ($product = $modx->getObject('msProduct', $cartProduct['id'])) { // Получаем объект товара по его ID в корзине
            $count = 10;
            if ($count >=1 && $count<=4){
                $tvr = $modx->getObject('modTemplateVarResource', array(
                  'tmplvarid' => 14, //тут ID TV "p1"
                  'contentid' => $product->get('id')
                ));
                    $tv = $tvr->get('value');
                $pr = $tv;
            }if ($count>=5 && $count<=20){
                $tvr = $modx->getObject('modTemplateVarResource', array(
                  'tmplvarid' => 15, //тут ID TV "p2"
                  'contentid' => $product->get('id')
                ));
                    $tv = $tvr->get('value');
                $pr = $tv;
            }if ($count>=21 && $count<=50){
                $tvr = $modx->getObject('modTemplateVarResource', array(
                  'tmplvarid' => 16, //тут ID TV "p2"
                  'contentid' => $product->get('id')
                ));
                    $tv = $tvr->get('value');
                $pr = $tv;
            }if ($count>=51 && $count<=100){
                $tvr = $modx->getObject('modTemplateVarResource', array(
                  'tmplvarid' => 17, //тут ID TV "p3"
                  'contentid' => $product->get('id')
                ));
                    $tv = $tvr->get('value');
                $pr = $tv;
            }if ($count>=101 && $count<=300){
                $tvr = $modx->getObject('modTemplateVarResource', array(
                  'tmplvarid' => 18, //тут ID TV "p4"
                  'contentid' => $product->get('id')
                ));
                    $tv = $tvr->get('value');
                $pr = $tv;
            }if ($count>=301 && $count<=500){
                $tvr = $modx->getObject('modTemplateVarResource', array(
                  'tmplvarid' => 19, //тут ID TV "p5"
                  'contentid' => $product->get('id')
                ));
                    $tv = $tvr->get('value');
                $pr = $tv;
            }if ($count>500){
                $tvr = $modx->getObject('modTemplateVarResource', array(
                  'tmplvarid' => 20, //тут ID TV "p7"
                  'contentid' => $product->get('id')
                ));
                $tv = $tvr->get('value');
                $pr = $tv;
            }

            
                $cartProduct['price'] =  $pr; // Изменение цены
                    $cart->set($cartArray); // Запись нового состояния корзины
            }
            else{
                if ($count >=1 && $count<=4){
                        $tvr = $modx->getObject('modTemplateVarResource', array(
                          'tmplvarid' => 14, //тут ID TV "p1"
                          'contentid' => $product->get('id')
                        ));
                            $tv = $tvr->get('value');
                        $pr = $tv;
                    }if ($count>=5 && $count<=20){
                        $tvr = $modx->getObject('modTemplateVarResource', array(
                          'tmplvarid' => 15, //тут ID TV "p2"
                          'contentid' => $product->get('id')
                        ));
                            $tv = $tvr->get('value');
                        $pr = $tv;
                    }if ($count>=21 && $count<=50){
                        $tvr = $modx->getObject('modTemplateVarResource', array(
                          'tmplvarid' => 16, //тут ID TV "p2"
                          'contentid' => $product->get('id')
                        ));
                            $tv = $tvr->get('value');
                        $pr = $tv;
                    }if ($count>=51 && $count<=100){
                        $tvr = $modx->getObject('modTemplateVarResource', array(
                          'tmplvarid' => 17, //тут ID TV "p3"
                          'contentid' => $product->get('id')
                        ));
                            $tv = $tvr->get('value');
                        $pr = $tv;
                    }if ($count>=101 && $count<=300){
                        $tvr = $modx->getObject('modTemplateVarResource', array(
                          'tmplvarid' => 18, //тут ID TV "p4"
                          'contentid' => $product->get('id')
                        ));
                            $tv = $tvr->get('value');
                        $pr = $tv;
                    }if ($count>=301 && $count<=500){
                        $tvr = $modx->getObject('modTemplateVarResource', array(
                          'tmplvarid' => 19, //тут ID TV "p5"
                          'contentid' => $product->get('id')
                        ));
                            $tv = $tvr->get('value');
                        $pr = $tv;
                    }if ($count>500){
                        $tvr = $modx->getObject('modTemplateVarResource', array(
                          'tmplvarid' => 20, //тут ID TV "p7"
                          'contentid' => $product->get('id')
                        ));
                        $tv = $tvr->get('value');
                        $pr = $tv;
                    }
                    
                    $product->set('price', $pr);
            }
        }

    
        break;

}
Максим
01 ноября 2017, 13:24
modx.pro
1
873
0