Всего 123 795 комментариев

Sergey (Sentinel)
08 ноября 2024, 16:24
0
Для select вот так сделал. Может пригодится тоже.
<select>
    <option data-sort="" data-dir="" class="sorty sort" select>По умолчанию</option>
</select>
$(document).on('change', '#mse2_sort', function() {
    var selected = $(this).find('option:selected');

    // Проверяем, выбран ли элемент "По Умолчанию"
    if (selected.text() === 'По умолчанию') {
        var params = mSearch2.getFilters();
        params.sort = '';
        mse2Config.sort = '';
        mSearch2.load(params);
        mSearch2.submit();
    } else {
        var sort = selected.data('sort');
        sort += mse2Config.method_delimeter + selected.val();
        mse2Config.sort = sort;
        mSearch2.submit();
        mSearch2.Hash.clear();
    }
});
Максим
08 ноября 2024, 14:18
0
Раз уж в статье написано про «подтянуть в очередной раз свои знания в PHP», напишу тут свои мысли.

1. Работать с датами можно через объект DateTime. Насколько помню там даже можно просто сравнивать даты обычным оператором $myDate > $yourDate
2. Может быть имеет смысл не привязываться к году, а просто выводить за столько то дней до и после определённой даты. Новый год всегда 1 января не важно какого года, другие праздники тоже.
3. На мой взгляд удобнее и нагляднее вместо:
$start = $modx->getOption('start', $scriptProperties, '');
$end = $modx->getOption('end', $scriptProperties, '');
$chunk = $modx->getOption('tpl', $scriptProperties, '');
писать в таком стиле:
$options = array_merge([
        'start'   => '',
        'end'    => '',
        'tpl'      => "@INLINE {$var}"
    ], $scriptProperties);
4. Я всегда стараюсь делать один return в сниппетах или функциях. Для меня лично тоже так удобнее и нагляднее (единая точка выхода).
Дмитрий
08 ноября 2024, 12:27
0
Не нашел в доках параметр «return». Не могли бы вы привести пример использования? Заранее очень благодарен.
Наумов Алексей
08 ноября 2024, 08:40
0
pdoMenu умеет кешировать дерево, чтобы избегать лишних запросов в БД.

А еще можно посмотреть в сторону css?
vectorserver
08 ноября 2024, 06:31
0
Можно и в консоли только кнопочку руками придется нажимать, одна итерация 50 ресурсов)

По второму вопросу не скажу, не вникал)
Ivan
08 ноября 2024, 00:34
0
К сожалению любое видео подключаемое с rutube через iframe у меня автоматически воспроизводится в хроме, яндекс браузере и сафари, поэтому замер сделал с iframe с ютуба.
В коде страницы нет вообще ничего кроме 1 фрейма ютуба.
На скриншоте в самом низу видно сколько все это занимает времени и сколько это весит.
Артур Шевченко
07 ноября 2024, 22:29
0
Есть параметр return, который позволяет вернуть json. Его можно преобразовать в массив, а уже массив перебрать столько раз сколько нужно, каждый раз рендерить нужный вид меню.
Дмитрий
07 ноября 2024, 20:33
0
Интересно сколько весит фрейм с видео? Метра 3? Допустим у вас 10 видео,
Само видео не грузится, пока вы не нажмете кнопку Play. Если вы для всех видео включите autoplay, тогда да… А вставлять фрейм при нажатии — ну такое… Зачем? Сам по себе фрейм загружается быстро.

А может быть вам сделать так, чтобы была картинка с rutube и кнопка.
По умолчанию и так видео вставляется со своей заглушкой. В моем решении вы имеете возможность вставить своё изображение в качестве заглушки поверх.

а не всем видео одинаковую делать)
так и не делайте одинаковую, меняйте изображение хоть для каждого видео на странице, а хотите — уберите вообще — и вы получите стандартную заглушку с rutube.

И по поводу sticky. В CSS вы код показываете, а в JS нет.
так у нас целиком блок прилипает, отрываясь от основного контента, ничего не меняется, поэтому js будет работать и там и там.

А еще интересно будет ли это работать в IOS в safari.
Тут могут быть проблемы. Лично я тестировал на iPhone 13 — всё работало. Версию ios не помню, но не последняя. При этом на другом iphone (11 или 12) с версией ios ниже — уже не работало.

Здесь уже частные случаи, нужно смотреть индивидуально по задаче, можно для ios вставлять просто блок с mp4 и отображать его, если у нас safari. Что-то в общем, можно придумать, при желании)
Ivan
07 ноября 2024, 12:07
0
Интересно сколько весит фрейм с видео? Метра 3? Допустим у вас 10 видео, то это большой размер.
А может быть вам сделать так, чтобы была картинка с rutube и кнопка. При нажатии на которую вставляется фрейм и воспроизводится.
Заглушку всегда можно взять с rutube, а не всем видео одинаковую делать)

И по поводу sticky. В CSS вы код показываете, а в JS нет. Может я чего-то пропустил, могу ошибаться)
P.S. А еще интересно будет ли это работать в IOS в safari. Они очень любят блокировать всякие действия с видео.
Андрей
07 ноября 2024, 10:43
0
Добрый день, есть ли возможность добавить настройку округления цен до рублей в корзине и на товары и на общую сумму корзины после применения скидки?

