03 июля 2017, 12:06 У меня в object отдает только 'thumb' => бла бла бла. Может при интеграции галереи с минишопом немного другое поведение процессоров… Вопросы / Программный импорт тэгов в ms2Gallery 8 0
03 июля 2017, 07:06 Блин, добавил вот это print ('<pre>'); print_r ($response->response);Получается что, ms2gallery не отдает в response id только что созданного объекта? Или я что-то не так делаю? Как же тогда корректно импортировать теги. 200 000 тегов вообще не прикольно в ручную забивать будет… Вопросы / Программный импорт тэгов в ms2Gallery 8 0
03 июля 2017, 06:51 Мой вариант конечно работает, но блин криво) Не всегда теги совпадают с сортировкой id. Тот вариант, который вы подсказали точно рабочий? Просто у меня вообще не работает это дело. Может кто-то может подсказать, как получить id только что созданного объекта? foreach ($values['files'] as $file_key => $file_tag) { // Вызов процессора загрузки $response = $modx->runProcessor('gallery/upload', array( 'file' => $file_key, 'id' => $resource_id, ), array('processors_path' => MODX_CORE_PATH . 'components/ms2gallery/processors/mgr/') ); // И здесь нужно получить ID только что созданного объекта, чтобы передать его дальше. } Вопросы / Программный импорт тэгов в ms2Gallery 8 0
01 июля 2017, 16:31 В общем с процессорами ничего у меня не вышло, не стал заморачиваться и сделал так, теперь все ок: <?php $resource_id = '22'; $modx->ms2Gallery = $modx->getService('ms2gallery', 'ms2Gallery', MODX_CORE_PATH . 'components/ms2gallery/model/ms2gallery/'); $prefix = $modx->config['table_prefix']; $sql = "SELECT id FROM {$prefix}ms2_resource_files WHERE `resource_id` = {$resource_id} AND `parent` = 0 ORDER BY id ASC"; $q = $modx->prepare($sql); $q->execute(); $ms2Gallery_arr = $q->fetchAll(PDO::FETCH_ASSOC); foreach ($ms2Gallery_arr as $k => $ms2Gallery_ids) { foreach ($ms2Gallery_ids as $v){ $ms2Gallery_id[$k] = $v; } } $img_titles = array( 'черный','черный','черный','белый','белый','белый','бежевый','бежевый','бежевый','черный', ); $img_arr = array_combine($ms2Gallery_id,$img_titles); foreach ($img_arr as $img_key => $img_value){ $newTag = $modx->newObject('msResourceFileTag'); $newTag->set('file_id', $img_key); $newTag->set('tag', $img_value); $newTag->save(); }Решено. Вопросы / Программный импорт тэгов в ms2Gallery 8 0 1
29 июня 2017, 10:46 Как я пробовал: <?php $resource_id = '22'; $modx->ms2Gallery = $modx->getService('ms2gallery', 'ms2Gallery', MODX_CORE_PATH . 'components/ms2gallery/model/ms2gallery/'); $prefix = $modx->config['table_prefix']; $sql = "SELECT tag FROM {$prefix}ms2_resource_files_tags"; $q = $modx->prepare($sql); $q->execute(); $tags_arr = $q->fetchAll(PDO::FETCH_ASSOC); $sql = "SELECT id FROM {$prefix}ms2_resource_files WHERE `resource_id` = {$resource_id} AND `parent` = 0"; $q = $modx->prepare($sql); $q->execute(); $ms2Gallery_arr = $q->fetchAll(PDO::FETCH_ASSOC); foreach ($ms2Gallery_arr as $k => $ms2Gallery_ids) { foreach ($ms2Gallery_ids as $v){ $ms2Gallery_id[$k] = $v; } } $img_titles = array( 'черный','черный','черный','белый','белый','белый','бежевый','бежевый','бежевый','черный', ); $img_arr = array_combine($ms2Gallery_id,$img_titles); foreach ($img_arr as $img_key => $img_value) { $response = $modx->runProcessor('gallery/update', array( 'id' => $img_key, 'tag' => $img_value, ), array('processors_path' => MODX_CORE_PATH . 'components/ms2gallery/processors/mgr/') ); if ($response->isError()) { print_r($response->getAllErrors()); } else { print ('<p style="color: green;">Картинки успешно обновлены</p>'); } }Знычения массива $ms2Gallery_id: Array ( [0] => 601 [1] => 599 [2] => 597 [3] => 595 [4] => 593 [5] => 591 [6] => 589 [7] => 587 [8] => 585 [9] => 583 )Значения массива $img_titlesArray ( [0] => черный [1] => черный [2] => черный [3] => белый [4] => белый [5] => белый [6] => бежевый [7] => бежевый [8] => бежевый [9] => черный )Затем объединяем эти два массива в один и получаем массив $img_arr: Array ( [601] => черный [599] => черный [597] => черный [595] => белый [593] => белый [591] => белый [589] => бежевый [587] => бежевый [585] => бежевый [583] => черный )Потом ключи использую как id картинки, а значения как tag. В БД на выходе получается вообще вот такое горе: file_id tag 366 черный 368 черный 370 черный 372 черный 374 черный 376 черный 378 черный 380 черный 382 черныйПробовал и процессор savetags, вообще ничего не происходит. Вопросы / Программный импорт тэгов в ms2Gallery 8 0
29 июня 2017, 10:31 В любом случае спасибо за ответ, но это не то. Вы писали значение в таблицу ms2_resource_files в колонку name, теги записываются несколько иначе. Лежат они в таблице ms2_resource_files_tags где имеется две колонки file_id и tag. Вопросы / Программный импорт тэгов в ms2Gallery 8 0
11 июня 2017, 02:47 Днепр, провайдер Triolan. Modx.pro, modstore, modhost работают нормально, но с неделю назад была подобная проблема, сейчас нормально. Вопросы / Блокировка modx.pro 11 +2
20 мая 2017, 07:31 Здравствуйте. Судя из ответа Fedor с помощью приложения msExtraFields не выйдет сделать зависимые опции, верно я понимаю? Новые дополнения и их версии / [sFilters] - Динамические свойства товаров для MS2 32 0
15 мая 2017, 01:21 В скором времени буду заниматься решением данного вопроса, если получиться нормально реализовать, то скину, то что наваяю. Возможно вы уже найдете решение. Склоняюсь к варианту оставить постраничную навигацию «как есть», а на js дописать свою кнопку «подгрузки», вот только делать я буду для mFilter2 и для pdoPage там скорее всего немного поправить нужно будет, так как для фильтра все это дело будет реагировать на событие mse2_load. Вопросы / Пагинация при включенном ajax в pdoPage 11 0
01 февраля 2017, 23:22 Все таки оказалось опция нескольких значений в одном мультиселекте нужна и тут возникла проблема. Как мой вариант плагина, который мне подсказали на модекс.ру так и ваш работал некорректно. То есть, если в одном мультиселекте товара задавать например 3 значения вот так: ТВ «Назначение» = В кухню||В прихожую||В гостиную, то в ТВ «Назначение» родительской категории эти значения склеивались вот так В кухнюВ прихожуюВ гостиную в одно значение. Это конечно кардинально не подходило. Подправил чуток плагин, тоже не сварщик, но вроде работает как надо. $res = $modx->getObject('modResource', $resource->get('id')); //получаем ID текущего ресурса $template = $res->get('template'); //делаем проверку по шаблону товара if($template != 5 ) return ''; $tvs = $res->getMany('TemplateVarResources', array('tmplvarid' => 6)); //получаем необработанный массив заданнаго ТВ-параметра foreach ($tvs as $k =>$tv) { // выводим массив $tvs = $tv->toArray(); } $tvs = array_splice($tvs, 3); // вырезаем первые три пары [ключ]=>значение, оставляем только значения ТВ $tvs = implode('||',$tvs); // переводим массив в строку с разделителем || $par_id = $res->get('parent'); //получаем ID родителя if(empty($par_id)) return ''; $tvr = $modx->getObject('modTemplateVarResource', array( //получаем необработанные значения ТВ родителя 'tmplvarid' => 6, //тут ID нужного TV 'contentid' => $par_id )); if ($tvr) { $parTV = $tvr->get('value'); } $pos = strpos($parTV, $tvs); // сравниваем строковые значения ТВ родителя и ТВ текущего документа, оставляем только уникальные if ($pos === false){ //если не найдено... $newTV = $parTV.'||'.$tvs; //...добавляем значение $parent = $modx->getObject('modResource', $par_id); //получаем объект родителя $parent->setTVValue('tip', $newTV); //пишем в тв родителя } Вопросы / Наследование значений ТВ параметров родителем. 9 0
07 января 2017, 09:19 Привет. Спасибо за ответ. Я использовал вот такой код: <?php $template = $resource->get('template'); if($template != 5 ) return ''; // ID шаблона товара $myTV = $resource->getTVValue('tip'); //получаем TV $par_id = $resource->get('parent'); //получаем ID родителя if(empty($par_id)) return ''; $tvr = $modx->getObject('modTemplateVarResource', array( 'tmplvarid' => 6, //тут ID TV 'contentid' => $par_id )); if ($tvr) { $parTV = $tvr->get('value'); } $pos = strpos($parTV, $myTV); //находим вхождение TV товара в строке TV родителя if ($pos === false){ //если не найдено... $newTV = $parTV.'||'.$myTV; //...добавляем значение $parent = $modx->getObject('modResource', $par_id); //получаем объект родителя $parent->setTVValue('tip', $newTV); //и пишем в TV родителя }Вроде бы вполне нормально работает, ваш вариант не пробовал, но все равно спасибо за ответ. Вопросы / Наследование значений ТВ параметров родителем. 9 0
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
Получается что, ms2gallery не отдает в response id только что созданного объекта? Или я что-то не так делаю? Как же тогда корректно импортировать теги. 200 000 тегов вообще не прикольно в ручную забивать будет…
Решено.
Знычения массива :
Значения массива Затем объединяем эти два массива в один и получаем массив :
Потом ключи использую как id картинки, а значения как tag.
В БД на выходе получается вообще вот такое горе:
Пробовал и процессор savetags, вообще ничего не происходит.
Вроде бы вполне нормально работает, ваш вариант не пробовал, но все равно спасибо за ответ.