18 августа 2021, 14:06 {if in_array($id, [100, 150, 154])} <a href="{$uri}">{$pagetitle}</a> {else} {$pagetitle} {/if}только может быть такое что модыфикаторы не сработають для tpl — @INLINE и надо будет создавать отдельний чанк для этого Вопросы / msProductOptions вывод характеристик в виде ссылок на ресурсы Вопрос. 8 0
17 августа 2021, 15:29 Создаеш TV, с типом ввода — Список (множественный выбор) В поле вожможные значения пишеш чтото такое @EVAL return $modx->runSnippet('msProducts', array( 'parents'=>$parentID, 'where'=>'{"Data.price:>=":"150"}', 'limit'=>0, 'sortby'=>'{"pagetitle":"ASC"}', 'tplOuter'=>'@INLINE [[+output]]', 'tpl'=>'@INLINE [[+pagetitle]]==[[+id]]', 'outputSeparator'=>'||' ));А при выводе на сайте береш значение твоей TV и передаеш в pdoResources {'!pdoResources' | snippet:[ 'parents' => 0, 'limit' => 0, 'resources' => $_modx->resource.your_tv_field, 'tpl' => '@INLINE <a href="{$uri}">{$pagetitle}</a>' ]}я только не помню точно ставит ли «Список (множественный выбор)» — какой-то свой разделитель между значениями, если ето не "," то надо будет заменить розделитель Вопросы / msProductOptions вывод характеристик в виде ссылок на ресурсы Вопрос. 8 0
11 августа 2021, 16:37 Вставить в контент визов чанка [[$productCart?id=`59`]]или снипета [[productCart?id=`59`]] Вопросы / TinyMCE вставка карточки товара 1 0
06 августа 2021, 16:58 <?php $values = $hook->getValues(); $identifier = basename($_SERVER['REQUEST_URI']); $contextKey = '-'; if ($modx->resource) { $identifier = $modx->resource->get('id'); $contextKey = $modx->resource->get('context_key'); } $formName = $modx->getOption('formName', $formit->config, 'form-'.$identifier); // process formName. Pick a value from the form // Inspired from the email's hook of formit (fihooks.class.php) if (is_string($formName)) { foreach ($fields as $k => $v) { if (is_scalar($k) && is_scalar($v)) { $formName = str_replace('[[+'.$k.']]',$v,$formName); } } } $formEncrypt = $modx->getOption('formEncrypt', $formit->config, false); $formFields = $modx->getOption('formFields', $formit->config, false); $fieldNames = $modx->getOption('fieldNames', $formit->config, false); $updateSavedForm = $modx->getOption('updateSavedForm', $formit->config, false); // true, false, '1', '0', or 'values' // In order to use update process, you need to provide the hash key to the user somehow // Usually with [[!FormItRetriever]] to populate this form field: $formHashKeyField = $modx->getOption('savedFormHashKeyField', $formit->config, 'savedFormHashKey'); // Disable if you want to use the session_id() in your hash, like FormIt does // WARNING: this can cause potential hash key collisions and overwriting of the wrong form record!! $formHashKeyRandom = $modx->getOption('formHashKeyRandom', $formit->config, true); // process formHashKeyField into variable for later use $formHashKey = (isset($values[$formHashKeyField])) ? (string) $values[$formHashKeyField] : ''; // our hashing methods return 32 chars if (strlen($formHashKey) !== 32) $formHashKey = ''; unset($values[$formHashKeyField]); if ($formFields) { $formFields = explode(',', $formFields); foreach($formFields as $k => $v) { $formFields[$k] = trim($v); } } // Build the data array $dataArray = array(); if ($formFields) { foreach ($formFields as $field) { $fieldValue = isset($values[$field]) ? $values[$field] : ''; // When field is file field, value is an array if (is_array($fieldValue) && isset($fieldValue['tmp_name'], $fieldValue['name'])) { $fieldValue = $fieldValue['name']; } $dataArray[$field] = $fieldValue; } } else { $dataArray = $values; } // Change the fieldnames if ($fieldNames) { $newDataArray = array(); $fieldLabels = array(); $formFieldNames = explode(',', $fieldNames); foreach ($formFieldNames as $formFieldName) { $parts = explode('==', $formFieldName); $fieldLabels[trim($parts[0])] = trim($parts[1]); } foreach ($dataArray as $key => $value) { if ($fieldLabels[$key]) { $labelKey = $fieldLabels[$key]; if (array_key_exists($labelKey, $newDataArray)) { $labelKey .= ' ('.$key.')'; } $newDataArray[$labelKey] = $value; } else { $newDataArray[$key] = $value; } } $dataArray = $newDataArray; } // We only enter update mode if we already have a valid formHashKey (tested above) // AND the updateSavedForm param was set to a truth-y value. $mode = ($updateSavedForm && $formHashKey) ? 'update' : 'create'; // Create/get obj $newForm = null; if ($mode === 'update') { $newForm = $modx->getObject('FormItForm', array('hash' => $formHashKey)); } if ($newForm === null) { $newForm = $modx->newObject('FormItForm'); } // Array from which to populate form record $newFormArray = array(); // Handle encryption $encryptionType = 1; if ($formEncrypt) { $dataArray = $newForm->encrypt($modx->toJSON($dataArray)); // Only set encryption type if encryption is successful if ($dataArray) { // Set encryption type to 2 (openssl) $encryptionType = 2; } } else { $dataArray = $modx->toJSON($dataArray); } // Create new hash key on create mode, and handle invalid hash keys. if ($mode === 'create') { $formHashKey = ($formHashKeyRandom) ? $newForm->generatePseudoRandomHash() : pathinfo($formit->getStoreKey(), PATHINFO_BASENAME); } // Special case: if updateSavedForm has the flag 'values' we only merge in // the form values, not the other stuff if ($mode === 'update' && $updateSavedForm === 'values') { $newFormArray = $newForm->toArray(); $newFormArray = array_merge($newFormArray, array( 'values' => $dataArray, 'encryption_type' => $encryptionType, )); } else { $newFormArray = array( 'form' => $formName, 'date' => time(), 'values' => $dataArray, 'user_id' => $modx->user->id ?: 0, 'ip' => $modx->getOption('REMOTE_ADDR', $_SERVER, ''), 'context_key' => $contextKey, 'encrypted' => $formEncrypt, 'encryption_type' => $encryptionType, 'hash' => $formHashKey, ); } // Convert to object $newForm->fromArray($newFormArray); // Attempt to save if (!$newForm->save()) { $modx->log(\modX::LOG_LEVEL_ERROR, '[FormItSaveForm] An error occurred while trying to save the submitted form: ' . print_r($newForm->toArray(), true)); return false; } $storeAttachments = $modx->getOption('storeAttachments', $this->config, false); if ($storeAttachments) { $newForm->storeAttachments($formit->config); } // Pass the hash and form data back to the user $hook->setValue('savedForm', $newForm->toArray()); $hook->setValue($formHashKeyField, $newForm->get('hash')); return true; Вопросы / FormIt расширение таблицы 5 0
06 августа 2021, 16:53 логику на подобие той что в файле __CORE_PATH__/components/formit/src/FormIt/Hook/Saveform.php Вопросы / FormIt расширение таблицы 5 0
06 августа 2021, 15:42 если хочешь добавить поле в отдельное поле то надо внести изменения в хук сохранения формы __CORE_PATH__/components/formit/src/FormIt/Hook/Saveform.php — 183 ряд, в этом случае при обновлении FormiIt изменения перезапишуться. ИЛИ создать свой hook который будет записывать данные с формы в БД в таблицу modx_formit_forms Вопросы / FormIt расширение таблицы 5 0
06 августа 2021, 15:30 Все значения из формы записываються в modx_formit_forms в поле values в json формате. Етот код: $hook->setValue('user_id', $user_id);Добавляєт елемент в масив values Вопросы / FormIt расширение таблицы 5 0
23 июля 2021, 11:34 тоесть не пустой, а такой Array( [success] => [message] => Такое изображение уже есть в галерее товара. [total] => 0 [errors] => Array( ) [object] => Array( ) ) Вопросы / Пропуск фоток при загрузке через процесор 4 0
23 июля 2021, 11:09 да ето код пример ) у 2-4 такой масив, Array [success] => [message] => Такое изображение уже есть в галерее товара. [total] => 0 [errors] => Array( ) [object] => Array( ) ) а у остальних Array( [success] => 1 [message] => [total] => 0 [errors] => Array( ) [object] => Array( [id] => 15637 [product_id] => 2017 [source] => 2 [parent] => 0 [name] => 8926e70d-c6af-11eb-9377-18c04d68439c [description] => [path] => 2017/ [file] => 8926e70d-c6af-11eb-9377-18c04d68439c.jpeg [type] => image [createdon] => 2021-07-23 11:04:14 [createdby] => 1 [rank] => 0 [url] => /assets/images/products/2017/8926e70d-c6af-11eb-9377-18c04d68439c.jpeg [properties] => Array( [size] => 115653 [width] => 2000 [height] => 1600 [bits] => 8 [mime] => image/jpeg ) [hash] => 9ee73b013db3030f41d162a0525314fc3b97e806 [active] => 1 ) )ето при первой загрузке фоток, а дальше у всех пустой масив Вопросы / Пропуск фоток при загрузке через процесор 4 0
22 июля 2021, 16:50 { "dd.mm.YY.HH": 209.99, "dd.mm.YY.HH": 199.99, "dd.mm.YY.HH": 179.99, } Вопросы / mysql добавление цен 7 0
22 июля 2021, 16:11 Можно ети цены сохранять в талице с 2 полями 'product_id' i 'prices' где prices — сохраняєтся в виде JSON [209.99, 199.99, 179.99]или [ {'price': 209.99, 'date': "dd.mm.YY HH:ii:ss"}, {'price': 199.99, 'date': "dd.mm.YY HH:ii:ss"}, {'price': 179.99, 'date': "dd.mm.YY HH:ii:ss"} ]Не знаю на сколько ето правильно Вопросы / mysql добавление цен 7 0
22 июля 2021, 15:57 $resource->setTVValue('имя TV поля', 'значение поля'); $resource->save();//Если нужно переписать ето поле Вопросы / Передать значение переменной в setTVValue 1 0
12 апреля 2021, 15:37 Если форма работает через Ajax то переменые [[+fi.success]] и [[+fi.error]] всегда будут пустые Вопросы / AjaxFormit. Не выводится плейсхолдер [[+fi.successMessage]] в нужном мне месте 5 0
12 апреля 2021, 15:31 $dir = $dir ?: 'assets/media/90/schema/'; $tpl = $tpl ?: 'mailFileInputTpl'; $filename = "schema.png"; // название файла $file = MODX_BASE_PATH . $dir . "$filename"; if (file_exists($file)) { return $modx->getChunk($tpl, $filename); } else { return 'НЕТ СХЕМЫ! ---/ ' . $file; } Вопросы / Проверка файла на существование 1 0
23 марта 2021, 18:17 По поводу параметра «return» можно както вернуть масив со значениями, или только return=>json, а потом json_decode? Новые дополнения и их версии / Релиз miniShop2 ver. 2.8.2 82 0
17 декабря 2020, 19:46 Разобрался сам, в правах доступа установил такую галочку Вопросы / Localizator і права для «Контент Менеджер» 1 +1
17 декабря 2020, 14:19 Пробуйте в вашем чанке корзини вставить {$_modx->lexicon->load('minishop2:default')} Вопросы / Языковые файлы корзины MiniShop2 5 0
16 декабря 2020, 13:17 Как можна пользователю с правами «Контент Менеджер» дать доступ к добавлению записей в Словарь. Политика доступа «LocalizatorManagerPolicy» есть для етой групи пользователей. Сист. настройка «localizator_check_permissions» отключена (в положении Нет). Новые дополнения и их версии / Localizator 1.0.7-beta 52 0
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 ...
Checkbox для модального окна Они не отключены, они платные, чтобы писали только те, кому действительно очень надо. Когда бесплатно люди начинают думать, что я им должен.
[SendIt 2.6.0] Анализ поведения пользователя для защиты от спама (невидимая капча)... Здравствуйте. Делаю личный кабинет на Sendit и со сбросом пароля возникли проблемы. Можете подсказать, в чем ошибка? Список вопросов в одноименном разделе на modx.pro пока пуст, и,...
Minishop + честный знак (продажа маркированной продукции) В нашем случае мы решили убрать всю логику по маркировке сайта.
В поле вожможные значения пишеш чтото такое
А при выводе на сайте береш значение твоей TV и передаеш в pdoResources
я только не помню точно ставит ли «Список (множественный выбор)» — какой-то свой разделитель между значениями, если ето не "," то надо будет заменить розделитель
или снипета
Добавляєт елемент в масив values
у 2-4 такой масив,
а у остальних
ето при первой загрузке фоток, а дальше у всех пустой масив
где prices — сохраняєтся в виде JSON
или
Не знаю на сколько ето правильно