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

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

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

5 ответов

11 просмотров

Через 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',

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

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта