e107_core/shortcodes/single/custom.php
<?php
function custom_shortcode($parm)
{
$pref = e107::getPref();
$tp = e107::getParser();
$e107 = e107::getInstance();
$custom_query = !empty($parm) ? explode('+', $parm) : array();
if(empty($custom_query[0]))
{
return null;
}
switch($custom_query[0])
{
case 'login':
case 'login noprofile':
e107::includeLan(e_PLUGIN.'login_menu/languages/'.e_LANGUAGE.'.php');
$ret = '';
$sep = (defined('LOGINC_SEP')) ? LOGINC_SEP : "<span class='loginc sep'>.:.</span>";
if (USER == true)
{
$ret .= "<span class='mediumtext'><span class='loginc welcome'>".LAN_LOGINMENU_5." ".USERNAME."</span> ".$sep." ";
if(ADMIN == true)
{
$ret .= "<a class='loginc admin' href='".e_ADMIN."admin.php'>".LAN_LOGINMENU_11."</a> ".$sep.' ';
}
$ret .= ($custom_query[0] != 'login noprofile') ? "<a class='loginc profile' href='".e_BASE."user.php?id.".USERID."'>".LAN_LOGINMENU_13."</a>\n".$sep." ":"";
$ret .= "<a class='loginc usersettings' href='" . e_BASE . "usersettings.php'>".LAN_SETTINGS."</a> ".$sep." <a class='loginc logout' href='".e_BASE."index.php?logout'>".LAN_LOGOUT."</a> ".$sep."</span>";
}
else
{
$ret .= "<form method='post' action='".e_SELF.(e_QUERY ? '?'.e_QUERY : '')."'>\n<div class='loginc_div'>\n".LAN_LOGINMENU_1."<input class='tbox loginc user' type='text' name='username' size='15' value=\"".USERNAME."\" maxlength='20' /> \n".LAN_LOGINMENU_2."<input class='tbox loginc pass' type='password' name='userpass' size='15' value='' maxlength='20' /> \n";
$ret .= ($pref['user_tracking'] == "cookie") ? "<input type='checkbox' name='autologin' value='1' />".LAN_LOGINMENU_6." \n" : "";
$ret .= "<input class='btn btn-default btn-secondary button loginc' type='submit' name='userlogin' value='".LAN_LOGIN."' />";
if (intval($pref['user_reg'])===1)
{
$ret .= " <a class='loginc signup' href='".e_SIGNUP."'>".LAN_LOGINMENU_3."</a>";
}
$ret .= "</div>\n</form>";
}
return $ret;
break;
case 'search':
if(!check_class($pref['search_restrict']))
{
return '';
}
$searchflat = true;
include_once(e_PLUGIN.'search_menu/search_menu.php');
return '';
break;
case 'quote':
$qotd_file = e_BASE.'quote.txt';
if(!file_exists($qotd_file))
{
$quote = "Quote file not found ($qotd_file)";
}
else
{
$quotes = file($qotd_file);
$quote = $tp->toHTML($quotes[rand(0, count($quotes) -1 )], true);
}
return $quote;
break;
case 'language':
//FIXME obtrusive and may not work with session or subdomains - certainly better to use {LANGUAGELINKS} anyway
$languageList = explode(',', e_LANLIST);
sort($languageList);
$action = (e_QUERY && ! $_GET['elan']) ? e_SELF.'?'.e_QUERY : e_SELF;
$text = '
<form method="post" action="'.$action.'" id="langchange">
<select name="sitelanguage" class="tbox" onchange=\'document.getElementById("langchange").submit()\'>';
foreach($languageList as $languageFolder)
{
$selected = ($languageFolder == e_LANGUAGE) ? ' selected="selected"' : '';
$text .= '
<option value="'.$languageFolder.'" '.$selected.'>'.$languageFolder.'</option>';
}
$text .= '
</select>
<input type="hidden" name="setlanguage" value="1" />
</form>';
return $text;
break;
case 'clock':
$clock_flat = true;
if(is_dir(e_PLUGIN.'clock_menu'))
{
include_once(e_PLUGIN.'clock_menu/clock_menu.php');
}
return '';
break;
case 'welcomemessage':
return $tp->parseTemplate('{WMESSAGE}');
break;
}
}
?>