Дмитрий

Дмитрий

С нами с 10 февраля 2023; Место в рейтинге пользователей: #166
Дмитрий
17 марта 2024, 14:39
0
У меня такого параметра в /assets/components/msearch2/js/web/default.js нет, где вы его нашли?
Дмитрий
15 марта 2024, 01:32
+1
Это, конечно, очевидно. Статья рассчитана на тех, кто не пользуется указанными фреймворками.
Дмитрий
22 февраля 2024, 15:07
0
Спасибо, интересная заметка.

В общем я сделал так:
$_GET = array_diff_assoc($_REQUEST, $_COOKIE);
Единственное, в url в пагинации остается параметр limit=

*?page=3&limit=36

Но при переходе он очищается из url.
Дмитрий
16 декабря 2023, 15:54
1
0
Я использую простенький, но рабочий способ на JS:

const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent) ? true : false;

ну и далее используем переменную isMobile как угодно. Способ простой и не закрывает все потребности, но учитывая, что 98% посетителей сейчас — это Android или iPhone/iPad устройства — то для определения устройства посетителя этого вполне хватает.

Вот думаю, есть ли смысл подключать MobileDetect или Detect.js, т.к. до сих пор не сталкивался с проблемами из-за такой реализации.
Дмитрий
04 декабря 2023, 14:12
0
Зачем? это из ЧатГПТ скопировано? Во время установки панели всё должно установиться и так, а все настройки можно сделать прямо в панели. У некоторых хостеров можно выбрать готовые образы сразу с предустановленной панелью.
Дмитрий
29 ноября 2023, 15:46
+1
php-erorrs.log ругается на плагин с id 8. Вот тут обсуждали похожую тему: modx.pro/help/19871
Дмитрий
29 ноября 2023, 14:51
+1
Сам конфиг nginx не менял, его и не надо менять, т.к он переопределяется настройками в панели. Если вы переносили сайт, а не чистую установку делали — на всякий случай проверьте все пути в конфигах config.core.php и /core/config/config.inc.php, они должны быть вида /var/www/site_user/data/www/site.ru/… — при условии что вы создавали пользователя site_user через панель и там же добавляли сайт. Также посмотрите настройки url в системных настройках: сис. настройки -> core -> дружественные URL.

Дмитрий
25 ноября 2023, 16:58
+1
В моём способе вы, находясь на одной странице, получаете ссылки на редактирование любого ресурса, на который есть ссылка на данной странице (навели курсор на ссылку на фронте — получили в popup ссылку для редактирования ресурса, на который ведет эта ссылка), текущий ресурс можно отредактировать наведя курсор на заголовок h1.

Ваш метод позволяет перейти по ссылке только на один конкретный ресурс, на котором вы сейчас находитесь на фронте. На практике мне оказалось удобнее иметь ссылки на все видимые на странице ресурсы, и я могу быстро открыть для редактирования сразу несколько ресурсов, не переходя при этом на другие страницы. Например, в случае с интернет-магазином, когда вы находитесь в каталоге товаров, можно открыть сразу несколько карточек товаров и что-то быстро отредактировать. При частой работе с контентом и внезапных изменениях (ошибки какие-нибудь исправить и т.п.) такой подход показался мне удобным.
Дмитрий
04 ноября 2023, 01:11
0
minishop2 4.3.0-pl, modx 2.8.5-pl, MySQL 8.0.35, php 7.4.33 — работает нормально вроде, не замечал ничего такого…
Дмитрий
16 октября 2023, 17:04
+2
Дополню пост. Возникла проблема при выводе даты на странице категории товаров. При использовании mFilter после фильтрации товаров дата «слетает». Сниппет переписан следующим образом:

<?php
$id = $modx->getOption('id', $scriptProperties, $modx->resource->id);
$field = $modx->getOption('field', $scriptProperties);
$tpl = $modx->getOption('tpl', $scriptProperties, 'msTimeStampTpl');
if ($modx->getObject('msProduct', $id )->get($field) == null) {
    return false;  
}

$tablePrefix = $modx->getOption('table_prefix');
$table = $tablePrefix.'mstimestamp_product';
$sql = "SELECT * FROM $table WHERE product_id = $id AND field = '$field'";
$statement = $modx->query($sql);
$date = $statement->fetch(PDO::FETCH_ASSOC);
if(!empty($date)){
    return $modx->getChunk($tpl, ['date' => $date['valid_until']]);
}
return false;

