Alexey Medvedev

Alexey Medvedev

С нами с 10 августа 2017; Место в рейтинге пользователей: #93
Alexey Medvedev
10 августа 2021, 17:42
+1
Возможно такое, компонент не обновлялся несколько лет — там уже sdk сервисов обновились и api компонентов modx. Постараюсь в ближайший месяц переписать его.
Alexey Medvedev
05 февраля 2021, 02:19
0
«Вставлю и я свои 5 копеек» :)
@Василий Наумкин Спасибо тебе за участие в развитии сообщества и созданные инструменты. Ты внес ощутительный вклад — ты это сам прекрасно знаешь.
Да, все мы выгораем постепенно и теряем вдохновение к работе — к сожалению, такая у нас реальность.
От себя, я тебе желаю позитива, хороших и интересных проектов, профессионального роста и счастья тебе и твоим близким.
А теперь по делу:
Узнал поздно о твоем решении, мог бы помочь с мордой на VueJS (NuxtJS), но раз Иван уже взялся за modx.pro, то ждем его на React :)
Касательно, pdoTools предлагаю назначить несколько мейнтейнеров из сообщества (@Илья Уткин,@Павел Гвоздь,@Сергей Шлоков) с правом принятия пулл-реквестов и мержа в основную ветку, чтобы они проводили код-ревью и принимать решения по добавлению изменений в репозиторий. Я бы предложил себя, но этот год начался очень нагружено и боюсь не оправдать ожиданий из-за нехватки времени.

Удачи тебе :)
Alexey Medvedev
10 сентября 2020, 15:21
+1
Думаю, что лучше вынести параметр «Сжатие HTML» в настройки сайта, чем делать через ТВ-значение. Но каждый сам изобретает свой велосипед ;)
Alexey Medvedev
10 сентября 2020, 15:11
+2
Для этого уже есть готовый компонент: MinifyHTML
Alexey Medvedev
06 июня 2019, 17:18
0
Здравствуйте.
Исходное имя файла, которое загружаете через галерею, какое?
Alexey Medvedev
12 мая 2019, 12:48
1
0
modx.pro/components/14066#comment-93796

Уже обсуждалась эта проблема.
Закомментируйте строчки 136-150 в файле core/components/tinycompressor/model/tinycompressor/tinycompressor.class.php

/* translate the name of the file */
                $fat = $this->modx->getOption('friendly_alias_translit');
                $friendly_alias_translit = (empty($fat) || $fat == 'none') ? false : true;
                $filename = modResource::filterPathSegment($this->modx, $pathInfo['filename']); //cleanAlias(translate)
                if ($friendly_alias_translit)
                {
                    $filename = preg_replace('/[^A-Za-z0-9_-]/', '', $filename); // restrict segment toalphanumeric characters only
                }
                $filename = preg_replace('/-{2,}/','-',$filename); // remove double symbol "-"
                $filename = trim($filename, '-'); // remove first symbol "-"
                $newPath = strtolower($filename . '.' . $pathInfo['extension']);
                if ($newPath !== $file['name']) {
                    $path = $basePath . $newPath;
                    $source->renameObject($oldPath, $newPath);
                }
