Всего 125 678 комментариев

Константин
28 ноября 2020, 13:47
0
Всем Спасибо. Разобрался.
Александр Мельник
28 ноября 2020, 12:44
0
у вас включен режим — дружественных урл? остальные страницы сайта как открываются
site.com/page
или
site.com/index.php?id=2
?
dokreg
28 ноября 2020, 11:12
0
это наверное относится уже к выводу данных, а мне нужно чтобы при вводе в админке при указании даты не было поля ввода времени
Антон Тарасов
28 ноября 2020, 09:28
0
а как отключить время у поля в составе migx с типом inputTvtype:date?
Правильно ли я понимаю, что речь о MIGX конфигураторе?
Если да, то смотрите в сторону рендерера renderChunk, создайте поле с уникальным именем и в поле renderTpl укажите что-то типа [[+date:strtotime:date=`%d.%m.%Y`]]
Олег Щавелев
28 ноября 2020, 00:57
0
Упс, не увидел что @Иван Бочкарев, написал то же самое просто эффект дежевю. Все верно написано у @Иван Бочкарев.
Олег Щавелев
28 ноября 2020, 00:53
0
Контантин.

Вопрос вот в чём. Должен ли автоматически создаваться при этом файл sitemap.xml или нет?
Ответ Нет. Но все очень просто. Это обычный ресурс. Только тип XML. Что необходимо сделать по шагам.

  1. Включить в системных настройках Дружелюбные URL
  2. Cоздать документ (ресурс) через CMS MODX псевдоним sitemap в настройках ресурса, изменить селектор «Тип Содержимого» с HTML на XML (вкладка Настройки)
  3. Привязать ресурс к шаблону в котором содержится сниппет pdoSitemap
  4. Открыть страницу домен.cайта/sitemap.xml и проверить что карта сгенерировалась
  5. Добавить карту при необходимости в robots.txt и Веб-мастер
Артур Шевченко
28 ноября 2020, 00:48
0
Ну, товарищ, когда я говорил Нет я имел ввиду прежде всего то, что компонент задумывался для работы с классами minishop2, а так-то конечно можно, но зачем рассказывать человеку о неоптимальных способах реализации, счастье в неведении)))
Олег Щавелев
28 ноября 2020, 00:37
0
@Артур.

А почему вы так считаете? Вопрос в оптимальности, в размере БД и многих других фактором. Но ответ — да можно.

Для индексации запросов mSearch нужно прописать префикс TV и алиас поля и результаты поиска будут индексироваться с учетом значения указанного TV поля. Просто пропишите в системных настройках.



А если мы говорим о фильтрации mFilter2 — там та же история — ссылка на техническую документацию

А для @Сергей Самусев

Но это не означает, что это «идельное» решение, я рекомендую почитать про ТВ поля, как они работают (на сколько быстро), прикинуть какого размера будет БД, сколько будет документов. Взвесить все, почитать доки и дальше приступать к внедрению.
Андрей
27 ноября 2020, 23:37
0
Артур, получилось по решению в первом комменте. Намудрил с условиями. Вынес за скобки и все заработало.
Артур Шевченко
27 ноября 2020, 23:21
0
Нет. Но что мешает установить minishop2 и создавать товары? Точнее ресурсы типа Товар Магазина.
Артур Шевченко
27 ноября 2020, 23:09
0
Надо смотреть на проблему в действии.
Артур Шевченко
27 ноября 2020, 23:07
0
В каком плагине не работает?
Артур Шевченко
27 ноября 2020, 23:02
0
Я делал уведомления на сайте через этот сервис comet-server.com/. Создал таблицу в бд куда писал данные, но если сохранять не надо, то можно и без своей таблицы, просто шлёшь запросы и всё.
Артур Шевченко
27 ноября 2020, 22:41
0
Можно. Но не понятно вы про админку или фронт? Если про админку, то зачем вам одинаковая для всех видео картинка? Если про фронт, то просто добавьте колонку в migx.
Артур Шевченко
27 ноября 2020, 22:37
0
Написать плагин на событие msOnBeforeCreateOrder где проверить группу и изменить стоимость доставки, а на фронте просто проверить группу и посчитать скидку. Например через fenom
{if $_modx->user.id | ismember: 'GroupName'}
    {set $deliveryCost = $deliveryCost * 0.8}
{/if}
Артур Шевченко
27 ноября 2020, 22:29
0
Я бы повесил на событие onDocFormSave и проверял бы class_key если товар, то заполняем свойства, только возможно стоит получить именно объект msProduct, а не modResource. У последнего нет поля weight, поэтому оно и не заполняется.
Артур Шевченко
27 ноября 2020, 22:24
0
Через Контроль доступа. В этой политике miniShopManagerPolicy уберите галочку разрешающую удаление заказов.
Артур Шевченко
27 ноября 2020, 22:19
0
можно использовать конструкцию, которую я назвал compareDate
<?php
$input = new DateTime($input);
if(!$input){return false;}
if(!$options){
    $options = new DateTime();
}else{
    $options = new DateTime($options);
}
$interval = $options->diff($input);
return $interval->format('%R%a');
Это модификатор для сравнения дат. Можно через fenom вывести migx и использовать этот модификатор
{set $tv = json_decode($_modx->resource.migxTvName, 1)}
{foreach $tv as $key => $item}
    {if ('' | compareDate: $item['тут ваша дата']) == 0}
        /* тут то что нужно показать в эту дату */
    {/if}
{/foreach}
Константин
27 ноября 2020, 22:13
0
Я это всё и сделал.
Вопрос вот в чём. Должен ли автоматически создаваться при этом файл sitemap.xml или нет?
И для яндекса и гугла указывать путь в данном случае site/index.php?id=22 или нет?
Артур Шевченко
27 ноября 2020, 22:05
0
Без написания плагина на событие msOnBeforeAddToCart никак. Плагин примерно такой:
<?php
switch ($modx->event->name) {
    case 'msOnBeforeAddToCart':
        $product->get('id');
        $resource = $modx->getObject('modResource',  $product->get('id'));      
        $product->set('price', $resource->getTVValue('price_drop'));       
    break;
}
Для простоты лучше на фронте добавить
<input type="text" name="price_drop">
под price_drop тогда можно будет сделать так
<?php
switch ($modx->event->name) {
    case 'msOnBeforeAddToCart':       
        $product->set('price', $_POST['price_drop']);       
    break;
}