Евгений Лазарев

Евгений Лазарев

С нами с 06 августа 2018; Место в рейтинге пользователей: #437

Помогите с оптимизацией.

Задача такая. В неком главном ресурсе внутри есть блоки задач а в каждом блоке есть задача (Это все в виде ресурсов и коллекций). То есть 2х уровневая структура. У каждоый задачи есть ответственный (пользователь зарегестрированный в системе принадлежащей определенной группе).

Вывод всего этого дела простой — pdoResources и в нем pdoResources. Получается запросов к БД для вывода будет: количество блоков задач + 1.

Но еще нужно вывести select с пользователями к каждой задаче. Это получается запросов к БД будет еще: количество задач.

Список пользователей всегда одинаковы единственное но нужно в этом списке сделать checked на определенном пользователе указанном в задаче.

Можно ли как нибудь это оптимизировать без такого огромного количества запросов к БД?
Евгений Лазарев
18 ноября 2018, 15:35
modx.pro
489
0

Помогите с запросом

Добрый день. Помогите пожалуйста с запросом.
[[!pdoUsers?
                    &groups=`teacher`
&limit=`0`
&tpl=`tplTeachersToSelect`
&innerJoin=`{
    "Student":{
        "class":"modUserProfile",
        "on":"Student.extended LIKE CONCAT('%\"id_teacher\":\"',modUser.id,'\"%')"
    },
    "UserGroupMember": {
        "class": "modUserGroupMember",
        "on": "Student.internalKey = UserGroupMember.member"
    },
    "UserGroup": {
        "class": "modUserGroup",
        "on": "UserGroupMember.user_group = UserGroup.id"
    }
}`
&select=`{
    "modUser": "id",
    "Student":"COUNT(Student.internalKey) as count"
}`
&where=`{
    "UserGroup.name":"student"
}`
&sortby=`{ 
    "count":"ASC"
}`
&showLog=`1`
]]
Суть в чем ищет пользователей группы «6» и для каждого пользователя ищет пользователей «student» для количества. НО! Если для пользователя «6» нет ни одного пользователя «student» то он его просто не выводит. А мне нужно его выводить просто как count указать 0.
Евгений Лазарев
31 октября 2018, 13:01
modx.pro
665
0

Помогите с fenom

Не первый раз сталкиваюсь с тем что нужно сделать проверку условия и в зависимости от этого выполнить тот или иной сниппет и при этом при конструкции написанной ниже так не получится — какая то проблема с кавычками видимо.
[[+type:is=`student`:then=``:else=``]]
Поэтому понравилась работа в fenom.
Но сейчас столкнулся с проблемой (работаю с профилем то есть в шаблоне а не в tpl) что создав тип пользователя в чанке я могу его вывести с помощью [[+type]] но не могу вывести с помощью fenom. Конструкции типа
{$_modx->getPlaceholder('type')}
и
{$_pls['type']}
не помогают.
Ок. Сделал так:
{var $type = "[[+type]]"}
{$type}
Все ок — выводится. Нужно сделать условие к примеру
{if $type in ['school','expert']}
                                yes
                            {else}
                                no
                            {/if}
Не работает правильно. Выводит нет. Хотя сам тип равен 'school'. Помогите плиз.
Евгений Лазарев
16 октября 2018, 14:31
modx.pro
682
0

Помогите с источником файлов в Migx

Уважаемые эксперты. Не пройдите мимо. Помогите с источником файлов.
Есть созданный и проверенный годами источник файлов «images» — images/ в корне. Все с ним супер работает.
Задача: нужно сделать вложенный migx. Делаю из админки в панели приложений. В первом уровне выводятся к примеру заголовки, во втором изображения (Сколько загрузил столько и должны выводиться). Во втором уровне изображения сделаны путем не inputType, а inputTv ссылающийся на дополнительное поле как раз с источником файлов «images»
Но при выводе всего этого хозяйства через getImageList у меня выводятся пути но не подтаскивается источник файлов.
Как быть? Что делать? Подскажите пожалуйста. Всю голову сломал.
Евгений Лазарев
29 сентября 2018, 17:05
modx.pro
830
0

Вопрос по запросу.

Подскажите пожалуйста кто шарит. Суть такая: нужно вывести список учителей (это юзеры с ролью teacher). У выведенного списка учителей нужно в скобочках указать количество учеников, которые им принадлежат (данный признак у учеников лежит в профиле в поле extended в поле id_teacher). Все дело уже реализовано с помощью кода:
[[!pdoUsers?
                    &groups=`teacher`
                    &limit=`0`
                    &tpl=`tplTeachersToSelect`
                ]]
А в самой tpl:
[[!pdoUsers?
    &tpl=`@INLINE`
    &where=`{"modUserProfile.extended:LIKE":"%\"id_teacher\":\"[[+id]]\"%"}`
    &setTotal=`1`
]]
<option value="[[+id]]">[[$fullname]] ([[+total]])</option>
Евгений Лазарев
04 сентября 2018, 16:31
modx.pro
1
731
0

Не работает fenom

Подскажите. Только недавно столкнулся с fenom. Есть код в начале сайте
$user_role = '';

if (!isset($_SESSION['user_role'])){
    $roles = ['student','teacher'];
    foreach ($roles as $role){
        if ($modx->user->isMember($role)){
            $_SESSION['user_role'] = $role;
            $user_role = $role;
            break;
        }
    }
} else {
    $user_role = $_SESSION['user_role'];
}

$modx->setPlaceholder('user_role',$user_role);
А после этого с помощью fenom пытаюсь получить плейсхолдер и ничего не выводит — пустота
{$_modx->getPlaceholder('user_role')}
Скажите в чем может быть проблема?
Евгений Лазарев
23 августа 2018, 18:30
modx.pro
1 353
0