AR
Size: a a a
AR
ИБ
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.jsif(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',AR
AR
AR
AR
AR
AR
AA
AA
AA
ИБ
AR

AA
ИБ
<style>
#jGrowl .af-message-success { display:none !important; }
</style>
AM
AA