mirror of
https://github.com/e107inc/e107.git
synced 2025-01-17 12:48:24 +01:00
1226 lines
37 KiB
PHP
Executable File
1226 lines
37 KiB
PHP
Executable File
<?php
|
|
/*
|
|
* e107 website system
|
|
*
|
|
* Copyright (C) 2008-2017 e107 Inc (e107.org)
|
|
* Released under the terms and conditions of the
|
|
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
|
*
|
|
*/
|
|
|
|
require_once(__DIR__.'/../class2.php');
|
|
|
|
if (!getperms('4'))
|
|
{
|
|
e107::redirect('admin');
|
|
exit;
|
|
}
|
|
|
|
e107::coreLan('users_extended', true);
|
|
|
|
if(varset($_GET['mode']) == "ajax")
|
|
{
|
|
// Construct action string.
|
|
$action = varset($_GET['mode']) . '/' . varset($_GET['action']);
|
|
|
|
switch($action)
|
|
{
|
|
case 'ajax/changeTable':
|
|
$tableName = varset($_POST['table_db'], null);
|
|
|
|
if($tableName)
|
|
{
|
|
$sql = e107::getDb();
|
|
$tp = e107::getParser();
|
|
|
|
$sub_action = '';
|
|
|
|
if(e_QUERY)
|
|
{
|
|
$tmp = explode(".", e_QUERY);
|
|
$action = $tp->filter($tmp[0]);
|
|
$sub_action = varset($tmp[1], '');
|
|
$sub_action = $tp->filter($sub_action);
|
|
$id = varset($tmp[2], 0);
|
|
unset($tmp);
|
|
}
|
|
|
|
if($sql->select('user_extended_struct', '*', "user_extended_struct_id = '{$sub_action}'"))
|
|
{
|
|
$current = $sql->fetch();
|
|
}
|
|
else
|
|
{
|
|
$current = 'new';
|
|
}
|
|
|
|
$currVal = $current['user_extended_struct_values'];
|
|
$curVals = explode(",", varset($currVal));
|
|
|
|
// Ajax URL for "Table" dropdown.
|
|
$ajaxGetTableSrc = e_SELF . '?mode=ajax&action=changeTable';
|
|
|
|
$text = "<table class='table table-striped table-bordered' style='width:70%;margin-left:0;'><tr><td>";
|
|
$text .= EXTLAN_62 . "</td><td style='70%'>\n";
|
|
$text .= "<select name='table_db' style='width:99%' class='tbox e-ajax' data-src='{$ajaxGetTableSrc}'>";
|
|
$text .= "<option value='' class='caption'>" . LAN_NONE . "</option>";
|
|
$result = e107::getDb()->tables();
|
|
foreach($result as $row2)
|
|
{
|
|
$fld = $row2;
|
|
$selected = (varset($_POST['table_db'], '') == $fld || $curVals[0] == $fld) ? " selected='selected'" : "";
|
|
$text .= "<option value=\"" . $fld . "\" $selected>" . $fld . "</option>\n";
|
|
}
|
|
$text .= "</select></td></tr>";
|
|
|
|
if($_POST['table_db'] || $curVals[0])
|
|
{
|
|
// Field ID.
|
|
$text .= "<tr><td>" . EXTLAN_63 . "</td><td>";
|
|
$text .= "<select style='width:99%' class='tbox e-select' name='field_id'>";
|
|
$text .= "<option value='' class='caption'>" . LAN_NONE . "</option>";
|
|
$table_list = ($_POST['table_db']) ? $_POST['table_db'] : $curVals[0];
|
|
if($sql->gen("DESCRIBE " . MPREFIX . "{$table_list}"))
|
|
{
|
|
while($row3 = $sql->fetch())
|
|
{
|
|
$field_name = $row3['Field'];
|
|
$selected = ($curVals[1] == $field_name) ? " selected='selected' " : "";
|
|
$text .= "<option value=\"$field_name\" $selected>" . $field_name . "</option>";
|
|
}
|
|
}
|
|
$text .= "</select></td></tr><tr><td>";
|
|
|
|
// Display Value.
|
|
$text .= EXTLAN_64 . "</td><td>";
|
|
$text .= "<select style='width:99%' class='tbox e-select' name='field_value'>";
|
|
$text .= "<option value='' class='caption'>" . LAN_NONE . "</option>";
|
|
$table_list = ($_POST['table_db']) ? $_POST['table_db'] : $curVals[0];
|
|
if($sql->gen("DESCRIBE " . MPREFIX . "{$table_list}"))
|
|
{
|
|
while($row3 = $sql->fetch())
|
|
{
|
|
$field_name = $row3['Field'];
|
|
$selected = ($curVals[2] == $field_name) ? " selected='selected' " : "";
|
|
$text .= "<option value=\"$field_name\" $selected>" . $field_name . "</option>";
|
|
}
|
|
}
|
|
$text .= "</select></td></tr><tr><td>";
|
|
|
|
// Order.
|
|
$text .= LAN_ORDER . "</td><td>";
|
|
$text .= "<select style='width:99%' class='tbox e-select' name='field_order'>";
|
|
$text .= "<option value='' class='caption'>" . LAN_NONE . "</option>";
|
|
$table_list = ($_POST['table_db']) ? $_POST['table_db'] : $curVals[0];
|
|
if($sql->gen("DESCRIBE " . MPREFIX . "{$table_list}"))
|
|
{
|
|
while($row3 = $sql->fetch())
|
|
{
|
|
$field_name = $row3['Field'];
|
|
$selected = ($curVals[3] == $field_name) ? " selected='selected' " : "";
|
|
$text .= "<option value=\"$field_name\" $selected>" . $field_name . "</option>";
|
|
}
|
|
}
|
|
$text .= "</select></td></tr>";
|
|
}
|
|
|
|
$text .= "</table>";
|
|
|
|
|
|
$ajax = e107::getAjax();
|
|
$commands = array();
|
|
$commands[] = $ajax->commandInsert('#db_mode', 'html', $text);
|
|
$ajax->response($commands);
|
|
exit;
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
/*
|
|
if (isset($_POST['cancel']))
|
|
{
|
|
header('location:'.e_SELF);
|
|
exit;
|
|
}
|
|
|
|
if (isset($_POST['cancel_cat']))
|
|
{
|
|
header("location:".e_SELF."?cat");
|
|
exit;
|
|
}*/
|
|
|
|
function js()
|
|
{
|
|
include_once(e_LANGUAGEDIR . e_LANGUAGE . "/lan_user_extended.php");
|
|
|
|
$text = "
|
|
|
|
$('.e-select').change(function(e){
|
|
var type = $(this).val();
|
|
|
|
if(type == 4)
|
|
{
|
|
$('#db_mode').show();
|
|
$('#values').hide();
|
|
}
|
|
else if(type == 2 || type == 3 || type == 9 || type == 10)
|
|
{
|
|
$('#db_mode').hide();
|
|
$('#values').show();
|
|
}
|
|
else
|
|
{
|
|
|
|
$('#db_mode').hide();
|
|
$('#values').hide();
|
|
|
|
}
|
|
|
|
";
|
|
|
|
for($i = 1; $i <= 9; $i++)
|
|
{
|
|
$type_const = "UE_LAN_{$i}";
|
|
$help_const = "\"" . str_replace("/", "\/", "EXTLAN_HELP_{$i}") . "\"";
|
|
$text .= "
|
|
if(type == \"{$i}\")
|
|
{
|
|
xtype=\"" . defset($type_const) . "\";
|
|
what=\"" . defset($help_const) . "\";
|
|
}";
|
|
}
|
|
|
|
|
|
$text .= "
|
|
// $('#ue_type').innerHTML=''+xtype+'';
|
|
// $('#ue_help').innerHTML=''+what+''
|
|
|
|
console.log(type);
|
|
return false;
|
|
});
|
|
";
|
|
|
|
return $text;
|
|
//FIXME
|
|
/*
|
|
$text .= "
|
|
|
|
|
|
function changeHelp(type) {
|
|
|
|
return;
|
|
//<![CDATA[
|
|
var ftype;
|
|
var helptext;
|
|
|
|
|
|
";
|
|
for($i = 1; $i <= 9; $i++)
|
|
{
|
|
$type_const = "UE_LAN_{$i}";
|
|
$help_const = "\"" . str_replace("/", "\/", "EXTLAN_HELP_{$i}") . "\"";
|
|
$text .= "
|
|
if(type == \"{$i}\")
|
|
{
|
|
xtype=\"" . defset($type_const) . "\";
|
|
what=\"" . defset($help_const) . "\";
|
|
}";
|
|
}
|
|
|
|
$text .= "
|
|
// document.getElementById('ue_type').innerHTML=''+xtype+'';
|
|
// document.getElementById('ue_help').innerHTML=''+what+'';
|
|
|
|
if(type == 4){
|
|
document.getElementById('db_mode').style.display = '';
|
|
document.getElementById('values').style.display = 'none';
|
|
}else{
|
|
document.getElementById('values').style.display = '';
|
|
document.getElementById('db_mode').style.display = 'none';
|
|
}
|
|
// ]]>
|
|
}
|
|
";
|
|
|
|
return $text;*/
|
|
}
|
|
|
|
e107::js('footer-inline', js());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class user_extended_adminArea extends e_admin_dispatcher
|
|
{
|
|
|
|
protected $modes = array(
|
|
|
|
'main' => array(
|
|
'controller' => 'user_extended_struct_ui',
|
|
'path' => null,
|
|
'ui' => 'user_extended_struct_form_ui',
|
|
'uipath' => null
|
|
),
|
|
|
|
'cat' => array(
|
|
'controller' => 'user_extended_category_struct_ui',
|
|
'path' => null,
|
|
'ui' => 'user_extended_struct_form_ui',
|
|
'uipath' => null
|
|
),
|
|
|
|
|
|
);
|
|
|
|
|
|
protected $adminMenu = array(
|
|
|
|
'main/list' => array('caption'=> LAN_MANAGE, 'perm' => '0|4'),
|
|
'main/add' => array('caption'=> EXTLAN_45, 'perm' => '0|4', 'icon'=>'fa-plus'),
|
|
'main/create' => array('caption'=> EXTLAN_81, 'perm' => '0|4', 'icon'=>'fa-user-edit'),
|
|
'cat/list' => array('caption'=> LAN_CATEGORIES, 'perm' => '0|4'),
|
|
'cat/create' => array('caption'=> LAN_CREATE_CATEGORY, 'perm' => '0|4'),
|
|
|
|
|
|
// 'main/custom' => array('caption'=> 'Custom Page', 'perm' => 'P')
|
|
);
|
|
|
|
protected $adminMenuIcon = 'e-extended-24';
|
|
|
|
/*
|
|
* }
|
|
$var['main']['text'] = EXTLAN_34;
|
|
$var['main']['link'] = e_SELF;
|
|
|
|
$var['pre']['text'] = EXTLAN_45;
|
|
$var['pre']['link'] = e_SELF."?pre";
|
|
|
|
$var['editext']['text'] = "Add Custom Field";
|
|
$var['editext']['link'] = e_SELF."?editext";
|
|
|
|
$var['cat']['text'] = EXTLAN_35;
|
|
$var['cat']['link'] = e_SELF."?cat";
|
|
|
|
|
|
|
|
show_admin_menu(EXTLAN_9, $action, $var);
|
|
}
|
|
*/
|
|
|
|
protected $adminMenuAliases = array(
|
|
'main/edit' => 'main/list'
|
|
);
|
|
|
|
protected $menuTitle = EXTLAN_9;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class user_extended_struct_ui extends e_admin_ui
|
|
{
|
|
|
|
protected $pluginTitle = EXTLAN_9;
|
|
protected $pluginName = 'user_extended';
|
|
// protected $eventName = 'user_extended-user_extended_struct'; // remove comment to enable event triggers in admin.
|
|
protected $table = 'user_extended_struct';
|
|
protected $pid = 'user_extended_struct_id';
|
|
protected $perPage = 10;
|
|
protected $batchDelete = true;
|
|
// protected $batchCopy = true;
|
|
protected $sortField = 'user_extended_struct_order';
|
|
protected $orderStep = 10;
|
|
protected $tabs = array(LAN_BASIC,LAN_ADVANCED); // Use 'tab'=>0 OR 'tab'=>1 in the $fields below to enable.
|
|
|
|
protected $listQry = "SELECT * FROM `#user_extended_struct` WHERE user_extended_struct_type != 0 AND user_extended_struct_text != '_system_' "; // Example Custom Query. LEFT JOINS allowed. Should be without any Order or Limit.
|
|
|
|
protected $listOrder = 'user_extended_struct_order ASC';
|
|
|
|
protected $fields = array (
|
|
'checkboxes' => array ( 'title' => '', 'type' => null, 'data' => null, 'width' => '5%', 'thclass' => 'center', 'forced' => '1', 'class' => 'center', 'toggle' => 'e-multiselect', ),
|
|
'user_extended_struct_id' => array ( 'title' => LAN_ID, 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_name' => array ( 'title' => LAN_NAME, 'type' => 'method', 'data' => 'str', 'readonly'=>true, 'width' => '350px', 'help' => '', 'readParms' => '', 'writeParms' => array('tdClassRight' => 'form-inline', 'pre' => 'user_ ', 'required'=>true), 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_text' => array ( 'title' => EXTLAN_79, 'type' => 'text', 'data' => 'str', 'width' => 'auto', 'inline' => true, 'help' => '', 'readParms' => 'constant=1', 'writeParms' => array('required'=>true), 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_type' => array ( 'title' => LAN_PREVIEW, 'type' => 'method', 'data' => 'int', 'width' => 'auto', 'batch' => true, 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_values' => array ( 'title' => EXTLAN_82, 'type' => 'method', 'nolist'=>true, 'data' => 'str', 'width' => 'auto', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_default' => array ( 'title' => EXTLAN_16, 'type' => 'text', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_parent' => array ( 'title' => LAN_CATEGORY, 'type' => 'dropdown', 'tab'=>1, 'data' => 'int', 'width' => 'auto', 'batch' => true, 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => array('size'=>'xxlarge'), 'class' => 'left', 'thclass' => 'left', ),
|
|
|
|
// These are combined into user_extended_struct_parms on submit.
|
|
'field_placeholder' => array('title'=>EXTLAN_83, 'tab'=>1, 'type'=>'text', 'data'=>false, 'writeParms'=>array('size'=>'xxlarge')),
|
|
'field_helptip' => array('title'=>EXTLAN_84, 'tab'=>1, 'type'=>'text', 'data'=>false, 'writeParms'=>array('size'=>'xxlarge')),
|
|
|
|
'field_include' => array('title'=> EXTLAN_15, 'tab'=>1, 'type'=>'textarea', 'data'=>false, 'help'=>EXTLAN_51, 'writeParms'=>array('size'=>'xxlarge')),
|
|
'field_regex' => array('title'=> EXTLAN_52, 'tab'=>1, 'type'=>'text', 'data'=>false, 'help'=> EXTLAN_53, 'writeParms'=>array('size'=>'xxlarge')),
|
|
'field_regexfail' => array('title'=> EXTLAN_54, 'tab'=>1, 'type'=>'text', 'data'=>false, 'help'=>EXTLAN_55, 'writeParms'=>array('size'=>'xxlarge')),
|
|
'field_userhide' => array('title'=> EXTLAN_49, 'tab'=>1, 'type'=>'boolean', 'data'=>false, 'help'=>EXTLAN_50, 'writeParms'=>array('size'=>'xxlarge')),
|
|
|
|
|
|
'user_extended_struct_required' => array ( 'title' => EXTLAN_18, 'type' => 'method', 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_applicable' => array ( 'title' => EXTLAN_5, 'type' => 'userclass', 'data' => 'int', 'filter'=>true, 'batch'=>true, 'width' => '10%', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_parms' => array ( 'title' => "Params", 'type' => 'hidden', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_read' => array ( 'title' =>EXTLAN_6, 'type' => 'userclass', 'data' => 'int', 'filter'=>true, 'batch'=>true,'width' => '10%', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_write' => array ( 'title' => EXTLAN_7, 'type' => 'userclass', 'data' => 'int', 'filter'=>true, 'batch'=>true, 'width' => '10%', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_signup' => array ( 'title' => 'Signup', 'type' => 'hidden', 'nolist'=>true, 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_order' => array ( 'title' => LAN_ORDER, 'type' => 'hidden', 'nolist'=>true, 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'options' => array ( 'title' => LAN_OPTIONS, 'type' => 'method', 'data' => null, 'width' => '10%', 'thclass' => 'center last', 'class' => 'center last', 'forced' => '1', 'readParms'=>'sort=1' ),
|
|
);
|
|
|
|
protected $fieldpref = array('user_extended_struct_name', 'user_extended_struct_text', 'user_extended_struct_type', 'user_extended_struct_read', 'user_extended_struct_write', 'user_extended_struct_required', 'user_extended_struct_applicable');
|
|
|
|
|
|
protected $prefs = array(
|
|
);
|
|
|
|
|
|
/**
|
|
* Automatically exectured when edit mode is active.
|
|
*/
|
|
public function EditObserver()
|
|
{
|
|
parent::EditObserver();
|
|
|
|
$row = e107::getDb()->retrieve('user_extended_struct', 'user_extended_struct_type,user_extended_struct_parms',"user_extended_struct_id = ".intval($_GET['id']));
|
|
|
|
$parms = $row['user_extended_struct_parms'];
|
|
$tmp = explode('^,^', $parms);
|
|
|
|
$this->fields['field_include']['writeParms']['default'] = $tmp[0];
|
|
$this->fields['field_regex']['writeParms']['default'] = $tmp[1];
|
|
$this->fields['field_regexfail']['writeParms']['default'] = $tmp[2];
|
|
$this->fields['field_userhide']['writeParms']['default'] = $tmp[3];
|
|
$this->fields['field_placeholder']['writeParms']['default'] = $tmp[4];
|
|
$this->fields['field_helptip']['writeParms']['default'] = $tmp[5];
|
|
|
|
if((int) $row['user_extended_struct_type'] === 12) // EUF_ADDON
|
|
{
|
|
unset(
|
|
$this->fields['field_include'],
|
|
$this->fields['field_regex'],
|
|
$this->fields['field_regexfail'],
|
|
$this->fields['field_userhide'],
|
|
$this->fields['field_placeholder'],
|
|
$this->fields['field_helptip'],
|
|
$this->fields['user_extended_struct_default']
|
|
);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function init()
|
|
{
|
|
|
|
if($this->getAction() == 'edit' || $this->getAction() == 'create')
|
|
{
|
|
$this->fields['user_extended_struct_type']['title'] = LAN_TYPE;
|
|
}
|
|
|
|
$data = e107::getDb()->retrieve("user_extended_struct", "*", "user_extended_struct_type = 0 ORDER BY user_extended_struct_order ASC", true);
|
|
|
|
$opts = array();
|
|
$opts[0] = EXTLAN_36;
|
|
|
|
foreach($data as $row)
|
|
{
|
|
$id = $row['user_extended_struct_id'];
|
|
$opts[$id] = $row['user_extended_struct_name'];
|
|
}
|
|
|
|
|
|
$this->fields['user_extended_struct_parent']['writeParms']['optArray'] = $opts;
|
|
|
|
|
|
}
|
|
|
|
|
|
private function compileData($new_data)
|
|
{
|
|
$parms = array(
|
|
$new_data['field_include'],
|
|
$new_data['field_regex'],
|
|
$new_data['field_regexfail'],
|
|
$new_data['field_userhide'],
|
|
$new_data['field_placeholder'],
|
|
$new_data['field_helptip'],
|
|
);
|
|
|
|
if(isset($new_data['field_include']))
|
|
{
|
|
$new_data['user_extended_struct_parms'] = implode('^,^', $parms);
|
|
}
|
|
|
|
if($new_data['user_extended_struct_type'] == EUF_DB_FIELD)
|
|
{
|
|
$new_data['user_extended_struct_values'] = array($new_data['table_db'],$new_data['field_id'],$new_data['field_value'],$new_data['field_order']);
|
|
}
|
|
|
|
if(isset($new_data['user_extended_struct_values']))
|
|
{
|
|
$new_data['user_extended_struct_values'] = array_filter($new_data['user_extended_struct_values']);
|
|
$new_data['user_extended_struct_values'] = implode(',',$new_data['user_extended_struct_values']);
|
|
}
|
|
|
|
// e107::getMessage()->addInfo(print_a($new_data,true),'default', true);
|
|
|
|
return $new_data;
|
|
}
|
|
|
|
|
|
// ------- Customize Create --------
|
|
|
|
public function beforeCreate($new_data, $old_data)
|
|
{
|
|
|
|
$ue = e107::getUserExt();
|
|
$mes = e107::getMessage();
|
|
|
|
|
|
if($ue->user_extended_field_exist($new_data['user_extended_struct_name']))
|
|
{
|
|
$mes->addError("Field name already exists");
|
|
return false;
|
|
}
|
|
|
|
if($ue->user_extended_reserved($new_data['user_extended_struct_name']))
|
|
{
|
|
$mes->addError("Field name is reserved. Please try a different name.");
|
|
return false;
|
|
}
|
|
|
|
$new_data = $this->compileData($new_data);
|
|
|
|
$field_info = $ue->user_extended_type_text($new_data['user_extended_struct_type'], $new_data['user_extended_struct_default']);
|
|
|
|
// wrong type
|
|
if(false === $field_info)
|
|
{
|
|
e107::getMessage()->addDebug("\$field_info is false ".__METHOD__." ".__LINE__);
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
if(e107::getDb()->gen('ALTER TABLE #user_extended ADD user_'.e107::getParser()->toDB($new_data['user_extended_struct_name'], true).' '.$field_info)===false)
|
|
{
|
|
$mes->addError("Unable to alter table user_extended.");
|
|
}
|
|
}
|
|
|
|
if(empty($new_data['user_extended_struct_order']))
|
|
{
|
|
if($max = e107::getDb()->retrieve('user_extended_struct','MAX(user_extended_struct_order) as maxorder','1'))
|
|
{
|
|
if(is_numeric($max))
|
|
{
|
|
$new_data['user_extended_struct_order'] = ($max + 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $new_data;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function afterCreate($new_data, $old_data, $id)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
public function onCreateError($new_data, $old_data)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
public function beforeDelete($data,$id)
|
|
{
|
|
$mes = e107::getMessage();
|
|
|
|
if(!e107::getUserExt()->user_extended_remove($id, $data['user_extended_struct_name']))
|
|
{
|
|
$mes->addError("Unable to delete column from user_extended table.");
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
$mes->addSuccess(EXTLAN_86);
|
|
}
|
|
|
|
}
|
|
|
|
/*
|
|
public function afterDelete($data,$id)
|
|
{
|
|
|
|
|
|
}*/
|
|
|
|
|
|
// ------- Customize Update --------
|
|
|
|
public function beforeUpdate($new_data, $old_data, $id)
|
|
{
|
|
|
|
$ue = e107::getUserExt();
|
|
$mes = e107::getMessage();
|
|
|
|
if ($ue->user_extended_field_exist($new_data['user_extended_struct_name']))
|
|
{
|
|
$type = isset($new_data['user_extended_struct_type']) ? $new_data['user_extended_struct_type'] : $old_data['user_extended_struct_type'];
|
|
$field_info = $ue->user_extended_type_text($type, $new_data['user_extended_struct_default']);
|
|
|
|
if(false === $field_info) // wrong type
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
if(e107::getDb()->gen("ALTER TABLE #user_extended MODIFY user_".e107::getParser()->toDB($new_data['user_extended_struct_name'], true)." ".$field_info)===false)
|
|
{
|
|
$mes->addError("Unable to alter table user_extended.");
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
$new_data = $this->compileData($new_data);
|
|
|
|
|
|
return $new_data;
|
|
}
|
|
|
|
public function afterUpdate($new_data, $old_data, $id)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
public function onUpdateError($new_data, $old_data, $id)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
private function addPageActivate()
|
|
{
|
|
if(empty($_POST['activate']))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
$ue = e107::getUserExt();
|
|
$tp = e107::getParser();
|
|
$ret = "";
|
|
$preList = $ue->parse_extended_xml('getfile');
|
|
$tmp = $preList;
|
|
|
|
foreach(array_keys($_POST['activate']) as $f)
|
|
{
|
|
|
|
$tmp[$f]['parms'] = $tp->toDB($tmp[$f]['parms']);
|
|
if($ue->user_extended_add($tmp[$f]))
|
|
{
|
|
$ret .= EXTLAN_68." $f ".EXTLAN_69."<br />";
|
|
|
|
if ($tmp[$f]['type']=="db field")
|
|
{
|
|
if (!is_readable(e_CORE.'sql/extended_'.$f.'.php'))
|
|
{
|
|
$ret .= str_replace('[x]',e_CORE.'sql/extended_'.$f.'.php',EXTLAN_78);
|
|
// $ret .= ($this->process_sql($f)) ? LAN_CREATED." user_extended_{$f}<br />" : LAN_CREATED_FAILED." user_extended_{$f}<br />";
|
|
}
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$ret .= EXTLAN_70." $f ".EXTLAN_71."<br />";
|
|
}
|
|
}
|
|
|
|
e107::getLog()->add('EUF_11',implode(', ',$_POST['activate']),E_LOG_INFORMATIVE,'');
|
|
e107::getMessage()->addSuccess($ret);
|
|
return $ret;
|
|
}
|
|
|
|
|
|
private function addPageDeactivate()
|
|
{
|
|
|
|
if(empty($_POST['deactivate']))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
$tp = e107::getParser();
|
|
$sql = e107::getDb();
|
|
$ue = e107::getUserExt();
|
|
|
|
$ret = "";
|
|
foreach(array_keys($_POST['deactivate']) as $f)
|
|
{
|
|
$f = $tp->filter($f);
|
|
|
|
if($ue->user_extended_remove($f, $f))
|
|
{
|
|
$ret .= EXTLAN_68." $f ".EXTLAN_72."<br />";
|
|
if(is_readable(e_CORE."sql/extended_".$f.".php"))
|
|
{
|
|
$ret .= ($sql->gen("DROP TABLE ".MPREFIX."user_extended_".$f)) ? LAN_DELETED." user_extended_".$f."<br />" : LAN_DELETED_FAILED." user_extended_".$f."<br />";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$ret .= EXTLAN_70." $f ".EXTLAN_73."<br />";
|
|
}
|
|
}
|
|
e107::getLog()->add('EUF_12',implode(', ',$_POST['deactivate']),E_LOG_INFORMATIVE,'');
|
|
e107::getMessage()->addSuccess($ret);
|
|
return $ret;
|
|
}
|
|
|
|
|
|
|
|
function addPage()
|
|
{
|
|
|
|
$ns = e107::getRender();
|
|
$ue = e107::getUserExt();
|
|
|
|
$this->addPageActivate();
|
|
$this->addPageDeactivate();
|
|
|
|
|
|
// Get list of current extended fields
|
|
$curList = $ue->user_extended_get_fieldlist();
|
|
$curNames = array();
|
|
foreach($curList as $c)
|
|
{
|
|
$curNames[] = $c['user_extended_struct_name'];
|
|
}
|
|
|
|
//Get list of predefined fields.
|
|
$preList = $ue->parse_extended_xml('getfile');
|
|
ksort($preList);
|
|
|
|
$txt = "
|
|
<form method='post' action='".e_REQUEST_URI."'>
|
|
<table class='table adminlist'>
|
|
<colgroup>
|
|
<col />
|
|
<col />
|
|
<col />
|
|
<col />
|
|
<col />
|
|
<col />
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th>".UE_LAN_21."</th>
|
|
<th>".EXTLAN_79."</th>
|
|
<th>".EXTLAN_2."</th>
|
|
<th>".UE_LAN_22."</th>
|
|
<th class='center' >".EXTLAN_57."</th>
|
|
<th class='center last' >".LAN_OPTIONS."</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>";
|
|
|
|
foreach($preList as $k=>$a)
|
|
{
|
|
if($k !== 'version') // don't know why this is appearing in the array.
|
|
{
|
|
$active = (in_array($a['name'], $curNames)) ? TRUE : FALSE;
|
|
$txt .= $this->show_predefined_field($a,$active);
|
|
}
|
|
}
|
|
|
|
$txt .= "</tbody></table></form>";
|
|
|
|
$emessage = e107::getMessage();
|
|
|
|
|
|
return $txt;
|
|
// $ns->tablerender(EXTLAN_9.SEP.EXTLAN_56,$emessage->render(). $txt);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function show_predefined_field($var, $active)
|
|
{
|
|
|
|
static $head_shown;
|
|
$txt = "";
|
|
$tp = e107::getParser();
|
|
$ue = e107::getUserExt();
|
|
$frm = e107::getForm();
|
|
|
|
foreach($var as $key=>$val) // convert predefined xml to default array format
|
|
{
|
|
$var['user_extended_struct_'.$key] = $val;
|
|
}
|
|
|
|
$var['user_extended_struct_type'] = $ue->typeArray[$var['user_extended_struct_type']];
|
|
$var['user_extended_struct_parms'] = $var['include_text'];
|
|
|
|
$txt .= "
|
|
<tr>
|
|
<td>{$var['user_extended_struct_name']}</td>
|
|
<td>".constant(strtoupper($var['user_extended_struct_text'])."_DESC")."</td>
|
|
<td>".$ue->user_extended_edit($var,'')."</td>
|
|
<td>".$tp->toHTML($var['type'], false, 'defs')."</td>
|
|
<td class='center'>".($active ? ADMIN_TRUE_ICON : " ")."</td>
|
|
";
|
|
// $txt .= constant("UE_LAN_".strtoupper($var['text'])."DESC")."<br />";
|
|
// foreach($showlist as $f)
|
|
// {
|
|
// if($var[$f] != "" && $f != 'type' && $f !='text')
|
|
// {
|
|
// $txt .= "<strong>{$f}: </strong>".$tp->toHTML($var[$f], false, 'defs')."<br />";
|
|
// }
|
|
// }
|
|
$val = (!$active) ? EXTLAN_59 : EXTLAN_60;
|
|
$type = (!$active) ? 'activate' : 'deactivate';
|
|
$style = (!$active) ? 'other' : 'delete';
|
|
|
|
$txt .= "
|
|
<td class='center last'>";
|
|
$txt .= $frm->admin_button($type."[".$var['user_extended_struct_name']."]", $val, $style );
|
|
$txt .= "</td>
|
|
</tr>";
|
|
return $txt;
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
// optional - a custom page.
|
|
public function customPage()
|
|
{
|
|
$ns = e107::getRender();
|
|
$text = 'Hello World!';
|
|
return $text;
|
|
|
|
}
|
|
*/
|
|
|
|
}
|
|
|
|
|
|
|
|
class user_extended_struct_form_ui extends e_admin_form_ui
|
|
{
|
|
|
|
|
|
function options($parms, $value, $id, $attributes)
|
|
{
|
|
|
|
if($attributes['mode'] == 'read')
|
|
{
|
|
|
|
$name = $this->getController()->getListModel()->get('user_extended_struct_name');
|
|
|
|
if(strpos($name, 'plugin_') === 0)
|
|
{
|
|
$attributes['readParms']['deleteClass'] = e_UC_NOBODY;
|
|
}
|
|
|
|
$text = "<div class='btn-group'>";
|
|
$text .= $this->renderValue('options',$value,$attributes, $id);
|
|
$text .= "</div>";
|
|
|
|
return $text;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Custom Method/Function
|
|
function user_extended_struct_type($curVal,$mode)
|
|
{
|
|
|
|
switch($mode)
|
|
{
|
|
case 'read': // List Page
|
|
$ext = $this->getController()->getListModel()->getData();
|
|
// return print_a($ext,true);
|
|
$ext['user_extended_struct_required'] = 0; // so the form can be posted.
|
|
return e107::getUserExt()->renderElement($ext,$ext['user_extended_struct_default']);
|
|
// reutrn e107::getParser()>toHTML(deftrue($ext['user_extended_struct_text'], $ext['user_extended_struct_text']), FALSE, "defs")
|
|
break;
|
|
|
|
case 'write': // Edit Page
|
|
|
|
if(empty($curVal))
|
|
{
|
|
$curVal = '1';
|
|
}
|
|
|
|
$types = e107::getUserExt()->getFieldTypes();
|
|
|
|
if($curVal == EUF_ADDON)
|
|
{
|
|
return LAN_PLUGIN;
|
|
}
|
|
|
|
return $this->select('user_extended_struct_type', $types, $curVal, array('class'=>'tbox e-select'));
|
|
|
|
}
|
|
}
|
|
|
|
|
|
function user_extended_struct_required($curVal, $mode)
|
|
{
|
|
$opts = array('0' => EXTLAN_65, '1' => EXTLAN_66, '2' => EXTLAN_67);
|
|
|
|
switch($mode)
|
|
{
|
|
case 'read': // List Page
|
|
return $opts[$curVal];
|
|
break;
|
|
|
|
case 'write': // Edit Page
|
|
|
|
|
|
return $this->select('user_extended_struct_required',$opts, varset($curVal,1),'size=xxlarge');
|
|
break;
|
|
|
|
case 'filter':
|
|
case 'batch':
|
|
return $opts;
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
// Custom Method/Function
|
|
function user_extended_struct_name($curVal,$mode, $att)
|
|
{
|
|
switch($mode)
|
|
{
|
|
case 'read': // List Page
|
|
|
|
return str_replace('plugin_', "<span class='label label-primary'>".LAN_PLUGIN."</span> ",$curVal);
|
|
break;
|
|
|
|
case 'write': // Edit Page
|
|
$field = [];
|
|
$field['type'] = 'text';
|
|
$field['writeParms'] = $att;
|
|
|
|
|
|
return $this->renderElement('user_extended_struct_name', $curVal, $field);
|
|
break;
|
|
|
|
case 'filter':
|
|
case 'batch':
|
|
return array();
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
// Custom Method/Function
|
|
function user_extended_struct_values($curVal,$mode)
|
|
{
|
|
switch($mode)
|
|
{
|
|
case 'read': // List Page
|
|
return $curVal;
|
|
break;
|
|
|
|
case 'write': // Edit Page
|
|
return $this->renderStructValues($curVal);
|
|
break;
|
|
|
|
case 'filter':
|
|
case 'batch':
|
|
return array();
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function renderStructValues($curVal)
|
|
{
|
|
$sql = e107::getDb();
|
|
$frm = e107::getForm();
|
|
|
|
$current = $this->getController()->getModel()->getData();
|
|
|
|
$type = (int) varset($current['user_extended_struct_type']);
|
|
|
|
if($type === EUF_ADDON)
|
|
{
|
|
return '-';
|
|
}
|
|
|
|
$val_hide = ($type !== EUF_DB_FIELD && $type !== EUF_TEXT && $type !== EUF_COUNTRY ) ? "visible" : "none";
|
|
|
|
if($type == 0)
|
|
{
|
|
$val_hide = 'none';
|
|
}
|
|
// return print_a($type,true); // return print_a($current,true);
|
|
|
|
$text = "<div id='values' style='display:$val_hide'>\n";
|
|
$text .= "<div id='value_container' >\n";
|
|
$curVals = explode(",",varset($current['user_extended_struct_values']));
|
|
if(count($curVals) == 0)
|
|
{
|
|
$curVals[]='';
|
|
}
|
|
$i=0;
|
|
foreach($curVals as $v)
|
|
{
|
|
$id = $i ? "" : " id='value_line'";
|
|
$i++;
|
|
$text .= "
|
|
<span {$id}>
|
|
<input class='tbox' type='text' name='user_extended_struct_values[]' size='40' value='{$v}' /></span><br />";
|
|
}
|
|
$text .= "
|
|
</div>
|
|
<input type='button' class='btn btn-primary' value='".EXTLAN_48."' onclick=\"duplicateHTML('value_line','value_container');\" />
|
|
<br /><span class='field-help'>".EXTLAN_17."</span>";
|
|
|
|
$text .= "<div class='checkbox' style='margin-top:10px; margin-bottom:0'>".$frm->checkbox('sort_user_values',1, false, EXTLAN_87)."</div>";
|
|
$text .= "</div>";
|
|
|
|
|
|
if($this->getController()->getAction() === 'edit' && ($type !== EUF_DB_FIELD))
|
|
{
|
|
return $text;
|
|
}
|
|
|
|
// End of Values. --------------------------------------
|
|
|
|
|
|
|
|
|
|
$db_hide = ($current['user_extended_struct_type'] == EUF_DB_FIELD) ? "block" : "none";
|
|
|
|
// Ajax URL for "Table" dropdown.
|
|
$ajaxGetTableSrc = e_SELF . '?mode=ajax&action=changeTable';
|
|
|
|
$text .= "<div id='db_mode' style='display:{$db_hide}'>";
|
|
$text .= "<table class='table table-striped table-bordered' style='width:70%;margin-left:0;'><tr><td>";
|
|
$text .= EXTLAN_62 . "</td><td style='70%'>";
|
|
$text .= "<select name='table_db' style='width:99%' class='tbox e-ajax' data-src='{$ajaxGetTableSrc}'>";
|
|
$text .= "<option value='' class='caption'>" . LAN_NONE . "</option>";
|
|
|
|
$result = e107::getDb()->tables();
|
|
|
|
foreach($result as $row2)
|
|
{
|
|
$fld = $row2;
|
|
$selected = (varset($_POST['table_db'],'') == $fld || $curVals[0] == $fld) ? " selected='selected'" : "";
|
|
// if (MPREFIX!='' && strpos($row2[0], MPREFIX)!==FALSE)
|
|
{
|
|
$text .= "<option value=\"".$fld."\" $selected>".$fld."</option>\n";
|
|
}
|
|
}
|
|
$text .= " </select></td></tr>";
|
|
|
|
if($_POST['table_db'] || $curVals[0])
|
|
{
|
|
// Field ID
|
|
$text .= "<tr><td>".EXTLAN_63."</td><td><select style='width:99%' class='tbox e-select' name='field_id' >\n
|
|
<option value='' class='caption'>".LAN_NONE."</option>\n";
|
|
$table_list = ($_POST['table_db']) ? $_POST['table_db'] : $curVals[0] ;
|
|
|
|
if($sql->gen("DESCRIBE ".MPREFIX."{$table_list}"))
|
|
{
|
|
while($row3 = $sql->fetch())
|
|
{
|
|
$field_name=$row3['Field'];
|
|
$selected = ($curVals[1] == $field_name) ? " selected='selected' " : "";
|
|
$text .="<option value=\"$field_name\" $selected>".$field_name."</option>\n";
|
|
}
|
|
}
|
|
$text .= " </select></td></tr><tr><td>";
|
|
// Field Value
|
|
$text .= EXTLAN_64."</td><td><select style='width:99%' class='tbox e-select' name='field_value' >
|
|
<option value='' class='caption'>".LAN_NONE."</option>\n";
|
|
$table_list = ($_POST['table_db']) ? $_POST['table_db'] : $curVals[0] ;
|
|
|
|
if($sql->gen("DESCRIBE ".MPREFIX."{$table_list}"))
|
|
{
|
|
while($row3 = $sql->fetch())
|
|
{
|
|
$field_name=$row3['Field'];
|
|
$selected = ($curVals[2] == $field_name) ? " selected='selected' " : "";
|
|
$text .="<option value=\"$field_name\" $selected>".$field_name."</option>\n";
|
|
}
|
|
}
|
|
$text .= " </select></td></tr><tr><td>";
|
|
|
|
$text .= LAN_ORDER."</td><td><select style='width:99%' class='tbox e-select' name='field_order' >
|
|
<option value='' class='caption'>".LAN_NONE."</option>\n";
|
|
$table_list = ($_POST['table_db']) ? $_POST['table_db'] : $curVals[0] ;
|
|
|
|
if($sql ->gen("DESCRIBE ".MPREFIX."{$table_list}"))
|
|
{
|
|
while($row3 = $sql->fetch())
|
|
{
|
|
$field_name=$row3['Field'];
|
|
$selected = ($curVals[3] == $field_name) ? " selected='selected' " : "";
|
|
$text .="<option value=\"$field_name\" $selected>".$field_name."</option>\n";
|
|
}
|
|
}
|
|
$text .= " </select></td></tr>";
|
|
|
|
}
|
|
$text .= "</table></div>";
|
|
// ---------------------------------------------------------
|
|
|
|
|
|
|
|
return $text;
|
|
|
|
|
|
}
|
|
|
|
} // end class.
|
|
|
|
|
|
|
|
|
|
class user_extended_category_struct_ui extends e_admin_ui
|
|
{
|
|
|
|
protected $pluginTitle = EXTLAN_9;
|
|
protected $pluginName = 'user_extended';
|
|
// protected $eventName = 'user_extended-user_extended_struct'; // remove comment to enable event triggers in admin.
|
|
protected $table = 'user_extended_struct';
|
|
protected $pid = 'user_extended_struct_id';
|
|
protected $perPage = 10;
|
|
protected $batchDelete = true;
|
|
// protected $batchCopy = true;
|
|
// protected $sortField = 'somefield_order';
|
|
// protected $orderStep = 10;
|
|
// protected $tabs = array('Tabl 1','Tab 2'); // Use 'tab'=>0 OR 'tab'=>1 in the $fields below to enable.
|
|
|
|
protected $listQry = "SELECT * FROM `#user_extended_struct` WHERE user_extended_struct_type = 0 AND user_extended_struct_text != '_system_' "; // Example Custom Query. LEFT JOINS allowed. Should be without any Order or Limit.
|
|
|
|
protected $listOrder = 'user_extended_struct_order ASC';
|
|
|
|
protected $fields = array (
|
|
'checkboxes' => array ( 'title' => '', 'type' => null, 'data' => null, 'width' => '5%', 'thclass' => 'center', 'forced' => '1', 'class' => 'center', 'toggle' => 'e-multiselect', ),
|
|
'user_extended_struct_id' => array ( 'title' => LAN_ID, 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_name' => array ( 'title' => LAN_NAME, 'type' => 'text', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_text' => array ( 'title' => EXTLAN_79, 'type' => 'text', 'data' => 'str', 'width' => 'auto', 'inline' => true, 'help' => '', 'readParms' => 'constant=1', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_type' => array ( 'title' => EXTLAN_2, 'type' => 'hidden', 'nolist'=>true, 'data' => 'int', 'width' => 'auto', 'batch' => true, 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => array('default'=>0), 'class' => 'left', 'thclass' => 'left', ),
|
|
// 'user_extended_struct_values' => array ( 'title' => "Values", 'type' => 'method', 'nolist'=>true, 'data' => 'str', 'width' => 'auto', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
// 'user_extended_struct_default' => array ( 'title' => LAN_DEFAULT, 'type' => 'text', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
|
|
// 'user_extended_struct_parent' => array ( 'title' => LAN_CATEGORY, 'type' => 'dropdown', 'data' => 'int', 'width' => 'auto', 'batch' => true, 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => array('size'=>'xxlarge'), 'class' => 'left', 'thclass' => 'left', ),
|
|
// 'user_extended_struct_required' => array ( 'title' => EXTLAN_4, 'type' => 'method', 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_applicable' => array ( 'title' => EXTLAN_5, 'type' => 'userclass', 'data' => 'int', 'width' => '15%', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
|
|
|
|
// 'user_extended_struct_parms' => array ( 'title' => "Params", 'type' => 'text', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_read' => array ( 'title' =>EXTLAN_6, 'type' => 'userclass', 'data' => 'int', 'width' => '15%', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_write' => array ( 'title' => EXTLAN_7, 'type' => 'userclass', 'data' => 'int', 'width' => '15%', 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
// 'user_extended_struct_signup' => array ( 'title' => 'Signup', 'type' => 'boolean', 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ),
|
|
'user_extended_struct_order' => array ( 'title' => LAN_ORDER, 'type' => 'number', 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'right', 'thclass' => 'right', ),
|
|
'options' => array ( 'title' => LAN_OPTIONS, 'type' => null, 'data' => null, 'width' => '10%', 'thclass' => 'center last', 'class' => 'center last', 'forced' => '1', 'readParms'=>'sort=0' ),
|
|
);
|
|
|
|
protected $fieldpref = array('user_extended_struct_name', 'user_extended_struct_text', 'user_extended_struct_read', 'user_extended_struct_write', 'user_extended_struct_applicable');
|
|
|
|
|
|
protected $prefs = array(
|
|
);
|
|
|
|
|
|
public function init()
|
|
{
|
|
// Set drop-down values (if any).
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
// ------- Customize Create --------
|
|
|
|
public function beforeCreate($new_data, $old_data)
|
|
{
|
|
return $new_data;
|
|
}
|
|
/*
|
|
public function afterCreate($new_data, $old_data, $id)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
public function onCreateError($new_data, $old_data)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
|
|
// ------- Customize Update --------
|
|
|
|
public function beforeUpdate($new_data, $old_data, $id)
|
|
{
|
|
return $new_data;
|
|
}
|
|
|
|
public function afterUpdate($new_data, $old_data, $id)
|
|
{
|
|
// do something
|
|
}
|
|
|
|
public function onUpdateError($new_data, $old_data, $id)
|
|
{
|
|
// do something
|
|
}*/
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
new user_extended_adminArea();
|
|
require_once(e_ADMIN."auth.php");
|
|
e107::getAdminUI()->runPage();
|
|
require_once(e_ADMIN."footer.php");
|
|
|
|
|
|
|
|
|
|
|
|
|