Дмитрий

Дмитрий

С нами с 10 февраля 2023; Место в рейтинге пользователей: #45
Дмитрий
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
Здравствуйте, Алексей. Я, почему-то, не могу по вашему компоненту написать через ТП на сайте, хоть и загружал его из репозитория… Его просто нет там.
Дмитрий
29 июля 2023, 12:43
0
Да, разобрался, спасибо вам за подсказку.
Дмитрий
29 июля 2023, 12:21
0
Спасибо. Возможно я неправ, но в данном способе для fenom всё по красоте сделано, без лишних записей в системные настройки) я думал, что также можно и для стандартного синтаксиса сделать… Видел ещё вот такой способ arahort.pro/blog/modx-izmenenie-versii-fajlov-cssjs/ но тут есть ещё один минус: версия будет прописываться одинаковая для всех файлов, к которым будет примерен плагин…
Дмитрий
29 июля 2023, 11:47
0
Отличный плагин, необходимый. А на стандартный синтаксис как такое сделать?
Дмитрий
28 июля 2023, 19:38
0
Здравствуйте! Вижу у комментаторов выше тоже есть подобные проблемы. Если я правильно понял, то при настройке приоритета «Ресурс» компонент не подменяет заголовки, если у ресурса заполнено поле. Значит, если не заполнено — то поле должно заполняться из компонента. У меня следующая картина:

1. В чанке вывод meta-заголовков такой:

[[*id:is=`1`:then=`<title itemprop="headline">[[*longtitle:striptags:title:default=`[[++site_name:striptags:title]]`]]</title>`:else=`<title itemprop="headline">[[*longtitle:striptags:title:default=`[[*pagetitle:striptags:title]]`]] | [[++site_name:striptags:title]]</title>`]]
<meta name="description" itemprop="description" content="[[*description:striptags:title]]">

2. Настройки в товаре:


3. Настройки компонента



В итоге meta-description пустой, хотя должно быть выведено «3333»:



Что не так, где копать??

И вопрос про Приоритет: выпадающий список «Приоритет данных» понятно, а рядом поле «Приоритет» с числовым значением на что влияет? Не увидел нигде информации об этом… Благодарю за ответ!
Дмитрий
27 июля 2023, 22:18
0
Добрый день! Для чего нужна настройка «Индексируется» в создаваемых полях?
Дмитрий
27 июля 2023, 12:32
0
Modx 2.8.5, Mysql 8.0.33 кодировка utf8mb4 / utf8mb4_general_ci
Дмитрий
26 июля 2023, 23:44
0
Добрый день! Подскажите, не получается установить пакет, не может создать записи в БД… В чем может быть дело?