Также, вместо отображения даты, может быть удобнее вывести оставшееся количество дней. Я сделал это прямо в шаблоне на fenom:

{if $favorite}
{set $favoriteDate = '!msTimeStampDate' | snippet: ['id' => $id, 'field' => 'favorite']}

{if $favoriteDate != ''}
{set $nowDate = $date | date_format:"%s"}
{set $daysLeft = (($favoriteDate - $nowDate)/60/60/24) | number : 0 : '' : ''}

{if $daysLeft > 0}Ещё {$daysLeft | declension : 'день|дня|дней' : true}{else}Успейте сегодня!{/if}

{/if}
{/if}

Спасибо @Артур Шевченко за помощь и @Денис Усманов за данное полезное дополнение.

Критика и комментарии приветствуются.
Дмитрий
08 октября 2023, 21:06
0
Добрый день! Можете поделиться шаблоном из СБИСа?
Дмитрий
06 октября 2023, 10:35
0
Добрый день. Обнаружил в компоненте особенность или баг: чтобы в админке сбросить дату у метки (и удалить её из БД) — нужно всегда снимать галочку и сохранять товар. Если просто очистить поле с датой и сохранить — запись не удаляется и при обновлении страницы — появляется вновь. То есть нет проверки на пустоту поля для удаления записи из БД.
Дмитрий
26 сентября 2023, 00:11
0
Добрый день! Подскажите, пожалуйста, как получить дату в шаблоне или чанке? Хочу прикрутить таймер обратного отсчёта на js.
Дмитрий
11 сентября 2023, 20:16
0
Привет, Артур! Спасибо тебе за твои труды. Есть вопрос по п.3: Импорт опций товаров из тэгов «param» (опции создаются автоматически). Правильно ли я понимаю, чтобы сопоставить уже созданные опции на своём сайте с param из xml, нужно переименовывать param'ы в файле xml? или это можно сделать через importconfig.inc.php? Если в будущем добавлять новые товары из того же xml, то придется каждый раз переименовывать все param?

И второй вопрос: тут уже задавался про обновление по id из фида, но я бы хотел обновлять товары не по id, а по vendorCode, для этого у меня в каждом товаре создано дополнительное поле sku. Как можно поменять обновление по этому ключу?
Дмитрий
27 августа 2023, 22:31
0
Спасибо, отличное решение.
Дмитрий
15 августа 2023, 18:14
0
Спасибо за помощь, Алексей!

Только у меня почему-то не переопределяется параметр fileSize. Я указываю &fileSize = `10485760`, а [[++upload_maxsize]] всё равно берется из системных настроек, у меня по умолчанию 1048576000 байт, то есть 1000 Мб. Извините, я ещё плохо знаком с modx, поэтому не всё пока понятно(
Дмитрий
14 августа 2023, 11:37
0
Благодарю за ответ, Алексей! Могли бы вы уточнить ещё пару моментов, пожалуйста:

В чанке ec_Form.tpl всё на fenom, это можно перевести на синтаксис modx?

Условие
{if $files}formenctype="multipart/form-data"{/if}

и

{'upload_maxsize'|option}

Спасибо.
Дмитрий
13 августа 2023, 14:50
0
Добрый день! Уточните, пожалуйста, 2 вопроса:

— fileTypes (string) — типы разрешенных файлов (по-умолчанию jpg,jpeg,png,gif,webp);
Как правильно перечислить типы файлов?

$data['file_types'] = $modx->getOption('fileTypes', $scriptProperties, 'jpg,jpeg,png');
?

Второй вопрос:

— fileSize (int) — ограничение на размер каждого файла (по-умолчанию 0 — не ограничивается!);

тут в мегабайтах указывается или в чем? как указать максимальный размер 10 Мб?
$data['file_size'] = $modx->getOption('fileSize', $scriptProperties, 10);
?
Дмитрий
01 августа 2023, 11:58
0
Здравствуйте, Алексей. Я, почему-то, не могу по вашему компоненту написать через ТП на сайте, хоть и загружал его из репозитория… Его просто нет там.