Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
11 февраля 2021, 10:54
0
ну вот, отлично!
Это правильно хранить свой кеш в отдельной папочке и управлять им как нужно!
Наумов Алексей
08 февраля 2021, 16:49
+2
Я сохранял свой кеш в отдельную папочку (назвал ее для примера my_cache), вот выдержки кода из проекта… (у меня некий класс, в нем есть такие методы и переменные).
Насколько помню, проблемы с очисткой при сохранении ресурса или чанка не было.

/** @var  string $cachePartition Раздел для кеша */
    protected $cachePartition = 'my_cache';
/** @var  integer $cacheTime Время кеша, в секундах, например 86400 (сутки), 3600 (час) */
    protected $cacheTime = 43200;
/**
     * Получает данные запроса из кеша
     * @param $cacheKey string Ключ кеша
     * @return mixed Данные запроса или false
     */
    protected function getDataFromCache($cacheKey) {
        $options = array(
            xPDO::OPT_CACHE_KEY => $this->cachePartition
        );
        return $this->modx->cacheManager->get($cacheKey, $options);
    }

    /**
     * Помещает данные в кеш
     * @param $cacheKey string Ключ кеша
     * @param mixed $data Данные, который нужно закешировать
     * @return bool Результат операции
     */
    protected function addDataToCache($cacheKey, $data) {
        $options = array(
            xPDO::OPT_CACHE_KEY => $this->cachePartition
        );
        return $this->modx->cacheManager->add($cacheKey, $data, $this->cacheTime, $options);
    }
Но нужен плагин для очистки нашего кеша:
<?php

switch ($modx->event->name) {
    case 'OnSiteRefresh':
        if ($modx->cacheManager->refresh(array('my_cache' => array()))) {
            $modx->log(modX::LOG_LEVEL_INFO, $modx->lexicon('refresh_default') . ': MyCache');
        }
        break;
}
Наумов Алексей
08 февраля 2021, 09:42
0
Добрый день.
В плагине используется 1 поле с именем photo
$conf_upload_file_name = 'photo';
у вас несколько должно быть, и код придется переписать соответственно… проверяйте, что я посоветовать
Наумов Алексей
02 февраля 2021, 17:20
+2
Мелочи:
— видеть Популярные и Лучшие статьи за: неделю/месяц/год/все время
— проработать разделы сообщества, сейчас их не видно как-то, и структурированы они на мой взгляд не очень… может их вывести справа (туда, где сейчас вкладки Комментарии, Заметки, Работа.
Наумов Алексей
28 января 2021, 10:44
+1
Нам нужно старое значение menuindex и новое.

Если новое меньше старого, то делаем sql запрос, в котором у ресурсов (только с тем же parent конечно) с menuindex от нового до старого делаем menuindex=menuindex+1.

Если старое меньше нового — наоборот.

Вот пример кода из какого-то процессора (там не ресурсы, а свои объекты).

if ($source->get('priority') < $target->get('priority')) {
            $this->modx->exec("UPDATE ".$tableName."
				SET priority = priority - 1 WHERE
					priority <= {$target->get('priority')}
					AND priority > {$source->get('priority')}
					AND priority > 0
			");

        } else {
            $this->modx->exec("UPDATE ".$tableName."
				SET priority = priority + 1 WHERE
					priority >= {$target->get('priority')}
					AND priority < {$source->get('priority')}
			");
        }
Наумов Алексей
27 января 2021, 17:28
0
Может phpthumbof скармливать не ссылку на картинку, а локальный путь к ней? Относительно корня сайта.
Наумов Алексей
27 января 2021, 10:44
0
Сниппету передаются все properties, см. ссылку.

ну а чтобы узнать имена переменных, в этом же файле поищите вызовы функции getProperty, станет все понятно
Наумов Алексей
27 января 2021, 10:05
0
Давно не работал с mFilter2… а если просто «rating_simple:checkbox»?
Вы же сделали join, данные уже выбрали…
Наумов Алексей
26 января 2021, 14:43
0
Судя по запросу я вижу, что выбирается 1 ресурс с id=3.

Правда запрос странный, в нем нет leftJoin)
Наумов Алексей
26 января 2021, 10:48
0
А что выводит? Что в логе, если его включить? (параметр showLog).
Наумов Алексей
21 января 2021, 15:23
1
+1
Но уж если на то пошло, я бы в migx хранил с целью промежуточного кеширование, если это конечно имеет смысл для вашей задачи.

Если кеширование не нужно — то сохранять данные в TV странное решение будет… проще их получать и сразу обрабатывать.
Наумов Алексей
21 января 2021, 12:45
0
Соответствующую таблицу в БД еще очистите и будет вам счастье.
Наумов Алексей
21 января 2021, 10:11
1
+1
Я решил такой вам помочь… хотя сам в жизни не работал с GoogleSheets…

Открыл яндекс, набрал там «GoogleSheets modx»…
Первая же ссылка — внезапно (!) на документацию компонента… окей… посмотрим… обращаем свой взор на навигацию слева и видим… волшебное слово MIGX! Откроем, почитаем… и правда, вот он, импорт из таблицы в migx!
docs.modx.pro/komponentyi/googlesheets/migx
Наумов Алексей
18 января 2021, 09:53
+1
Почему бы вместо inputTV:picture не использовать inputTVtype: image?
Тогда не придется создавать отдельное tv поле.
Наумов Алексей
14 января 2021, 14:27
+1
Прям в точку…

Ну правда кроме первой фразы про 99% вопросов. В целом могу отметить, что вопросы ко мне приходят, как правило, дельные и выходящие за рамки описанного в документации и статьях.
Наумов Алексей
14 января 2021, 14:23
+2
Я так бегло почитал про ошибку, и вижу среди причин ее появления:

Картинки, что представлены на сайте, не имеют прописанных параметров ширины и высоты.
Дизайн сайта имеет интерактивные элементы, которые подгружаются и показываются при определённых событиях, к примеру полной загрузке страницы, наведении курсора мышки и т.д.
Вставки блоков со сторонних ресурсов. Среди таких блоков могут быть iframe, рекламные и т.д.
И некоторые другие специфические причины.
отсюда вывод — нужно сайт смотреть, а не то, на чем он сделан.
Наумов Алексей
11 января 2021, 16:51
+3
Да были где-то здесь эксперименты…
суть сводилась:
— если просто подключение простых чанков и кешируемых сниппетов — то парсер MODX чуть быстрее
— если есть всякие if, модификаторы (is и т.п.), то феном начинает выигрывать.

Для меня в любом случае важнее удобство Fenom, чем миллисекунды скорости.