Серый

Серый

С нами с 17 марта 2016; Место в рейтинге пользователей: #182

Автопереименование повторяющегося URL

Честно гуглил, найти не смог, нейронки не могут.
Вся надежда на органический интеллект
Просто дописываем в URL "_1" при сохранении, если документ с аналогичным URL уже существует.
_2, _3 и тд, просто меняем цифру
Помогите пожалуйста, полезная штука…
Серый
21 октября 2025, 20:51
modx.pro
374
0

Перестал работать autoRedirector

Гайз, помогите пожалуйста понять: редиректы (правила) создаются, но самой переадресации не происходит. Кодировка таблицы в БД: utf8_general_ci, никаких StercSEO и других плагинов работающих с OnPageNotFound — нет, плагин переустанавливал с полным удалением, кэш чистил, слеши в начало адреса ставил, все настройки Friendly и Alias проверял, ошибков в логах нет.
Серый
24 сентября 2025, 13:56
modx.pro
140
0

Автоматическое переключение контекстов Babel по языку браузера

День добрый!
Есть сайт на два языка: ru (основной)/ en (дополнительный)
Ключи контекстов именно такие: ru, en
Задача такова:
Если человек заходит с браузером с английским языком на любую страницу, то автоматически переводить его на её копию в английском контексте.
Если он переключает язык — не мешать, переходить на основную, русскую версию.
Если с русского языка заходит — ничего автоматически не перенаправлять.

Есть вот такой код:
Но работает как-то криво, если в русском браузере тыкаться внутри английской версии, то часто выдает 404 — uri подставляет из английской, а в контекст отправляет русский.
<?php
/* Запускаем плагин только на фронтенде и с включенными sef-url */
if ($modx->context->key == 'mgr' || !$modx->getOption('friendly_urls') || $modx->event->name != 'OnHandleRequest') {
    return;
}

/* Проверяем GET-параметр cultureKey */
if (!empty($_GET['cultureKey'])) {
    switch ($_GET['cultureKey']) {
        case 'en':
            $modx->switchContext('en');
            break;
        default:
            $modx->switchContext('web');
            break;
    }

    /* Очищаем GET-параметр, чтобы не появлялся в URL */
    unset($_GET['cultureKey']);
} else {
    /* Если cultureKey не указан, проверяем язык браузера */
    $browserLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

    if ($browserLang === 'en') {
        $modx->switchContext('en');
    }
    /* В остальных случаях оставляем текущий контекст (обычно web) */
}
Реально ли как-то довести до ума, чтоб всё работало по-человечески?
Заранее сердешная благодарность и чем могу, тем смогу
Серый
10 сентября 2025, 19:55
modx.pro
251
0

RTE для introtext: помогите пожалуйста с подсказкой

Существует плагин для того чтоб в поле introtext тоже был RTE:
<?php
// check "OnDocFormRender" event
$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
});</script>');
однако на практике не очень удобно, когда оно вообще везде.
Пожалуйста подскажите как этот код модифицировать, чтоб можно было вписать список id шаблонов, где он должен появляться, либо может список шаблонов-исключений, в которых он не нужен?
Вариант с id ресурсов тоже был бы хорош!
Заранее благодарю.
Серый
24 декабря 2024, 20:14
modx.pro
1
681
0

Модификатор сортировки pdoResources по pagetitle

Всем привет!
Есть набор ресурсов — персоналии. Имя и фамилии разделены тегом br.
Возникла задача сортировать по фамилиям.
Нагуглил php код, сделал сниппет-модификатор (там у меня нормальный br c <>, просто здесь его разрывом строки заменяет):
$string = "$input";
$new_array = explode("br" , $string); 
$output = end($new_array);
return $output;
если просто на странице вывести:
[[*pagetitle:getSurname]]
— всё круто, выводит всё, что после br, исключая этот br
Делаю вызов pdoResources:
[[!pdoResources:default=``?
    &parents=`65,20`
    &sortby=`pagetitle:getSurname`
    &sortdir=`ASC`
]]
ничего не выводит.
Направьте пожалуйста, заранее спасибо!
Серый
26 ноября 2024, 14:07
modx.pro
554
0

