Всего 125 956 комментариев

Fullstack
03 мая 2022, 02:04
0
Откопал настройку «phpthumb_allow_src_above_docroot», включил — заработало!
Также нужно очистить кэш MODX и затем очистить кэш браузера. Готово
R2m0x94 (Vasily)
03 мая 2022, 00:10
0
в FAQ_get_questions добавьте idx для удобства в отображении корректных нумераций
// строка ~37
$idx = 0;
foreach ($items as $item) {
    $idx += 1;
    $list[] = $modx->getChunk($tpl, array_merge($item->toArray(), ['idx' => $idx]));
}
В чанке просто [[+idx]] или {$idx}
Fullstack
02 мая 2022, 20:32
0
Вау! Очень круто. Правда в файлах заметил, что там вместо этой настройки используется константа
MODX_CORE_PATH . 'cache/'
, поэтому не знаю, будет ли это работать. А еще придумал несколько других вариантов, возможных благодаря симлинкам, которые хостинг как оказалось поддерживает. То есть я могу просто скопировать папку core для каждого сайта, и сослаться на нее в отправных точках (config.core.php), выбирая ее в зависимости от домена, по которому заходят. Или вообще сделать на каждом нужном сайте симлинк на assets/images (естественно при одинаковых ID надо вынести оттуда галерею ms2). Вариантов куча)
Anton
02 мая 2022, 19:06
0
Такая же проблема. Сделал тестовый пустой TV, прицепил к шаблону — перестает работать, ошибка 503. Отключаю ТВ — работает.

Есть идеи?
Алексей Смирнов
02 мая 2022, 15:42
+1
Сравнивать нужно аккуратно, тк архитектура систем управления немного разная.
Ориентировался я и на WP, и на Joomla, и даже, прости господи, на Битрикс.
Делать стандарт для MODX и прям в доке самого MODX, а не дополнения — не верная постановка задачи.
Потому что:
1) Система темизации MT полностью зависит от pdoTools, fenom. (это сторонний пакет)
2) Решение данное — это отдельный пакет. те по сути получается уже некая модульность.
3) Вы сами можете решить (в будущем) при создании нового сайта использовать готовое решение на базе MagicThemes или делать как привыкли.
4) При установке темы устанавливается, спрашиваются необходимые для работы темы — Пакеты, которые поставить (зависимости). Что вполне в рамках MODX.
И я в статье написал, и еще раз повторюсь:
Полную документацию и принцип работы я напишу конечно, но позже. Сейчас альфа релиз который призван помочь понять мне (востребованность, актуальность, возмущенность, недовольство и прочее...) и окружающим людям (увидели что-то новое, нужно ли оно мне, а зачем, а что… и т.д.).
Потому что разговоров за последние 7...8 лет было много, а реализации тем для MODX я не видел чтобы кто-то реально предлагал.
Вот я предлагаю реализацию. Пока я демонстрирую результат и возможности (пока, согласен, тухленько демонстрирую) но хотя бы есть что показать.
так что я вас в любом случае услышал и болячки понял.
если еще будут советы — я только рад делать доп лучше и мощнее… чтобы не смотрелось на других «девах». )))))
R2m0x94 (Vasily)
02 мая 2022, 12:54
0
По сути на обновление надо повесить ace, и на создание, вопрос как?
FAQ.window.UpdateItem = function (config) {
    config = config || {};
    if (!config.id) {
        config.id = 'faq-item-window-update';
    }
    Ext.applyIf(config, {
        title: _('faq_item_update'),
        width: 550,
        autoHeight: true,
        url: FAQ.config.connector_url,
        action: 'mgr/item/update',
        fields: this.getFields(config),
        keys: [{
            key: Ext.EventObject.ENTER, shift: true, fn: function () {
                this.submit()
            }, scope: this
        }]
    });
    MODx.ux.Ace.replaceTextAreas(Ext.query('[name="answer"]')); // вроде правильно, но не работает
    FAQ.window.UpdateItem.superclass.constructor.call(this, config);
};
R2m0x94 (Vasily)
02 мая 2022, 12:44
0
А как в Ответ «answer» к полю в окне редактирования включить редактор Ace?

