2006-12-02 04:36:16 +00:00
< ? php
/*
2009-11-17 10:46:35 +00:00
* e107 website system
*
2017-02-10 22:34:17 +00:00
* Copyright ( C ) 2008 - 2017 e107 Inc ( e107 . org )
2009-11-17 10:46:35 +00:00
* Released under the terms and conditions of the
* GNU General Public License ( http :// www . gnu . org / licenses / gpl . txt )
*
*/
2021-01-16 13:32:35 -08:00
require_once ( __DIR__ . '/../class2.php' );
2016-03-25 11:02:15 +01:00
2008-11-30 23:15:15 +00:00
if ( ! getperms ( '4' ))
{
2016-01-13 19:17:37 -08:00
e107 :: redirect ( 'admin' );
2006-12-02 04:36:16 +00:00
exit ;
}
2016-03-25 11:02:15 +01:00
2017-01-17 01:33:03 +01:00
e107 :: coreLan ( 'users_extended' , true );
2016-03-25 11:02:15 +01:00
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 ();
2016-12-20 10:58:43 +01:00
$tp = e107 :: getParser ();
2016-03-25 11:02:15 +01:00
$sub_action = '' ;
if ( e_QUERY )
{
$tmp = explode ( " . " , e_QUERY );
2016-12-20 10:58:43 +01:00
$action = $tp -> filter ( $tmp [ 0 ]);
2021-11-26 12:36:25 -08:00
$sub_action = varset ( $tmp [ 1 ]);
2016-12-20 10:58:43 +01:00
$sub_action = $tp -> filter ( $sub_action );
2016-03-25 11:02:15 +01:00
$id = varset ( $tmp [ 2 ], 0 );
unset ( $tmp );
}
2021-11-26 12:36:25 -08:00
if ( $sql -> select ( 'user_extended_struct' , '*' , " user_extended_struct_id = ' $sub_action ' " ))
2016-03-25 11:02:15 +01:00
{
$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' ;
2016-03-25 12:26:30 -07:00
$text = " <table class='table table-striped table-bordered' style='width:70%;margin-left:0;'><tr><td> " ;
2016-03-25 11:02:15 +01:00
$text .= EXTLAN_62 . " </td><td style='70%'> \n " ;
$text .= " <select name='table_db' style='width:99%' class='tbox e-ajax' data-src=' { $ajaxGetTableSrc } '> " ;
2017-02-10 22:34:17 +00:00
$text .= " <option value='' class='caption'> " . LAN_NONE . " </option> " ;
2016-03-25 11:02:15 +01:00
$result = e107 :: getDb () -> tables ();
foreach ( $result as $row2 )
{
$fld = $row2 ;
2021-11-26 12:36:25 -08:00
$selected = ( varset ( $_POST [ 'table_db' ]) == $fld || $curVals [ 0 ] == $fld ) ? " selected='selected' " : " " ;
2016-03-25 11:02:15 +01:00
$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'> " ;
2017-02-10 22:34:17 +00:00
$text .= " <option value='' class='caption'> " . LAN_NONE . " </option> " ;
2021-11-26 12:36:25 -08:00
$table_list = ! empty ( $_POST [ 'table_db' ]) ? $_POST [ 'table_db' ] : $curVals [ 0 ];
if ( $sql -> gen ( " DESCRIBE " . MPREFIX . $table_list ))
2016-03-25 11:02:15 +01:00
{
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'> " ;
2017-02-10 22:34:17 +00:00
$text .= " <option value='' class='caption'> " . LAN_NONE . " </option> " ;
2021-11-26 12:36:25 -08:00
$table_list = ! empty ( $_POST [ 'table_db' ]) ? $_POST [ 'table_db' ] : $curVals [ 0 ];
2016-03-25 11:02:15 +01:00
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'> " ;
2017-02-10 22:34:17 +00:00
$text .= " <option value='' class='caption'> " . LAN_NONE . " </option> " ;
2021-11-26 12:36:25 -08:00
$table_list = ! empty ( $_POST [ 'table_db' ]) ? $_POST [ 'table_db' ] : $curVals [ 0 ];
2016-03-25 11:02:15 +01:00
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 ;
}
}
2020-12-22 14:48:28 -08:00
/*
2006-12-02 04:36:16 +00:00
if ( isset ( $_POST [ 'cancel' ]))
{
2008-11-30 23:15:15 +00:00
header ( 'location:' . e_SELF );
2006-12-02 04:36:16 +00:00
exit ;
}
2016-03-25 11:02:15 +01:00
2007-02-24 14:45:28 +00:00
if ( isset ( $_POST [ 'cancel_cat' ]))
{
header ( " location: " . e_SELF . " ?cat " );
exit ;
2020-12-22 14:48:28 -08:00
} */
2006-12-02 04:36:16 +00:00
2016-03-25 11:02:15 +01:00
function js ()
{
2016-03-25 12:26:30 -07:00
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 ;
});
" ;
2015-04-15 02:02:28 -07:00
2016-03-25 12:26:30 -07:00
return $text ;
2016-03-25 11:02:15 +01:00
//FIXME
2016-03-25 12:26:30 -07:00
/*
$text .= "
2015-04-15 02:02:28 -07:00
function changeHelp ( type ) {
2016-03-25 12:26:30 -07:00
return ;
2015-04-15 02:02:28 -07:00
//<![CDATA[
var ftype ;
var helptext ;
" ;
2016-03-25 11:02:15 +01:00
for ( $i = 1 ; $i <= 9 ; $i ++ )
{
$type_const = " UE_LAN_ { $i } " ;
$help_const = " \" " . str_replace ( " / " , " \ / " , " EXTLAN_HELP_ { $i } " ) . " \" " ;
$text .= "
2015-04-15 02:02:28 -07:00
if ( type == \ " { $i } \" )
{
2016-03-25 11:02:15 +01:00
xtype = \ " " . defset ( $type_const ) . " \" ;
what = \ " " . defset ( $help_const ) . " \" ;
2015-04-15 02:02:28 -07:00
} " ;
2016-03-25 11:02:15 +01:00
}
2015-04-15 02:02:28 -07:00
2016-03-25 11:02:15 +01:00
$text .= "
2015-04-15 02:02:28 -07:00
// 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' ;
}
// ]]>
}
2016-03-25 11:02:15 +01:00
" ;
2015-04-15 02:02:28 -07:00
2016-03-25 12:26:30 -07:00
return $text ; */
2016-03-25 11:02:15 +01:00
}
2015-04-15 02:02:28 -07:00
2016-03-25 12:26:30 -07:00
e107 :: js ( 'footer-inline' , js ());
2015-04-15 02:02:28 -07:00
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
),
2016-03-22 11:42:05 -07:00
'cat' => array (
'controller' => 'user_extended_category_struct_ui' ,
'path' => null ,
'ui' => 'user_extended_struct_form_ui' ,
'uipath' => null
),
2015-04-15 02:02:28 -07:00
);
protected $adminMenu = array (
2017-11-30 12:24:17 -08:00
'main/list' => array ( 'caption' => LAN_MANAGE , 'perm' => '0|4' ),
2021-02-02 05:49:00 -08:00
'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' ),
2017-11-30 12:24:17 -08:00
'cat/list' => array ( 'caption' => LAN_CATEGORIES , 'perm' => '0|4' ),
'cat/create' => array ( 'caption' => LAN_CREATE_CATEGORY , 'perm' => '0|4' ),
2016-03-22 11:42:05 -07:00
2015-04-15 02:02:28 -07:00
// 'main/custom' => array('caption'=> 'Custom Page', 'perm' => 'P')
);
2017-02-01 18:25:32 -08:00
protected $adminMenuIcon = 'e-extended-24' ;
2016-03-22 11:42:05 -07:00
/*
* }
$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 );
}
*/
2015-04-15 02:02:28 -07:00
protected $adminMenuAliases = array (
'main/edit' => 'main/list'
);
2016-03-22 11:42:05 -07:00
protected $menuTitle = EXTLAN_9 ;
2015-04-15 02:02:28 -07:00
}
class user_extended_struct_ui extends e_admin_ui
{
2016-03-22 11:42:05 -07:00
protected $pluginTitle = EXTLAN_9 ;
2015-04-15 02:02:28 -07:00
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;
2021-01-01 07:38:24 -08:00
protected $sortField = 'user_extended_struct_order' ;
protected $orderStep = 10 ;
2016-03-22 11:42:05 -07:00
protected $tabs = array ( LAN_BASIC , LAN_ADVANCED ); // Use 'tab'=>0 OR 'tab'=>1 in the $fields below to enable.
2015-04-15 02:02:28 -07:00
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' ;
2016-03-22 11:42:05 -07:00
protected $fields = array (
2016-03-24 12:11:29 -07:00
'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' , ),
2021-02-02 06:30:50 -08:00
'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' , ),
2021-02-02 05:49:00 -08:00
'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' , ),
2021-04-13 11:28:25 -07:00
'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' , ),
2017-01-22 10:25:16 +01:00
'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' , ),
2016-03-24 21:45:14 -07:00
'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' , ),
2016-03-24 12:11:29 -07:00
2016-03-24 21:45:14 -07:00
// These are combined into user_extended_struct_parms on submit.
2017-01-22 10:25:16 +01:00
'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' )),
2016-03-24 12:11:29 -07:00
2016-03-24 21:45:14 -07:00
'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' )),
2016-03-24 12:11:29 -07:00
2016-03-24 21:45:14 -07:00
'user_extended_struct_required' => array ( 'title' => EXTLAN_18 , 'type' => 'method' , 'data' => 'int' , 'width' => '5%' , 'help' => '' , 'readParms' => '' , 'writeParms' => '' , 'class' => 'left' , 'thclass' => 'left' , ),
2016-03-25 12:26:30 -07:00
'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' , ),
2016-03-24 12:11:29 -07:00
'user_extended_struct_parms' => array ( 'title' => " Params " , 'type' => 'hidden' , 'data' => 'str' , 'width' => 'auto' , 'help' => '' , 'readParms' => '' , 'writeParms' => '' , 'class' => 'left' , 'thclass' => 'left' , ),
2016-03-25 12:26:30 -07:00
'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' , ),
2017-01-22 10:25:16 +01:00
'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' , ),
2016-03-24 12:11:29 -07:00
'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' , ),
2016-04-02 12:47:27 -07:00
'options' => array ( 'title' => LAN_OPTIONS , 'type' => 'method' , 'data' => null , 'width' => '10%' , 'thclass' => 'center last' , 'class' => 'center last' , 'forced' => '1' , 'readParms' => 'sort=1' ),
2015-04-15 02:02:28 -07:00
);
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 (
);
2018-08-26 10:23:55 -07:00
/**
* Automatically exectured when edit mode is active .
*/
public function EditObserver ()
2016-03-24 12:11:29 -07:00
{
2018-08-26 10:23:55 -07:00
parent :: EditObserver ();
2021-04-13 11:28:25 -07:00
$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' ];
2018-08-26 10:23:55 -07:00
$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 ];
2021-04-13 11:28:25 -07:00
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' ]
);
}
2018-08-26 10:23:55 -07:00
}
2016-03-22 11:42:05 -07:00
2016-04-02 12:47:27 -07:00
2018-08-26 10:23:55 -07:00
public function init ()
{
2016-03-24 12:11:29 -07:00
if ( $this -> getAction () == 'edit' || $this -> getAction () == 'create' )
{
$this -> fields [ 'user_extended_struct_type' ][ 'title' ] = LAN_TYPE ;
}
2016-03-22 11:42:05 -07:00
$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 ;
2015-04-15 02:02:28 -07:00
}
2016-03-24 12:11:29 -07:00
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' ],
);
2016-03-25 12:26:30 -07:00
if ( isset ( $new_data [ 'field_include' ]))
{
$new_data [ 'user_extended_struct_parms' ] = implode ( '^,^' , $parms );
}
2016-03-24 12:11:29 -07:00
2018-08-26 10:23:55 -07:00
if ( $new_data [ 'user_extended_struct_type' ] == EUF_DB_FIELD )
2016-03-24 12:11:29 -07:00
{
$new_data [ 'user_extended_struct_values' ] = array ( $new_data [ 'table_db' ], $new_data [ 'field_id' ], $new_data [ 'field_value' ], $new_data [ 'field_order' ]);
}
2016-03-25 12:26:30 -07:00
if ( isset ( $new_data [ 'user_extended_struct_values' ]))
{
2016-05-25 15:10:00 -07:00
$new_data [ 'user_extended_struct_values' ] = array_filter ( $new_data [ 'user_extended_struct_values' ]);
2016-03-25 12:26:30 -07:00
$new_data [ 'user_extended_struct_values' ] = implode ( ',' , $new_data [ 'user_extended_struct_values' ]);
}
2016-03-24 12:11:29 -07:00
2016-03-24 21:45:14 -07:00
// e107::getMessage()->addInfo(print_a($new_data,true),'default', true);
2016-03-24 12:11:29 -07:00
return $new_data ;
}
2015-04-15 02:02:28 -07:00
// ------- Customize Create --------
2016-03-22 11:42:05 -07:00
public function beforeCreate ( $new_data , $old_data )
2015-04-15 02:02:28 -07:00
{
2016-04-02 08:51:59 -07:00
$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 ;
}
2016-03-24 12:11:29 -07:00
$new_data = $this -> compileData ( $new_data );
2016-04-02 08:51:59 -07:00
$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. " );
}
}
2016-03-24 12:11:29 -07:00
2016-04-02 08:51:59 -07:00
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 );
}
}
}
2016-03-24 12:11:29 -07:00
2015-04-15 02:02:28 -07:00
return $new_data ;
2016-04-02 08:51:59 -07:00
2015-04-15 02:02:28 -07:00
}
2016-04-02 08:51:59 -07:00
2015-04-15 02:02:28 -07:00
public function afterCreate ( $new_data , $old_data , $id )
{
// do something
}
public function onCreateError ( $new_data , $old_data )
{
// do something
}
2016-04-02 08:51:59 -07:00
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
{
2017-01-22 10:25:16 +01:00
$mes -> addSuccess ( EXTLAN_86 );
2016-04-02 08:51:59 -07:00
}
}
2020-06-26 13:58:59 -07:00
/*
2016-04-02 08:51:59 -07:00
public function afterDelete ( $data , $id )
{
2020-06-26 13:58:59 -07:00
} */
2016-04-02 08:51:59 -07:00
2015-04-15 02:02:28 -07:00
// ------- Customize Update --------
public function beforeUpdate ( $new_data , $old_data , $id )
{
2016-04-02 08:51:59 -07:00
$ue = e107 :: getUserExt ();
$mes = e107 :: getMessage ();
if ( $ue -> user_extended_field_exist ( $new_data [ 'user_extended_struct_name' ]))
{
2021-04-13 11:28:25 -07:00
$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' ]);
2016-04-02 08:51:59 -07:00
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. " );
}
}
}
2016-03-24 12:11:29 -07:00
$new_data = $this -> compileData ( $new_data );
2016-04-02 08:51:59 -07:00
2015-04-15 02:02:28 -07:00
return $new_data ;
}
public function afterUpdate ( $new_data , $old_data , $id )
{
// do something
}
public function onUpdateError ( $new_data , $old_data , $id )
{
// do something
}
2017-01-10 11:25:57 -08:00
private function addPageActivate ()
2016-03-22 11:42:05 -07:00
{
2020-12-25 10:23:56 -08:00
if ( empty ( $_POST [ 'activate' ]))
{
return null ;
}
2016-03-22 11:42:05 -07:00
$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 " )
{
2020-12-18 19:55:12 -08:00
if ( ! is_readable ( e_CORE . 'sql/extended_' . $f . '.php' ))
2016-03-22 11:42:05 -07:00
{
2017-11-07 06:59:11 -08:00
$ret .= str_replace ( '[x]' , e_CORE . 'sql/extended_' . $f . '.php' , EXTLAN_78 );
2020-12-18 19:55:12 -08:00
// $ret .= ($this->process_sql($f)) ? LAN_CREATED." user_extended_{$f}<br />" : LAN_CREATED_FAILED." user_extended_{$f}<br />";
2016-03-22 11:42:05 -07:00
}
2020-12-18 19:55:12 -08:00
2016-03-22 11:42:05 -07:00
}
}
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 ;
}
2017-01-10 11:25:57 -08:00
private function addPageDeactivate ()
{
2016-03-22 11:42:05 -07:00
2020-12-25 10:23:56 -08:00
if ( empty ( $_POST [ 'deactivate' ]))
{
return null ;
}
2017-01-10 11:25:57 -08:00
$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 ;
}
2016-03-22 11:42:05 -07:00
function addPage ()
{
$ns = e107 :: getRender ();
$ue = e107 :: getUserExt ();
$this -> addPageActivate ();
2017-01-10 11:25:57 -08:00
$this -> addPageDeactivate ();
2016-03-22 11:42:05 -07:00
// Get list of current extended fields
$curList = $ue -> user_extended_get_fieldlist ();
2020-12-26 08:02:34 -08:00
$curNames = array ();
2016-03-22 11:42:05 -07:00
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 )
{
2020-12-26 08:02:34 -08:00
if ( $k !== 'version' ) // don't know why this is appearing in the array.
2016-03-22 11:42:05 -07:00
{
$active = ( in_array ( $a [ 'name' ], $curNames )) ? TRUE : FALSE ;
$txt .= $this -> show_predefined_field ( $a , $active );
}
}
$txt .= " </tbody></table></form> " ;
$emessage = e107 :: getMessage ();
return $txt ;
2016-03-25 12:26:30 -07:00
// $ns->tablerender(EXTLAN_9.SEP.EXTLAN_56,$emessage->render(). $txt);
2016-03-22 11:42:05 -07:00
}
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 >
2020-12-29 09:48:36 -08:00
< td > " . $ue->user_extended_edit ( $var ,''). " </ td >
2016-03-22 11:42:05 -07:00
< td > " . $tp->toHTML ( $var['type'] , false, 'defs'). " </ td >
< td class = 'center' > " .( $active ? ADMIN_TRUE_ICON : " & nbsp ; " ). " </ 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 ;
}
2015-04-15 02:02:28 -07:00
/*
// 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
{
2016-04-02 12:47:27 -07:00
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 ;
}
}
2015-04-15 02:02:28 -07:00
// Custom Method/Function
function user_extended_struct_type ( $curVal , $mode )
{
switch ( $mode )
{
case 'read' : // List Page
$ext = $this -> getController () -> getListModel () -> getData ();
2016-03-25 12:26:30 -07:00
// return print_a($ext,true);
$ext [ 'user_extended_struct_required' ] = 0 ; // so the form can be posted.
2021-04-13 11:28:25 -07:00
return e107 :: getUserExt () -> renderElement ( $ext , $ext [ 'user_extended_struct_default' ]);
2015-04-15 02:02:28 -07:00
// 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 ))
{
2016-04-01 20:10:46 -07:00
$curVal = '1' ;
2015-04-15 02:02:28 -07:00
}
2017-01-24 15:55:50 -08:00
$types = e107 :: getUserExt () -> getFieldTypes ();
2016-04-01 20:10:46 -07:00
2021-04-13 11:28:25 -07:00
if ( $curVal == EUF_ADDON )
{
return LAN_PLUGIN ;
}
2016-04-01 20:10:46 -07:00
return $this -> select ( 'user_extended_struct_type' , $types , $curVal , array ( 'class' => 'tbox e-select' ));
2015-04-15 02:02:28 -07:00
}
}
2016-03-22 11:42:05 -07:00
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
2016-04-02 08:51:59 -07:00
return $this -> select ( 'user_extended_struct_required' , $opts , varset ( $curVal , 1 ), 'size=xxlarge' );
2016-03-22 11:42:05 -07:00
break ;
case 'filter' :
case 'batch' :
2016-04-02 08:51:59 -07:00
return $opts ;
2016-03-22 11:42:05 -07:00
break ;
}
2015-04-15 02:02:28 -07:00
2016-03-22 11:42:05 -07:00
}
2021-01-18 18:10:00 -08:00
// Custom Method/Function
2021-02-02 06:30:50 -08:00
function user_extended_struct_name ( $curVal , $mode , $att )
2021-01-18 18:10:00 -08:00
{
switch ( $mode )
{
case 'read' : // List Page
2021-02-02 06:30:50 -08:00
2021-01-18 18:10:00 -08:00
return str_replace ( 'plugin_' , " <span class='label label-primary'> " . LAN_PLUGIN . " </span> " , $curVal );
break ;
2016-03-22 11:42:05 -07:00
2021-02-02 06:30:50 -08:00
case 'write' : // Edit Page
$field = [];
$field [ 'type' ] = 'text' ;
$field [ 'writeParms' ] = $att ;
2021-11-26 09:46:18 -08:00
$field [ 'pattern' ] = '[0-9a-z_]*' ;
2021-11-26 12:36:25 -08:00
2021-02-02 06:30:50 -08:00
return $this -> renderElement ( 'user_extended_struct_name' , $curVal , $field );
break ;
2015-04-15 02:02:28 -07:00
2021-01-18 18:10:00 -08:00
case 'filter' :
case 'batch' :
return array ();
break ;
}
}
2015-04-15 02:02:28 -07:00
// 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 ();
2016-03-22 11:42:05 -07:00
$frm = e107 :: getForm ();
2015-04-15 02:02:28 -07:00
$current = $this -> getController () -> getModel () -> getData ();
2020-12-29 09:48:36 -08:00
$type = ( int ) varset ( $current [ 'user_extended_struct_type' ]);
2016-03-25 12:26:30 -07:00
2021-04-13 11:28:25 -07:00
if ( $type === EUF_ADDON )
{
return '-' ;
}
2020-12-09 09:15:16 -08:00
$val_hide = ( $type !== EUF_DB_FIELD && $type !== EUF_TEXT && $type !== EUF_COUNTRY ) ? " visible " : " none " ;
2016-03-25 12:26:30 -07:00
if ( $type == 0 )
{
$val_hide = 'none' ;
}
// return print_a($type,true); // return print_a($current,true);
2015-04-15 02:02:28 -07:00
$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 } >
2016-03-24 12:11:29 -07:00
< input class = 'tbox' type = 'text' name = 'user_extended_struct_values[]' size = '40' value = '{$v}' /></ span >< br /> " ;
2015-04-15 02:02:28 -07:00
}
$text .= "
</ div >
< input type = 'button' class = 'btn btn-primary' value = '".EXTLAN_48."' onclick = \ " duplicateHTML('value_line','value_container'); \" />
2016-03-25 12:26:30 -07:00
< br />< span class = 'field-help' > " .EXTLAN_17. " </ span > " ;
2020-12-09 09:15:16 -08:00
$text .= " <div class='checkbox' style='margin-top:10px; margin-bottom:0'> " . $frm -> checkbox ( 'sort_user_values' , 1 , false , EXTLAN_87 ) . " </div> " ;
2016-03-25 12:26:30 -07:00
$text .= " </div> " ;
2020-12-09 11:43:50 -08:00
if ( $this -> getController () -> getAction () === 'edit' && ( $type !== EUF_DB_FIELD ))
2020-12-09 09:15:16 -08:00
{
return $text ;
}
2016-03-25 12:26:30 -07:00
2015-04-15 02:02:28 -07:00
// End of Values. --------------------------------------
2020-12-09 09:15:16 -08:00
$db_hide = ( $current [ 'user_extended_struct_type' ] == EUF_DB_FIELD ) ? " block " : " none " ;
2016-03-25 11:02:15 +01:00
// Ajax URL for "Table" dropdown.
$ajaxGetTableSrc = e_SELF . '?mode=ajax&action=changeTable' ;
2015-04-15 02:02:28 -07:00
2016-03-25 11:02:15 +01:00
$text .= " <div id='db_mode' style='display: { $db_hide } '> " ;
2016-03-25 12:26:30 -07:00
$text .= " <table class='table table-striped table-bordered' style='width:70%;margin-left:0;'><tr><td> " ;
2016-03-25 11:02:15 +01:00
$text .= EXTLAN_62 . " </td><td style='70%'> " ;
$text .= " <select name='table_db' style='width:99%' class='tbox e-ajax' data-src=' { $ajaxGetTableSrc } '> " ;
2017-02-10 22:34:17 +00:00
$text .= " <option value='' class='caption'> " . LAN_NONE . " </option> " ;
2015-04-15 02:02:28 -07:00
2016-03-21 19:15:20 -07:00
$result = e107 :: getDb () -> tables ();
foreach ( $result as $row2 )
2015-04-15 02:02:28 -07:00
{
2016-03-21 19:15:20 -07:00
$fld = $row2 ;
2021-11-26 12:36:25 -08:00
$selected = ( varset ( $_POST [ 'table_db' ]) == $fld || $curVals [ 0 ] == $fld ) ? " selected='selected' " : " " ;
2016-03-21 19:15:20 -07:00
// if (MPREFIX!='' && strpos($row2[0], MPREFIX)!==FALSE)
2015-04-15 02:02:28 -07:00
{
$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
2017-02-10 22:34:17 +00:00
< option value = '' class = 'caption' > " .LAN_NONE. " </ option > \n " ;
2021-11-26 12:36:25 -08:00
$table_list = ! empty ( $_POST [ 'table_db' ]) ? $_POST [ 'table_db' ] : $curVals [ 0 ] ;
2015-04-15 02:02:28 -07:00
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' >
2017-02-10 22:34:17 +00:00
< option value = '' class = 'caption' > " .LAN_NONE. " </ option > \n " ;
2021-11-26 12:36:25 -08:00
$table_list = ! empty ( $_POST [ 'table_db' ]) ? $_POST [ 'table_db' ] : $curVals [ 0 ] ;
2015-04-15 02:02:28 -07:00
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' >
2017-02-10 22:34:17 +00:00
< option value = '' class = 'caption' > " .LAN_NONE. " </ option > \n " ;
2021-11-26 12:36:25 -08:00
$table_list = ! empty ( $_POST [ 'table_db' ]) ? $_POST [ 'table_db' ] : $curVals [ 0 ] ;
2015-04-15 02:02:28 -07:00
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> " ;
// ---------------------------------------------------------
2016-03-25 12:26:30 -07:00
2016-03-22 11:42:05 -07:00
2015-04-15 02:02:28 -07:00
return $text ;
}
} // end class.
2016-03-22 11:42:05 -07:00
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' , ),
2017-01-22 10:25:16 +01:00
'user_extended_struct_write' => array ( 'title' => EXTLAN_7 , 'type' => 'userclass' , 'data' => 'int' , 'width' => '15%' , 'inline' => true , 'help' => '' , 'readParms' => '' , 'writeParms' => '' , 'class' => 'left' , 'thclass' => 'left' , ),
2016-03-22 11:42:05 -07:00
// '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 ;
}
2020-12-09 12:07:07 -08:00
/*
2016-03-22 11:42:05 -07:00
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
2020-12-09 12:07:07 -08:00
} */
2016-03-22 11:42:05 -07:00
}
2015-04-15 02:02:28 -07:00
2021-01-16 13:32:35 -08:00
new user_extended_adminArea ();
require_once ( e_ADMIN . " auth.php " );
e107 :: getAdminUI () -> runPage ();
require_once ( e_ADMIN . " footer.php " );
2015-04-15 02:02:28 -07:00
2016-03-25 12:26:30 -07:00
2015-04-15 02:02:28 -07:00
2006-12-02 04:36:16 +00:00