epic

epic

С нами с 16 марта 2024; Место в рейтинге пользователей: #9541

Фильтр mFilter по TV полю типа чекбокс

Хочу создать фильтрацию по TV полю типа чекбокс. Записать сразу несколько параметров через разделитель, вместо создания для каждого параметра отдельного поля. Сейчас у меня есть параметры типа Радио в них параметры выставлены так: Есть==1||Нет==2. Они выводятся чекбоксом. Как мне сделать такие же чекбоксы для параметров из TV поля чекбокс?
Miša Bulic
09 декабря 2021, 10:32
modx.pro
1
1 046
0

Minishop2 раздел Производители (ms|vendor). Как их массово добавить в админку?

Исходные данные:
Есть сайт на MODX с Minishop2, есть названия производителей и картинки к ним.
Может кто уже сталкивался и есть наработки, допустим какая-то команда для PHP-консоли modx. Хочу разом их добавить в админку, чтобы не создавать каждый и указывать к нему картинку вручную. Поделитесь, пожалуйста, если был такой опыт.
Никита Серов
29 ноября 2021, 10:51
modx.pro
1
845
0

Некорректно выводится слайдер цены через mFilter2

Не могу разобраться с выводом слайдера цены через mFilter2 (в связке с SeoFilter). Вкратце: если в mFilter2 не прописываю aliases, то там, где цена, выводятся чекбоксы «от»/«до». если прописываю aliases, то как бы ломается вёрстка слайдера (растягивается на весь блок в высоту).
Кристина
08 апреля 2021, 15:18
modx.pro
1
653
0

Как обновить TV поле MIGX после сохранения документа?

Приветствую, помогите решить задачу.

Есть MIGX TV field-facts, в нем есть поле с типом data.

Вкладки формы выглядят так
[
{"caption":"Информация", "fields": [
{"field":"date","caption":"Дата","inputTVtype":"date"}
]}
]
После того как в админке пользователь выберет дату и сохранит документ, есть задача отредактировать поле.
Решил делать плагином на событие OnDocFormSave, в нем запускаю сниппет cutDate где и редактирую поле date

if ($modx->event->name == 'OnDocFormSave') { 
$modx->runSnippet('cutDate');
}
Сниппет cutDate который должен переписать поле date

$migx = $modx->resource->getTVValue('field-facts');
$items = $modx->fromJSON($migx);
$output = array();
foreach($items as $item) {
  $item['date'] = 'newdate';
  $output[] = $item;
}
$modx->resource->setTVValue('field-facts', $modx->toJSON($output));
$modx->cacheManager->clearCache();      // Кэш тоже чистим
Но не работает это, где ошибся? Подскажите пожалуйста.
Роман
27 марта 2021, 17:54
modx.pro
1
711
0

MODX REVO API Как сохранить изображение по URL?

Подскажите пожалуйста, как сохранить изображение при создании страниц через API?
Использую следующий код для создания страниц через API MODX, все создается порядок.
Среди всех переменных полей есть и ссылка на изображение, сохраняю его в TV поле создаваемого ресурса.
НО так же хочу его скачивать в папку на хостинге сразу. Как это сделать?

Попробовал с помощью runProcessor но не получилось.

$data = [
    'id' => $value['id'],
    'file' => $value['media_url'],
];
$response = $modx->runProcessor('gallery/upload', $data, [
    'processors_path' => MODX_CORE_PATH . '/images/',
]);
Роман
18 января 2021, 17:15
modx.pro
1
1 436
0

Ошибка с msFieldsManager [Решено]

Добрый день.

Когда захожу в раздел список полей, то там нет не единого поля joxi.ru/zANJvYgT6x4NDA но полей там должно быть куча.

В логах только одна ошибка:
[2020-02-28 07:30:21] (ERROR @ /home/c/cn71901/site.ru/public_html/core/xpdo/om/xpdoobject.class.php : 240) Error 42S22 executing statement: 
Array
(
    [0] => 42S22
    [1] => 1054
    [2] => Unknown column 'MsfmFields.unit' in 'field list'
)
Помоги пожалуйста, как исправить. Если я правильно понял, то в БД есть/появилась кривая запись (может менеджеры какое наименование занесли с кавычками или еще как).

