MODX маминой подруги - Исправление бага с непослушным menuindex

Привет сообществу!

Из-за сильной занятости над проектами я и не заметил, что еще в Апреле был смерджен мой PR по исправлению бага с непослушным menuindex.

О баге на GitHub сообщил @Руслан Алеев, но о нём было известно и до этого. По крайней мере я точно знал, потому как очень часто клиенты которые пользуются панелью управления сообщали, что при каких-то мистических обстоятельствах поле menuindex не изменяется или ведет себя странно. Выяснилось, что происходит это в тех обстоятельствах, когда ресурс открыт пользователем на редактирование и он находясь там же сортирует ресурсы в дереве ресурсов.

Баха Волков
12 июля 2019, 14:48
480
+22

[msFavorites] - версия 3.0, работа с любыми объектами.

[msFavorites] — компонент реализует функционал создания списков избранного.

Особенности:
— работа с любыми объектами
— работа с любыми пользователями

Демо-версию можно посмотреть на msfavorites.vgrish.ru, а попробовать перед покупкой на modhost.pro

Володя
05 июля 2019, 06:53
3
404
+19

[VSC] vscodemodx - Автокомплит кода в Visual Studio Code для MODX Revo

Приветствую вас!
После того как я наткнулся на компонент gitmodx для MODX Revo я почувствовал какое-то облегчение но одновременно и огорчение. С одной стороны был дико рад относительно адекватной возможностью вести разработку с контролем версии, с другой же стороны работа исключительно в IDE была очень неудобной из-за отсутствия каких-либо подсказок со стороны среды.
Вот именно такое предисловие было для того чтобы расчехлить TypeScript и начать писать что-то свое.
Github компонента доступен по ссылке и всю последующую информацию я размещу еще и там.

Ультра бета версия уже доступна в VSCode Marketplace по ссылке
Павел Бигель
17 июля 2019, 14:34
328
+16

[VSC] как перейти на VSCode без боли

В моей самой первой заметке я забился с Василием что напишу заметку о том, как перестать платить за phpstorm и перейти на сторону добра. Так вот, выполняю свое обещание.

Я очень люблю компанию Microsoft. Она делает потрясающие продукты, особенно для разработчиков. Visual Studio — лучшая IDE, VSCode — лучший редактор кода. Кстати, именно Microsoft в одно время донатила в MODX, не так ли? :)
Павел Бигель
18 июля 2019, 22:07
574
+14

Обновление mvtUsers

Добавлена возможность отправлять пользователям промо-коды.
Если вы используете Minishop2 и msPromoCode.
Алексей Шумаев
11 июля 2019, 00:07
189
+8

[xParser] 1.7.0 Асинхронная загрузка источников подзаданий и скачивание изображений без расширения

С версии 1.6.10 у задания появилась опция включения асинхронного режима скачивания изображений. А с версии 1.7.0 в режим асинхронной работы добавилась загрузка источников подзаданий. Напомню, что асинхронный режим требует немного больше оперативной памяти, но работает раз в 5-15 быстрее обычного режима!

Также, в новой версии добавлена возможность скачивания изображения без расширения для конкретных полей задания. То есть, в поле задания теперь можно указать галку Изображение без расширения. В этом случае УРЛ, который находится в качестве контента в данном поле, будет обработан, как изображение. Важно, чтобы в поле была только ссылка на изображение, без каких-то лишних символов. Пока поддерживаются только форматы jpg, png, gif.
Павел Гвоздь
25 июня 2019, 16:11
250
+8

Обновление дубликатов страниц (duplicate_updater_modx)

Может кому пригодится, написал скриптец для поиска дублей страниц и обновления последних путем добавление префикса +=1

Инструкция залить duplicate_updater_modx.php в корень сайта и запустить в браузере yousute.ru/duplicate_updater_modx.php
git: github.com/vectorserver/duplicate_updater_modx

Сам код:
<?php
/**
 * Created by PhpStorm.
 * User: admin
 * Date: 25.06.2019
 * Time: 14:19
 */


define('MODX_API_MODE', true);
require 'index.php';

$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_FATAL);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

$msg = "";

$table_prefix = $modx->config['table_prefix'];

//Ищем двойников
$find_query = $modx->query("SELECT group_concat(`id`) ids, count(id) c FROM `" . $table_prefix . "site_content` GROUP by concat(uri) HAVING c > 1");

$dubles = $find_query->fetchAll(PDO::FETCH_ASSOC);
//Если нашли
if (count($dubles)) {
    foreach ($dubles as $item) {
        //Разбивем ID
        $ids = explode(",", $item['ids']);
        //Сортируем - старые вверх
        sort($ids, SORT_NUMERIC);

        $count = 0;

        foreach ($ids as $doc_id) {
            $count++;
            //ПРопускаем оригинал
            if ($count > 1) {

                //Обновляем ресурс
                $originalRes = $modx->getObject('modResource', $doc_id);
                $generated = $originalRes->cleanAlias($originalRes->get('pagetitle')) . "-" . $count;
                $originalRes->set('alias', $generated);
                $originalRes->save();
                //В лог
                $msg .= $originalRes->get('id') . " | " . $originalRes->get('pagetitle') . " - обновлен.\n";
            }

        }
        //Сброрс кеша
        $modx->cacheManager->refresh();
    }

} else {
    $msg .= "Дублей нет\n";
}

echo "<pre>" . $msg;
vectorserver
25 июня 2019, 12:33
9
217
+7

LazyLoad - Ленивая загрузка изображений (PHP)

Компонент перед отдачей html на фронтенд, выборочно заменяет src на заглушку (на стороне сервера), а после того как загрузилась страница, с помощью js изображения автоматически подгружаться в зависимости от положения полосы прокрутки.



Андрей Степаненко
28 июня 2019, 11:28
2
884
+6

Настройка Турбо страниц для Яндекса (Готовое решение)

Долго разбирался как настроить Турбо страницы для Яндекса. Много разного мануала нашел, в итоге решил поделиться тем, что у меня получилось. Не судите строго.
Может кто-то что-то подскажет, как реализовать проще или что-то улучшить. Может кому-то помогут мои наработки.
Рейтинга не хватило разместить в разделе Готовые решения или Пошаговые инструкции, оставляю в Вопросах.
Андрей Шевяков
30 июня 2019, 15:45
5
207
+2