\r
/*\r
* Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)\r
- * Copyright (C) 2002-2009 The Nucleus Group\r
+ * Copyright (C) 2002-2012 The Nucleus Group\r
*\r
* This program is free software; you can redistribute it and/or\r
* modify it under the terms of the GNU General Public License\r
*/\r
/**\r
* @license http://nucleuscms.org/license.txt GNU General Public License\r
- * @copyright Copyright (C) 2002-2009 The Nucleus Group\r
- * @version $Id: globalfunctions.php 1697 2012-03-10 13:15:47Z sakamocchi $\r
+ * @copyright Copyright (C) 2002-2012 The Nucleus Group\r
+ * @version $Id: globalfunctions.php 1727 2012-04-07 02:54:22Z sakamocchi $\r
*/\r
\r
/* needed if we include globalfunctions from install.php */\r
$nucleus['codename'] = '';\r
\r
/* check and die if someone is trying to override internal globals (when register_globals turn on) */\r
-checkVars(array('nucleus', 'CONF', 'DIR_LIBS', 'MYSQL_HOST', 'MYSQL_USER', 'MYSQL_PASSWORD', 'MYSQL_DATABASE', '$DIR_LOCALES', 'DIR_PLUGINS', 'HTTP_GET_VARS', 'HTTP_POST_VARS', 'HTTP_COOKIE_VARS', 'HTTP_ENV_VARS', 'HTTP_SESSION_VARS', 'HTTP_POST_FILES', 'HTTP_SERVER_VARS', 'GLOBALS', 'argv', 'argc', '_GET', '_POST', '_COOKIE', '_ENV', '_SESSION', '_SERVER', '_FILES'));\r
+checkVars(array('nucleus', 'CONF', 'DIR_LIBS', 'MYSQL_HOST', 'MYSQL_USER', 'MYSQL_PASSWORD', 'MYSQL_DATABASE', 'DIR_LOCALES', 'DIR_PLUGINS', 'HTTP_GET_VARS', 'HTTP_POST_VARS', 'HTTP_COOKIE_VARS', 'HTTP_ENV_VARS', 'HTTP_SESSION_VARS', 'HTTP_POST_FILES', 'HTTP_SERVER_VARS', 'GLOBALS', 'argv', 'argc', '_GET', '_POST', '_COOKIE', '_ENV', '_SESSION', '_SERVER', '_FILES'));\r
\r
/* debug mode */\r
+if ( !isset($CONF) )\r
+{\r
+ $CONF = array();\r
+}\r
if ( array_key_exists('debug', $CONF) && $CONF['debug'] )\r
{\r
/* report all errors! */\r
header('Generator: Nucleus CMS ' . $nucleus['version']);\r
}\r
\r
+/*\r
+ * NOTE: Since 4.0 release, Entity class becomes to be important class\r
+ * with some wrapper functions for htmlspechalchars/htmlentity PHP's built-in function\r
+*/\r
+include($DIR_LIBS . 'ENTITY.php');\r
+\r
/* include core classes that are needed for login & plugin handling */\r
include_once($DIR_LIBS . 'mysql.php');\r
/* added for 3.5 sql_* wrapper */\r
include($DIR_LIBS . 'MANAGER.php');\r
include($DIR_LIBS . 'PLUGIN.php');\r
\r
-$manager =& MANAGER::instance();\r
+$manager =& Manager::instance();\r
\r
/*\r
* make sure there's no unnecessary escaping:\r
$CONF['DisableJsTools'] = 2;\r
}\r
\r
-$member = new MEMBER();\r
+$member = new Member();\r
\r
if ( $action == 'login' )\r
{\r
include($DIR_LIBS . 'BAN.php');\r
include($DIR_LIBS . 'PAGEFACTORY.php');\r
include($DIR_LIBS . 'SEARCH.php');\r
-include($DIR_LIBS . 'ENTITY.php');\r
include($DIR_LIBS . 'LINK.php');\r
\r
/* set lastVisit cookie (if allowed) */\r
if ( !$parsed )\r
{\r
/* default implementation */\r
- $data = i18n::explode("/", $virtualpath );\r
+ $data = preg_split("#/#", $virtualpath );\r
for ( $i = 0; $i < sizeof($data); $i++ )\r
{\r
switch ( $data[$i] )\r
return array();\r
}\r
\r
- $aHighlight = i18n::explode(' ', $query);\r
+ $aHighlight = preg_split('# #', $query);\r
\r
for ( $i = 0; $i < count($aHighlight); $i++ )\r
{\r
*/\r
function getBlogIDFromName($name)\r
{\r
- return quickQuery('SELECT `bnumber` AS `result` FROM `' . sql_table('blog') . '` WHERE `bshortname` = "' . sql_real_escape_string($name) . '"');\r
+ return quickQuery('SELECT bnumber AS result FROM ' . sql_table('blog') . ' WHERE bshortname = "' . sql_real_escape_string($name) . '"');\r
}\r
\r
\r
*/\r
function getBlogNameFromID($id)\r
{\r
- return quickQuery('SELECT `bname` AS `result` FROM `' . sql_table('blog') . '` WHERE `bnumber` = ' . intval($id));\r
+ return quickQuery('SELECT bname AS result FROM ' . sql_table('blog') . ' WHERE bnumber = ' . intval($id));\r
}\r
\r
\r
*/\r
function getBlogIDFromItemID($item_id)\r
{\r
- return quickQuery('SELECT `iblog` AS `result` FROM `' . sql_table('item') . '` WHERE `inumber` = ' . intval($item_id));\r
+ return quickQuery('SELECT iblog AS result FROM ' . sql_table('item') . ' WHERE inumber = ' . intval($item_id));\r
}\r
\r
\r
*/\r
function getBlogIDFromCommentID($comment_id)\r
{\r
- return quickQuery('SELECT `cblog` AS `result` FROM `' . sql_table('comment') . '` WHERE `cnumber` = ' . intval($comment_id));\r
+ return quickQuery('SELECT cblog AS result FROM ' . sql_table('comment') . ' WHERE cnumber = ' . intval($comment_id));\r
}\r
\r
\r
*/\r
function getBlogIDFromCatID($category_id)\r
{\r
- return quickQuery('SELECT `cblog` AS `result` FROM `' . sql_table('category') . '` WHERE `catid` = ' . intval($category_id));\r
+ return quickQuery('SELECT cblog AS result FROM ' . sql_table('category') . ' WHERE catid = ' . intval($category_id));\r
}\r
\r
\r
*/\r
function getCatIDFromName($name)\r
{\r
- return quickQuery('SELECT `catid` AS `result` FROM `' . sql_table('category') . '` WHERE `cname` = "' . sql_real_escape_string($name) . '"');\r
+ return quickQuery('SELECT catid AS result FROM ' . sql_table('category') . ' WHERE cname = "' . sql_real_escape_string($name) . '"');\r
}\r
\r
\r
{\r
global $DIR_LIBS, $errormessage;\r
include_once($DIR_LIBS . 'ACTION.php');\r
- $a = new ACTION();\r
+ $a = new Action();\r
$errorInfo = $a->doAction($action);\r
\r
if ( $errorInfo )\r
{\r
$query = "SELECT inumber, ititle FROM %s WHERE itime>'%s' AND itime<='%s' AND idraft=0 AND iblog=%d AND icat=%d ORDER BY itime ASC LIMIT 1";\r
$query = sprintf($query, sql_table('item'), i18n::formatted_datetime('mysql', $timestamp), i18n::formatted_datetime('mysql', $b->getCorrectTime()), $blogid, $catid);\r
- \r
}\r
$res = sql_query($query);\r
\r
{\r
$type = 'member';\r
\r
- if ( !MEMBER::existsID($memberid) )\r
+ if ( !Member::existsID($memberid) )\r
{\r
doError(_ERROR_NOSUCHMEMBER);\r
}\r
\r
$skin = new SKIN($skinid);\r
\r
- if ( !$skin->isValid )\r
+ if ( !$skin->isValid() )\r
{\r
doError(_ERROR_NOSUCHSKIN);\r
}\r
/**\r
* Show error skin with given message. An optional skin-object to use can be given\r
*/\r
-function doError($msg, $skin = '') {\r
- global $errormessage, $CONF, $skinid, $blogid, $manager;\r
-\r
- if ($skin == '') {\r
-\r
- if (SKIN::existsID($skinid) ) {\r
- $skin = new SKIN($skinid);\r
- } elseif ($manager->existsBlogID($blogid) ) {\r
- $blog =& $manager->getBlog($blogid);\r
- $skin = new SKIN($blog->getDefaultSkin() );\r
- } elseif ($CONF['DefaultBlog']) {\r
- $blog =& $manager->getBlog($CONF['DefaultBlog']);\r
- $skin = new SKIN($blog->getDefaultSkin() );\r
- } else {\r
- // this statement should actually never be executed\r
- $skin = new SKIN($CONF['BaseSkin']);\r
- }\r
-\r
- }\r
-\r
- $skinid = $skin->id;\r
- $errormessage = $msg;\r
- $skin->parse('error');\r
- exit;\r
+function doError($msg, $skin = '')\r
+{\r
+ global $errormessage, $CONF, $skinid, $blogid, $manager;\r
+ \r
+ if ( $skin == '' )\r
+ {\r
+ if ( Skin::existsID($skinid) )\r
+ {\r
+ $id = $skinid;\r
+ }\r
+ elseif ( $manager->existsBlogID($blogid) )\r
+ {\r
+ $blog =& $manager->getBlog($blogid);\r
+ $id = $blog->getDefaultSkin();\r
+ }\r
+ elseif ($CONF['DefaultBlog'] )\r
+ {\r
+ $blog =& $manager->getBlog($CONF['DefaultBlog']);\r
+ $id = $blog->getDefaultSkin();\r
+ }\r
+ else\r
+ {\r
+ // this statement should actually never be executed\r
+ $id = $CONF['BaseSkin'];\r
+ }\r
+ $skin = new Skin($id);\r
+ }\r
+ \r
+ $skinid = $skin->getID();\r
+ $errormessage = $msg;\r
+ $skin->parse('error');\r
+ exit;\r
}\r
\r
function getConfig() {\r
$itemid = intval($id);\r
}\r
\r
-// force the use of a translation file (warning: can cause warnings)\r
-function selectLanguage($language) {\r
+function parseFile($filename, $includeMode = 'normal', $includePrefix = '')
+{
+ global $skinid;
\r
- global $DIR_LANG;\r
-\r
- # replaced ereg_replace() below with preg_replace(). ereg* functions are deprecated in PHP 5.3.0\r
- # original ereg_replace: preg_replace( '@\\|/@', '', $language) . '.php')\r
- # important note that '\' must be matched with '\\\\' in preg* expressions\r
-\r
- include($DIR_LANG . preg_replace('#[\\\\|/]#', '', $language) . '.php');\r
-\r
-}\r
-\r
-function parseFile($filename, $includeMode = 'normal', $includePrefix = '') {\r
- $handler = new ACTIONS('fileparser');\r
- $parser = new PARSER(SKIN::getAllowedActionsForType('fileparser'), $handler);\r
- $handler->parser =& $parser;\r
-\r
- // set IncludeMode properties of parser\r
- PARSER::setProperty('IncludeMode', $includeMode);\r
- PARSER::setProperty('IncludePrefix', $includePrefix);\r
-\r
- if (!file_exists($filename) ) {\r
- doError('A file is missing');\r
+ if ( !$skinid || !existsID($skinid) )
+ {
+ $skin = new Skin($CONF['BaseSkin']);
+ }
+ else
+ {
+ $skin = new Skin($skinid);
}\r
\r
- $fsize = filesize($filename);\r
+ $oldIncludeMode = Parser::getProperty('IncludeMode');
+ $oldIncludePrefix = Parser::getProperty('IncludePrefix');
\r
- if ($fsize <= 0) {\r
- return;\r
- }\r
+ $skin->parse('fileparse', $filename);
\r
- // read file\r
- $fd = fopen ($filename, 'r');\r
- $contents = fread ($fd, $fsize);\r
- fclose ($fd);\r
+ Parser::setProperty('IncludeMode', $oldIncludeMode);
+ Parser::setProperty('IncludePrefix', $oldIncludePrefix);
\r
- // parse file contents\r
- $parser->parse($contents);\r
+ return;
}\r
\r
/**\r
\r
// shortcut\r
function addToLog($level, $msg) {\r
- ACTIONLOG::add($level, $msg);\r
+ ActionLog::add($level, $msg);\r
}\r
\r
// shows a link to help file\r
}\r
\r
/**\r
- * @param $querystr\r
- * querystring to alter (e.g. foo=1&bar=2&x=y)\r
- * @param $param\r
- * name of parameter to change (e.g. 'foo')\r
- * @param $value\r
- * New value for that parameter (e.g. 3)\r
- * @result\r
- * altered query string (for the examples above: foo=3&bar=2&x=y)\r
+ * alterQueryStr()\r
+ * \r
+ * @param string $querystr querystring to alter (e.g. foo=1&bar=2&x=y)\r
+ * @param string $param name of parameter to change (e.g. 'foo')\r
+ * @param string $value New value for that parameter (e.g. 3)\r
+ * @result string altered query string (for the examples above: foo=3&bar=2&x=y)\r
*/\r
-function alterQueryStr($querystr, $param, $value) {\r
- $vars = i18n::explode('&', $querystr);\r
- $set = false;\r
-\r
- for ($i = 0; $i < count($vars); $i++) {\r
- $v = i18n::explode('=', $vars[$i]);\r
-\r
- if ($v[0] == $param) {\r
- $v[1] = $value;\r
- $vars[$i] = implode('=', $v);\r
- $set = true;\r
- break;\r
- }\r
- }\r
-\r
- if (!$set) {\r
- $vars[] = $param . '=' . $value;\r
- }\r
-\r
- return ltrim(implode('&', $vars), '&');\r
+function alterQueryStr($querystr, $param, $value)\r
+{\r
+ $vars = preg_split('#&#', $querystr);\r
+ $set = FALSE;\r
+ \r
+ for ( $i = 0; $i < count($vars); $i++ )\r
+ {\r
+ $v = preg_split('#=#', $vars[$i]);\r
+ \r
+ if ( $v[0] == $param )\r
+ {\r
+ $v[1] = $value;\r
+ $vars[$i] = implode('=', $v);\r
+ $set = true;\r
+ break;\r
+ }\r
+ }\r
+ if ( !$set )\r
+ {\r
+ $vars[] = "{$param}={$value}";\r
+ }\r
+ return ltrim(implode('&', $vars), '&');\r
}\r
\r
// passes one variable as hidden input field (multiple fields for arrays)\r
}\r
\r
// other values: do stripslashes if needed\r
- ?><input type="hidden" name="<?php echo ENTITY::hsc($key)?>" value="<?php echo ENTITY::hsc(undoMagic($value) )?>" /><?php\r
+ ?><input type="hidden" name="<?php echo Entity::hsc($key)?>" value="<?php echo Entity::hsc(undoMagic($value) )?>" /><?php\r
}\r
\r
function checkVars($aVars) {\r
}\r
\r
/**\r
+ * ticketForPlugin()\r
+ * \r
* Check ticket when not checked in plugin's admin page\r
* to avoid CSRF.\r
* Also avoid the access to plugin/index.php by guest user.\r
\r
// Solve the plugin name.\r
$plugins = array();\r
- $query = 'SELECT `pfile` FROM '.sql_table('plugin');\r
+ $query = 'SELECT pfile FROM '.sql_table('plugin');\r
$res = sql_query($query);\r
\r
while($row = sql_fetch_row($res) )\r
// Resolve URI and QUERY_STRING\r
if ($uri = serverVar('REQUEST_URI') )\r
{\r
- list($uri, $qstring) = i18n::explode('?', $uri);\r
+ list($uri, $qstring) = preg_split('#\?#', $uri);\r
}\r
else\r
{\r
$qstring = '?' . $qstring;\r
}\r
\r
- echo '<p>' . _SETTINGS_UPDATE . ' : ' . _QMENU_PLUGINS . ' <span style="color:red;">' . ENTITY::hsc($plugin_name) . "</span> ?</p>\n";\r
+ echo '<p>' . _SETTINGS_UPDATE . ' : ' . _QMENU_PLUGINS . ' <span style="color:red;">' . Entity::hsc($plugin_name) . "</span> ?</p>\n";\r
\r
switch(strtoupper(serverVar('REQUEST_METHOD') ) )\r
{\r
case 'POST':\r
- echo '<form method="POST" action="'.ENTITY::hsc($uri.$qstring).'">';\r
+ echo '<form method="POST" action="'.Entity::hsc($uri.$qstring).'">';\r
$manager->addTicketHidden();\r
_addInputTags($post);\r
break;\r
\r
case 'GET':\r
- echo '<form method="GET" action="'.ENTITY::hsc($uri).'">';\r
+ echo '<form method="GET" action="'.Entity::hsc($uri).'">';\r
$manager->addTicketHidden();\r
_addInputTags($get);\r
\r
\r
/* Create new ticket */\r
$ticket=$manager->addTicketToUrl('');\r
- $ticketforplugin['ticket']=i18n::substr($ticket,i18n::strpos($ticket,'ticket=')+7);\r
+ $ticketforplugin['ticket'] = preg_split($ticket, i18n::strpos($ticket, 'ticket=') + 7);\r
+ return;\r
}\r
\r
function _addInputTags(&$keys,$prefix=''){\r
else {\r
if (get_magic_quotes_gpc()) $value=stripslashes($value);\r
if ($key=='ticket') continue;\r
- echo '<input type="hidden" name="'.ENTITY::hsc($key).\r
- '" value="'.ENTITY::hsc($value).'" />'."\n";\r
+ echo '<input type="hidden" name="'.Entity::hsc($key).\r
+ '" value="'.Entity::hsc($value).'" />'."\n";\r
}\r
}\r
}\r
\r
/**\r
+ * serverStringToArray()\r
* Convert the server string such as $_SERVER['REQUEST_URI']\r
* to arry like arry['blogid']=1 and array['page']=2 etc.\r
+ * \r
+ * @param string $str string\r
+ * @param string $array \r
+ * @param string $frontParam \r
*/\r
function serverStringToArray($str, &$array, &$frontParam)\r
{\r
- // init param\r
- $array = array();\r
- $frontParam = "";\r
-\r
- // split front param, e.g. /index.php, and others, e.g. blogid=1&page=2\r
- if (strstr($str, "?")){\r
- list($frontParam, $args) = preg_split("/\?/", $str, 2);\r
- }\r
- else {\r
- $args = $str;\r
- $frontParam = "";\r
- }\r
-\r
- // If there is no args like blogid=1&page=2, return\r
- if (!strstr($str, "=") && !i18n::strlen($frontParam)) {\r
- $frontParam = $str;\r
- return;\r
- }\r
-\r
- $array = i18n::explode("&", $args);\r
+ // init param\r
+ $array = array();\r
+ $frontParam = "";\r
+ \r
+ // split front param, e.g. /index.php, and others, e.g. blogid=1&page=2\r
+ if ( i18n::strpos($str, "?") > 0 )\r
+ {\r
+ list($frontParam, $args) = preg_split("#\?#", $str, 2);\r
+ }\r
+ else\r
+ {\r
+ $args = $str;\r
+ $frontParam = "";\r
+ }\r
+ \r
+ // If there is no args like blogid=1&page=2, return\r
+ if ( i18n::strpos($str, "=") == FALSE && !i18n::strlen($frontParam) )\r
+ {\r
+ $frontParam = $str;\r
+ return;\r
+ }\r
+ \r
+ $array = preg_split("#&#", $args);\r
+ return;\r
}\r
\r
/**\r
}\r
\r
/**\r
+ * sanitizeArray()\r
* Sanitize array parameters.\r
* This function checks both key and value.\r
* - check key if it inclues " (double quote), remove from array\r
* - check value if it includes \ (escape sequece), remove remaining string\r
+ * \r
+ * @param array &$array \r
+ * @return void\r
*/\r
function sanitizeArray(&$array)\r
{\r
- $excludeListForSanitization = array('query');\r
-// $excludeListForSanitization = array();\r
-\r
- foreach ($array as $k => $v) {\r
-\r
- // split to key and value\r
- list($key, $val) = preg_split("/=/", $v, 2);\r
- if (!isset($val)) {\r
- continue;\r
- }\r
-\r
- // when magic quotes is on, need to use stripslashes,\r
- // and then addslashes\r
- if (get_magic_quotes_gpc()) {\r
- $val = stripslashes($val);\r
- }\r
+ $excludeListForSanitization = array('query');\r
+ \r
+ foreach ( $array as $k => $v )\r
+ {\r
+ // split to key and value\r
+ list($key, $val) = preg_split("#=#", $v, 2);\r
+ if ( !isset($val) )\r
+ {\r
+ continue;\r
+ }\r
+ \r
+ // when magic quotes is on, need to use stripslashes,\r
+ // and then addslashes\r
+ if ( get_magic_quotes_gpc() )\r
+ {\r
+ $val = stripslashes($val);\r
+ }\r
// note that we must use addslashes here because this function is called before the db connection is made\r
// and sql_real_escape_string needs a db connection\r
- $val = addslashes($val);\r
-\r
- // if $key is included in exclude list, skip this param\r
- if (!in_array($key, $excludeListForSanitization)) {\r
-\r
- // check value\r
- if (i18n::strpos($val, '\\')) {\r
- list($val, $tmp) = i18n::explode('\\', $val);\r
- }\r
-\r
- // remove control code etc.\r
- $val = strtr($val, "\0\r\n<>'\"", " ");\r
-\r
- // check key\r
- if (preg_match('/\"/i', $key)) {\r
- unset($array[$k]);\r
- continue;\r
- }\r
-\r
- // set sanitized info\r
- $array[$k] = sprintf("%s=%s", $key, $val);\r
- }\r
- }\r
+ $val = addslashes($val);\r
+ \r
+ // if $key is included in exclude list, skip this param\r
+ if ( !in_array($key, $excludeListForSanitization) )\r
+ {\r
+ // check value\r
+ if ( i18n::strpos($val, '\\') )\r
+ {\r
+ list($val, $tmp) = preg_split('#\\\\#', $val);\r
+ }\r
+ \r
+ // remove control code etc.\r
+ $val = strtr($val, "\0\r\n<>'\"", " ");\r
+ \r
+ // check key\r
+ if ( preg_match('#\"#', $key) )\r
+ {\r
+ unset($array[$k]);\r
+ continue;\r
+ }\r
+ \r
+ // set sanitized info\r
+ $array[$k] = sprintf("%s=%s", $key, $val);\r
+ }\r
+ }\r
+ return;\r
}\r
\r
/**\r
/**\r
* Centralisation of the functions that deals XML entities\r
* Deprecated since 4.0:\r
- * Please use ENTITY::FunctionName(...) instead\r
+ * Please use Entity::FunctionName(...) instead\r
*/\r
function highlight($text, $expression, $highlight)\r
{\r
- return ENTITY::highlight($text, $expression, $highlight);\r
+ return Entity::highlight($text, $expression, $highlight);\r
}\r
function shorten($string, $maxlength, $suffix)\r
{\r
- return ENTITY::shorten($string, $maxlength, $suffix);\r
+ return Entity::shorten($string, $maxlength, $suffix);\r
}\r
function stringStripTags ($string)\r
{\r
- return ENTITY::strip_tags($string);\r
+ return Entity::strip_tags($string);\r
}\r
function toAscii($string)\r
{\r
- return ENTITY::anchor_footnoting($string);\r
+ return Entity::anchor_footnoting($string);\r
}\r
function stringToAttribute ($string)\r
{\r
- return ENTITY::hsc($string);\r
+ return Entity::hsc($string);\r
}\r
function stringToXML ($string)\r
{\r
- return ENTITY::hen($string);\r
+ return Entity::hen($string);\r
}\r
function encode_desc($data)\r
{\r
- return ENTITY::hen($data);\r
+ return Entity::hen($data);\r
}\r
/**\r
* Centralisation of the functions that deals with locales\r
}\r
return $language;\r
}\r
+/* NOTE: this is completely deprecated because generating much warnings */\r
+function selectLanguage($language)\r
+{\r
+ global $DIR_LANG;\r
+ include($DIR_LANG . preg_replace('#[\\\\|/]#', '', $language) . '.php');\r
+ return;\r
+}\r
\r
/* NOTE: use i18n::get_available_locales() directly instead of this */\r
function checkLanguage($lang)\r
function mysqldate($timestamp)\r
{\r
return '"' . i18n::formatted_datetime('mysql', $timestamp) . '"';\r
-}\r
+ }\r
/**\r
* Centralisation of the functions that generate links\r
* Deprecated since 4.0:\r
- * Please use LINK::FunctionName(...) instead\r
+ * Please use Link::FunctionName(...) instead\r
*/\r
function createItemLink($itemid, $extra = '')\r
{\r
- return LINK::create_item_link($itemid, $extra);\r
+ return Link::create_item_link($itemid, $extra);\r
}\r
function createMemberLink($memberid, $extra = '')\r
{\r
- return LINK::create_member_link($memberid, $extra);\r
+ return Link::create_member_link($memberid, $extra);\r
}\r
function createCategoryLink($catid, $extra = '')\r
{\r
- return LINK::create_category_link($catid, $extra);\r
+ return Link::create_category_link($catid, $extra);\r
}\r
function createArchiveListLink($blogid = '', $extra = '')\r
{\r
- return LINK::create_archivelist_link($blogid, $extra);\r
+ return Link::create_archivelist_link($blogid, $extra);\r
}\r
function createArchiveLink($blogid, $archive, $extra = '')\r
{\r
- return LINK::create_archive_link($blogid, $archive, $extra);\r
+ return Link::create_archive_link($blogid, $archive, $extra);\r
}\r
function createBlogidLink($blogid, $params = '')\r
{\r
- return LINK::create_blogid_link($blogid, $params = '');\r
+ return Link::create_blogid_link($blogid, $params = '');\r
}\r
function createLink($type, $params)\r
{\r
- return LINK::create_link($type, $params);\r
+ return Link::create_link($type, $params);\r
}\r
function createBlogLink($url, $params)\r
{\r
- return LINK::create_blog_link($url, $params);\r
+ return Link::create_blog_link($url, $params);\r
}\r