16 февраля 2021, 14:57 Благодарю! Консоль, точно, как то работал с этим компонентом. Вопросы / MODX REVO как через API обновить tv поле у всех ресурсов одним запросом? 2 0
25 января 2021, 15:11 Благодарю! Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 11:33 Да, именно, у меня такая же ситуация, сторонний сервис как 1C, и приходиться в tv отдельную писать уникальные их id. Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 02:09 Спасибо большое, но не могу id писать в pagetitle, это индексируется поисковиками, не должно быть лишнего в заголовке. с ключом parent не понял, в modResource можно только id указать, написал так $resource=$modx->getObject ('modResource', 2, array('pagetitle'=>$media['title'])); Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 01:46 Это из сервиса другого, такой массив прилетает, там просто поля с данными, я просто его распечатываю foreach и все. Тут проблем нет, эти поля записываю уже в MODX, например [id] => 17866422587162642 записываю в TV idpost при создании ресурса Array ( [data] => Array ( [0] => Array ( [id] => 17866422587162642 [media_url] => ) [1] => Array ( [id] => 18073012534211706 [media_url] => ) [2] => Array ( [id] => 17878486537701170 [media_url] => ) ) ) Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 01:39 Да, удалил свой второй цикл в основном цикле. Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 01:39 Понял :) так работает, но все таки как при таком варианте ограничить по parent можно? И все таки сравнивать не title a tv. Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 01:33 Вот код сниппета, убрал код API другого ресурса откуда массив заполняется, он не нужен, сам массив для примера оставлю, но тут все хорошо, ресурсы добавляются поля заполняются Array ( [data] => Array ( [0] => Array ( [id] => 17866422587162642 [media_url] => ) [1] => Array ( [id] => 18073012534211706 [media_url] => ) [2] => Array ( [id] => 17878486537701170 [media_url] => ) ) ) foreach($usersMedia['data'] as $media){ //// $rss = $modx->newObject('modResource'); $rss->set('template', 2); // Назначаем ему нужный шаблон $rss->set('isfolder', 1); // Указываем, что это не контейнер $rss->set('published', 1); // Неопубликован $rss->set('createdon', time()); // Время создания $rss->set('pagetitle', $media['title'); // Заголовок $rss->set('content', $media['caption']); // Контент $rss->set('alias', strtolower($media['username'].'-'.$media['id'])); // Псевдоним $rss->set('parent', 2); // Родительский ресурс $rss->save(); $nid = $rss->get('id'); //получаем ID созданного ресурса $idpost = $modx->getObject('modTemplateVar',array('name'=>'idpost')); // Указываем имя нужного TV $idpost->setValue($nid, $media['id']); // Записываем в TV значение $idpost->save(); unset($rss); unset($idpost); $modx->cacheManager->clearCache(); // Кэш тоже чистим //// } Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 01:26 Да да да, я тоже сейчас понимаю что два цикла это неправильно, основной цикл перебор массива полей для новых ресурсов, и в нем я еще раз запускаю цикл, который смотрит все ресурсы и сравнивает поле нового ресурса со старым, и решает если нет ресурса с таким же значением в поле то добавлять. Поэтому думаю и не работает. Одна итерация, с одной записью. НО я НЕ ЗНАЮ как в массиве через in_array проверить значение в TV поле. Не так силен в php Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 01:15 Да, я тоже подозреваю что в foreach при добавлении я запускаю еще один foreach пробегая по существующим ресурсам это не правильно как то. Можно пример с newQuery? Я думаю надо как то смотреть наличие поля в массиве в целом, но не понимаю как tv в массиве посмотреть без цикла :( Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 01:13 Но мне не нужно получать ресурс по TV, смысл такой, при создании в цикле, я смотрю в папку parent 2 ВСЕРЕСУРСЫ, смотрю tv idpost, и сравниваю его с новым добавляющимся ресурсом с таким же полем. Если среди ресурсов есть ресурс с таким же значением, пропустить. Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 01:02 А можно вместо title все таки сравнивать в существующих страницах с полем TV idpost а в новых $media['id']? Просто в этом поле уникальных номер такой например 18073012534211706 Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 00:57 Дело в том что дублей как раз в $usersMedia нет, дубли получаются при добавлении в MODX, я вызываю снипет на странице. Если обновлю страницу два раза, страницы добавятся одни и те же. Вот пытаюсь при добавлении пропускать уже добавленные страницы. Сравнивая поле у новых страниц с таким же молем у старых, и что то не получается моя проверка не срабатывает :( Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
25 января 2021, 00:44 к сожалению не работает, на странице где вызываю сниппет, обновил страницу два раза, добавились страницы одни и те же два раза сделал так foreach($usersMedia['data'] as $media){ $resource=$modx->getObject ('modResource', array('pagetitle'=>$media['title'])); if(!$resource){ //Создаём новый ресурс $rss = $modx->newObject('modResource'); $rss->set('template', 2); // Назначаем ему нужный шаблон $rss->set('isfolder', 1); // Указываем, что это не контейнер $rss->set('published', 1); // Неопубликован $rss->set('createdon', time()); // Время создания $rss->set('pagetitle', $media['title']); // Заголовок $rss->set('content', $media['caption']); // Контент $rss->set('alias', strtolower($media['username'].'-'.$media['id'])); // Псевдоним $rss->set('parent', 2); // Родительский ресурс $rss->save(); //// } } Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
24 января 2021, 23:43 Вы все правильно понимаете, да, но как правильно проверить на pagetitle или idpost??? Это все уникальные поля. idpost в этом поле id с другого сервиса, он уникальный так же как и pagetitle. НО pagetitle может и повториться теоретически. Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 0
18 января 2021, 21:07 Ок, спасибо, думал есть что то в API для этого, сделал просто на php и порядок. $url = $value['media_url']; $path = './images/'.$value['id'].'.jpg'; file_put_contents($path, file_get_contents($url)); Вопросы / MODX REVO API Как сохранить изображение по URL? 8 0
18 января 2021, 20:43 не работает, а если проще, есть url картинки например, upload.wikimedia.org/wikipedia/commons/thumb/9/97/The_Earth_seen_from_Apollo_17.jpg/1200px-The_Earth_seen_from_Apollo_17.jpg Как его положить в папку на хостинге? С применением MODX API Вопросы / MODX REVO API Как сохранить изображение по URL? 8 0
18 января 2021, 20:15 Подскажите пожалуйста, а что должно быть в переменной $file_content? И зачем нужен временный каталог? Почему нельзя сразу сохранить куда нужно и все? Вопросы / MODX REVO API Как сохранить изображение по URL? 8 0
22 мая 2020, 21:23 БЛАГОДАРЮ! Почему то этого параметра в описании сниппета нет. Ни в pdoNeighbors ни в pdoResources Вопросы / как в pdoResources вывести следующие ресурсы от текущего? 8 0
22 мая 2020, 12:33 Спасибо, да уже применил, там единственный косяк, может знаете как побороть. Это то что он в цикле показывает следующие записи. Мне нужны только следующие 2 записи, на странице текущей. Когда мы открываем последнюю запись, то он начинает показывать ПЕРВУЮ как следующую. Поделитесь пожалуйста если знаете как этот момент пофиксить? Вопросы / как в pdoResources вывести следующие ресурсы от текущего? 8 0
Gallery3x 3.4.0 - вставка галерей прямо из визуального редактора (CKEditor и TinyMCE RTE) Здравствуйте. Есть консольный скрипт Вот почитайте: docs.ivan345.com/books/gallery3x/page/import-ms2galleryphp
[mSync] Новая версия синхронизации с 1С Всем привет. В какой то момент начали сыпаться ошибки: Error 23000 executing statement: INSERT INTO `modx_msync_products` (`product_id`, `uuid_1c`) VALUES ...
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
MiniShop3 - Не выводятся товары дополнительных категорий @SYAN ваша указанная проблема исправлена еще до версии 1.2.3 @Павлик Мышкин завел: github.com/modx-pro/MiniShop3/issues/480 github.com/modx-pro/MiniShop3/issues/481Исправим в б...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
с ключом parent не понял, в modResource можно только id указать, написал так
$resource=$modx->getObject ('modResource', 2, array('pagetitle'=>$media['title']));
НО я НЕ ЗНАЮ как в массиве через in_array проверить значение в TV поле. Не так силен в php
Я думаю надо как то смотреть наличие поля в массиве в целом, но не понимаю как tv в массиве посмотреть без цикла :(
Просто в этом поле уникальных номер такой например 18073012534211706
сделал так
Это все уникальные поля. idpost в этом поле id с другого сервиса, он уникальный так же как и pagetitle. НО pagetitle может и повториться теоретически.
$url = $value['media_url'];
$path = './images/'.$value['id'].'.jpg';
file_put_contents($path, file_get_contents($url));
upload.wikimedia.org/wikipedia/commons/thumb/9/97/The_Earth_seen_from_Apollo_17.jpg/1200px-The_Earth_seen_from_Apollo_17.jpg
Как его положить в папку на хостинге? С применением MODX API
И зачем нужен временный каталог? Почему нельзя сразу сохранить куда нужно и все?