mirror of
https://github.com/e107inc/e107.git
synced 2025-08-01 20:30:39 +02:00
Shortcode handler was failing to load classes under some conditions. Also added some debug info. (use e107 debugger for Firefox in SC mode)
This commit is contained in:
@@ -1567,7 +1567,7 @@ class e107
|
|||||||
/**
|
/**
|
||||||
* Get plugin template. Use this method for plugin templates, which are following the
|
* Get plugin template. Use this method for plugin templates, which are following the
|
||||||
* new template standards:
|
* new template standards:
|
||||||
* - template variables naming conventions
|
* - template variables naming conventions ie. ${NAME IN CAPS}_TEMPLATE['{ID}'] = "<div>...</div>";
|
||||||
* - one array variable per template only
|
* - one array variable per template only
|
||||||
* - theme override is made now by current_theme/templates/plugin_name/ folder
|
* - theme override is made now by current_theme/templates/plugin_name/ folder
|
||||||
*
|
*
|
||||||
@@ -1590,12 +1590,16 @@ class e107
|
|||||||
* @param boolean $info retrieve template info only
|
* @param boolean $info retrieve template info only
|
||||||
* @return string|array
|
* @return string|array
|
||||||
*/
|
*/
|
||||||
public static function getTemplate($plug_name, $id, $key = null, $override = true, $merge = false, $info = false)
|
public static function getTemplate($plug_name, $id = null, $key = null, $override = true, $merge = false, $info = false)
|
||||||
{
|
{
|
||||||
if(null === $plug_name)
|
if(null === $plug_name)
|
||||||
{
|
{
|
||||||
return self::getCoreTemplate($id, $key, $override, $merge, $info);
|
return self::getCoreTemplate($id, $key, $override, $merge, $info);
|
||||||
}
|
}
|
||||||
|
if(null == $id) // loads {$plug_name}/templates/{$plug_name}_template.php and an array ${PLUG_NAME}_TEMPLATE
|
||||||
|
{
|
||||||
|
$id = $plug_name;
|
||||||
|
}
|
||||||
$reg_path = 'plugin/'.$plug_name.'/templates/'.$id.($override ? '/ext' : '');
|
$reg_path = 'plugin/'.$plug_name.'/templates/'.$id.($override ? '/ext' : '');
|
||||||
$path = self::templatePath($plug_name, $id, $override);
|
$path = self::templatePath($plug_name, $id, $override);
|
||||||
$id = str_replace('/', '_', $id);
|
$id = str_replace('/', '_', $id);
|
||||||
|
@@ -82,6 +82,7 @@ class e_parse_shortcode
|
|||||||
$this->loadPluginShortcodes();
|
$this->loadPluginShortcodes();
|
||||||
$this->loadPluginSCFiles();
|
$this->loadPluginSCFiles();
|
||||||
$this->loadCoreShortcodes();
|
$this->loadCoreShortcodes();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -250,7 +251,7 @@ class e_parse_shortcode
|
|||||||
*
|
*
|
||||||
* <code><?php
|
* <code><?php
|
||||||
* // simple use
|
* // simple use
|
||||||
* e107::getScParser()->getScObject('news_shortcodes');
|
* e107::getScParser()->getScObject('news_shortcodes'); // For Globally Registered shortcodes, including plugins using e_shortcode.php
|
||||||
*
|
*
|
||||||
* // plugin override - e107_plugins/myplug/shortcodes/batch/news_shortcodes.php -> class plugin_myplug_news_shortcodes
|
* // plugin override - e107_plugins/myplug/shortcodes/batch/news_shortcodes.php -> class plugin_myplug_news_shortcodes
|
||||||
* e107::getScParser()->getScObject('news_shortcodes', 'myplug', true);
|
* e107::getScParser()->getScObject('news_shortcodes', 'myplug', true);
|
||||||
@@ -260,12 +261,14 @@ class e_parse_shortcode
|
|||||||
* e107::getScParser()->getScObject('news_shortcodes', 'myplug', 'news2_shortcodes');
|
* e107::getScParser()->getScObject('news_shortcodes', 'myplug', 'news2_shortcodes');
|
||||||
* </code>
|
* </code>
|
||||||
* @param string $className
|
* @param string $className
|
||||||
* @param string $plugName
|
* @param string $plugName if true className is used., if string, string value is used.
|
||||||
* @param string $overrideClass if true, $className is used
|
* @param string $overrideClass if true, $className is used
|
||||||
* @return e_shortcode
|
* @return e_shortcode
|
||||||
*/
|
*/
|
||||||
public function getScObject($className, $pluginName = null, $overrideClass = null)
|
public function getScObject($className, $pluginName = null, $overrideClass = null)
|
||||||
{
|
{
|
||||||
|
if(trim($className)==""){ return; }
|
||||||
|
|
||||||
$_class_fname = $className;
|
$_class_fname = $className;
|
||||||
|
|
||||||
// plugin override
|
// plugin override
|
||||||
@@ -279,27 +282,41 @@ class e_parse_shortcode
|
|||||||
$_class_fname = $overrideClass;
|
$_class_fname = $overrideClass;
|
||||||
$className = 'plugin_'.$pluginName.'_'.str_replace('/', '_', $overrideClass);
|
$className = 'plugin_'.$pluginName.'_'.str_replace('/', '_', $overrideClass);
|
||||||
}
|
}
|
||||||
elseif($pluginName)
|
elseif(is_string($pluginName))
|
||||||
{
|
{
|
||||||
$className = 'plugin_'.$pluginName.'_'.str_replace('/', '_', $className);
|
$className = 'plugin_'.$pluginName.'_'.str_replace('/', '_', $className);
|
||||||
}
|
}
|
||||||
|
elseif($pluginName === TRUE)
|
||||||
|
{
|
||||||
|
$pluginName = str_replace("_shortcodes","",$className);
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->isScClass($className))
|
if ($this->isScClass($className)) // Includes global Shortcode Classes. ie. e_shortcode.php
|
||||||
{
|
{
|
||||||
return $this->scClasses[$className];
|
return $this->scClasses[$className];
|
||||||
}
|
}
|
||||||
|
|
||||||
$path = ($pluginName ? e_PLUGIN.$pluginName.'/shortcodes/batch/' : e_CORE.'shortcodes/batch/').$_class_fname.'.php';
|
$path = ($pluginName ? e_PLUGIN.$pluginName.'/shortcodes/batch/' : e_CORE.'shortcodes/batch/').$_class_fname.'.php';
|
||||||
|
|
||||||
|
|
||||||
if (is_readable($path))
|
if (is_readable($path))
|
||||||
{
|
{
|
||||||
require_once($path);
|
require_once($path);
|
||||||
if (class_exists($className, false)) // don't allow __autoload()
|
if (class_exists($className, false)) // don't allow __autoload()
|
||||||
{
|
{
|
||||||
// register instance directly to allow override
|
// register instance directly to allow override
|
||||||
$this->scClasses[$className] = new $className();
|
// $this->scClasses[$className] = new $className(); // located inside registerClassMethods()
|
||||||
$this->registerClassMethods($className, $path);
|
$this->registerClassMethods($className, $path);
|
||||||
return $this->scClasses[$className];
|
return $this->scClasses[$className];
|
||||||
}
|
}
|
||||||
|
elseif(E107_DBG_BBSC || E107_DBG_SC)
|
||||||
|
{
|
||||||
|
echo "Couldn't Find Class '".$className."' in <b>".$path."</b>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif(E107_DBG_BBSC || E107_DBG_SC)
|
||||||
|
{
|
||||||
|
echo "Couldn't Load: <b>".$path."</b>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO - throw exception?
|
// TODO - throw exception?
|
||||||
@@ -410,6 +427,8 @@ class e_parse_shortcode
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->registerClassMethods($classFunc, $path, false);
|
$this->registerClassMethods($classFunc, $path, false);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@@ -432,9 +451,16 @@ class e_parse_shortcode
|
|||||||
if ($force || !$this->isRegistered($code))
|
if ($force || !$this->isRegistered($code))
|
||||||
{
|
{
|
||||||
$this->registered_codes[$code] = array('type' => 'class', 'path' => $path, 'class' => $className);
|
$this->registered_codes[$code] = array('type' => 'class', 'path' => $path, 'class' => $className);
|
||||||
|
|
||||||
|
if (class_exists($className, false))
|
||||||
|
{
|
||||||
|
$this->scClasses[$className] = new $className(); // Required. Test with e107::getScBatch($className)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
121
gallery.php
121
gallery.php
@@ -1,121 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
* e107 website system
|
|
||||||
*
|
|
||||||
* Copyright (C) 2008-2012 e107 Inc (e107.org)
|
|
||||||
* Released under the terms and conditions of the
|
|
||||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
|
||||||
*
|
|
||||||
* Cron Administration
|
|
||||||
*
|
|
||||||
* $URL: https://e107.svn.sourceforge.net/svnroot/e107/trunk/e107_0.8/e107_admin/cron.php $
|
|
||||||
* $Id: cron.php 12492 2011-12-30 16:09:10Z e107steved $
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @package e107
|
|
||||||
* @subpackage frontend
|
|
||||||
* @version $Id: cron.php 12492 2011-12-30 16:09:10Z e107steved $
|
|
||||||
* Ultra-simple Image-Gallery
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* THIS SCRIPT IS HIGHLY EXPERIMENTAL. USE AT OWN RISK.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
require_once("class2.php");
|
|
||||||
if (!getperms('0'))
|
|
||||||
{
|
|
||||||
header('location:'.e_BASE.'index.php');
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
require_once(HEADERF);
|
|
||||||
|
|
||||||
|
|
||||||
class gallery
|
|
||||||
{
|
|
||||||
private $catList = array();
|
|
||||||
|
|
||||||
function __construct()
|
|
||||||
{
|
|
||||||
$this->catList = e107::getMedia()->getCategories('gallery');
|
|
||||||
|
|
||||||
if(($_GET['cat']) && isset($this->catList[$_GET['cat']]))
|
|
||||||
{
|
|
||||||
$this->showImages($_GET['cat']);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->listCategories();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function listCategories()
|
|
||||||
{
|
|
||||||
|
|
||||||
foreach($this->catList as $val)
|
|
||||||
{
|
|
||||||
$thumb = "<img src='".e107::getParser()->thumbUrl($val['media_cat_image'],'aw=190&ah=150')."' alt='' />";
|
|
||||||
$text .= "<div style='width:190px;height:180px;float:left;margin:3px;border:1px solid black;background-color:black'>
|
|
||||||
<a href='".e_SELF."?cat=".$val['media_cat_category']."'>
|
|
||||||
".$thumb ."
|
|
||||||
<div style='text-align:center'><h3>".$val['media_cat_title']."</h2></a></div>
|
|
||||||
</div>";
|
|
||||||
}
|
|
||||||
|
|
||||||
e107::getRender()->tablerender("Gallery",$text);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function showImages($cat)
|
|
||||||
{
|
|
||||||
|
|
||||||
$GALLERY_LIST_START = "<div class='gallery-list-start' style='clear:both'>";
|
|
||||||
$GALLERY_LIST_ITEM = "<div class='gallery-list-item'>
|
|
||||||
{MEDIA_THUMB}
|
|
||||||
{MEDIA_CAPTION}
|
|
||||||
</div>";
|
|
||||||
|
|
||||||
$list = e107::getMedia()->getImages($cat);
|
|
||||||
|
|
||||||
foreach($list as $row)
|
|
||||||
{
|
|
||||||
$thumb = "<img src='".e107::getParser()->thumbUrl($row['media_url'],'aw=190&ah=150')."' alt='' />";
|
|
||||||
|
|
||||||
$text .= "<div style='width:190px;height:180px;float:left;margin:3px;border:1px solid black;background-color:black'>
|
|
||||||
<div>".$thumb."</div>
|
|
||||||
<div style='display:block;text-align:center;color:white;'>".$row['media_caption']."</div>
|
|
||||||
</div>";
|
|
||||||
|
|
||||||
//TODO GET TEMPLATING TO WORK WITHOUT THE USE OF A SHORTCODE FILE.
|
|
||||||
//TODO Shadowbox/Popup support.
|
|
||||||
|
|
||||||
// $sc = array("MEDIA_CAPTION" => $row['media_caption'],"MEDIA_THUMB"=> $thumb);
|
|
||||||
// $text .= e107::getParser()->simpleParse($GALLERY_LIST_ITEM, $sc); // NOT WORKING?
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$GALLERY_LIST_END = "</div>
|
|
||||||
<div class='gallery-list-end' style='text-align:center;clear:both'><a href='".e_SELF."'>Back to Categories</a></div>";
|
|
||||||
|
|
||||||
|
|
||||||
$text = $GALLERY_LIST_START.$text.$GALLERY_LIST_END;
|
|
||||||
|
|
||||||
e107::getRender()->tablerender("Gallery :: ".str_replace("_"," ",$cat),$text);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
new gallery;
|
|
||||||
|
|
||||||
require_once(FOOTERF);
|
|
||||||
exit;
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
Reference in New Issue
Block a user