Collections по умолчанию отображать только опубликованные

Коллеги, добрый день!
Пожалуйста подскажите, как сделать, чтоб при отображении списка ресурсов в Collections по умолчанию отображались только опубликованные, чтоб каждый раз вверху справа фильтр не переключать. Честно искал и гуглил, максимум — нашел код некого плагина с которым делать не пойму что.
Пожалуйста подскажите, направьте, заранее сердешно благодарю!
var filter_combo = Ext.getCmp('collections-grid-filter-status');
filter_combo.setValue('published');
filter_combo.fireEvent('select', filter_combo);
Серый
06 августа 2024, 00:03
modx.pro
391
0

DaterangeTV как задать условие, публиковать ресурсы до КОНЦА диапазона?

По умолчанию получается задать условие на начало диапазона:
[[pdoResources?
    &where=`["dateRange >= \"[[!today]]\""]`
]]
А нужно, что бы фильтровались события, у которых весь срок «вышел».
Помогите пожалуйста, документацию смотрел так и сяк, но видимо многих вещей еще не знаю, что б разобраться, а нужна как бы только одна строка кода, видимо((
Вот документация на расширение

Там есть вот такая формулировка, но что с ней делать?

Template Variable that contains the end value of the daterange. If used, the DaterangeTV contains only the start value. The end value template variable should be created as a hidden template variable type.

Заранее спасибо!!!
Серый
30 июня 2023, 12:52
modx.pro
1
565
0

PdoResources внутри MIGX в админке

Добрый день! Задачка выглядит так:
1) Есть родитель, внутри которого дети – доктора медцентра
2) Есть другой родитель, его дети – категории услуг медцентра
3) В ресурсе категории (например «Обследования») — MIGX, где при редактировании вкладки выбираем докторов из Родителя №1, а в таблице в колонке — вывод ФИО этих докторов по id-шникам выбранных во вкладке специалистов.
Делаю такой чанк, который вывожу в поле через this.renderChunk:
[[pdoResources?
    &parents = `2`
    &resources = `
    [[getImageList?
        &tvname=`serviceList_MIGX`
        &tpl=`@CODE: [[+doctors]]`
    ]]` 
    &tpl = `@CODE: [[+pagetitle]]</br>`
]]
Получаю какой-то винигрет.
Проблема в том, что в плейсхолдере [[+doctors]] выводятся сначала через запятую id выбранных в этой строчке докторов, а потом через пробел id всех остальных докторов из столбца.

Серый
30 июня 2022, 13:49
modx.pro
753
0

Как вывести на странице редактирования ресурса сниппет (связанные с ним ресурсы)?

Добрый день, уважаемые коллеги!
Есть родитель А, внутри которого дочерние ресурсы: артисты фестиваля
Есть другой родитель — В, внутри которого дочерние ресурсы: концерты фестиваля
Редактируя концерт, можно выбрать через TV-список артистов из родителя А
Встал вопрос: можно ли на страницу ресурса вывести сниппет, что б там красиво, как будто на внешней части сайта выводить, например через pdoResources список концертов, когда этот артист участвует (даты, кто там с ним еще играет и тд).
Есть ли какой-то инструмент для такого?
Заранее спасибо!
Серый
28 июня 2022, 18:19
modx.pro
1 107
0

Заголовок, множественное или единственное число в зависимости от кол-ва выводимых ресурсов

Подскажите пожалуйста, есть ли что-то, что бы генерировало множественное и единственное число в зависимости от количества выводимых ресурсов через pdoResources? Например, если по заданным условиям выводится один ресурс, то заголовок «Образец», а если более одного: «Образцы». Честно гуглил, не нашел((
Заранее спасибо
Серый
18 декабря 2021, 18:20
modx.pro
1
1 207
0