// assets/components/faq/js/mgr/widgets/items.windows.js
Ext.onReady(function(){
	if(MODx.ux.Ace.replaceTextAreas) {
		MODx.ux.Ace.replaceTextAreas(Ext.query('[name="answer"]'));
	}
});
добавляю Ext, но почему-то не получилось
Vladimir
02 мая 2022, 11:31
0
Сделал так, но вылезают такие ошибки, хотя при загрузке как через плагин всё работает
imagesx(): supplied resource is not a valid Image resource
[2022-05-02 13:55:35] (ERROR @ core/model/phpthumb/phpthumb.class.php : 4045) PHP warning: imagesy(): supplied resource is not a valid Image resource
[2022-05-02 13:55:35] (ERROR @ core/model/phpthumb/phpthumb.class.php : 3370) PHP warning: imagecolortransparent(): supplied resource is not a valid Image resource
[2022-05-02 13:55:35] (ERROR @ core/model/phpthumb/phpthumb.class.php : 4475) PHP warning: imagecopy(): supplied resource is
. Путь выдаёт правильный прям от корня хоста до картинки
<?php

$dir_name = MODX_BASE_PATH."media";


function optimezieImg($pathToImage){
    global $modx;
    $params = array();
    if (exif_imagetype($pathToImage) == IMAGETYPE_JPEG)
    {

        $params = array(
            'w' => 1920,
            'f' => 'jpeg',
            'q' => 80,
        );

    }
    elseif (exif_imagetype($pathToImage) == IMAGETYPE_PNG)
    {

        $params = array(
            'w' => 1920,
            'f' => 'png',
            'q' => 80,
        );

    }
    elseif (exif_imagetype($pathToImage) == IMAGETYPE_GIF)
    {
        return;
    }

    $phpThumb = $modx->getService('modphpthumb', 'modPhpThumb', MODX_CORE_PATH . 'model/phpthumb/', array());
    $phpThumb->setSourceFilename($pathToImage);

    foreach ($params as $k => $v)
    {
        $phpThumb->setParameter($k, $v);
    }

    if ($phpThumb->GenerateThumbnail())
    {
        if (!$phpThumb->renderToFile($pathToImage))
        {
            $modx->log(1, 'Ошибка сохранения изображения в [' . $pathToImage . ']');
        }
    }
    else
    {
        $modx->log(1, print_r($phpThumb->debugmessages, 1));
    }    
}


function get_all_directory_and_files($dir){
 
     $dh = new DirectoryIterator($dir);   
     // Dirctary object 
     foreach ($dh as $item) {
         if (!$item->isDot()) {
            if ($item->isDir()) {
                get_all_directory_and_files("$dir/$item");
            } else {
                $currentFileExt = pathinfo($dir . "/" . $item->getFilename(), PATHINFO_EXTENSION);
                if($currentFileExt == 'jpg' || $currentFileExt == 'png' || $currentFileExt == 'jpeg'){
                    optimezieImg($dir . "/" . $item->getFilename());
                }
            }
         }
      }
   }
 
  # Call function 
  
get_all_directory_and_files($dir_name);
Александр Сенькин
02 мая 2022, 10:47
0
Несколько проектов перевел на новую версию, все отлично спасибо!
Один только проект вылетел, после обновления слетела панель левая с вкладками ресурсов, элементов, файлов. Заходя в разделы например настройки, просто белый фон! На главной панели управления пишет загрузка — вывод панели и виджетов… Вот так вот, откатил назад на 2.8.3
Miša Bulic
02 мая 2022, 09:13
0
Ну я говорю стандарт и иерархия должны быть не для дополнения, а в документации самого modx.
Вот у вас интересное дополнение, много работы сделано. Но у вас не было ни одного комментария неделю, потому что сходу разобраться тяжело, вникать надо. И мало кто станет это делать, потому что кроме вас вряд ли будет делать тему с этим дополнением.
Я ни в коем случае не обесцениваю вашу работу, просто без стандарта не получится создать темы.
Вот иерархия Wordpress официальная:


