Юрий Фомин · 27 января 2017, 18:56 Таки дописал велосипед про автоматизацию создания/удаления и редактирования ресурсов в контекстах-дублях. <?php if ($modx->event->name == 'OnDocFormSave') { // собираем дублированные контексты (web - оригинальный контекст) $contexts = $modx->getCollection('modContext', array('key:NOT IN' => ['mgr','web'])); // получаем родителя создаваемого ресурса $parent = $resource->get('parent'); if ($parent != '0') { $parentId = $modx->getObject('modResource', $parent); $parentAlias = $parentId->get('alias'); } $alias = $resource->get('alias'); $id = $resource->get('id'); // проходимся по контекстам foreach ($contexts as $context) { $response = $modx->getObject('modResource', array('context_key'=>$context->key, 'alias' => $alias)); // если ресурс уже существует то тогда просто обновляем поля (кроме контента) if ($response) { $response->set('pagetitle', $resource->get('pagetitle')); $response->set('longtitle', $resource->get('longtitle')); $response->set('description', $resource->get('description')); $response->set('content', '[[!OriginalFields?&id=`'.$id.'`&field=`content`]]'); // ... много остальных полей $response->set('deleted', $resource->get('deleted')); $response->save(); } else { // создание нового ресурса $newResource = $modx->newObject('modDocument'); // заполняем поля ресурса $newResource->set('context_key', $context->key); $newResource->set('pagetitle', $resource->get('pagetitle')); $newResource->set('longtitle', $resource->get('longtitle')); $newResource->set('description', $resource->get('description')); $newResource->set('content', '[[!OriginalFields?&id=`'.$id.'`&field=`content`]]'); // ... много остальных полей $newResource->set('deleted', $resource->get('deleted')); // поле родителя для создания дубля в нем а не в корне if ($parent != '0') { $res = $modx->getObject('modResource', array('context_key'=>$context->key, 'alias'=>$parentAlias)); $parntId = $res->get('id'); } else { $parntId = $parent; } $newResource->set('parent', $parntId); // сохраняем свежеиспеченый ресурс $newResource->save(); } } // очищаем кеш $modx->cacheManager->clearCache(); } // удаление ресурсов в дублирующих контекстах if ($modx->event->name == 'OnDocFormDelete') { // собираем дублированные контексты (web - оригинальный контекст) $contexts = $modx->getCollection('modContext', array('key:NOT IN' => ['mgr','web'])); // проходимся по контекстам foreach ($contexts as $context) { // получаем нужные (верней не нужные поэтому и удаляемые) нам ресурсы $response = $modx->getObject('modResource', array('context_key'=>$context->key, 'alias' => $resource->get('alias'))); // помечаем как удаленные $response->set('deleted', $resource->get('deleted')); $response->save(); // удаляет полностью // $response->get('id'); // $response->remove(); } $modx->cacheManager->clearCache(); } Вопросы / Список всех контекстов 25 +2 3
Владимир · 21 января 2017, 19:22 $_modx->getPlaceholder('+EUR') — в комменте выше есть ответ на ваш вопрос Новые дополнения и их версии / [CurrencyRate] - курс валют 150 0 1
Володя · 12 января 2017, 14:05 {'!CRcalc'|snippet:[ 'input' => $_modx->getPlaceholder('+EUR'), 'divider' => 'USD', ]} Новые дополнения и их версии / [CurrencyRate] - курс валют 150 +1 1
Konstantin · 10 сентября 2016, 19:31 Вот кстати ответ на вопрос — как вывести картинку из ms2Gallery используя pdoTools -> pdoResources [[!pdoResources? &class=`msProductFile` &tpl=`@INLINE [[+rank]] - [[+url]]` &where=`{"product_id":"[[+id]]", "path:LIKE":"%/120x90/","rank":1}` &limit=`1` &sortby=`` &sortdir=`` &showLog=`0` ]]«rank»:1 — это указываем вторую картинку в товаре, если нужна первая то указываем «rank»:0 Вопросы / Вызов msGallery из чанка феном разметкой 9 0 1
Сергей · 23 мая 2016, 17:32 Вообщем подвожу итог. Самый простой и удобный способ сделать цель на успешную отправку формы, это добавить &successMessage=`Сообщение успешно отправлено <script>yaCounterXXXXXXX.reachGoal('myModalbuy_lid', goalParams, goalCallback);</script>`Так-же попробовал добавить параметры цены цели <script type="text/javascript"> var goalParams1 = {order_price: 999, currency: "RUB"}; function goalCallback1 () { console.log('запрос в Метрику успешно отправлен'); } </script>Всем спасибо за помощь. Вопросы / Цели яндекс метрика для ajax formit 30 0 1
Василий Наумкин · 21 января 2016, 09:09 На старой версии у меня работает, а в новой, похоже, что-то поменялось. Бронебойный вариант: $("#cleanmincart").click(function(){ $.post(document.location, {ms2_action: 'cart/clean'}); }); Вопросы / Как сделать очистку корзины из шаблона tpl.MinCart 9 0 3
Пётр Молчанов · 25 декабря 2015, 18:58 на событие OnUserRegister пиши что-то типа такого: if ($modx->event->name === 'OnUserSave' && $mode === 'new') { // генерим пароль $pass = $modx->user->generatePassword(); $user->set('password',$pass); $user->set('active','1'); $user->save(); $profile = $user->getOne('Profile'); $email = $profile->get('email'); $message = $modx->getChunk('название чанка с шаблоном письма', массив данных); $modx->getService('mail', 'mail.modPHPMailer'); $modx->mail->set(modMail::MAIL_BODY,$message); $modx->mail->set(modMail::MAIL_FROM,$modx->getOption('emailsender')); $modx->mail->set(modMail::MAIL_FROM_NAME,$modx->getOption('site_name')); $modx->mail->set(modMail::MAIL_SENDER,$modx->getOption('site_name')); $modx->mail->set(modMail::MAIL_SUBJECT,'тема письма'); $modx->mail->address('to',$email); $modx->mail->address('reply-to',$modx->getOption('emailsender')); $modx->mail->setHTML(true); if (!$modx->mail->send()) { $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo); return false; } $modx->mail->reset(); } Вопросы / Регистрация по одному email 7 0 1
ck · 02 октября 2015, 02:49 Для пересчёта цены в зависимости от выбранной валюты автор добавил в сборку плагин crMSprice. К сожалению по-умолчанию на него не навешено вообще никакого события. Подскажите, как заставить его пересчитывать цену при выборе валюты из списка, выводимого сниппетом CRlist? Новые дополнения и их версии / [CurrencyRate] - курс валют 150 0 1
Василий Наумкин · 31 августа 2015, 05:54 Условия в виде массива в msProducts не принимаются, потому что он ожидает их всегда в виде JSON. Придётся так и указывать: {$_modx->runSnippet('!msProducts', [ 'parents' => 3, 'sortby' => '{ "Data.new": "desc", "msProduct.editedon": "desc" }', 'includeThumbs' => '150x150', 'where' => '{ "Data.price:>=": 0 }', 'limit' => 4, 'showLog' => true, 'tpl' => '@INLINE bla-bla-bla ' ])}У pdoResources такой проблемы нет. Кстати, если очень хочется использовать именно массивы — то можно воспользоваться тем, что json_encode в Fenom является разрешённой PHP функцией: {$_modx->runSnippet('!msProducts', [ 'parents' => 3, 'sortby' => json_encode([ "Data.new" => "desc", "msProduct.editedon" => "desc" ]), 'includeThumbs' => '150x150', 'where' => json_encode([ "Data.price:>=" => 0 ]), 'limit' => 4, 'showLog' => true, 'tpl' => '@INLINE bla-bla-bla ' ])} Вопросы / Проблема с where и sortby в fenom 8 0 4
Dmitry Rodionov · 13 августа 2015, 00:12 Перевод действительно убогий, лучше переписать своими словами все и будет куда как понятнее, чем пытаться сохранить стиль предложений. Кстати, по поводу самой статьи, сравнение с WP интересно, но WP бесплатен, у нас же в России присутствует другой опыт, многим навязывают платный битрикс или юми, которые стоят в некоторых редакциях дороже чем весь сайт на бесплатном движке. При этом пользователи привыкли платить деньги и не понимают как может быть качественный продукт бесплатным, а еще и легким. Например интернет магазин на 20к товаров на MODX будет спокойно работать на хостинге за 150р в месяц и кушать 1,5-2гига места. При этом такой же магазин на битриксе без суровых оптимизаций (мало кто нынче заботится о них) будет кушать уже под 10 гигов и висеть на хостинге за 3к в месяц. Некомпетенция пользователей и не желание их терять навязывая свой движок, идут друг за другом и проталкивают платные продукты и тормозя развитие бесплатных, в какой-то мере. Ну и конечно как правильно было замечено в статье, удобство использования WP простыми людьми ничего не понимающими в html, но при этом занимающимися «разработкой сайтов» вытекает в большую популярность по сравнению с MODX. Новости и события / Почему MODX не становится популярнее? 191 +2 1
UiCMPGenerator дополнение для создания пакетов Ближе к сентябрю, основная загвоздка это создание нормальной документации и видео обзора, а так пакет как бы уже готов
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 баг исправлен
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
«rank»:1 — это указываем вторую картинку в товаре, если нужна первая то указываем «rank»:0
Самый простой и удобный способ сделать цель на успешную отправку формы, это добавить Так-же попробовал добавить параметры цены цели
Всем спасибо за помощь.
Подскажите, как заставить его пересчитывать цену при выборе валюты из списка, выводимого сниппетом CRlist?
У pdoResources такой проблемы нет.
Кстати, если очень хочется использовать именно массивы — то можно воспользоваться тем, что json_encode в Fenom является разрешённой PHP функцией:
Кстати, по поводу самой статьи, сравнение с WP интересно, но WP бесплатен, у нас же в России присутствует другой опыт, многим навязывают платный битрикс или юми, которые стоят в некоторых редакциях дороже чем весь сайт на бесплатном движке. При этом пользователи привыкли платить деньги и не понимают как может быть качественный продукт бесплатным, а еще и легким.
Например интернет магазин на 20к товаров на MODX будет спокойно работать на хостинге за 150р в месяц и кушать 1,5-2гига места. При этом такой же магазин на битриксе без суровых оптимизаций (мало кто нынче заботится о них) будет кушать уже под 10 гигов и висеть на хостинге за 3к в месяц.
Некомпетенция пользователей и не желание их терять навязывая свой движок, идут друг за другом и проталкивают платные продукты и тормозя развитие бесплатных, в какой-то мере.
Ну и конечно как правильно было замечено в статье, удобство использования WP простыми людьми ничего не понимающими в html, но при этом занимающимися «разработкой сайтов» вытекает в большую популярность по сравнению с MODX.