Всего 124 054 комментария

Alexey
28 ноября 2024, 18:01
0
Так делал на одном проекте, нужно было добавить поиск по полю pagetitle. Думаю, что можно и на TV переделать.

<?php
class myCustomFilter extends mse2FiltersHandler {

    public function buildPagetitleFilter(array $values, $name = '') {
        
        $tmp = array_keys($values);
        if (empty($values) || (count($tmp) < 2 && empty($this->config['showEmptyFilters']))) {
            return array();
        }

        return array(
            array(
                'value' => strip_tags($_GET[$name]),
                'type' => 'string',
                'resources' => $ids,
                'name' => $name,
            )
        );
    }

    public function filterPagetitle(array $requested, array $values, array $ids, $check_recurs = false) {

        $matched = array();
        $pagetitle = trim(implode(',', $requested));
        $tmp = array_flip($ids);

        foreach ($values as $key => $resources) {
            if (strpos(mb_strtolower($key), mb_strtolower($pagetitle)) !== false) {
                foreach ($resources as $id) {
                    if (isset($tmp[$id])) {
                        $matched[] = $id;
                    }
                }
            }
        }
        return $matched;
    }    
}

вызывается так:
'filters' => 'resource|pagetitle:pagetitle',

Чанк фильтра:
{var $key = $table ~ $delimeter ~ $filter}
<input type="text" placeholder="Введите название..." value="{$value}" name="{$filter_key}" id="mse2_{$key}_{$idx}" class="pagetitle-input" autocomplete="off">
==========

Но тут момент: если много ресурсов, то может начать тормозить. Так что нужно тестить. На том проекте ресуросов в пределах 500-700 было, фильтровало норм.
Дима Касаткин
28 ноября 2024, 17:35
0
На ноде при запуске сервера можно большую часть проинициализировать. Например, прогрузить настройки, чанки и сниппеты в память и не лазить за ними в базу или диск при каждом запросе.

Есть есть желание работать в таком режиме, посмотри на FrankenPHP worker mode → вроде то, что то описал по поводу переиспользования настроек без похода в базу и т.п… Но по-моему это перебор. Потому что приличные SSD/NVME диски уже давно кладут в память часто используемые данные (это будут файлы кэша), а файловое кэширование в MODX есть по умолчанию — просто используй кэш, когда тебе нужна эта магия :) Какое еще ещё нафиг NodeJS?! Я не говорю, что он плохой, просто говорю что незачем лезть в другую вселенную, чтобы получить хорошие показатели скорости!

P.S. А вот сервер на windows (подсмотрел твоё соседнее собщение) очень даже может быть причиной проблем со скоростью. Там нужен особый тюнинг, для которого не так уж много рецептов. Я встречался с таким, победить не получалось, переезжали.
eflit
28 ноября 2024, 14:37
0
А через расширение класса mse2FiltersHandler не смогу сделать? Нашел вот такую статью ilyaut.ru/reposts/mfilter2-principle-or-change-to-and/
Николай Савин
28 ноября 2024, 13:34
0
Это разные программы, с разным принципом работы. Переезд вряд ли возможен.
W.H.I.T.E
28 ноября 2024, 12:28
+1
Интересно, продолжайте.
Илья
28 ноября 2024, 11:56
0
Здравствуйте!
Подскажите, ещё нет варианта переезда с 2ки на 3ку через одну кнопку?
Иван Бочкарев
28 ноября 2024, 10:00
0
Отличная работа! Теперь дело пойдет быстрее.
Николай Савин
28 ноября 2024, 09:58
+1
Передал российским товарищам. Спасибо за инфу. поправим
Ivan K.
28 ноября 2024, 02:19
0
Отличная новость.
По донату: поправьте ссылку на оплату картой сбербанка, а то ведет куда-то не туда)
Александр Туниеков
27 ноября 2024, 21:57
0

@Артур Шевченко По моему эта строка лишняя. Я ее закомментировал чтоб у меня заработало.
Александр Туниеков
27 ноября 2024, 19:13
0
Вообще можно завести допполе и при сохранении ресурса плагином писать в допполе разбирая pagetitle.
newbmod
27 ноября 2024, 17:20
0
Вопрос так и не решен?
Серый
27 ноября 2024, 14:06
0
Спасибо!!! Скоро опробую, отпишусь о результатах!
Серый
27 ноября 2024, 14:06
0
Придётся многое костылить: pagetitle будут вместо имени и фамилии только именем, это также прилетит в breadcrumbs… Вобщем, имеющаяся универсальность пострадает, без учета необходимости переделывать все шаблоны и ресурсы под новые реалии полей(
Евгений Лазарев
27 ноября 2024, 12:36
0
Добрый день. Появилась новая ошибка:
27.11.2024 	12:30:20 	ERROR 	/www/site.ru/core/components/yasmartcaptcha/model/yasmartcaptcha.class.php 	60

Recoverable error: Object of class Login could not be converted to string
27.11.2024 	12:30:20 	ERROR 	/www/site.ru/core/components/yasmartcaptcha/model/yasmartcaptcha.class.php 	60

Recoverable error: Object of class LoginHooks could not be converted to string
Видимо при превращении в строку в массиве $config присутствует объект Login и LoginHooks.
Любовь
27 ноября 2024, 10:31
0
Извините, у вас сообщения закрыты. Я хотела спросить насчет компонента msExportUsersExcel. Может быть у вас есть аналогичный компонент для импорта пользователей?
Любовь
27 ноября 2024, 10:19
0
Андрей Степаненко.
Извините, у вас сообщения закрыты. Я хотела спросить насчет компонента msExportUsersExcel. Может быть у вас есть аналогичный компонент для импорта пользователей?

P.S. Нажимала ответить на комментарий Андрея, но почему-то попал в общую очередь, а удалить не могу.
Прошу прощения.
Александр Туниеков
27 ноября 2024, 08:38
0
Таки накосячил в myTpl :-). Надо так
{foreach $ress as $res}
    <p> {$res.id} {$res.surname}</p>
{/foreach}
Александр Туниеков
27 ноября 2024, 08:26
0
Сделаю примерно без проверки кода. Для MODX2.8
[[!pdoSurname?
&parents=`65,20`
&tpl=`myTpl`
]]
$pdo = $modx->getService('pdoFetch');
$pdo->setConfig([
    'parents'=>$parents,
    'limit'=>0,
    'return'=>'data'
]);
$ress = $pdo->run();
foreach($ress as $k=>$res){
    $new_array = explode("br" , $res['pagetitle']);
    $ress[$k]['surname'] = end($new_array);
}
function querySort ($x, $y) {
     return strcasecmp($x['surname'], $y['surname']);
}
usort($ress, 'querySort');
$pdo->getChunk($tpl,['ress'=>$ress]);
myTpl
{foreach $ress as $res}
    <p> {$id} {$surname}</p>
{/foreach}
Код не проверял. Возможно мелкие ошибки. И strcasecmp не знаю понимает ли юникод…
Александр Туниеков
26 ноября 2024, 17:14
0
В vesp долго переезжать. Нету модульности никакой и с авторизацией, в смысле с разграничением прав, там Василий особо не напрягался :-)