On March 26, 2019 we launched new MODX Forums. Please join us at the new MODX Community Forums.
Subscribe: RSS
  • Добрый день!

    Достался по наследству небольший портал (телефонный справочник) на MODX Revolution 2.7.1-pl.

    Базовый шаблон:
    [[$head]]
    [[$header]]
    [[*content]]
    [[$script]]

    На ресурсе в содержимом:
    [[!+modx.user.id:isloggedin:is=`1`:then=`[[!getStaffTableAdmin]]`:else=`[[!getStaffTable]]`]]


    проверка авторизации проходит корректно и выполняет нужный сниппет (выводит нужную таблицу из чанка в снипете), но решил сделать протоколирование в журнал в каждом снипете:
    $modx->log(1, 'run snippet getStaffTableAdmin');
    $modx->log(1, 'run snippet getStaffTable');

    соответственно

    и оказалось, что независмо от авторизации, в журнал попадает две записи, тоесть выполняются два снипета (но в итоге выполняется/выводится нужный).

    Вопрос:
    1. Я может чего не пониманию и это так и должно быть и у меня реализация неверно сделана. Всего лишь необходимо выводить одни данные анонимусам и другие авторизованным пользователям.
    2. Вопрос бы не поднимался, если бы [getStaffTableAdmin] не выполняся дольше обычного и это стало заметно всем остальным анонимусам.
    3. И простите если глупые вещи спрашиваю, недавно разбираюсь с MODX.

    • А попробуйте вот так, оба будут логироваться?
      Если нет, скажу почему))
       [[![[!+modx.user.id:isloggedin:is=`1`:then=`getStaffTableAdmin`:else=`getStaffTable`]]]]
        Anton Tarasov
        MODX Developer

        Email: contact@antontarasov.com
        Web: antontarasov.com
      • Quote from: himurovi4 at Mar 14, 2019, 07:13 AM
        А попробуйте вот так, оба будут логироваться?
        Если нет, скажу почему))
         [[![[!+modx.user.id:isloggedin:is=`1`:then=`getStaffTableAdmin`:else=`getStaffTable`]]]]

        действительно, отрабатывает как надо, согласно условию только один сниппет)

        чувствую, что-то с кешем связанно...