mirror of
https://github.com/e107inc/e107.git
synced 2025-01-17 20:58:30 +01:00
User Extended Shortcode cleanup
This commit is contained in:
parent
db235bd468
commit
7b4bc374c6
@ -2,5 +2,4 @@
|
|||||||
//EXAMPLE: {EXTENDED_VALUE=user_gender.5} will show the value of the extended field user_gender for user #5
|
//EXAMPLE: {EXTENDED_VALUE=user_gender.5} will show the value of the extended field user_gender for user #5
|
||||||
$parms = explode(".", $parm);
|
$parms = explode(".", $parm);
|
||||||
global $tp;
|
global $tp;
|
||||||
return "hello";
|
|
||||||
return $tp->parseTemplate("{USER_EXTENDED={$parms[0]}.value.{$parms[1]}}");
|
return $tp->parseTemplate("{USER_EXTENDED={$parms[0]}.value.{$parms[1]}}");
|
||||||
|
180
e107_core/shortcodes/single/user_extended.php
Normal file
180
e107_core/shortcodes/single/user_extended.php
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright e107 Inc e107.org, Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
|
||||||
|
|
||||||
|
* Extended user field shortcode
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $parm
|
||||||
|
* @usage {USER_EXTENDED=<field_name>.[text|value|icon|text_value].<user_id>}
|
||||||
|
* @example {USER_EXTENDED=user_gender.value.5} will show the value of the extended field user_gender for user #5
|
||||||
|
* @return bool|string
|
||||||
|
*/
|
||||||
|
function user_extended_shortcode($parm)
|
||||||
|
{
|
||||||
|
$currentUser = e107::user();
|
||||||
|
$tp = e107::getParser();
|
||||||
|
|
||||||
|
global $loop_uid, $e107, $sc_style;
|
||||||
|
|
||||||
|
// include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/lan_user_extended.php');
|
||||||
|
|
||||||
|
$parms = explode('.', $parm);
|
||||||
|
|
||||||
|
if(isset($loop_uid) && intval($loop_uid) == 0)
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$key = $parms[0].".".$parms[1];
|
||||||
|
|
||||||
|
$sc_style['USER_EXTENDED']['pre'] = (isset($sc_style['USER_EXTENDED'][$key]['pre']) ? $sc_style['USER_EXTENDED'][$key]['pre'] : '');
|
||||||
|
$sc_style['USER_EXTENDED']['post'] = (isset($sc_style['USER_EXTENDED'][$key]['post']) ? $sc_style['USER_EXTENDED'][$key]['post'] : '');
|
||||||
|
|
||||||
|
//include_once(e_HANDLER.'user_extended_class.php');
|
||||||
|
$ueStruct = e107::getUserExt()->user_extended_getStruct();
|
||||||
|
// $ueStruct = e107_user_extended::user_extended_getStruct();
|
||||||
|
|
||||||
|
$uid = intval(varset($parms[2],0));
|
||||||
|
if($uid == 0)
|
||||||
|
{
|
||||||
|
if(isset($loop_uid) && intval($loop_uid) > 0)
|
||||||
|
{
|
||||||
|
$uid = $loop_uid;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$uid = USERID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$udata = e107::user($uid);
|
||||||
|
|
||||||
|
$udata['user_class'] .= ($udata['user_class'] == '' ? '' : ',');
|
||||||
|
$udata['user_class'] .= e_UC_PUBLIC.",".e_UC_MEMBER;
|
||||||
|
|
||||||
|
if(!empty($udata['user_admin']))
|
||||||
|
{
|
||||||
|
$udata['user_class'].= ','.e_UC_ADMIN;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Need to pick up the 'miscellaneous' category - anything which isn't in a named category. Have to control visibility on a field by field basis
|
||||||
|
// And I don't think this should apply to icons
|
||||||
|
/**
|
||||||
|
* @todo - must be a better way of picking up the 'Miscellaneous' category
|
||||||
|
*/
|
||||||
|
include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/lan_user.php');
|
||||||
|
|
||||||
|
|
||||||
|
if (($parms[1] != 'icon') && ($parms[0] != LAN_USER_44))
|
||||||
|
{
|
||||||
|
$fkeyApplic = varset($ueStruct["user_".$parms[0]]['user_extended_struct_applicable']);
|
||||||
|
$fkeyRead = varset($ueStruct["user_".$parms[0]]['user_extended_struct_read']);
|
||||||
|
$fkeyStruct = varset($ueStruct["user_".$parms[0]]['user_extended_struct_parms']);
|
||||||
|
|
||||||
|
$ret_cause = 0;
|
||||||
|
if (!check_class($fkeyApplic, $udata['user_class'])) $ret_cause = 1;
|
||||||
|
if (!check_class($fkeyRead, $udata['user_class'])) $ret_cause = 2;
|
||||||
|
if (($ueStruct["user_".$parms[0]]['user_extended_struct_read'] == e_UC_READONLY && (!ADMIN && $udata['user_id'] != USERID))) $ret_cause = 3;
|
||||||
|
if ((!ADMIN && substr($fkeyStruct, -1) == 1
|
||||||
|
&& strpos($udata['user_hidden_fields'], "^user_".$parms[0]."^") !== FALSE && $uid != USERID)) $ret_cause = 4;
|
||||||
|
if ($ret_cause != 0)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($parms[1] == 'text_value')
|
||||||
|
{
|
||||||
|
// $_value = $tp->parseTemplate("{USER_EXTENDED={$parms[0]}.value}");
|
||||||
|
$_value = user_extended_shortcode($parms[0].".value");
|
||||||
|
|
||||||
|
|
||||||
|
if($_value)
|
||||||
|
{
|
||||||
|
$__pre = (isset($sc_style['USER_EXTENDED'][$key]['pre']) ? $sc_style['USER_EXTENDED'][$key]['pre'] : '');
|
||||||
|
$__post = (isset($sc_style['USER_EXTENDED'][$key]['post']) ? $sc_style['USER_EXTENDED'][$key]['post'] : '');
|
||||||
|
|
||||||
|
// $_text = $tp->parseTemplate("{USER_EXTENDED={$parms[0]}.text}");
|
||||||
|
|
||||||
|
$_text = user_extended_shortcode($parms[0], ".text");
|
||||||
|
|
||||||
|
|
||||||
|
$_mid = (isset($sc_style['USER_EXTENDED'][$key]['mid']) ? $sc_style['USER_EXTENDED'][$key]['mid'] : '');
|
||||||
|
return $__pre.$_text.$_mid.$_value.$__post;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($parms[1] == 'text')
|
||||||
|
{
|
||||||
|
$text_val = $ueStruct['user_'.$parms[0]]['user_extended_struct_text'];
|
||||||
|
if($text_val)
|
||||||
|
{
|
||||||
|
return (defined($text_val) ? constant($text_val) : $text_val);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($parms[1] == 'icon')
|
||||||
|
{
|
||||||
|
if(defined(strtoupper($parms[0]).'_ICON'))
|
||||||
|
{
|
||||||
|
return constant(strtoupper($parms[0]).'_ICON');
|
||||||
|
}
|
||||||
|
elseif(is_readable(e_IMAGE."user_icons/user_{$parms[0]}.png"))
|
||||||
|
{
|
||||||
|
return "<img src='".e_IMAGE_ABS."user_icons/user_{$parms[0]}.png' style='width:16px; height:16px' alt='' />";
|
||||||
|
}
|
||||||
|
elseif(is_readable(e_IMAGE."user_icons/{$parms[0]}.png"))
|
||||||
|
{
|
||||||
|
return "<img src='".e_IMAGE_ABS."user_icons/{$parms[0]}.png' style='width:16px; height:16px' alt='' />";
|
||||||
|
}
|
||||||
|
//return '';
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($parms[1] == 'value')
|
||||||
|
{
|
||||||
|
$uVal = str_replace(chr(1), '', $udata['user_'.$parms[0]]);
|
||||||
|
switch ($ueStruct["user_".$parms[0]]['user_extended_struct_type'])
|
||||||
|
{
|
||||||
|
case EUF_DB_FIELD : // check for db_lookup type
|
||||||
|
$tmp = explode(',',$ueStruct['user_'.$parms[0]]['user_extended_struct_values']);
|
||||||
|
$sql_ue = new db; // Use our own DB object to avoid conflicts
|
||||||
|
if($sql_ue->select($tmp[0],"{$tmp[1]}, {$tmp[2]}","{$tmp[1]} = '{$uVal}'"))
|
||||||
|
{
|
||||||
|
$row = $sql_ue->fetch();
|
||||||
|
$ret_data = $row[$tmp[2]];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ret_data = FALSE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case EUF_DATE : //check for 0000-00-00 in date field
|
||||||
|
if($uVal == '0000-00-00') { $uVal = ''; }
|
||||||
|
$ret_data = $uVal;
|
||||||
|
break;
|
||||||
|
case EUF_PREDEFINED : // Predefined field - have to look up display string in relevant file
|
||||||
|
$ret_data = e107::getUserExt()->user_extended_display_text($ueStruct['user_'.$parms[0]]['user_extended_struct_values'],$uVal);
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
$ret_data = $uVal;
|
||||||
|
}
|
||||||
|
if($ret_data != '')
|
||||||
|
{
|
||||||
|
return $tp->toHTML($ret_data, TRUE, 'no_make_clickable', "class:{$udata['user_class']}");
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
// return TRUE;
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user