16 ноября 2016, 19:55 Чтож, уже ноябрь, но лучше поздно чем никогда) Спасибо Сергей Шлокову, он на пальцах мне обьяснил что так как я хотел сделать выше — нельзя. Последовательность такая: 1. Нажимается кнопка. 2. В функции кнопки вызывается ajax запрос к процессору который выдает поля. 3. Только когда ajax выполнился вызывается окно. В вызов окна сразу подсовываются готовые поля, сформированные из ответа ajax. Код функции процессора — process () public function process() { /*некий код*/ $fields = ''; // Существует какая то некая таблица в которой 1 строка это поле $table = $this->modx->getTableName('FieldsItems'); $query = $this->modx->query("SELECT * FROM ".$table." WHERE active = 1"); if (!is_object($query)) { return $this->failure($this->modx->lexicon('fl_data_err_get_field')); }else{ $arr = $query->fetchAll(PDO::FETCH_ASSOC); foreach ($arr as $value) { $fields[] = array( 'xtype' => 'textarea', 'fieldLabel' => $value['name'], 'name' => "fl-".$value['code'], 'id' => 'ext-gen-fl-'.$value['code'], 'anchor' => "99%", 'allowBlank' => "false", 'value' => $fieldsValues[$value['code']] ); } } return $this->success('',$fields); // Возвращаем массив полей } Как это в EXT.JS. Тут два запроса ajax, первый получает поля, второй к процессору get который выдает данные об объекте. MODx.Ajax.request({ url: Fl.config.connectorUrl ,params: { action: "mgr/data/get_fields", // Тот самый процессор который выдает поля id_res: MODx.request.id, } ,listeners: { success: {fn: function(res) { var fieldsArr = res['object']; // Ответ от процессора с полями, он возвращает массив с данными полей fieldsArr = fieldsArr || {}; MODx.Ajax.request({ url: this.config.url, params: { action: 'mgr/data/get', id: MODx.request.id, }, listeners: { success: { fn: function ( r ) { var w = MODx.load({ xtype: 'fl-data-window-update', id: Ext.id(), addFields: fieldsArr, // Здесь передаем поля в вызов окна record: r, listeners: { success: { fn: function () { this.refresh(); }, scope: this }, hide: { fn: function () { setTimeout(function(){w.destroy();},200); }, scope: this } } }); w.reset(); w.setValues(r.object); w.show(e.target); }, scope: this } } }); }, scope: this} } }); В extende окна: Ext.extend(Fl.window.UpdateItem, MODx.Window, { getFields: function (config) { return [{ xtype: 'hidden', name: 'id', id: config.id + '-id', value: config.id },{ xtype: 'xcheckbox', boxLabel: _('fl_lang_active'), name: 'active', id: config.id + '-active', checked: true, }, config.addFields // ВОТ ТУТ И ДОБАВЛЯЮТСЯ ПОЛЯ, т.е. тот массив полей который передали в ajax запросе ]; }, loadDropZones: function () { } }); Ext.reg('fl-data-window-update', Fl.window.UpdateItem);Как то так, наверняка посмотрев через год на этот код будет такая мысль: «Под чем я был кода писал этот код» Вопросы / Манипулирование ExtJs на лету через процессор 5 +2 2
15 ноября 2016, 16:05 [2016-11-15 15:56:18] (ERROR @ /-/core/components/minishop2/custom/payment/msppayanyway.class.php : 10) Recoverable error: Argument 1 passed to msppayanyway::__construct() must be an instance of xPDOObject, instance of modX given, called in /-/core/xpdo/xpdo.class.php on line 1246 and definedЭто связанно с сегодняшним обновлением MODX? Новые дополнения и их версии / [mspPayAnyWay] - метод оплаты для Minishop2 13 0
15 ноября 2016, 14:35 Can use translate.yandex.ru/ Like it better translates :) Новости и события / Срочные исправления безопасности в MODX 2.5.2 90 +1
14 ноября 2016, 11:47 Hello Mark! Lest you orde all an interpreter can let Vasili Naumkin(bezumkin) and Nicholas Lanets will be a bridge between you and the Russian-speaking community for better communication? That is to say officials modx in the Russian-speaking community and be part of your team. Безопасность / Критическая уязвимость в MODX Revolution 340 0
10 ноября 2016, 12:27 Василий, обрати пожалуйста свой взор на эту небольшую проблему) Вопросы / Прошу помочь с API miniShop2 9 0
09 ноября 2016, 21:16 Василий подскажи пожалуйста в чем проблема, точнее она схожа с вышеописанной: выдает ошибку ms2_gallery_err_no_product и на первом товаре сбрасывается. 1. В цикле создаю товары, класс указан msProduct 2. Закачиваю на сервер картинку 3. Закачиваю картинку через процессор. если убрать запуск процессора gallery, то товары создаются нормально. id и image точно передаются. foreach($TVR_hm as $tvr){ echo '--- Создан <b>Товар</b> '.$tvr['pagetitle']. ' '; $newTVR = creatRes($tvr['pagetitle'],$newPodCat['id'],8); $img = $hmURL.$tvr['image']; $file_name = str_replace("/","",substr( $img, strripos( $img,'/'))); $origFileName = $_SERVER["DOCUMENT_ROOT"].'/'.$tmp.$file_name; $image = str_replace('//', '/', MODX_BASE_PATH . $tmp . $file_name); //загрузка файла на сервер upload($img,$origFileName); //загрузки файла для товара $params = array('id' => $newTVR['id'], 'name' => $file_name, 'file' => $image); $response = $modx->runProcessor('gallery/upload',$params, array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/')); if ($response->isError()) { echo "Error on upload \"$image\": \n". print_r($response->getAllErrors(), 1); } unlink($image); } function creatRes($pagetitle,$parent,$template,$class = 0){ global $modx; $classR = 'msProduct'; if($class == 1){ $classR = 'msCategory'; } $data['class_key'] = $classR; $data['context_key'] = 'web'; $data['template'] = $template; $data['published'] = 1; $data['parent'] = $parent; $data['pagetitle'] = $pagetitle; $new_res = $modx->runProcessor('resource/create', $data); return $new_res->getObject(); }Пробовал (нашел где-то), $modx->error->reset(); в цикл пихать, проходит первую категорию, товары создаются с картинками. Помимо того, что долго он еще и вешается, мол массив пустой, хотя он не пустой, в общем это костыль какой-то. Подскажите пожалуйста Вопросы / Прошу помочь с API miniShop2 9 0
08 ноября 2016, 12:44 п… — другого слова нет. О какой такой нашей безопасности может идти речь если они себя не состоянии обезопасить. Безопасность / Критическая уязвимость в MODX Revolution 340 +1
08 ноября 2016, 12:13 Ну вот я поэтому имел ввиду не один человек, а группу экспертов модх. Безопасность / Критическая уязвимость в MODX Revolution 340 0
08 ноября 2016, 11:37 С каждым заходом в эту тему, так становится печальнее… Где-то писали про любовь к модх — она постепенно угасает (скоро будет: «прошла любовь, завяли помидоры»). Дабы этого не произошло со всеми и со мной надо найти какое-то решение, потому что здесь оставляем комментарии и дыр выявляется много, а там в кабинетах модх скорее всего ничего не меняется. Где-то месяц назад или более Василий выкладывал новость о создание команды на будущее развитие модх (вроде так было, поправьте если путаю), так вот я предлагаю собрать похожую «команду»,«совет»,«консорциум», просто группа, которая напишет большой БагРепорт и будет в будущем писать о дырах модх, а также если есть решение. Например: Василий, Николай и Евгений Борисов, они ребята «авторитетные» и о них в модх знают, проще говоря к ним прислушаются. Написали в модх, что вот там то дыра, поправить можно так-то, в модх увидят, что письмо от этой команды и рассмотрят его и отнесутся с серьезностью, а не просто забьют. Так сказать нужно подсказывать разработчикам («подпинывать») модх, но тем самым сделать очень большое дело!!! Глядишь и команда Simple Dream тоже подключится или кто то другой. Даже, хотя бы исходя из финансовой точки зрения, из-за дыр не будет пользователей модх и никто не будет покупать в магазине дополнения и много разных вытекающих последствий… Ведь это любовь к модх, а за любовь надо бороться. Безопасность / Критическая уязвимость в MODX Revolution 340 +2
06 ноября 2016, 11:20 Префикс (не зря же его придумали), как и соль в паролях, создан для защиты от злоумышленников и не зря при установке есть возможность указать его. Плохо то, что в modx можно сделать sql-инъекцию. Безопасность / Критическая уязвимость в MODX Revolution 340 +3
06 ноября 2016, 10:43 Понял)) Допустим если не идти легким путем, т.е. не менять префикс, а решать проблему в корне, я так понимаю в ядре копаться? А ты им предложил в корне проблему решать(может даже решение дал) или они завтра напишут срочно все меняйте префиксы?)) Безопасность / Критическая уязвимость в MODX Revolution 340 0
06 ноября 2016, 10:27 Николай, первое это конечно огромное большое спасибо за «защиту» наших сайтов! Печально конечно, я до недавнего времени думал, что modx лучшая из лучших, считал гарантом и людям говорил зачем тебе битрикс за 20 тысяч в год если есть modx с большими возможностями и безопасностью. А оказывается дыр полно. Префикс старался менять на сайтах, но все же он не был супер сложным. Практически все эти проблемы решаются сменой префиксов таблиц и сокрытием папки коннекторов.Есть еще проблемы и как они решаются? т.е. я так понимаю их много и от этого становится еще печальней. Парни из modx что-то ответили? или надо их сайт взломать, чтоб они поняли… Безопасность / Критическая уязвимость в MODX Revolution 340 0
04 ноября 2016, 19:46 Ребят подскажите, как правильно работать с подключение к сторонней бд // Соединяемся с базой данных: $dsn = "mysql:host=$host;dbname=$databasename;port=$port;charset=$charset"; $config_options = array(xPDO::OPT_TABLE_PREFIX => 'modx_'); $xpdoH = new xPDO($dsn, $username, $password,$config_options,[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION]); // Проверяем успешность подключения: if($xpdoH->connect()) { echo '<div class="alert alert-success">Подключение к БД - <strong>Успешно</strong></div>'; }else{ echo '<div class="alert alert-danger">Подключение к БД - <strong>НЕ Удалось</strong></div>'; return; }Данный код обрабатывает норм, подключение успешно. Далее, делаю такой код: $h = $xpdoH->query("SELECT * FROM modx_site_content WHERE parent = 2"); $res_hl = $h->fetchAll(PDO::FETCH_ASSOC);Выводит все норм. Но хотелось бы работать с обьектами, т.е. так: $hr = $xpdoH->newQuery('modResource'); $hr->select(array('modResource.*')); $hr->prepare(); $hr->stmt->execute(); $res_hr = $hr->stmt->fetchAll(PDO::FETCH_ASSOC);Но этот код выдает пустой массив… Запрос распечатываю вижу такие строчки: [sql] => SELECT modResource.* FROM AS `modResource`Т.е. после FROM не указана таблица Подскажите пожалуйста, что надо сделать? Вопросы / Работа с удаленным сервером mysql 4 0
26 октября 2016, 15:35 Приветствую! Подскажите пожалуйста: 1. Не могу понять как получить массив $data в событии, не выводится ничего Еще в этом событии есть массив $data — дополнительные параметры, присланные юзером при добавлении товара в корзину. Там может быть цвет, размер и вообще, что угодно.И как в него что-то передать? Пробовал просто input <input type="hidden" name="newPrice" value="123123"> //или так <input type="hidden" name="data[newPrice]" value="qweqweqwe">в плагине пытаюсь получить его, ничего не выводит, даже array( ) не выводит $modx->log(modX::LOG_LEVEL_ERROR, print_r($data,true)); 2. Как из options удалить Опцию, т.е. чтоб она в корзине не отображалась? Вот весь код плагина: switch ($modx->event->name) { case 'msOnBeforeAddToCart': $modx->log(modX::LOG_LEVEL_ERROR, print_r($options,true)); $modx->log(modX::LOG_LEVEL_ERROR, print_r($data,true)); $product->set('price', $options['newPrice']); unset($options['newPrice']); break; Новые дополнения и их версии / [miniShop2] Версия 2.4.4 - исправление ошибок 46 0
22 октября 2016, 14:34 Володя, скажи пожалуйста смогу ли я такое реализовать при помощи msOptionsPrice2: Есть Опция(общая) размеры sizes (тоже множественный выбор, но не стандартная size), сделал так чтобы были уже готовые значения и можно было просто выбирать. так вот: Есть несколько размеров, допустим 10, 30, 50. Они общие, т.е. эта опция для групп ресурсов одинаковая. Соответственно на каждую группу ресурсов своя цена на размеры. Допустим так: - Категория 1 10 цена 1000р 30 цена 1200р 50 цена 1400р - Категория 2 10 цена 1100р 30 цена 1300р 50 цена 1500рВ каждом товаре выбираю только размер товара, из предложенных. К примеру: Товар 1 - размеры 10, 30 Товар 2 - размеры 50 Товар 3 - размеры 10,50Соответственно нужно выводить опции-цены только которые выбраны для товара. Можно ли чтобы не вбивать в каждый товар размер и его цену(создавать модификации), а назначить глобально как-то, т.е. для Категории как в коде выше? Вопрос не к компоненту, лучше наверно использовать существующее поле size, но как там связать это все и чтоб были значения(т.е. размеры 10, 30, 50 уже вбиты и можно было только выбирать)? Новые дополнения и их версии / [msOptionsPrice2] - Модификации продукта. 375 0
21 октября 2016, 16:15 от блин, как все просто оказалось)) Спасибо) Вопросы / Ошибка в результате пользовательского запроса 5 0
21 октября 2016, 09:44 Вопрос «новичковый», как приводить массив, который отдает newQuery, в массив без префикса Array ( [0] => Array ( [msProduct_id] => 1 [msProduct_type] => document ........ ) )Чтобы был такого вида: Array ( [0] => Array ( [id] => 1 [type] => document ........ ) ) Вопросы / Ошибка в результате пользовательского запроса 5 0
20 октября 2016, 14:21 Да это так. Я это понимал, но я не понимал почему открыв страницу home запускался сниппет другого ресурса т.е. test 1. Вопросы / Какая-то неверная работа PdoMenu 15 0
20 октября 2016, 14:19 Обновился, все решилось. ато я 2-а дня мучился(даже вывело из себя немного:) и не понимал где собака зарыта, только вчера нашел проблему. Спасибо Василий! и за оперативность конечно огромное спасибо! Вопросы / Какая-то неверная работа PdoMenu 15 +1
20 октября 2016, 14:13 На разных хостингах и сайтах пробовал, всегда 1 не обрабатывается. Версия конечно была свежая, до обновления от Василия :) Вопросы / Какая-то неверная работа PdoMenu 15 0
Как я использую mxBoard для работы с ИИ-агентами Немного непонятно, зачем здесь MODX. Агенты работают именно над этим сайтом или это какой-то общий оркестратор, и на доске могут быть карточки по разным сайтам? А ещё расскажи, ...
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 пока пуст, и,...
Спасибо Сергей Шлокову, он на пальцах мне обьяснил что так как я хотел сделать выше — нельзя.
Последовательность такая:
1. Нажимается кнопка.
2. В функции кнопки вызывается ajax запрос к процессору который выдает поля.
3. Только когда ajax выполнился вызывается окно. В вызов окна сразу подсовываются готовые поля, сформированные из ответа ajax.
Код функции процессора — process ()
Как это в EXT.JS. Тут два запроса ajax, первый получает поля, второй к процессору get который выдает данные об объекте.
В extende окна:
Как то так, наверняка посмотрев через год на этот код будет такая мысль:
«Под чем я был кода писал этот код»
Like it better translates :)
выдает ошибку ms2_gallery_err_no_product и на первом товаре сбрасывается.
1. В цикле создаю товары, класс указан msProduct
2. Закачиваю на сервер картинку
3. Закачиваю картинку через процессор.
если убрать запуск процессора gallery, то товары создаются нормально.
id и image точно передаются.
Пробовал (нашел где-то), $modx->error->reset(); в цикл пихать, проходит первую категорию, товары создаются с картинками. Помимо того, что долго он еще и вешается, мол массив пустой, хотя он не пустой, в общем это костыль какой-то.
Подскажите пожалуйста
Дабы этого не произошло со всеми и со мной надо найти какое-то решение, потому что здесь оставляем комментарии и дыр выявляется много, а там в кабинетах модх скорее всего ничего не меняется. Где-то месяц назад или более Василий выкладывал новость о создание команды на будущее развитие модх (вроде так было, поправьте если путаю), так вот я предлагаю собрать похожую «команду»,«совет»,«консорциум», просто группа, которая напишет большой БагРепорт и будет в будущем писать о дырах модх, а также если есть решение.
Например: Василий, Николай и Евгений Борисов, они ребята «авторитетные» и о них в модх знают, проще говоря к ним прислушаются. Написали в модх, что вот там то дыра, поправить можно так-то, в модх увидят, что письмо от этой команды и рассмотрят его и отнесутся с серьезностью, а не просто забьют. Так сказать нужно подсказывать разработчикам («подпинывать») модх, но тем самым сделать очень большое дело!!!
Глядишь и команда Simple Dream тоже подключится или кто то другой. Даже, хотя бы исходя из финансовой точки зрения, из-за дыр не будет пользователей модх и никто не будет покупать в магазине дополнения и много разных вытекающих последствий…
Ведь это любовь к модх, а за любовь надо бороться.
Плохо то, что в modx можно сделать sql-инъекцию.
Допустим если не идти легким путем, т.е. не менять префикс, а решать проблему в корне, я так понимаю в ядре копаться?
А ты им предложил в корне проблему решать(может даже решение дал) или они завтра напишут срочно все меняйте префиксы?))
Печально конечно, я до недавнего времени думал, что modx лучшая из лучших, считал гарантом и людям говорил зачем тебе битрикс за 20 тысяч в год если есть modx с большими возможностями и безопасностью. А оказывается дыр полно. Префикс старался менять на сайтах, но все же он не был супер сложным.
Есть еще проблемы и как они решаются? т.е. я так понимаю их много и от этого становится еще печальней.
Парни из modx что-то ответили? или надо их сайт взломать, чтоб они поняли…
Данный код обрабатывает норм, подключение успешно.
Далее, делаю такой код:
Выводит все норм.
Но хотелось бы работать с обьектами, т.е. так:
Но этот код выдает пустой массив…
Запрос распечатываю вижу такие строчки:
Т.е. после FROM не указана таблица
Подскажите пожалуйста, что надо сделать?
1. Не могу понять как получить массив $data в событии, не выводится ничего
И как в него что-то передать? Пробовал просто input
в плагине пытаюсь получить его, ничего не выводит, даже array( ) не выводит
2. Как из options удалить Опцию, т.е. чтоб она в корзине не отображалась?
Вот весь код плагина:
Есть Опция(общая) размеры sizes (тоже множественный выбор, но не стандартная size), сделал так чтобы были уже готовые значения и можно было просто выбирать.
так вот:
Есть несколько размеров, допустим 10, 30, 50. Они общие, т.е. эта опция для групп ресурсов одинаковая. Соответственно на каждую группу ресурсов своя цена на размеры. Допустим так:
В каждом товаре выбираю только размер товара, из предложенных. К примеру:
Соответственно нужно выводить опции-цены только которые выбраны для товара.
Можно ли чтобы не вбивать в каждый товар размер и его цену(создавать модификации), а назначить глобально как-то, т.е. для Категории как в коде выше?
Вопрос не к компоненту, лучше наверно использовать существующее поле size, но как там связать это все и чтоб были значения(т.е. размеры 10, 30, 50 уже вбиты и можно было только выбирать)?
Чтобы был такого вида:
ато я 2-а дня мучился(даже вывело из себя немного:) и не понимал где собака зарыта, только вчера нашел проблему.
Спасибо Василий! и за оперативность конечно огромное спасибо!