Пример клиента — цены на сайте округляются до рублей, при использовании промокода появляются копейки. По итогу у некоторых заказов сумма корзины со скидкой и сумма стоимости товаров со скидкой отличаются на 1 копейку. Из-за этой разницы получаем ошибку при оплате в Тинькове.
al1ve
06 ноября 2024, 16:28
0
Здравствуйте. Такой вопрос. Из-за спама пришлось перейти на плагин SendIt, но спам всё равно приходит. Ваш способ сработает для SendIt? Или его нужно переписать? Или может я просто неправильно настроил SendIt?
Кровельный
06 ноября 2024, 11:13
0
MODX Revolution 2.8.3-pl
87.include.cache.php — Плагин: webpgenerator (87)

[2024-11-06 11:08:33] (ERROR @ /var/www/www-root/data/www/site.ru/core/components/webpgenerator/classes/ImageConverter.php : 145) PHP warning: exif_imagetype(/var/www/www-root/data/www/site.ru/assets/components/phpthumbof/cache/7040%2821%29.0211e0a20652fcdffc397d1f517afe76.jpg): failed to open stream: No such file or directory
[2024-11-06 11:08:33] (ERROR @ /var/www/www-root/data/www/site.ru/core/components/webpgenerator/classes/ImageConverter.php : 147) PHP warning: array_key_exists(): The first argument should be either a string or an integer
[2024-11-06 11:08:33] (ERROR @ /var/www/www-root/data/www/site.ru/core/components/webpgenerator/elements/plugins/plugin.webpgenerator.php : 143) User warning: InvalidArgumentException: Cannot detect /var/www/www-root/data/www/site.ru/assets/components/phpthumbof/cache/7040%2821%29.0211e0a20652fcdffc397d1f517afe76.jpg extension in /var/www/www-root/data/www/site.ru/core/components/webpgenerator/classes/ImageConverter.php:148
Stack trace:
#0 /var/www/www-root/data/www/site.ru/core/components/webpgenerator/classes/ImageConverter.php(43): ImageConverter->getRealExtension('/var/www/www-ro...')
#1 /var/www/www-root/data/www/site.ru/core/components/webpgenerator/classes/ImageConverter.php(33): ImageConverter->loadImage('/var/www/www-ro...')
#2 /var/www/www-root/data/www/site.ru/core/components/webpgenerator/elements/plugins/plugin.webpgenerator.php(141): ImageConverter->convert('/var/www/www-ro...', '/var/www/www-ro...', 95)
#3 /var/www/www-root/data/www/site.ru/core/cache/includes/elements/modplugin/87.include.cache.php(2): include_once('/var/www/www-ro...')
#4 /var/www/www-root/data/www/site.ru/core/model/modx/modscript.class.php(76): include('/var/www/www-ro...')
#5 /var/www/www-root/data/www/site.ru/core/model/modx/modx.class.php(1674): modScript->process(NULL)
#6 /var/www/www-root/data/www/site.ru/core/model/modx/modresponse.class.php(83): modX->invokeEvent('OnWebPagePreren...')
#7 /var/www/www-root/data/www/site.ru/core/model/modx/modrequest.class.php(138): modResponse->outputContent(Array)
#8 /var/www/www-root/data/www/site.ru/core/model/modx/modrequest.class.php(122): modRequest->prepareResponse()
#9 /var/www/www-root/data/www/site.ru/core/model/modx/modx.class.php(1461): modRequest->handleRequest()
#10 /var/www/www-root/data/www/site.ru/index.php(54): modX->handleRequest()
#11 {main}
Артур Шевченко
06 ноября 2024, 10:28
0
Плагин на сохранение возможно. Или не заполнено обязательное поле.
Сергей
06 ноября 2024, 09:38
0
Добрый день! Подскажите пожалуйста при фильтрации если использовать msoptionprice2 будут выбираться нужные опции, например, если выбрал цвет белы, то будут выводиться товары с выбранной опцией белого цвета (у товара может несколько цветов).
Павел Романов
05 ноября 2024, 17:51
1
0
Можно такой сниппет сделать и запускать через CronManager:
<?php
$sql = "SELECT id FROM {$modx->getTableName('modResource')} WHERE deleted = 0 AND published = 1";
$q = $modx->prepare($sql);
$q->execute();
$resources = $q->fetchAll(PDO::FETCH_ASSOC);
foreach ($resources as $resource) {
    $response = $modx->runProcessor('mgr/index/update', array('id' =>$resource['id']), array('processors_path' => MODX_CORE_PATH . 'components/msearch2/processors/'));
    if ($response->isError()) {
        $modx->log(modX::LOG_LEVEL_ERROR, print_r($response->getAllErrors(), true));
    }
}
Konstantin
05 ноября 2024, 17:25
0
Столкнулся с подобным глюком — в tplInner на феном не выводит id. Странно прошло почти 5 лет а вопрос до сих пор не решен. Ссылки от последнего коммента уже битые
Роман
05 ноября 2024, 15:27
0
Понял в чем проблема, но странно.
Новый город имеет у страниц привязки к страницам других контекстов (чтобы работал код выше).
Но почему-то нет обратных привязок, приходится их расставлять вручную, как-то странно.

Сталкивались с таким, как решается быстро, может кто подскажет?