• Как в MODX заставить Ckeditor отображать контент так, как он отображается в браузере при открытии url?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    У меня изменение стилей через файл, указанный в параметре editor_css_path, вполне работает. Версии MODX и CKeditor те же, что и у Вас.

    Надо сказать, что после обновления файла со стилями, необходимо очищать кеш браузера.

    P. S. У Вас возможно ошибка с написанием самих стилей. Прикрепите хотя бы скрин части файла overall.css, или опубликуйте часть кода из этого файла.
    Ответ написан
  • Как добавить форму на главную в modx?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Рекомендую начинать изучение любой CMS с чтения документации.
    Вот по EvolutionCMS: https://docs.evo.im

    Конкретно по вашему вопросу ответ находится здесь: https://docs.evo.im/03_develop/02_elements/03_snip...
    Ответ написан
    Комментировать
  • Как вывести товары по значению tv с Migx?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Можно попробовать при помощи параметра выборки &where:
    [[getImageList? 
        &where=`{"top:=":"да"}`
        ...
    ]]
    Ответ написан
    1 комментарий
  • Почему ajax не срабатывает в FireFox MODX?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Потому что у вас по запросу на адрес modx2.my-tamagochi.ru/ajax1 возвращается ответ с ошибкой 404. И не только в Firefox, я проверил еще Яндекс.Браузером, Эджем и Хромом — тоже самое.
    Ответ написан
    Комментировать
  • Как сделать такую форму?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Это Квиз (опрос).
    Есть готовое дополнение для MODX за 990 рублей.

    Сделать Квиз на чистом FormIt будет непросто.
    Ответ написан
    Комментировать
  • Почему не работает проверка ModX?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    В сниппете getImageList в параметре &tpl=`@CODE:...` нельзя использовать модификатор вывода. Перенесите код в отдельный чанк, а имя чанка укажите в параметре &tpl=`имяЧанка` и все заработает.

    P. S. после class="img-fluid кавычку забыли.
    Ответ написан
    Комментировать
  • Как правильно присвоить классы изображениям в условном модификаторе tpl.msGallery для товаров old_price, new и обычных?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Приветствую!
    Для начала сто́ит код модификатора then написать в кавычках:
    [[+new:isnot=``:then=`
    <img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item new">
    `:else=`
        [[+old_price:isnot=``:then=`
    <img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item sale">
        `:else=`
    <img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item">
        `]]
    `]]

    А во вторых обратите внимание, что у Вас в любом случае выводится одна и та же строка с разницей в одно слово, поэтому можно условие записать вот так:
    <img src="{$file['medium']}" alt="{$file['description']}" title="{$file['name']}" class="item[[+new:isnot=``:then=` new`:else=`[[+old_price:notempty=` sale`]]`]]">

    Плюс избавились от второго else.
    Ответ написан
    4 комментария
  • Fenom вывод изображения MIGx через phpthumbon, что-то нужно исправить?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    <img class="portfolio-img" src="{$row.licimage | phpthumbon : 'w=1280&h=720&zc=0'}" alt="{$row.licalt}" title="{$row.licalt}">
    Ответ написан
  • Как правильно вывести выпадающие подменю в хлебных крошках?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Код параметров &tpl и &tplCurrent, раз вы там вызываете сниппеты, стоит перенести в отдельные чанки без @INLINE. А в параметрах укажите имена этих чанков.
    Ответ написан
  • Как убрать разделитель в ТВ?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    pdoResources по умолчанию выводит tv типа «Список» не обработанным. Что бы его обработать можно добавить эту тэвэшку в параметр &processTVs:
    [[pdoResources?
        &processTVs=`param`
    ]]

    Можно вместо имени tv поставить `1`, тогда будут обработаны все, что указаны в параметре &includeTVs.
    Список будет обрабатываться как указано в параметрах вывода. По умолчанию разделителя не будет.

    Другой вариант — воспользоваться модификатором вывода строки:
    [[+tv.param:replace=`||==,`]] или [[+tv.param:stripString=`||`]]
    Ответ написан
    Комментировать
  • Подсчет количества только тех ресурсов которые показываются в меню?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Придется использовать свой сниппет.
    Для этого код вывода категории переносим в отдельный чанк:
    [[pdoMenu?
        &parents=`0`
        &level=`2`
        &tplInner=`@INLINE [[+wrapper]]`
        &tplParentRow=`svoeImyaChanka`
        &countChildren=`1`
    ]]

    Чанк svoeImyaChanka:
    <li [[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a> ([[childrenCounter? &id=`[[+id]]`]])</li>[[+wrapper]]

    Сниппет childrenCounter:
    <?php
    /**
     * childrenCounter
     *
     * DESCRIPTION
     *
     * Сниппет выводит количество дочерних ресурсов для ресурса с указанным id.
     *
     * PROPERTIES:
     *
     * &id целое число. Default: ID текущего ресурса
     *
     * USAGE:
     *
     * [[childrenCounter? &id=`7`]]
     *
     */
    $id = (int) $modx->getOption('id', $scriptProperties);
    if (!isset($scriptProperties['id'])) {
        $id = $modx->resource->get('id');
    }
    $q = $modx->newQuery('modResource');
    $q->where(array(
       'parent' => $id,
       'deleted' => 0,
       'published' => 1,
       'hidemenu' => 0
    ));
    $counter = $modx->getCount('modResource', $q);
    return $counter;
    Ответ написан
    1 комментарий
  • Как к числу добавить процент в XML документе?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    [[*TVname:mpy=`1.15`]]
    Ответ написан
  • Как изменить отдельный пункт меню modx?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Можно сделать так.
    В параметре tpl сниппета указать имя чанка, а в самом чанке написать код с проверкой на id ресурса и если совпадает, то подставить класс.
    [[pdoMenu?
        &tpl=`topMenuItem.tpl`
        ...
    ]]

    Чанк topMenuItem.tpl:
    <li class="header__nav-item[[+id:is=`id_ресурса_Туры_с_кэшбеком`:then=` special-class`]]">
         <a href="[[+link]]" class="header__nav-link link_btn">[[+menutitle]]</a>
         [[+wrapper]]
    </li>


    P. S. Если хотите ответ по коду, то показывайте код в текстовом формате, а не картинкой.
    Ответ написан
    3 комментария
  • Как в modx выводить дату+n дней?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Можно создать лишний сниппет (для MODX это лишнее обращение к базе данных), а можно воспользоваться модификаторами вывода, которые могут очень многое и это тоже:
    [[+phx:input=`+7 day`:strtotime:date=`%d.%m.%Y`]]
    Форматы даты модификатора date.
    Ответ написан
    Комментировать
  • Modx Revo api как сделать статус онлайн/оффлайн в выборке пользователей?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Сергей Миллер, к сожалению в MODX нет решения «из коробки» для показа онлайн ли пользователь. Так как у Вас желание сделать именно через API, а не сторонними дополнениями (UsersOnline), то придется постараться. Для начала надо определить, что значить «пользователь онлайн»? Ведь могут быть различные варианты поведения. Пользователь открыл страницу сайта и отошел от компьютера, не закрывая браузера, или переключился на другую вкладку. Он онлайн? Или открыл страницу и сразу закрыл браузер, как узнать что он уже не онлайн. Самый простой и наверное самый распространенный способ, это хранить в базе данных точное время последней загрузки любой страницы пользователем и считать, что если это произошло недавно (минут 5 или 10 назад), то пользователь еще активен.
    Для этого создадим плагин, например userLastAction и подключим ему системное событие OnLoadWebDocument (код отчасти взят у Василия Наумкина):
    <?php
    switch ($modx->event->name) {
    	case 'OnLoadWebDocument':
    		// Сохраняем дату открытия любой страницы сайта, если пользователь авторизован
    		if ($modx->user->isAuthenticated($modx->context->key)) {
    			// Здесь мы работаем с текущим пользователем — у него профиль уже загружен
    			$profile = $modx->user->Profile;
    			// Сохраняем дату и время в поле факс (а зачем еще это поле?) профиля пользователя
    			$profile->set('fax', date('Y-m-d H:i:s'));
    			$profile->save();
    		}
    		break;
    }


    Теперь при открытии любой страницы сайта любым пользователем будет сохранятся точное время этого действия, привязанное к профилю пользователя. Остается только при формировании списка проверять, давно ли он пользователь совершал действие на сайте.
    Я например писал такой сниппет userOnline:
    <?php
    $output = '';
    // Если есть ID пользователя
    if ($input) {
        $userId = (int)$input;
        // Если в параметрах не установлено через какое количество секунд считать пользователя "офлайн", то берем 10 минут
        $idleTime = $options ? (int)$options : 600;
        // Получаем объект пользователя по ID
        $user = $modx->getObject('modUser', $userId);
        if (!empty($user)) { // Если пользователь существует, то...
            // Получаем его профиль
            $profile = $user->getOne('Profile');
            // Получаем время его последнего действия
            $userLastAction = $profile->get('fax');
            if (!empty($userLastAction)) {
                // Если есть время в базе, то проверяем меньше ли оно установленного нами времени признания пользователя активным
                if (date('U') - date('U', strtotime($userLastAction)) < $idleTime) {
                    // Если да, будем выводить слово "online"
                    $output = 'online';
                } else {
                    // Если нет, то — время его последнего действия
                    $output = $userLastAction;
                }
            }
        }
    }
    // Выводим результат
    return $output;

    Вам придется это еще переработать под себя.
    Ответ написан
    1 комментарий
  • GetObject в MODX EVO возвращает null как решить?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    В Evo API отличается от API MODX Revo.
    Здесь для получения информации о веб-пользователе надо использовать getWebUserInfo.
    Ответ написан
    Комментировать
  • Как в Modx Revo вывести всех пользователей определенной группы?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Если известно, что пользователи состоят только в этой группе или это их главная группа, то тут всё легко.
    $groupName = 'boys';
    //Получаем ID группы
    $groupId = $modx->getObject('modUserGroup', array('name' => $groupName))->get('id');
    
    //Получаем коллекцию объектов пользователей с выборкой по группе
    $users = $modx->getCollection('modUser', array('primary_group' => $groupId));
    
    foreach ($users as $user) {
        
    }

    А вот если пользователи могут состоять в нескольких группах и список нужен не по главной группе, то тут немного сложнее...
    $groupName = 'boys';
    //Получаем ID группы
    $groupId = $modx->getObject('modUserGroup', array('name' => $groupName))->get('id');
    
    //Получаем коллекцию объектов групп пользователей с выборкой по группе
    $userGroupMembers = $modx->getCollection('modUserGroupMember', array('user_group' => $groupId));
    
    //прогоняем коллекцию через цикл
    foreach ($userGroupMembers as $userGroupMember) {
    
    //Получаем объект пользователя через объект группы
        $user = $userGroupMember->getOne('User');
    
    //Делаем с объектом пользователя, что пожелаем...
    }
    Ответ написан
  • Как сделать условие активации и деактивации кнопки?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Попробуйте лучше такой вариант, он правильный и очень лаконичный:
    <a href="[[+tv.file-download]]" class="btn btn-success btn-sm[[+tv.file-download:empty=` disabled" tabindex="-1" aria-disabled="true`]]"><i class="fas fa-download"></i> Скачать</a>
    Ответ написан
    Комментировать
  • Почему не выводит getimagelist из редактора ресурса?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Сделайте вызов сниппета некэшируемым:
    [[!getImageList? 
            &tvname=`gallery`
            &docid=`[[+id]]`
            &tpl=`@CODE:
            <div class="item">
              <img src="[[+image]]" alt="" width="844" height="531">
            </div>`
            &tvname=`img-slide`
            ]]
    Ответ написан
    Комментировать
  • Как в ModX посмотреть исходный код всей страницы?

    alelunegov
    @alelunegov
    Фрилансер. Разработка сайтов на MODX, верстка
    Можно попробовать посмотреть в кэше:
    /core/cache/resource/web/resources/[id ресурса страницы].cache.php
    Ответ написан
    Комментировать