Я знаю, что при упоминании сравнения с Вордпрессом многих тут триггерит. Но если хочется иметь готовые темы, то надо ориентироватся на лидера рынка.
Сергей Шлоков
02 мая 2022, 09:10
+3
1. Переопределить настройку для переноса всего кэша
$modx->setOption('cache_path', 'новый путь к папке кэша');
2. Для более тонкой настройки расширить менеджера кэша, в котором изменить метод modCacheManager::generateResource, чтобы переопределять cacheKey ресурса. По-умолчанию он имеет значение «contextKey]/resources/[id]». Можно указать свой типа «web/$siteName/resources/$obj->id». $siteName определяете сами.
SmartWidgets
02 мая 2022, 04:20
-1
Отзывы из Яндекс Маркета на вашем сайте можно вывести через JavaScript-виджет от SmartWidgets. Установка и настройка занимает 2 минуты. Вы копируете URL магазина из маркета, вставляете в конструктор виджета, настраиваете дизайн виджета, получаете небольшой HTML-код, вставляете к себе на сайт и все. Виджет будет транслировать отзывы из Яндекс Маркета у вас на сайте. Обновление отзывов раз в день. Можно фильтровать по звездности. Сортировать по дате добавления. И многое другие. Сайт виджета – smartwidgets.ru/yandex-market-reviews-widget/
Алексей Смирнов
01 мая 2022, 16:45
0
Пока копирование не делал. ТК небыло весомых причин.
В будущих версиях добавлю это.
Куча штуковин побочный момент универсальности.
Но их количество тоже зависит от проектирования темы.
Можно сделать штуковину — целой шапкой, а можно только логотип выводить.
Александр Туниеков
01 мая 2022, 16:32
0
И затем будет куча штукови в которых ногу сломишь…
Скопировать штуковину можно?
Алексей Смирнов
01 мая 2022, 16:20
0
Создаётся новая штуковина, привязывается к нужной области, настраивается. И готово.
Александр Туниеков
01 мая 2022, 16:12
0
А Штуковину для услуг можно применить и для новостей

А как одновременно и для услуг и для новостей?
Александр Туниеков
01 мая 2022, 16:08
0
Основных блоков же штук 40. Зачем их плодить для каждой темы?
Александр Туниеков
01 мая 2022, 15:29
0
В общем все что вы говорите про функционал — это почти все есть в пакете.
По видео не увидел. Я скорее хотел, чтобы были отдельно пакет блоков штукавин и отдельно пакеты стилей для них.
Алексей Смирнов
01 мая 2022, 11:04
0
Движок тем это когда ты на сайт скачал тему и просто установил её и весь сайт поменялся, надоело тебе и ты скачал другую тему, установил её и сайт полностью поменялся
Вы скорее всего не устанавливали само демо.
А так мое решение и работает — меняем темы — у нас новый сайт. Просто чтобы это было по щелчку необходимо:
1) Создатель темы должен предусмотреть максимальную совместимость по Областям и Штуковинам.
2) С моей стороны еще дополнительная возможность — менять (переключать) только папку темы, что будет дополнительным подспорьем для, например, дочерней темы. Т.е. области и штуковины останутся, а tpl шаблоны поменяются для этих областей.
3) В Joomla например чтобы поменять темы нужно много переделывать. там это боль. WP — там тоже можно поменять тему, но в чате спрашивал — все говорили что это боль тоже (я проверил на слово).
Поэтому то что я предлагаю для MODX — будет оно удачным решением или нет — покажет время и интерес сообщества.
Для разработчиков еще предстоит написать большой мануал, не без этого.
Просто скажу, что стандарт по чанкам — определяет разработчик темы. Захочет он ориентироваться на стандарт или нет — его выбор. То же самое касается самих шаблонов на сайте уже установленных. Я придумал один из вариантов стандартизировать, но опять таки — это все на совести разработчика тем. Мы в MODX и тут много свободы и выбор всегда есть. )