29 сентября 2022, 10:12 Схема в MODX — это файл, в котором описаны все объекты и их связи. Он не участвует в работе компонента, он нигде не используется, он нужен только для генерации модели. А сама модель уже хранится в .map.inc.php и там уже отвечает за обработку данных. Тут можете почитать: https://docs.modx.com/current/ru/extending-modx/xpdo/custom-models/generating-the-model https://docs.modx.com/3.x/ru/extending-modx/creating-components/work-logic Вопросы / Необходимость атрибута precision в schema.xml 3 0
29 сентября 2022, 09:54 Откройте в DevTools вкладку Network и посмотрите, отправляется ли аяксом сообщение. Если нет, значит нужно искать в скриптах проблему. Вопросы / Не работают комментарии Ticket 6 +1
27 сентября 2022, 13:47 Вы событие у плагина поставили: OnBeforeDocFormSave? Вопросы / Вырезать плагином слова из контента 16 +1
27 сентября 2022, 12:32 Откройте консоль, и протестируйте. Откуда я знаю, что вы там отправляете. Вопросы / Вырезать плагином слова из контента 16 +1
27 сентября 2022, 10:27 Тут ошибка: if ($resource->get('template') == 24) { if (!$resource->content) { $resource->set('published', 0); } }Можно просто переписать: if ($resource->get('template') == 24 && !$resource->get('content')) $resource->set('published', 0);save можно не ставить, он потом все равно будет сохранять: $resource->save();Проверил, работает, поправьте ошибки и снова проверьте. Может быть проблема в том еще, что она когда удаляет не нужное, но на странице это не показывается, тут наверно нужно как-то отдельно перегружать блок. Вопросы / Вырезать плагином слова из контента 16 +1
27 сентября 2022, 09:31 Я что-то это упустил это. Но тут уже сами перепишите, ничего сложного нет. $words = array('xxx', 'yyy', 'zzz', 'etc..'); $pattern = '/<p>(?:' . join('|', $words) . ')<\/p>/i'; $content = preg_replace($pattern, '', $content); Вопросы / Вырезать плагином слова из контента 16 0
27 сентября 2022, 09:00 Единственное могут быть проблемы со склонениями, тут или расширить список или еще как-то переписать. Вопросы / Вырезать плагином слова из контента 16 +1
27 сентября 2022, 08:58 А в чем сложность? Сделайте плагин на событие OnBeforeDocFormSave if ($modx->event->name != 'OnBeforeDocFormSave') {return false;} $content = $resource->get('content'); $words = array('xxx', 'yyy', 'zzz', 'etc..'); $pattern = '/\b(?:' . join('|', $words) . ')\b/i'; $content = preg_replace($pattern, '', $content); $resource->set('content', $content); Вопросы / Вырезать плагином слова из контента 16 +1
26 сентября 2022, 10:59 Скорее всего как-то так. {$_modx->resource.content | ereplace : "/<\/?div[^>]*\>/i":""}Ну или как подсказывают выше, вот так: [[*content:striptags=`<div>`]]если php 7.4 и выше, то можно и массивом задавать ['div', 'iframe'] Вопросы / Как вырезать из поля контент все div 7 0
26 сентября 2022, 10:39 $content = preg_replace("/<\/?div[^>]*\>/i", "", $content); Вопросы / Как вырезать из поля контент все div 7 0
22 сентября 2022, 08:55 Тут основная боль, это phpthumbon с наложением ватермарка. =) Вопросы / Fenom вывод имени parent 15 0
21 сентября 2022, 16:50 А TV текущего ресурса как называется? Вопросы / Снова where и множественный выбор 8 0
21 сентября 2022, 16:43 Вот тут вообще не понятно, что вы делаете: {"[[*option]]:IN":rubrika}Через IN тут не решить вопрос. Нужно через LIKE () Добавьте &showLog=`1` и посмотрите, свой запрос. Вопросы / Снова where и множественный выбор 8 0
21 сентября 2022, 09:28 Ну почему ерунда стразу. Вывод ответы 1(Да) и 0(Нет). Если вам нужно только Да, то второй с помощью css уберите. ms|new:boolean ms|favorite:boolean ms|popular:boolean #mse2_filters .mse2s_boolean:nth-child(2n) { display: none; } Вопросы / Как правильно вывести поля в mFilter2 3 0
21 сентября 2022, 08:43 Скопируйте сниппет ms2Gallery и добавьте свой параметр, в нем передавайте pagetitle, так точно быстрее будет. Вопросы / Fenom вывод имени parent 15 0
20 сентября 2022, 15:39 $resource->id нужно заменить на $resource->get('id')Он значение ID не получает, поэтому и не пишет. Это вообще можно удалить, оно не нужно: $content = $resource->get('content');Итого: foreach($resources as $resource) { $tags = ["тег суперселект"]; $values = explode(',', $tags); foreach ($values as $value) { $where = array( 'resource_id' => $resource->get('id'), 'tv_id' => $tv_tss, 'value' => $value, ); if (!$modx->getCount('tvssOption', $where)) { $new = $modx->newObject('tvssOption'); $new->fromArray($where); $new->save(); unset($new); } $where = array( 'contentid' => $resource->get('id'), 'tmplvarid' => $tv_tss, ); if ($old = $modx->getObject('modTemplateVarResource', $where)) { $old_values = $modx->fromJSON($old->value); $old_values[] = $value; $old->set('value', $modx->toJSON(array_unique($old_values))); $old->save(); } else { $new = $modx->newObject('modTemplateVarResource'); $new->fromArray($where); $new->save(); unset($new); } } } Вопросы / Как массово поменять tv у ресурсов в поле tvSuperSelect ? 7 0
20 сентября 2022, 13:49 Кэш после этого чистили? Проверьте базу, пишется ли в базу. Вопросы / Как массово поменять tv у ресурсов в поле tvSuperSelect ? 7 0
20 сентября 2022, 09:44 Как-то вот так будет работать, не тестировал. $tv_tss поменяйте на свой. $modx->addPackage('tvsuperselect', MODX_CORE_PATH .'components/tvsuperselect/model/'); $tv_tss = 1; //тут нужно указать ID 'super_select_tags' foreach($resources as $resource) { $content = $resource->get('content'); $tags = ["тег суперселект"]; $values = explode(',', $tags); foreach ($values as $value) { $where = array( 'resource_id' => $resource->id, 'tv_id' => $tv_tss, 'value' => $value, ); if (!$modx->getCount('tvssOption', $where)) { $new = $modx->newObject('tvssOption'); $new->fromArray($where); $new->save(); unset($new); } $where = array( 'contentid' => $resource->id, 'tmplvarid' => $tv_tss, ); if ($old = $modx->getObject('modTemplateVarResource', $where)) { $old_values = $modx->fromJSON($old->value); $old_values[] = $value; $old->set('value', $modx->toJSON(array_unique($old_values))); $old->save(); } else { $new = $modx->newObject('modTemplateVarResource'); $new->fromArray($where); $new->save(); unset($new); } } } Вопросы / Как массово поменять tv у ресурсов в поле tvSuperSelect ? 7 0
20 сентября 2022, 09:35 Могу предположить, что он в формате json хранит. Так что отправляйте как: $resource->setTVValue('super_select_tags', json_encode(["тег суперселект"])); $resource->save();Плюс в доках сказано, что для данного TV есть отдельная таблица и он пишет в сразу в 2 таблицы, поэтому нужно посмотреть исходники, как там это реализовано, так же для вызова нужно использовать разделитель ||: {$_modx->runSnippet('tvssResources', [ 'tv' => '2', 'tags' => $_modx->runSnippet('tvssTags', ['id' => $_modx->resource.id, 'tv' => '2', 'tpl' => '@INLINE [[+tag]]', 'outputSeparator' => '||']), 'parents' => 0, 'limit' => 4, ]) ?: 'Похожих записей не найдено'} Вопросы / Как массово поменять tv у ресурсов в поле tvSuperSelect ? 7 0
20 сентября 2022, 09:09 Сначала нужно проверить, что выдает: $_modx->resource.parent $_modx->resource.id $parentи уже оттуда плясать. =) Вопросы / Fenom вывод имени parent 15 0
gtsAPI 1.1.7 — таблицы на TanStack, инлайн-редактирование как в Excel Prime Vue datatable тупит на 200+ строк и в виртуальном скролинге высота полей фиксирована. Вот нам в итоге и не подошло. Директор сказал расчет должен сразу показываться без пагин...
mxApi — быстрый внешний API для MODX Revolution • зафиксировать публичный контракт EndpointInterface / метаданных по semver, чтобы наш провайдер не ломался на обновлениях;Фактически это уже так, beta стоит просто на всякий случа...
YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс Вообще не понял о чем речь) В системной настройке service_js сейчас указана ссылка smartcaptcha.cloud.yandex.ru/captcha.js Я предложил очистить эту настройку, тогда компонент н...
mxBackup — обезличенные копии MODX в пару кликов Ещё нет, я там разом почти полтора десятка пакетов выложил модератор, вероятно, а шоке.
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 ...
А сама модель уже хранится в .map.inc.php и там уже отвечает за обработку данных.
Тут можете почитать:
https://docs.modx.com/current/ru/extending-modx/xpdo/custom-models/generating-the-model
https://docs.modx.com/3.x/ru/extending-modx/creating-components/work-logic
Можно просто переписать:
save можно не ставить, он потом все равно будет сохранять:
Проверил, работает, поправьте ошибки и снова проверьте. Может быть проблема в том еще, что она когда удаляет не нужное, но на странице это не показывается, тут наверно нужно как-то отдельно перегружать блок.
Ну или как подсказывают выше, вот так:
если php 7.4 и выше, то можно и массивом задавать ['div', 'iframe']
Через IN тут не решить вопрос. Нужно через LIKE ()
Добавьте &showLog=`1` и посмотрите, свой запрос.
Он значение ID не получает, поэтому и не пишет.
Это вообще можно удалить, оно не нужно:
Итого:
Плюс в доках сказано, что для данного TV есть отдельная таблица и он пишет в сразу в 2 таблицы, поэтому нужно посмотреть исходники, как там это реализовано, так же для вызова нужно использовать разделитель ||:
и уже оттуда плясать. =)