Skip to content

Instantly share code, notes, and snippets.

@ezersky
Created October 18, 2017 10:34
Show Gist options
  • Save ezersky/fc75017461226f905304394812429cb6 to your computer and use it in GitHub Desktop.
Save ezersky/fc75017461226f905304394812429cb6 to your computer and use it in GitHub Desktop.
<?php
switch ($modx->event->name) {
case 'OnMODXInit':
$modx->loadClass('msOrderAddress');
$modx->map['msOrderAddress']['fields']['porch'] = 0;
$modx->map['msOrderAddress']['fieldMeta']['porch'] = array(
'dbtype' => 'varchar',
'precision' => 10,
'attributes' => '',
'phptype' => 'string',
'null' => true,
'default' => '',
);
$modx->map['msOrderAddress']['fields']['floor'] = 0;
$modx->map['msOrderAddress']['fieldMeta']['floor'] = array(
'dbtype' => 'varchar',
'precision' => 10,
'attributes' => '',
'phptype' => 'string',
'null' => true,
'default' => '',
);
$modx->map['msOrderAddress']['fields']['orderdate'] = 0;
$modx->map['msOrderAddress']['fieldMeta']['orderdate'] = array(
'dbtype' => 'varchar',
'precision' => 50,
'attributes' => '',
'phptype' => 'string',
'null' => true,
'default' => '',
);
$modx->map['msOrderAddress']['fields']['ordertime'] = 0;
$modx->map['msOrderAddress']['fieldMeta']['ordertime'] = array(
'dbtype' => 'varchar',
'precision' => 50,
'attributes' => '',
'phptype' => 'string',
'null' => true,
'default' => '',
);
break;
case 'msOnManagerCustomCssJs':
if ($page != 'orders') return;
$modx->controller->addHtml("
<script type='text/javascript'>
Ext.override(miniShop2.window.UpdateOrder, {
getAddressFields: function (config) {
var all = {
receiver: {},
phone: {},
index: {},
country: {},
region: {},
building: {},
city: {},
street: {},
};
var fields = [], tmp = [];
for (var i = 0; i < miniShop2.config['order_address_fields'].length; i++) {
var field = miniShop2.config['order_address_fields'][i];
if (all[field]) {
Ext.applyIf(all[field], {
xtype: 'textfield',
name: 'addr_' + field,
fieldLabel: _('ms2_' + field)
});
all[field].anchor = '100%';
tmp.push(all[field]);
}
}
var addx = function (w1, w2) {
if (!w1) {
w1 = .5;
}
if (!w2) {
w2 = .5;
}
return {
layout: 'column',
defaults: {msgTarget: 'under', border: false},
items: [
{columnWidth: w1, layout: 'form', items: []},
{columnWidth: w2, layout: 'form', items: []}
]
};
};
var n;
if (tmp.length > 0) {
for (i = 0; i < tmp.length; i++) {
if (i == 0) fields.push(addx(.7, .3));
else if (i == 2) fields.push(addx(.3, .7));
else if (i % 2 == 0) fields.push(addx());
if (i <= 1) {
n = 0;
}
else {
n = Math.floor(i / 2);
}
fields[n].items[i % 2].items.push(tmp[i]);
}
if (miniShop2.config['order_address_fields'].in_array('porch')) {
fields.push(
{
xtype: 'textfield',
name: 'addr_porch',
fieldLabel: _('ms2_porch'),
anchor: '50%'
}
);
}
if (miniShop2.config['order_address_fields'].in_array('floor')) {
fields.push(
{
xtype: 'textfield',
name: 'addr_floor',
fieldLabel: _('ms2_floor'),
anchor: '50%'
}
);
}
if (miniShop2.config['order_address_fields'].in_array('room')) {
fields.push(
{
xtype: 'textfield',
name: 'addr_room',
fieldLabel: _('ms2_room'),
anchor: '50%'
}
);
}
if (miniShop2.config['order_address_fields'].in_array('orderdate')) {
fields.push(
{
xtype: 'displayfield',
name: 'addr_orderdate',
fieldLabel: _('ms2_orderdate'),
anchor: '50%',
}
);
}
if (miniShop2.config['order_address_fields'].in_array('ordertime')) {
fields.push(
{
xtype: 'displayfield',
name: 'addr_ordertime',
fieldLabel: _('ms2_ordertime'),
anchor: '50%',
}
);
}
if (miniShop2.config['order_address_fields'].in_array('comment')) {
fields.push({
xtype: 'displayfield',
name: 'addr_comment',
fieldLabel: _('ms2_comment'),
anchor: '98%',
style: 'min-height: 50px;border:1px solid #efefef;width:95%;'
});
}
}
return fields;
}
});
</script>");
break;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment