171 похожих чатов

Всеобщий салам Подскажите плагин или как самому лучше сделать Есть 3 формы

на страничке по 2 поля. (имя, email)
Мне надо сейвить эти данные в админку с возможностью выгрузки в виде json или xml
Как лучше подойти к этому?
Мне предложили создавать ресурсы, но мне кажется это избыточным
Какие можете предложить варианты, плагины?

5 ответов

12 просмотров

Через formIt пиши в админку, там есть хук который сохраняет данные, выгрузка по дефолту есть в csv

используете в Formit'e FormItSaveForm а выгрузку делаете плагином из базы

Создаем каталог assets/components/sendexExport В нем assets/components/sendexExport/action.php <?php require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/config.core.php'; require_once MODX_CORE_PATH . 'config/' . MODX_CONFIG_KEY . '.inc.php'; require_once MODX_CONNECTORS_PATH . 'index.php'; $corePath = $modx->getOption('sendex_core_path', null, $modx->getOption('core_path') . 'components/sendex/'); require_once $corePath . 'model/sendex/sendex.class.php'; $modx->sendex = new Sendex($modx); $list = $modx->getIterator('sxSubscriber'); $out = [ 'success'=>true, 'url'=>'/assets/components/sendexExport/export.csv?'.time(), ]; $fp = fopen('export.csv', 'w'); foreach ($list as $item){ fputcsv($fp, ['id'=>$item->id,'email'=>$item->email]); } fclose($fp); echo json_encode($out,256); В нем assets/components/sendexExport/js/sendexExport.js if(typeof(Sendex.page.Home ) != "undefined"){ Ext.ComponentMgr.onAvailable("sendex-grid-newsletter-subscribers", function (e) { var newWindow = Ext.getCmp("sendex-grid-newsletter-subscribers"); newWindow.exportForm = function () { MODx.msg.confirm({ title: ('Подтвердите экспорт'), text: ('Экспортировать email адреса?'), url: '/assets/components/sendexExport/action.php', listeners: { 'success': { fn: function (data) { var newlink = document.createElement('a'); newlink.setAttribute('target', '_blank'); newlink.setAttribute('download', 'data.csv'); newlink.setAttribute('href',data.url); newlink.click() }, scope: this }, 'error': { fn: function (data) { MODx.msg.status({ title: _('error'), message: 'Произошла ошибка!' }); }, scope: this } } }); return true; }; newWindow.tbar = [{ xtype: 'sendex-combo-user' , name: 'user_id' , hiddenName: 'user_id' , width: 200 , listeners: { select: {fn: this.addSubscriber, scope: this} } }, { xtype: 'button', text: ('<i class="icon-arrow-circle-down icon"></i> Экспорт'), id: 'modx-exportForm', cls: 'x-btn-restore-all', listeners: { 'click': {fn: this.exportForm, scope: this} } }, '->', { xtype: 'sendex-combo-group' , name: 'group_id' , hiddenName: 'group_id' , width: 200 , listeners: { select: {fn: this.addSubscribers, scope: this} } }] }); } Создаем плагин sendexExport на событие OnManagerPageInit <?php $file = MODX_ASSETS_URL.'components/sendexExport/js/sendexExport.js'; $modx->regClientStartupScript($file); в хуках указываем 'hooks' => 'spam,email,FormItSaveForm,SendexSubscribe',

спасибо, я так и сделал)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта