2006-12-02 04:36:16 +00:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
+ ----------------------------------------------------------------------------+
|
|
|
|
|
| e107 website system
|
|
|
|
|
|
|
|
|
|
|
| <EFBFBD>Steve Dunstan 2001-2002
|
|
|
|
|
| http://e107.org
|
|
|
|
|
| jalist@e107.org
|
|
|
|
|
|
|
|
|
|
|
| Released under the terms and conditions of the
|
|
|
|
|
| GNU General Public License (http://gnu.org).
|
|
|
|
|
|
|
|
|
|
|
| $Source: /cvs_backup/e107_0.8/e107_handlers/shortcode_handler.php,v $
|
2009-01-15 18:57:02 +00:00
|
|
|
|
| $Revision: 1.20 $
|
|
|
|
|
| $Date: 2009-01-15 18:57:02 $
|
|
|
|
|
| $Author: lisa_ $
|
2006-12-02 04:36:16 +00:00
|
|
|
|
+----------------------------------------------------------------------------+
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
if (!defined('e107_INIT')) { exit; }
|
|
|
|
|
|
2009-01-08 17:23:13 +00:00
|
|
|
|
function register_shortcode($classFunc, $codes, $path='', $force=false)
|
2007-06-13 02:53:21 +00:00
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
$e107 = e107::getInstance();
|
|
|
|
|
$sc = &$e107->tp->e_sc;
|
|
|
|
|
|
|
|
|
|
//We only register these shortcodes if they have not already been registered in some manner
|
|
|
|
|
//ie theme or other plugin .sc files
|
|
|
|
|
if(is_array($codes))
|
2007-06-13 02:53:21 +00:00
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
foreach($codes as $code)
|
|
|
|
|
{
|
|
|
|
|
$code = strtoupper($code);
|
|
|
|
|
if(!$sc->isRegistered($code) || $force == true)
|
|
|
|
|
{
|
|
|
|
|
$sc->registered_codes[$code] = array('type' => 'class', 'path' => $path, 'class' => $classFunc);
|
|
|
|
|
}
|
|
|
|
|
}
|
2009-01-07 19:57:09 +00:00
|
|
|
|
}
|
2009-01-08 17:23:13 +00:00
|
|
|
|
else
|
2009-01-07 19:57:09 +00:00
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
$codes = strtoupper($codes);
|
|
|
|
|
if(!$sc->isRegistered($code) || $force == true)
|
2009-01-07 19:57:09 +00:00
|
|
|
|
{
|
2009-01-15 18:57:02 +00:00
|
|
|
|
$sc->registered_codes[$codes] = array('type' => 'func', 'path' => $path, 'function' => $classFunc);
|
2009-01-07 19:57:09 +00:00
|
|
|
|
}
|
2007-06-13 02:53:21 +00:00
|
|
|
|
}
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
|
2008-02-13 02:57:17 +00:00
|
|
|
|
class e_shortcode
|
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
var $scList = array(); // The actual code - added by parsing files or when plugin codes encountered. Array key is the shortcode name.
|
|
|
|
|
var $parseSCFiles; // True if individual shortcode files are to be used
|
|
|
|
|
var $addedCodes; // Apparently not used
|
|
|
|
|
var $registered_codes = array(); // Shortcodes added by plugins
|
|
|
|
|
var $scClasses = array(); // Batch shortcode classes
|
2006-12-02 04:36:16 +00:00
|
|
|
|
|
2009-01-08 21:47:44 +00:00
|
|
|
|
function e_shortcode($noload=false)
|
2006-12-02 04:36:16 +00:00
|
|
|
|
{
|
|
|
|
|
global $pref, $register_sc;
|
|
|
|
|
|
2009-01-08 17:23:13 +00:00
|
|
|
|
$this->parseSCFiles = true; // Default probably never used, but make sure its defined.
|
2008-10-30 20:21:55 +00:00
|
|
|
|
|
2009-01-08 17:23:13 +00:00
|
|
|
|
// Register any shortcodes that were registered by the theme
|
|
|
|
|
// $register_sc[] = 'MY_THEME_CODE'
|
|
|
|
|
if(isset($register_sc) && is_array($register_sc))
|
2006-12-02 04:36:16 +00:00
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
foreach($register_sc as $code)
|
2006-12-02 04:36:16 +00:00
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
$code = strtoupper($code);
|
|
|
|
|
$this->registered_codes[$code]['type'] = 'theme';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Register all .sc files found in plugin directories (via pref)
|
|
|
|
|
if(varset($pref['shortcode_list'], '') != '')
|
|
|
|
|
{
|
|
|
|
|
foreach($pref['shortcode_list'] as $path => $namearray)
|
|
|
|
|
{
|
|
|
|
|
foreach($namearray as $code => $uclass)
|
2006-12-02 04:36:16 +00:00
|
|
|
|
{
|
2007-06-13 02:53:21 +00:00
|
|
|
|
if($code == 'shortcode_config')
|
|
|
|
|
{
|
|
|
|
|
include_once(e_PLUGIN.$path.'/shortcode_config.php');
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$code = strtoupper($code);
|
2009-01-08 17:23:13 +00:00
|
|
|
|
if(!$this->isRegistered($code))
|
|
|
|
|
{
|
|
|
|
|
$this->registered_codes[$code]['type'] = 'plugin';
|
|
|
|
|
$this->registered_codes[$code]['path'] = $path;
|
|
|
|
|
$this->registered_codes[$code]['perms'] = $uclass; // Add this in
|
|
|
|
|
}
|
2007-06-13 02:53:21 +00:00
|
|
|
|
}
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2009-01-08 21:47:44 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function loadCoreShortcodes()
|
|
|
|
|
{
|
2009-01-09 01:12:18 +00:00
|
|
|
|
$coreBatchList = array('siteinfo_shortcodes.php', 'admin_shortcodes.php');
|
2009-01-08 21:47:44 +00:00
|
|
|
|
foreach($coreBatchList as $cb)
|
|
|
|
|
{
|
|
|
|
|
include_once(e_FILE.'shortcode/batch/'.$cb);
|
|
|
|
|
}
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
|
2009-01-08 17:23:13 +00:00
|
|
|
|
function isRegistered($code)
|
|
|
|
|
{
|
|
|
|
|
return in_array($code, $this->registered_codes);
|
|
|
|
|
}
|
2007-06-13 02:53:21 +00:00
|
|
|
|
|
2008-02-13 02:57:17 +00:00
|
|
|
|
function parseCodes($text, $useSCFiles = true, $extraCodes = '')
|
|
|
|
|
{
|
2008-10-30 20:21:55 +00:00
|
|
|
|
$saveParseSCFiles = $this->parseSCFiles; // In case of nested call
|
2006-12-02 04:36:16 +00:00
|
|
|
|
$this->parseSCFiles = $useSCFiles;
|
2008-02-13 02:57:17 +00:00
|
|
|
|
if(is_array($extraCodes))
|
|
|
|
|
{
|
|
|
|
|
foreach($extraCodes as $sc => $code)
|
|
|
|
|
{
|
2006-12-02 04:36:16 +00:00
|
|
|
|
$this->scList[$sc] = $code;
|
|
|
|
|
}
|
|
|
|
|
}
|
2008-02-13 02:57:17 +00:00
|
|
|
|
$ret = preg_replace_callback('#\{(\S[^\x02]*?\S)\}#', array(&$this, 'doCode'), $text);
|
2008-10-30 20:21:55 +00:00
|
|
|
|
$this->parseSCFiles = $saveParseSCFiles; // Restore previous value
|
2006-12-02 04:36:16 +00:00
|
|
|
|
return $ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function doCode($matches)
|
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
global $pref, $e107cache, $menu_pref, $sc_style, $parm, $sql;
|
2006-12-02 04:36:16 +00:00
|
|
|
|
|
2009-01-08 17:23:13 +00:00
|
|
|
|
if(strpos($matches[1], E_NL) !== false) { return $matches[0]; }
|
2007-03-30 13:33:29 +00:00
|
|
|
|
|
2006-12-02 04:36:16 +00:00
|
|
|
|
if (strpos($matches[1], '='))
|
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
list($code, $parm) = explode('=', $matches[1], 2);
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$code = $matches[1];
|
|
|
|
|
$parm = '';
|
|
|
|
|
}
|
2007-03-30 13:33:29 +00:00
|
|
|
|
//look for the $sc_mode
|
2007-06-13 02:53:21 +00:00
|
|
|
|
if (strpos($code, '|'))
|
|
|
|
|
{
|
2007-03-30 13:33:29 +00:00
|
|
|
|
list($code, $sc_mode) = explode("|", $code, 2);
|
|
|
|
|
$code = trim($code);
|
|
|
|
|
$sc_mode = trim($sc_mode);
|
2007-06-13 02:53:21 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2007-03-30 13:33:29 +00:00
|
|
|
|
$sc_mode = '';
|
|
|
|
|
}
|
2006-12-02 04:36:16 +00:00
|
|
|
|
$parm = trim($parm);
|
2008-02-19 19:33:45 +00:00
|
|
|
|
$parm = str_replace(array('[[', ']]'), array('{', '}'), $parm);
|
2006-12-02 04:36:16 +00:00
|
|
|
|
|
2006-12-05 09:15:08 +00:00
|
|
|
|
if (E107_DBG_BBSC)
|
2006-12-02 04:36:16 +00:00
|
|
|
|
{
|
|
|
|
|
global $db_debug;
|
2006-12-05 09:15:08 +00:00
|
|
|
|
$sql->db_Mark_Time("SC $code");
|
2006-12-02 04:36:16 +00:00
|
|
|
|
$db_debug->logCode(2, $code, $parm, "");
|
|
|
|
|
}
|
|
|
|
|
|
2009-01-08 17:23:13 +00:00
|
|
|
|
if(E107_DBG_BBSC)
|
2006-12-02 04:36:16 +00:00
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
trigger_error('starting shortcode {'.$code.'}', E_USER_ERROR);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$scCode = '';
|
|
|
|
|
$scFile = '';
|
|
|
|
|
// Check to see if we've already loaded the .sc file contents
|
|
|
|
|
if (array_key_exists($code, $this->scList))
|
|
|
|
|
{
|
|
|
|
|
$scCode = $this->scList[$code];
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
//.sc file not yet loaded, or shortcode is new function type
|
|
|
|
|
if ($this->parseSCFiles == true)
|
2007-06-13 02:53:21 +00:00
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
if (array_key_exists($code, $this->registered_codes))
|
2006-12-02 04:36:16 +00:00
|
|
|
|
{
|
2009-01-08 20:16:47 +00:00
|
|
|
|
//shortcode is registered, let's proceed.
|
|
|
|
|
if(isset($this->registered_codes[$code]['perms']))
|
|
|
|
|
{
|
|
|
|
|
if(!check_class($this->registered_codes[$code]['perms'])) { return ''; }
|
|
|
|
|
}
|
|
|
|
|
|
2009-01-08 17:23:13 +00:00
|
|
|
|
switch($this->registered_codes[$code]['type'])
|
2006-12-02 04:36:16 +00:00
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
case 'class':
|
2009-01-08 20:16:47 +00:00
|
|
|
|
//It is batch shortcode. Load the class and call the method
|
2009-01-08 17:23:13 +00:00
|
|
|
|
$_class = $this->registered_codes[$code]['class'];
|
|
|
|
|
$_method = 'get_'.strtolower($code);
|
|
|
|
|
if(!isset($this->scClasses[$_class]))
|
|
|
|
|
{
|
|
|
|
|
if(!class_exists($_class) && $this->registered_codes[$code]['path'])
|
|
|
|
|
{
|
2009-01-09 01:12:18 +00:00
|
|
|
|
include_once($this->registered_codes[$code]['path']);
|
2009-01-08 17:23:13 +00:00
|
|
|
|
}
|
|
|
|
|
$this->scClasses[$_class] = new $_class;
|
|
|
|
|
}
|
|
|
|
|
if(is_callable(array($_class, $_method)))
|
|
|
|
|
{
|
|
|
|
|
$ret = $this->scClasses[$_class]->$_method($parm);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'func':
|
|
|
|
|
//It is a function, so include the file and call the function
|
|
|
|
|
$_function = $this->registered_codes[$code]['function'];
|
|
|
|
|
if($this->registered_codes[$code]['path'])
|
|
|
|
|
{
|
|
|
|
|
include_once($this->registered_codes[$code]['path'].strtolower($code).'.php');
|
|
|
|
|
}
|
|
|
|
|
if(function_exists($_function))
|
|
|
|
|
{
|
|
|
|
|
$ret = call_user_func($_function, $parm);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'plugin':
|
2007-06-13 02:53:21 +00:00
|
|
|
|
$scFile = e_PLUGIN.strtolower($this->registered_codes[$code]['path']).'/'.strtolower($code).'.sc';
|
2009-01-08 17:23:13 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'theme':
|
|
|
|
|
$scFile = THEME.strtolower($code).'.sc';
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
2008-03-02 21:08:31 +00:00
|
|
|
|
}
|
2009-01-08 17:23:13 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// Code is not registered, let's look for .sc or .php file
|
|
|
|
|
// .php file takes precedence over .sc file
|
|
|
|
|
if(is_readable(e_FILE.'shortcode/'.strtolower($code).'.php'))
|
|
|
|
|
{
|
|
|
|
|
$_function = strtolower($code).'_shortcode';
|
|
|
|
|
include_once(e_FILE.'shortcode/'.strtolower($code).'.php');
|
|
|
|
|
if(function_exists($_function))
|
2007-06-13 02:53:21 +00:00
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
$ret = call_user_func($_function, $parm);
|
2007-06-13 02:53:21 +00:00
|
|
|
|
}
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
$scFile = e_FILE.'shortcode/'.strtolower($code).'.sc';
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2009-01-08 17:23:13 +00:00
|
|
|
|
if ($scFile && file_exists($scFile))
|
|
|
|
|
{
|
|
|
|
|
$scCode = file_get_contents($scFile);
|
|
|
|
|
$this->scList[$code] = $scCode;
|
|
|
|
|
}
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
2008-02-13 02:57:17 +00:00
|
|
|
|
|
2009-01-08 17:23:13 +00:00
|
|
|
|
if (!isset($scCode))
|
2007-06-13 02:53:21 +00:00
|
|
|
|
{
|
2009-01-09 01:12:18 +00:00
|
|
|
|
if(E107_DBG_BBSC) { trigger_error('shortcode not found:{'.$code.'}', E_USER_ERROR); }
|
2008-02-13 02:57:17 +00:00
|
|
|
|
return $matches[0];
|
2007-06-13 02:53:21 +00:00
|
|
|
|
}
|
2007-03-05 21:24:47 +00:00
|
|
|
|
|
2009-01-08 17:23:13 +00:00
|
|
|
|
if(E107_DBG_SC && $scFile)
|
2007-06-13 02:53:21 +00:00
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
echo (isset($scFile)) ? "<br />sc_file= ".str_replace(e_FILE.'shortcode/', '', $scFile).'<br />' : '';
|
2008-02-13 02:57:17 +00:00
|
|
|
|
echo "<br />sc= <b>$code</b>";
|
|
|
|
|
}
|
2009-01-08 17:23:13 +00:00
|
|
|
|
}
|
2006-12-02 04:36:16 +00:00
|
|
|
|
|
2009-01-08 17:23:13 +00:00
|
|
|
|
if($scCode)
|
|
|
|
|
{
|
|
|
|
|
$ret = eval($scCode);
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if($ret != '' || is_numeric($ret))
|
|
|
|
|
{
|
2007-03-30 13:33:29 +00:00
|
|
|
|
//if $sc_mode exists, we need it to parse $sc_style
|
2008-02-13 02:57:17 +00:00
|
|
|
|
if($sc_mode)
|
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
$code = $code.'|'.$sc_mode;
|
2007-03-30 13:33:29 +00:00
|
|
|
|
}
|
2009-01-08 17:23:13 +00:00
|
|
|
|
if(isset($sc_style) && is_array($sc_style) && array_key_exists($code, $sc_style))
|
2006-12-02 04:36:16 +00:00
|
|
|
|
{
|
|
|
|
|
if(isset($sc_style[$code]['pre']))
|
|
|
|
|
{
|
|
|
|
|
$ret = $sc_style[$code]['pre'].$ret;
|
|
|
|
|
}
|
|
|
|
|
if(isset($sc_style[$code]['post']))
|
|
|
|
|
{
|
|
|
|
|
$ret = $ret.$sc_style[$code]['post'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2008-02-13 02:57:17 +00:00
|
|
|
|
if (E107_DBG_SC)
|
|
|
|
|
{
|
2006-12-05 09:15:08 +00:00
|
|
|
|
$sql->db_Mark_Time("(SC $code Done)");
|
|
|
|
|
}
|
2006-12-02 04:36:16 +00:00
|
|
|
|
return $ret;
|
|
|
|
|
}
|
|
|
|
|
|
2006-12-03 07:03:22 +00:00
|
|
|
|
function parse_scbatch($fname, $type = 'file')
|
|
|
|
|
{
|
|
|
|
|
global $e107cache, $eArrayStorage;
|
2006-12-05 09:15:08 +00:00
|
|
|
|
$cur_shortcodes = array();
|
2006-12-02 04:36:16 +00:00
|
|
|
|
if($type == 'file')
|
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
$batch_cachefile = 'nomd5_scbatch_'.md5($fname);
|
2008-02-13 02:57:17 +00:00
|
|
|
|
// $cache_filename = $e107cache->cache_fname("nomd5_{$batchfile_md5}");
|
2007-02-04 17:36:16 +00:00
|
|
|
|
$sc_cache = $e107cache->retrieve_sys($batch_cachefile);
|
2006-12-03 07:03:22 +00:00
|
|
|
|
if(!$sc_cache)
|
|
|
|
|
{
|
|
|
|
|
$sc_batch = file($fname);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$cur_shortcodes = $eArrayStorage->ReadArray($sc_cache);
|
|
|
|
|
$sc_batch = "";
|
|
|
|
|
}
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$sc_batch = $fname;
|
|
|
|
|
}
|
2006-12-03 07:03:22 +00:00
|
|
|
|
|
|
|
|
|
if($sc_batch)
|
|
|
|
|
{
|
2006-12-05 09:15:08 +00:00
|
|
|
|
$cur_sc = '';
|
2006-12-03 07:03:22 +00:00
|
|
|
|
foreach($sc_batch as $line)
|
|
|
|
|
{
|
|
|
|
|
if (trim($line) == 'SC_END')
|
|
|
|
|
{
|
|
|
|
|
$cur_sc = '';
|
|
|
|
|
}
|
|
|
|
|
if ($cur_sc)
|
|
|
|
|
{
|
|
|
|
|
$cur_shortcodes[$cur_sc] .= $line;
|
|
|
|
|
}
|
|
|
|
|
if (preg_match("#^SC_BEGIN (\w*).*#", $line, $matches))
|
|
|
|
|
{
|
|
|
|
|
$cur_sc = $matches[1];
|
2006-12-05 09:15:08 +00:00
|
|
|
|
$cur_shortcodes[$cur_sc] = varset($cur_shortcodes[$cur_sc],'');
|
2006-12-03 07:03:22 +00:00
|
|
|
|
}
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
2006-12-03 07:03:22 +00:00
|
|
|
|
if($type == 'file')
|
|
|
|
|
{
|
|
|
|
|
$sc_cache = $eArrayStorage->WriteArray($cur_shortcodes, false);
|
2007-02-04 17:36:16 +00:00
|
|
|
|
$e107cache->set_sys($batch_cachefile, $sc_cache);
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
2006-12-03 07:03:22 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach(array_keys($cur_shortcodes) as $cur_sc)
|
|
|
|
|
{
|
2009-01-08 17:23:13 +00:00
|
|
|
|
if (array_key_exists($cur_sc, $this -> registered_codes))
|
2008-02-13 02:57:17 +00:00
|
|
|
|
{
|
|
|
|
|
if ($this -> registered_codes[$cur_sc]['type'] == 'plugin')
|
|
|
|
|
{
|
2006-12-03 07:03:22 +00:00
|
|
|
|
$scFile = e_PLUGIN.strtolower($this -> registered_codes[$cur_sc]['path']).'/'.strtolower($cur_sc).'.sc';
|
2008-02-13 02:57:17 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2006-12-03 07:03:22 +00:00
|
|
|
|
$scFile = THEME.strtolower($cur_sc).'.sc';
|
|
|
|
|
}
|
2008-02-13 02:57:17 +00:00
|
|
|
|
if (is_readable($scFile))
|
|
|
|
|
{
|
2006-12-03 07:03:22 +00:00
|
|
|
|
$cur_shortcodes[$cur_sc] = file_get_contents($scFile);
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2006-12-03 07:03:22 +00:00
|
|
|
|
return $cur_shortcodes;
|
2006-12-02 04:36:16 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2009-01-08 17:23:13 +00:00
|
|
|
|
?>
|