1
0
mirror of https://github.com/e107inc/e107.git synced 2025-06-08 11:57:29 +02:00

New e_event.php v2.x specification. (e_module is no longer required for registering events.) Example added to e107_plugins/_blank

This commit is contained in:
Cameron 2016-04-06 19:43:31 -07:00
parent 8143469f5c
commit 6d0aa7cdd9
4 changed files with 82 additions and 5 deletions

View File

@ -2064,7 +2064,7 @@ class e107
$elist = self::getPref($filename.'_list'); $elist = self::getPref($filename.'_list');
if($elist) if(!empty($elist))
{ {
foreach(array_keys($elist) as $key) foreach(array_keys($elist) as $key)
{ {
@ -2117,6 +2117,7 @@ class e107
{ {
if(E107_DBG_INCLUDES) if(E107_DBG_INCLUDES)
{ {
//$debug_backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 6);
$mes->addDebug('Executing <strong>'.$class_name.' :: '.$method_name.'()</strong>'); $mes->addDebug('Executing <strong>'.$class_name.' :: '.$method_name.'()</strong>');
} }
return call_user_func(array($obj, $method_name),$param, $param2); return call_user_func(array($obj, $method_name),$param, $param2);
@ -2856,7 +2857,12 @@ class e107
$key = $tmp[1]; $key = $tmp[1];
} }
$tmp = e107::getAddonConfig('e_url'); if(!$tmp = self::getRegistry('core/e107/addons/e_url'))
{
$tmp = e107::getAddonConfig('e_url');
self::setRegistry('core/e107/addons/e_url',$tmp);
}
$tp = e107::getParser(); $tp = e107::getParser();
$pref = self::getPref('e_url_alias'); $pref = self::getPref('e_url_alias');

View File

@ -36,6 +36,26 @@ class e107_event
function __construct() function __construct()
{ {
$temp = e107::getAddonConfig('e_event');
if(!empty($temp))
{
foreach($temp as $plug=>$data)
{
foreach($data as $event)
{
$name = $event['name'];
$class = array($plug."_event", $event['function']);
if(!empty($name) && !empty($event['function']))
{
$this->register($name, $class);
}
}
}
}
} }

View File

@ -0,0 +1,51 @@
<?php
/*
* e107 website system
*
* Copyright (C) 2008-2013 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
* XXX HIGHLY EXPERIMENTAL AND SUBJECT TO CHANGE WITHOUT NOTICE.
*/
if (!defined('e107_INIT')) { exit; }
class _blank_event // plugin-folder + '_event'
{
/**
* Configure functions/methods to run when specific e107 events are triggered.
* For a list of events, please visit: http://e107.org/developer-manual/classes-and-methods#events
* Developers can trigger their own events using: e107::getEvent()->trigger('plugin_event',$array);
* Where 'plugin' is the folder of their plugin and 'event' is a unique name of the event.
* $array is data which is sent to the triggered function. eg. myfunction($array) in the example below.
*
* @return array
*/
function config()
{
$event = array();
$event[] = array(
'name' => "login", // when this is triggered... (see http://e107.org/developer-manual/classes-and-methods#events)
'function' => "myfunction", // ..run this function (see below).
);
return $event;
}
function myfunction($data) // the method to run.
{
print_a($data);
}
} //end class

View File

@ -107,7 +107,7 @@ class social_shortcodes extends e_shortcode
if($data['href'] != '') if($data['href'] != '')
{ {
$text .= '<a rel="external" href="'.$data['href'].'" data-tooltip-position="'.$tooltipPos.'" class="'.$tooltip.' social-icon social-'.$id.'" title="'.$data['title'].'"><span class="fa fa-'.$id.' '.$class.'"></span></a>'; $text .= '<a rel="external" href="'.$data['href'].'" data-tooltip-position="'.$tooltipPos.'" class="'.$tooltip.' social-icon social-'.$id.'" title="'.$data['title'].'"><span class="fa fa-fw fa-'.$id.' '.$class.'"></span></a>';
$text .= "\n"; $text .= "\n";
} }
} }
@ -288,7 +288,7 @@ class social_shortcodes extends e_shortcode
$opt[$k] = "<a class='".$tooltip." btn ".$butSize." btn-default social-share' target='_blank' title='".$val["title"]."' href='".$shareUrl."'>".$tp->toIcon($val["icon"])."</a>"; $opt[$k] = "<a class='".$tooltip." btn ".$butSize." btn-default social-share' target='_blank' title='".$val["title"]."' href='".$shareUrl."'>".$tp->toIcon($val["icon"], array('fw'=>1))."</a>";
} }
// Show only Email, Facebook, Twitter and Google. // Show only Email, Facebook, Twitter and Google.