В БД пошарил, но что-то не смог найти и совсем не помню, что бы создавал поле «unit»

В ТП обратится не могу, ругается:
Вы купили это дополнение 13.02.2018 и с тех пор прошло уже больше года. Сожалеем, но вы больше не можете обращаться за поддержкой по этой покупке.
Буду благодарен за помощь, спасибо.
Роман
28 февраля 2020, 07:37
modx.pro
1
770
0

[UserLocation] - Геолокация и выбор города пользователя

Компонент [UserLocation] позволяет определить локацию пользователя и вывести список доступных локаций.



Особенности
— определение локации пользователя по ip
— готовая база городов и регионов России, возможность импорта/ экспорта своих локаций
— в отличие от CitySelect оперирует локациями созданными в базе данных. Позволяет добавить/ изменить нужную локацию под себя.

Володя
22 октября 2019, 09:01
modx.pro
1
3 367
+7

Как определить поддомен в Robots.txt?

Есть задачка
Сделал сайт с поддоменами (региональными)
Прикрутил при помощи создания ресурсов sitemap.xml и robots.txt

Теперь ломаю голову, как скрыть в файле robots.txt страницы блога на всех поддоменах а на основном оставить.

Для реализации поддоменов использовал компонент cityFields
Буду очень благодарен за помощь!
Андрей
27 июня 2019, 09:23
modx.pro
1
1 060
0

Автоматическое создание артикула для miniShop2 (с проверкой на уникальность)

Три года назад этот вопрос поднимался вот здесь.
В результате есть работающий код:
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;
$resource->set('article', substr($resource->get('alias'),0,2).'-'.$resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Артикулы получаются типа: pl-38125
Также есть вариант для TV генерирующий артикулы в числовом виде.
<?php
if ($modx->event->name == "OnDocFormSave") 
{    
    $tv = 'articul';
    $id = $resource->get('id');
    $parent = $resource->get('parent');
    $tvv = $resource->getTVValue($tv);
    
    if (empty($tvv))
    {
	   switch ($str=strlen($parent.$id))
       {
         case ($str <= 4): $article = mt_rand(0, 9).mt_rand(0, 9).$parent.$id; break;     
         case ($str == 5): $article = mt_rand(0, 9).$parent.$id; break;   
         case ($str == 6): $article = $parent.$id; break;
         case ($str >= 7): $article = substr($parent.$id, 1); break;
       }		
               $resource->setTVValue($tv, $article);
    }
}
Просьба специалистам в PHP модифицировать первый код так, чтобы в miniShop2 можно было создавать артикулы в цифровом виде.
Ну а если этот плагин будет ещё проверять на уникальность артикула, ему вообще цены не будет ))

РЕШЕНИЕ (чтобы не копаться в комментах).
Артикулы получаются уникальные типа: 38125 — ID категории и товара
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;
$resource->set('article', $resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Также есть вариант артикула формата: Случайное число от 0 до 999-IDродитель-IDтовара
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;

// Создаем артикул формата Случайное число от 0 до 999-IDродитель-IDтовара
$resource->set('article', mt_rand(0, 999).$resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Благодарность iWatchYouFromAfar и Николай приветствуется ))
websfera
04 мая 2019, 11:44
modx.pro
2
1 330
-2

[Решено] В конфигурации MIGX один migx тянет для себя значения другого migx-а как можно сделать?

Доброго времени суток.
Бьюсь который час на решением одной головоломки.

Мне нужно настроить конфигурацию migx поля так, чтобы список возможных значений был из другого соседнего migx поля, состоящего из одного столбика заголовков. Все это в одном документе.

Пробовал через EVAL и тащить getImageList-ом, но что-то не получилось…

Может, кто-нибудь предложит еще какие варианты пока я дальше рою землю/стену носом?
Oleg
09 октября 2018, 15:09
modx.pro
1
764
0