Alexey Medvedev
02 мая 2019, 21:10
0
В настройках посмотрите: включена ли функция сжатия превью? Если включена, то проверьте интеграцию в phpThumb — она не очень изящная, но всё же.
В файле /core/model/phpthumb/phpthumb.class.php
Найдите строку:
if (file_put_contents($renderfilename, $this->outputImageData)) {
Если нет ниже неё строки:
$this->modx->invokeEvent('OnPhpThumbRenderToFile', array('filename' => $renderfilename));
Добавьте её. Очистите кэш и попробуйте.
Alexey Medvedev
15 января 2019, 08:48
+1
Если он в таком виде прописан в шаблоне и не подключается файлом, как и в предыдущем способе. То можно c помощью Fenom вывести необходимый блок в script.

<script>
var userChat = document.getElementById('myWidgetUser'),
   guestChat = document.getElementById('myWidgetGuest');
   {if $_modx->isAuthenticated()}
        widget(userChat).start();
        guestChat.parentNode.removeChild(guestChat);
   {else}
        setTimeout(function () {
           widget(guestChat).start();
           guestChat.parentNode.removeChild(userChat);    
           }, 30000);
    {/if}
</script>
Alexey Medvedev
15 января 2019, 08:45
+1
Если прям упростить и в JS данные пользователя не нужны, то можно использовать
{$_modx->isAuthenticated()}
Получится:
<script>
var userChat = document.getElementById('myWidgetUser'),
   guestChat = document.getElementById('myWidgetGuest');

if ({$_modx->isAuthenticated()}) {
   widget(userChat).start();
   guestChat.parentNode.removeChild(guestChat);
} else {
   setTimeout(function () {
       widget(guestChat).start();
       guestChat.parentNode.removeChild(userChat);    
       }, 30000);
}
</script>
Alexey Medvedev
15 января 2019, 00:39
+1
Fenom:
<script>
    window.user = {
         id: {$_modx->user.id}
         fullname: {$_modx->user.fullname}
    }
</script>
Smarty:
<script>
    window.user = {
         id: [[+modx.user.id]]
         fullname: [[+modx.user.fullname]]
    }
</script>
Почитайте:
Если пользователь не авторизован, то user.id = 0
Alexey Medvedev
22 декабря 2018, 11:12
+1
Если только написать свой модификатор к fenom, только он Вам не к чему.
Alexey Medvedev
21 декабря 2018, 22:11
+1
Это я так набросал бегло :) Обратил внимание, что код не весь, не стал даже запариваться на этом.
Alexey Medvedev
21 декабря 2018, 21:56
+1
getImageList на сколько я помню не обрабатывает чанки через pdoTools.

Сделайте копию getImageList (для резервного использования), а исходный сниппет модифицируйте.
В начало добавьте
$path = MODX_CORE_PATH . 'components/pdotools/model/pdotools/';
$pdoFetch = $modx->getService('pdofetch','pdoFetch', $path, $scriptProperties);
И замените все $modx->getChunk на $pdoFetch->getChunk в сниппете getImageList.

А лучше откажитесь от сниппета и переделайте на foreach, т.к. MIGX хранит все данные в JSON.

Что-то типо такого:
{set $rows = json_decode($_modx->resource['top-slider'], true)}
{foreach $rows as $row}
    <h1 class="text-white">{$title}</h1>
    <p class="text-white">{$_pls['sub-title']}</p>
    <a class="learn-more x-btn" href="{$goods-id | url}">УЗНАТЬ БОЛЬШЕ</a>
    <a class="express-buy x-btn" href="">
        <span class="cost">{$goods-id | resource : 'price'} ₽</span>
{/foreach}
Я так понимаю, что это только часть кода, т.к. тэг а не закрыт и нет ссылки на изображение, раз поле «top-slider».
Alexey Medvedev
21 декабря 2018, 20:44
+1
А где у Вас это не работает: на странице, в шаблоне или в чанке?
Alexey Medvedev
12 августа 2018, 22:45
0
Если вы сжимаете phpThumbOn с большой потерей качества, тут Вам ничего не поможет :)
TinyPNG — это сервис сжатия изображений без видимой потери качества.
Alexey Medvedev
23 июля 2018, 19:13
+1
Если размер изображения более 5 МБ, то нужен ключ для tinyPNG. Посмотрите лог modx и php на наличие ошибок.
Alexey Medvedev
01 июля 2018, 15:48
0
Варианты:
1. Попробуйте не генерировать превью через скрипт, а просто загрузить страницу. Не забудьте очистить кэш превью.
2. Закомментируйте строчки 132-150 кода в файле /var/www/data/site.ru/core/components/tinycompressor/model/tinycompressor/tinycompressor.class.php. Это строчки переименования файла.
Alexey Medvedev
30 июня 2018, 18:44
0
Здравствуйте.

1. Проверьте наличие строки в файле /core/model/phpthumb/phpthumb.class.php'
$this->modx->invokeEvent('OnPhpThumbRenderToFile', array('filename' => $renderfilename));
2. Очистите кэш изображений ms2Gallery.
3. Включите сжатие при загрузке в настройках.
Alexey Medvedev
17 мая 2018, 11:42
0
Степень сжатия изменить нельзя. Так как компонент работает в режиме эмуляции загрузки через сайт tinypng.com. Скорее всего у Вас ничего не сжимается, т.к. происходит ошибка поиска файла на сервере. Посмотрите error.log сайта.