mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-03-28 17:42:57 +01:00
plugins last modifications + events are triggered now from picture.php
git-svn-id: http://piwigo.org/svn/trunk@1590 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
@@ -38,11 +38,11 @@ function get_fs_plugins()
|
||||
$path = PHPWG_PLUGINS_PATH.$file;
|
||||
if (is_dir($path) and !is_link($path)
|
||||
and preg_match('/^[a-zA-Z0-9-_]+$/', $file )
|
||||
and file_exists($path.'/index.php')
|
||||
and file_exists($path.'/main.inc.php')
|
||||
)
|
||||
{
|
||||
$plugin = array('name'=>'?', 'version'=>'0', 'uri'=>'', 'description'=>'');
|
||||
$plg_data = implode( '', file($path.'/index.php') );
|
||||
$plg_data = implode( '', file($path.'/main.inc.php') );
|
||||
|
||||
if ( preg_match("|Plugin Name: (.*)|i", $plg_data, $val) )
|
||||
{
|
||||
@@ -72,8 +72,26 @@ function get_fs_plugins()
|
||||
function add_plugin_admin_menu($title, $func)
|
||||
{
|
||||
global $page;
|
||||
|
||||
$uid = md5( var_export($func, true) );
|
||||
if ( is_array( $func) )
|
||||
{
|
||||
$s = '';
|
||||
foreach( $func as $e)
|
||||
{
|
||||
if (is_object($e))
|
||||
{
|
||||
$s.=get_class($e)."\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$s.=$e;
|
||||
}
|
||||
}
|
||||
$uid = md5( $s );
|
||||
}
|
||||
else
|
||||
{
|
||||
$uid = md5( $func );
|
||||
}
|
||||
$page['plugin_admin_menu'][] =
|
||||
array(
|
||||
'title' => $title,
|
||||
|
||||
@@ -36,7 +36,7 @@ check_status(ACCESS_ADMINISTRATOR);
|
||||
|
||||
$template->set_filenames(array('plugin' => 'admin/plugin.tpl'));
|
||||
|
||||
trigger_event('plugin_admin_menu');
|
||||
trigger_action('plugin_admin_menu');
|
||||
|
||||
|
||||
if ( isset($page['plugin_admin_menu']) )
|
||||
|
||||
@@ -162,7 +162,7 @@ foreach ($db_plugins as $db_plugin)
|
||||
|
||||
$template->set_filenames(array('plugins' => 'admin/plugins.tpl'));
|
||||
|
||||
trigger_event('plugin_admin_menu');
|
||||
trigger_action('plugin_admin_menu');
|
||||
|
||||
$template->assign_block_vars('plugin_menu.menu_item',
|
||||
array(
|
||||
|
||||
@@ -35,17 +35,22 @@ string.
|
||||
|
||||
define('PHPWG_PLUGINS_PATH',PHPWG_ROOT_PATH.'plugins/');
|
||||
|
||||
define('EVENT_HANDLER_PRIORITY_NEUTRAL', 50);
|
||||
|
||||
/* Register a event handler.
|
||||
* @param string $event the name of the event to listen to
|
||||
* @param mixed $func the function that will handle the event
|
||||
* @param int $priority optional priority (greater priority will
|
||||
* be executed at last)
|
||||
*/
|
||||
function add_event_handler($event, $func, $priority=50, $accepted_args=1)
|
||||
function add_event_handler($event, $func,
|
||||
$priority=EVENT_HANDLER_PRIORITY_NEUTRAL, $accepted_args=1)
|
||||
{
|
||||
global $pwg_event_handlers;
|
||||
|
||||
if ( isset($pwg_event_handlers[$event]["$priority"]) )
|
||||
if ( isset($pwg_event_handlers[$event][$priority]) )
|
||||
{
|
||||
foreach($pwg_event_handlers[$event]["$priority"] as $handler)
|
||||
foreach($pwg_event_handlers[$event][$priority] as $handler)
|
||||
{
|
||||
if ( $handler['function'] == $func )
|
||||
{
|
||||
@@ -54,18 +59,50 @@ function add_event_handler($event, $func, $priority=50, $accepted_args=1)
|
||||
}
|
||||
}
|
||||
|
||||
trigger_event('add_event_handler',
|
||||
array('event'=>$event, 'function'=>$func)
|
||||
);
|
||||
|
||||
$pwg_event_handlers[$event]["$priority"][] =
|
||||
$pwg_event_handlers[$event][$priority][] =
|
||||
array(
|
||||
'function'=>$func,
|
||||
'accepted_args'=>$accepted_args);
|
||||
|
||||
ksort( $pwg_event_handlers[$event] );
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Register a event handler.
|
||||
* @param string $event the name of the event to listen to
|
||||
* @param mixed $func the function that needs removal
|
||||
* @param int $priority optional priority (greater priority will
|
||||
* be executed at last)
|
||||
*/
|
||||
function remove_event_handler($event, $func,
|
||||
$priority=EVENT_HANDLER_PRIORITY_NEUTRAL)
|
||||
{
|
||||
global $pwg_event_handlers;
|
||||
|
||||
if (!isset( $pwg_event_handlers[$event][$priority] ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
for ($i=0; $i<count($pwg_event_handlers[$event][$priority]); $i++)
|
||||
{
|
||||
if ($pwg_event_handlers[$event][$priority][$i]['function']==$func)
|
||||
{
|
||||
unset($pwg_event_handlers[$event][$priority][$i]);
|
||||
$pwg_event_handlers[$event][$priority] =
|
||||
array_values($pwg_event_handlers[$event][$priority]);
|
||||
|
||||
if ( empty($pwg_event_handlers[$event][$priority]) )
|
||||
{
|
||||
unset( $pwg_event_handlers[$event][$priority] );
|
||||
if (empty( $pwg_event_handlers[$event] ) )
|
||||
{
|
||||
unset( $pwg_event_handlers[$event] );
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Triggers an event and calls all registered event handlers
|
||||
* @param string $event name of the event
|
||||
@@ -74,19 +111,15 @@ function add_event_handler($event, $func, $priority=50, $accepted_args=1)
|
||||
function trigger_event($event, $data=null)
|
||||
{
|
||||
global $pwg_event_handlers;
|
||||
if ($event!='pre_trigger_event' and $event!='post_trigger_event')
|
||||
{// special case
|
||||
trigger_event('pre_trigger_event',
|
||||
|
||||
// just for debugging
|
||||
trigger_action('pre_trigger_event',
|
||||
array('event'=>$event, 'data'=>$data) );
|
||||
if ( !isset($pwg_event_handlers[$event]) )
|
||||
{
|
||||
trigger_event('post_trigger_event',
|
||||
array('event'=>$event, 'data'=>$data) );
|
||||
}
|
||||
}
|
||||
|
||||
if ( !isset($pwg_event_handlers[$event]) )
|
||||
{
|
||||
trigger_action('post_trigger_event',
|
||||
array('event'=>$event, 'data'=>$data) );
|
||||
return $data;
|
||||
}
|
||||
$args = array_slice(func_get_args(), 2);
|
||||
@@ -114,17 +147,53 @@ function trigger_event($event, $data=null)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($event!='pre_trigger_event' and $event!='post_trigger_event')
|
||||
{
|
||||
trigger_event('post_trigger_event',
|
||||
trigger_action('post_trigger_event',
|
||||
array('event'=>$event, 'data'=>$data) );
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
function trigger_action($event, $data=null)
|
||||
{
|
||||
global $pwg_event_handlers;
|
||||
if ($event!='pre_trigger_event'
|
||||
and $event!='post_trigger_event'
|
||||
and $event!='trigger_action')
|
||||
{// special case for debugging - avoid recursive calls
|
||||
trigger_action('trigger_action',
|
||||
array('event'=>$event, 'data'=>$data) );
|
||||
}
|
||||
|
||||
if ( !isset($pwg_event_handlers[$event]) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$args = array_slice(func_get_args(), 2);
|
||||
|
||||
foreach ($pwg_event_handlers[$event] as $priority => $handlers)
|
||||
{
|
||||
if ( !is_null($handlers) )
|
||||
{
|
||||
foreach($handlers as $handler)
|
||||
{
|
||||
$all_args = array_merge( array($data), $args);
|
||||
$function_name = $handler['function'];
|
||||
$accepted_args = $handler['accepted_args'];
|
||||
|
||||
if ( $accepted_args == 1 )
|
||||
$the_args = array($data);
|
||||
elseif ( $accepted_args > 1 )
|
||||
$the_args = array_slice($all_args, 0, $accepted_args);
|
||||
elseif ( $accepted_args == 0 )
|
||||
$the_args = NULL;
|
||||
else
|
||||
$the_args = $all_args;
|
||||
|
||||
call_user_func_array($function_name, $the_args);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Returns an array of plugins defined in the database
|
||||
@@ -173,8 +242,12 @@ function load_plugins()
|
||||
$plugins = get_db_plugins('active');
|
||||
foreach( $plugins as $plugin)
|
||||
{
|
||||
@include_once( PHPWG_PLUGINS_PATH.$plugin['id'].'/index.php' );
|
||||
$file_name = PHPWG_PLUGINS_PATH.$plugin['id'].'/main.inc.php';
|
||||
if ( file_exists($file_name) )
|
||||
{
|
||||
include_once( $file_name );
|
||||
}
|
||||
}
|
||||
trigger_event('plugins_loaded');
|
||||
trigger_action('plugins_loaded');
|
||||
}
|
||||
?>
|
||||
@@ -30,6 +30,8 @@
|
||||
//
|
||||
$template->set_filenames(array('header'=>'header.tpl'));
|
||||
|
||||
trigger_action('loc_begin_page_header');
|
||||
|
||||
$template->assign_vars(
|
||||
array(
|
||||
'GALLERY_TITLE' =>
|
||||
@@ -37,9 +39,8 @@ $template->assign_vars(
|
||||
$page['gallery_title'] : $conf['gallery_title'],
|
||||
|
||||
'PAGE_BANNER' =>
|
||||
trigger_event('page_banner',
|
||||
isset($page['page_banner']) ?
|
||||
$page['page_banner'] : $conf['page_banner'] ),
|
||||
isset($page['page_banner']) ?
|
||||
$page['page_banner'] : $conf['page_banner'],
|
||||
|
||||
'BODY_ID' =>
|
||||
isset($page['body_id']) ?
|
||||
@@ -67,6 +68,8 @@ if ( isset( $refresh ) and intval($refresh) >= 0
|
||||
$template->assign_block_vars('refresh', array());
|
||||
}
|
||||
|
||||
trigger_action('loc_end_page_header');
|
||||
|
||||
header('Content-Type: text/html; charset='.$lang_info['charset']);
|
||||
$template->parse('header');
|
||||
?>
|
||||
|
||||
@@ -39,7 +39,7 @@ if ($conf['show_exif'])
|
||||
die('Exif extension not available, admin should disable exif display');
|
||||
}
|
||||
|
||||
if ($exif = @read_exif_data($picture['current']['src_file_system']))
|
||||
if ($exif = @read_exif_data($picture['current']['image_path']))
|
||||
{
|
||||
$template->assign_block_vars(
|
||||
'metadata.headline',
|
||||
@@ -92,7 +92,7 @@ if ($conf['show_exif'])
|
||||
}
|
||||
if ($conf['show_iptc'])
|
||||
{
|
||||
$iptc = get_iptc_data($picture['current']['src_file_system'],
|
||||
$iptc = get_iptc_data($picture['current']['image_path'],
|
||||
$conf['show_iptc_mapping']);
|
||||
|
||||
if (count($iptc) > 0)
|
||||
|
||||
261
picture.php
261
picture.php
@@ -46,6 +46,50 @@ if (!in_array($page['image_id'], $page['items']))
|
||||
duplicate_index_url() );
|
||||
}
|
||||
|
||||
// add default event handler for rendering element content
|
||||
add_event_handler('render_element_content', 'default_picture_content',
|
||||
EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
|
||||
trigger_action('loc_begin_picture');
|
||||
|
||||
// this is the default handler that generates the display for the element
|
||||
function default_picture_content($content, $element_info)
|
||||
{
|
||||
if ( !empty($content) )
|
||||
{// someone hooked us - so we skip;
|
||||
return $content;
|
||||
}
|
||||
if (!isset($element_info['image_url']))
|
||||
{ // nothing to do
|
||||
return $content;
|
||||
}
|
||||
global $user;
|
||||
$my_template = new Template(PHPWG_ROOT_PATH.'template/'.$user['template'],
|
||||
$user['theme'] );
|
||||
$my_template->set_filenames( array('default_content'=>'picture_content.tpl') );
|
||||
|
||||
if (isset($element_info['high_url']))
|
||||
{
|
||||
$uuid = uniqid(rand());
|
||||
$my_template->assign_block_vars(
|
||||
'high',
|
||||
array(
|
||||
'U_HIGH' => $element_info['high_url'],
|
||||
'UUID' => $uuid,
|
||||
)
|
||||
);
|
||||
}
|
||||
$my_template->assign_vars( array(
|
||||
'SRC_IMG' => $element_info['image_url'],
|
||||
'ALT_IMG' => $element_info['file'],
|
||||
'WIDTH_IMG' => $element_info['scaled_width'],
|
||||
'HEIGHT_IMG' => $element_info['scaled_height'],
|
||||
)
|
||||
);
|
||||
return $my_template->parse( 'default_content', true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | initialization |
|
||||
// +-----------------------------------------------------------------------+
|
||||
@@ -99,7 +143,7 @@ $url_self = duplicate_picture_url();
|
||||
* Actions finish by a redirection
|
||||
*/
|
||||
|
||||
if (isset($_GET['action']) and !is_adviser())
|
||||
if (isset($_GET['action']))
|
||||
{
|
||||
switch ($_GET['action'])
|
||||
{
|
||||
@@ -139,7 +183,7 @@ DELETE FROM '.FAVORITES_TABLE.'
|
||||
}
|
||||
case 'set_as_representative' :
|
||||
{
|
||||
if (is_admin() and isset($page['category']))
|
||||
if (is_admin() and !is_adviser() and isset($page['category']))
|
||||
{
|
||||
$query = '
|
||||
UPDATE '.CATEGORIES_TABLE.'
|
||||
@@ -174,7 +218,7 @@ UPDATE '.CATEGORIES_TABLE.'
|
||||
{
|
||||
if (isset($_GET['comment_to_delete'])
|
||||
and is_numeric($_GET['comment_to_delete'])
|
||||
and is_admin())
|
||||
and is_admin() and !is_adviser() )
|
||||
{
|
||||
$query = '
|
||||
DELETE FROM '.COMMENTS_TABLE.'
|
||||
@@ -275,22 +319,17 @@ while ($row = mysql_fetch_array($result))
|
||||
$cat_directory = dirname($row['path']);
|
||||
$file_wo_ext = get_filename_wo_extension($row['file']);
|
||||
|
||||
if (isset($row['representative_ext']) and $row['representative_ext'] != '')
|
||||
// ------ build element_path and element_url
|
||||
$picture[$i]['element_url'] = $row['path'];
|
||||
if ( ! url_is_remote($row['path']) )
|
||||
{
|
||||
$picture[$i]['src'] =
|
||||
$cat_directory.'/pwg_representative/'
|
||||
.$file_wo_ext.'.'.$row['representative_ext'];
|
||||
$picture[$i]['element_url'] = get_root_url().$row['path'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$icon = get_themeconf('mime_icon_dir');
|
||||
$icon.= strtolower(get_extension($row['file'])).'.png';
|
||||
$picture[$i]['src'] = $icon;
|
||||
}
|
||||
// special case for picture files
|
||||
|
||||
// ------ build image_path and image_url
|
||||
if ($picture[$i]['is_picture'])
|
||||
{
|
||||
$picture[$i]['src'] = $row['path'];
|
||||
$picture[$i]['image_path'] = $row['path'];
|
||||
// if we are working on the "current" element, we search if there is a
|
||||
// high quality picture
|
||||
if ($i == 'current')
|
||||
@@ -298,25 +337,47 @@ while ($row = mysql_fetch_array($result))
|
||||
if (($row['has_high'] == 'true') and ($user['enabled_high'] == 'true'))
|
||||
{
|
||||
$url_high=$cat_directory.'/pwg_high/'.$row['file'];
|
||||
$picture[$i]['high_file_system'] = $picture[$i]['high'] = $url_high;
|
||||
if ( ! url_is_remote($picture[$i]['high']) )
|
||||
$picture[$i]['high_url'] = $picture[$i]['high_path'] = $url_high;
|
||||
if ( ! url_is_remote($picture[$i]['high_path']) )
|
||||
{
|
||||
$picture[$i]['high'] = get_root_url().$picture[$i]['high'];
|
||||
$picture[$i]['high_url'] = get_root_url().$picture[$i]['high_path'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$picture[$i]['src_file_system'] = $picture[$i]['src'];
|
||||
if ( ! url_is_remote($picture[$i]['src']) )
|
||||
{
|
||||
$picture[$i]['src'] = get_root_url(). $picture[$i]['src'];
|
||||
else
|
||||
{// not a picture
|
||||
if (isset($row['representative_ext']) and $row['representative_ext']!='')
|
||||
{
|
||||
$picture[$i]['image_path'] =
|
||||
$cat_directory.'/pwg_representative/'
|
||||
.$file_wo_ext.'.'.$row['representative_ext'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$picture[$i]['image_path'] =
|
||||
get_themeconf('mime_icon_dir')
|
||||
.strtolower(get_extension($row['file'])).'.png';
|
||||
}
|
||||
}
|
||||
|
||||
// if picture is not a file, we need the download link
|
||||
if (!$picture[$i]['is_picture'])
|
||||
$picture[$i]['image_url'] = $picture[$i]['image_path'];
|
||||
if ( ! url_is_remote($picture[$i]['image_path']) )
|
||||
{
|
||||
$picture[$i]['download'] = url_is_remote($row['path']) ? '' : get_root_url();
|
||||
$picture[$i]['download'].= $row['path'];
|
||||
$picture[$i]['image_url'] = get_root_url().$picture[$i]['image_path'];
|
||||
}
|
||||
|
||||
if (!$picture[$i]['is_picture'])
|
||||
{// if picture is not a file, we need the download link
|
||||
$picture[$i]['download_url'] = $picture[$i]['element_url'];
|
||||
}
|
||||
else
|
||||
{// if picture is a file with high, we put the download link
|
||||
if ( isset($picture[$i]['high_path']) )
|
||||
{
|
||||
$picture[$i]['download_url'] = get_root_url().'action.php?dwn='
|
||||
.$picture[$i]['high_path'];
|
||||
}
|
||||
}
|
||||
|
||||
$picture[$i]['thumbnail'] = get_thumbnail_src($row['path'], @$row['tn_ext']);
|
||||
@@ -350,6 +411,32 @@ while ($row = mysql_fetch_array($result))
|
||||
}
|
||||
}
|
||||
|
||||
// calculation of width and height for the current picture
|
||||
if (empty($picture['current']['width']))
|
||||
{
|
||||
$taille_image = @getimagesize($picture['current']['image_path']);
|
||||
if ($taille_image!==false)
|
||||
{
|
||||
$picture['current']['width'] = $taille_image[0];
|
||||
$picture['current']['height']= $taille_image[1];
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($picture['current']['width']))
|
||||
{
|
||||
list($picture['current']['scaled_width'],$picture['current']['scaled_height']) =
|
||||
get_picture_size(
|
||||
$picture['current']['width'],
|
||||
$picture['current']['height'],
|
||||
@$user['maxwidth'],
|
||||
@$user['maxheight']
|
||||
);
|
||||
}
|
||||
|
||||
// now give an opportunity to the filters to alter element_url,
|
||||
// image_url, high_url and download_url
|
||||
$picture = trigger_event('picture_navigation', $picture);
|
||||
|
||||
$url_admin =
|
||||
get_root_url().'admin.php?page=picture_modify'
|
||||
.'&cat_id='.(isset($page['category']) ? $page['category'] : '')
|
||||
@@ -377,42 +464,43 @@ if ( isset( $_GET['slideshow'] ) and isset($page['next_item']) )
|
||||
|
||||
$title_nb = ($page['current_rank'] + 1).'/'.$page['cat_nb_images'];
|
||||
|
||||
// calculation of width and height
|
||||
if (empty($picture['current']['width']))
|
||||
{
|
||||
$taille_image = @getimagesize($picture['current']['src_file_system']);
|
||||
$original_width = $taille_image[0];
|
||||
$original_height = $taille_image[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
$original_width = $picture['current']['width'];
|
||||
$original_height = $picture['current']['height'];
|
||||
}
|
||||
|
||||
$picture_size = get_picture_size(
|
||||
$original_width,
|
||||
$original_height,
|
||||
@$user['maxwidth'],
|
||||
@$user['maxheight']
|
||||
);
|
||||
|
||||
// metadata
|
||||
$url_metadata = duplicate_picture_url();
|
||||
if ($conf['show_exif'] or $conf['show_iptc'])
|
||||
|
||||
// do we have a plugin that can show metadata for something else than images?
|
||||
$metadata_showable = trigger_event('get_element_metadata_available',
|
||||
(
|
||||
($conf['show_exif'] or $conf['show_iptc'])
|
||||
and isset($picture['current']['image_path'])
|
||||
),
|
||||
$picture['current']['path'] );
|
||||
if ($metadata_showable)
|
||||
{
|
||||
$metadata_showable = true;
|
||||
if ( !isset($_GET['metadata']) )
|
||||
{
|
||||
$url_metadata = add_url_params( $url_metadata, array('metadata'=>null) );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$metadata_showable = false;
|
||||
}
|
||||
|
||||
$page['body_id'] = 'thePicturePage';
|
||||
|
||||
// maybe someone wants a special display (call it before page_header so that they
|
||||
// can add stylesheets)
|
||||
$element_content = trigger_event('render_element_content',
|
||||
'', $picture['current'] );
|
||||
|
||||
if ( isset($picture['next']['image_url'])
|
||||
and isset($picture['next']['is_picture']) )
|
||||
{
|
||||
$template->assign_block_vars( 'prefetch',
|
||||
array (
|
||||
'URL' => $picture['next']['image_url']
|
||||
)
|
||||
);
|
||||
}
|
||||
include(PHPWG_ROOT_PATH.'include/page_header.php');
|
||||
$template->set_filenames(array('picture'=>'picture.tpl'));
|
||||
|
||||
//------------------------------------------------------- navigation management
|
||||
foreach ( array('first','previous','next','last') as $which_image )
|
||||
{
|
||||
@@ -424,48 +512,21 @@ foreach ( array('first','previous','next','last') as $which_image )
|
||||
'TITLE_IMG' => $picture[$which_image]['name'],
|
||||
'IMG' => $picture[$which_image]['thumbnail'],
|
||||
'U_IMG' => $picture[$which_image]['url'],
|
||||
'U_IMG_SRC' => $picture[$which_image]['src']
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
include(PHPWG_ROOT_PATH.'include/page_header.php');
|
||||
$template->set_filenames(array('picture'=>'picture.tpl'));
|
||||
|
||||
$template->assign_vars(
|
||||
array(
|
||||
'SECTION_TITLE' => $page['title'],
|
||||
'PICTURE_TITLE' => $picture['current']['name'],
|
||||
'PHOTO' => $title_nb,
|
||||
'TITLE' => $picture['current']['name'],
|
||||
'SRC_IMG' => $picture['current']['src'],
|
||||
'ALT_IMG' => $picture['current']['file'],
|
||||
'WIDTH_IMG' => $picture_size[0],
|
||||
'HEIGHT_IMG' => $picture_size[1],
|
||||
'ELEMENT_CONTENT' => $element_content,
|
||||
|
||||
'LEVEL_SEPARATOR' => $conf['level_separator'],
|
||||
|
||||
'L_HOME' => $lang['home'],
|
||||
'L_SLIDESHOW' => $lang['slideshow'],
|
||||
'L_STOP_SLIDESHOW' => $lang['slideshow_stop'],
|
||||
'L_PREV_IMG' =>$lang['previous_page'].' : ',
|
||||
'L_NEXT_IMG' =>$lang['next_page'].' : ',
|
||||
'L_ADMIN' =>$lang['link_info_image'],
|
||||
'L_COMMENT_TITLE' =>$lang['comments_title'],
|
||||
'L_ADD_COMMENT' =>$lang['comments_add'],
|
||||
'L_DELETE_COMMENT' =>$lang['comments_del'],
|
||||
'L_DELETE' =>$lang['delete'],
|
||||
'L_SUBMIT' =>$lang['submit'],
|
||||
'L_AUTHOR' => $lang['upload_author'],
|
||||
'L_COMMENT' =>$lang['comment'],
|
||||
'L_DOWNLOAD' => $lang['download'],
|
||||
'L_DOWNLOAD_HINT' => $lang['download_hint'],
|
||||
'L_PICTURE_METADATA' => $lang['picture_show_metadata'],
|
||||
'L_PICTURE_HIGH' => $lang['picture_high'],
|
||||
'L_UP_HINT' => $lang['home_hint'],
|
||||
'L_UP_ALT' => $lang['home'],
|
||||
|
||||
'U_HOME' => make_index_url(),
|
||||
'U_UP' => $url_up,
|
||||
'U_METADATA' => $url_metadata,
|
||||
@@ -482,35 +543,13 @@ if ($conf['show_picture_name_on_title'])
|
||||
|
||||
//------------------------------------------------------- upper menu management
|
||||
|
||||
// download link if file is not a picture
|
||||
if (!$picture['current']['is_picture'])
|
||||
// download link
|
||||
if ( isset($picture['current']['download_url']) )
|
||||
{
|
||||
$template->assign_block_vars(
|
||||
'download',
|
||||
array(
|
||||
'U_DOWNLOAD' => $picture['current']['download']
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// display a high quality link if present
|
||||
if (isset($picture['current']['high']))
|
||||
{
|
||||
$uuid = uniqid(rand());
|
||||
|
||||
$template->assign_block_vars(
|
||||
'high',
|
||||
array(
|
||||
'U_HIGH' => $picture['current']['high'],
|
||||
'UUID' => $uuid,
|
||||
)
|
||||
);
|
||||
|
||||
$template->assign_block_vars(
|
||||
'download',
|
||||
array(
|
||||
'U_DOWNLOAD' => get_root_url().'action.php?dwn='
|
||||
.$picture['current']['high_file_system']
|
||||
'U_DOWNLOAD' => $picture['current']['download_url']
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -655,19 +694,19 @@ $url = make_index_url(
|
||||
$infos['INFO_POSTED_DATE'] = '<a href="'.$url.'" rel="nofollow">'.$val.'</a>';
|
||||
|
||||
// size in pixels
|
||||
if ($picture['current']['is_picture'])
|
||||
if ($picture['current']['is_picture'] and isset($picture['current']['width']) )
|
||||
{
|
||||
if ($original_width != $picture_size[0]
|
||||
or $original_height != $picture_size[1])
|
||||
if ($picture['current']['scaled_width'] !== $picture['current']['width'] )
|
||||
{
|
||||
$infos['INFO_DIMENSIONS'] =
|
||||
'<a href="'.$picture['current']['src'].'" title="'.
|
||||
'<a href="'.$picture['current']['image_url'].'" title="'.
|
||||
l10n('Original dimensions').'">'.
|
||||
$original_width.'*'.$original_height.'</a>';
|
||||
$picture['current']['width'].'*'.$picture['current']['height'].'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$infos['INFO_DIMENSIONS'] = $original_width.'*'.$original_height;
|
||||
$infos['INFO_DIMENSIONS'] =
|
||||
$picture['current']['width'].'*'.$picture['current']['height'];
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -19,7 +19,7 @@ class EventTracer
|
||||
|
||||
function load_config()
|
||||
{
|
||||
$x = @file_get_contents( dirname(__FILE__).'/tracer.dat' );
|
||||
$x = @file_get_contents( dirname(__FILE__).'/data.dat' );
|
||||
if ($x!==false)
|
||||
{
|
||||
$c = unserialize($x);
|
||||
@@ -37,39 +37,45 @@ class EventTracer
|
||||
|
||||
function save_config()
|
||||
{
|
||||
$file = fopen( dirname(__FILE__).'/tracer.dat', 'w' );
|
||||
$file = fopen( dirname(__FILE__).'/data.dat', 'w' );
|
||||
fwrite($file, serialize($this->my_config) );
|
||||
fclose( $file );
|
||||
}
|
||||
|
||||
function pre_trigger_event($event_info)
|
||||
function on_pre_trigger_event($event_info)
|
||||
{
|
||||
if (!$this->me_working)
|
||||
$this->dump('pre_trigger_event', $event_info);
|
||||
}
|
||||
function on_post_trigger_event($event_info)
|
||||
{
|
||||
$this->dump('post_trigger_event', $event_info);
|
||||
}
|
||||
|
||||
function on_trigger_action($event_info)
|
||||
{
|
||||
$this->dump('trigger_action', $event_info);
|
||||
}
|
||||
|
||||
function dump($event, $event_info)
|
||||
{
|
||||
foreach( $this->my_config['filters'] as $filter)
|
||||
{
|
||||
foreach( $this->my_config['filters'] as $filter)
|
||||
if ( preg_match( '/'.$filter.'/', $event_info['event'] ) )
|
||||
{
|
||||
if ( preg_match( '/'.$filter.'/', $event_info['event'] ) )
|
||||
if ($this->my_config['show_args'])
|
||||
{
|
||||
if ($this->my_config['show_args'])
|
||||
$s = var_export( $event_info['data'], true );
|
||||
else
|
||||
$s = '';
|
||||
pwg_debug('begin trigger_event "'.$event_info['event'].'" '.htmlspecialchars($s) );
|
||||
break;
|
||||
$s = '<pre>';
|
||||
$s .= htmlspecialchars( var_export( $event_info['data'], true ) );
|
||||
$s .= '</pre>';
|
||||
}
|
||||
else
|
||||
$s = '';
|
||||
pwg_debug($event.' "'.$event_info['event'].'" '.($s) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*function post_trigger_event($filter_info)
|
||||
{
|
||||
if (!$this->me_working)
|
||||
{
|
||||
$s = var_export( $filter_info['data'], true );
|
||||
pwg_debug('end trigger_event '.$filter_info['event'].' '.$s );
|
||||
}
|
||||
}*/
|
||||
|
||||
function plugin_admin_menu()
|
||||
{
|
||||
add_plugin_admin_menu( "Event Tracer", array(&$this, 'do_admin') );
|
||||
@@ -86,5 +92,7 @@ $eventTracer = new EventTracer();
|
||||
$eventTracer->load_config();
|
||||
|
||||
add_event_handler('plugin_admin_menu', array(&$eventTracer, 'plugin_admin_menu') );
|
||||
add_event_handler('pre_trigger_event', array(&$eventTracer, 'pre_trigger_event') );
|
||||
add_event_handler('pre_trigger_event', array(&$eventTracer, 'on_pre_trigger_event') );
|
||||
add_event_handler('post_trigger_event', array(&$eventTracer, 'on_post_trigger_event') );
|
||||
add_event_handler('trigger_action', array(&$eventTracer, 'on_trigger_action') );
|
||||
?>
|
||||
@@ -8,7 +8,7 @@ You can use this plugin to see what events is PhpWebGallery calling.
|
||||
<legend>Event Tracer</legend>
|
||||
|
||||
<label>Show event argument
|
||||
<input type="checkbox" name="eventTracer_show_args" value="{EVENT_TRACER_SHOW_ARGS}" />
|
||||
<input type="checkbox" name="eventTracer_show_args" {EVENT_TRACER_SHOW_ARGS} />
|
||||
</label>
|
||||
<br/>
|
||||
<label>Fill below a list of regular expressions (one per line).
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
<?php /*
|
||||
Plugin Name: Hello World !
|
||||
Author: PhpWebGallery team
|
||||
Description: This example plugin changes the page banner for the administration page
|
||||
*/
|
||||
|
||||
add_event_handler('page_banner', 'hello_world_banner' );
|
||||
|
||||
function hello_world_banner($banner)
|
||||
{
|
||||
global $page;
|
||||
if ( isset($page['body_id']) and $page['body_id']=='theAdminPage')
|
||||
{
|
||||
return '<h1>Hello world from PhpWebGallery plugin!</h1>';
|
||||
}
|
||||
return $banner;
|
||||
}
|
||||
?>
|
||||
30
plugins/hello_world/main.inc.php
Normal file
30
plugins/hello_world/main.inc.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php /*
|
||||
Plugin Name: Hello World !
|
||||
Author: PhpWebGallery team
|
||||
Description: This example plugin changes the page banner for the administration page.
|
||||
*/
|
||||
|
||||
add_event_handler('loc_begin_page_header', 'hello_world_begin_header' );
|
||||
|
||||
function hello_world_begin_header()
|
||||
{
|
||||
global $page;
|
||||
if ( isset($page['body_id']) and $page['body_id']=='theAdminPage')
|
||||
{
|
||||
$hellos = array( 'Aloha', 'Ahoy', 'Guten tag', 'Hello', 'Hoi', 'Hola', 'Salut', 'Yo' );
|
||||
shuffle($hellos);
|
||||
$page['page_banner'] = $hellos[0];
|
||||
// just as an example we modify it a little bit later
|
||||
add_event_handler('loc_end_page_header', 'hello_world_end_header');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function hello_world_end_header()
|
||||
{
|
||||
global $template, $page;
|
||||
$template->assign_var( 'PAGE_BANNER',
|
||||
'<h1>"'.$page['page_banner'].'" from PhpWebGallery plugin!</h1>');
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -15,9 +15,9 @@ the "text/nonsense" prevents gecko based browsers to load it -->
|
||||
<link rel="stylesheet" type="text/css" href="{pwg_root}template/{themeconf:template}/default-colors.css">
|
||||
<link rel="stylesheet" type="text/css" href="{pwg_root}template/{themeconf:template}/theme/{themeconf:theme}/theme.css">
|
||||
{themeconf:local_head}
|
||||
<!-- BEGIN next -->
|
||||
<link rel="prefetch" href="{next.U_IMG_SRC}">
|
||||
<!-- END next -->
|
||||
<!-- BEGIN prefetch -->
|
||||
<link rel="prefetch" href="{prefetch.URL}">
|
||||
<!-- END prefetch -->
|
||||
<!-- BEGIN refresh -->
|
||||
<meta http-equiv="refresh" content="{REFRESH_TIME};url={U_REFRESH}">
|
||||
<!-- END refresh -->
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<div id="imageHeaderBar">
|
||||
<div class="browsePath">
|
||||
<a href="{U_HOME}" rel="home">{L_HOME}</a>
|
||||
<a href="{U_HOME}" rel="home">{lang:home}</a>
|
||||
{LEVEL_SEPARATOR}{SECTION_TITLE}
|
||||
{LEVEL_SEPARATOR}{PICTURE_TITLE}
|
||||
</div>
|
||||
@@ -17,8 +17,8 @@
|
||||
<div id="imageToolBar">
|
||||
|
||||
<div class="randomButtons">
|
||||
<a href="{U_SLIDESHOW}" title="{L_SLIDESHOW}" rel="nofollow"><img src="{pwg_root}{themeconf:icon_dir}/slideshow.png" class="button" alt="{L_SLIDESHOW}"></a>
|
||||
<a href="{U_METADATA}" title="{L_PICTURE_METADATA}"><img src="{pwg_root}{themeconf:icon_dir}/metadata.png" class="button" alt="{L_PICTURE_METADATA}"></a>
|
||||
<a href="{U_SLIDESHOW}" title="{lang:slideshow}" rel="nofollow"><img src="{pwg_root}{themeconf:icon_dir}/slideshow.png" class="button" alt="{lang:slideshow}"></a>
|
||||
<a href="{U_METADATA}" title="{lang:picture_show_metadata}"><img src="{pwg_root}{themeconf:icon_dir}/metadata.png" class="button" alt="{lang:picture_show_metadata}"></a>
|
||||
<!-- BEGIN representative -->
|
||||
<a href="{representative.URL}" title="{lang:set as category representative}"><img src="{pwg_root}{themeconf:icon_dir}/representative.png" class="button" alt="{lang:representative}"/></a>
|
||||
<!-- END representative -->
|
||||
@@ -26,10 +26,10 @@
|
||||
<a href="{favorite.U_FAVORITE}" title="{favorite.FAVORITE_HINT}"><img src="{favorite.FAVORITE_IMG}" class="button" alt="{favorite.FAVORITE_ALT}"></a>
|
||||
<!-- END favorite -->
|
||||
<!-- BEGIN download -->
|
||||
<a href="{download.U_DOWNLOAD}" title="{L_DOWNLOAD}"><img src="{pwg_root}{themeconf:icon_dir}/save.png" class="button" alt="{L_DOWNLOAD}"></a>
|
||||
<a href="{download.U_DOWNLOAD}" title="{lang:download_hint}"><img src="{pwg_root}{themeconf:icon_dir}/save.png" class="button" alt="{lang:download}"></a>
|
||||
<!-- END download -->
|
||||
<!-- BEGIN admin -->
|
||||
<a href="{U_ADMIN}" title="{L_ADMIN}"><img src="{pwg_root}{themeconf:icon_dir}/preferences.png" class="button" alt="{L_ADMIN}"></a>
|
||||
<a href="{U_ADMIN}" title="{lang:link_info_image}"><img src="{pwg_root}{themeconf:icon_dir}/preferences.png" class="button" alt="{lang:link_info_image}"></a>
|
||||
<!-- END admin -->
|
||||
<!-- BEGIN caddie -->
|
||||
<a href="{caddie.URL}" title="{lang:add to caddie}"><img src="{pwg_root}{themeconf:icon_dir}/caddie_add.png" class="button" alt="{lang:caddie}"/></a>
|
||||
@@ -41,11 +41,11 @@
|
||||
<a class="navButton prev" href="{last.U_IMG}" title="{lang:last_page} : {last.TITLE_IMG}" rel="last"><img src="{pwg_root}{themeconf:icon_dir}/last.png" class="button" alt="{lang:last_page}"></a>
|
||||
<!-- END last -->
|
||||
<!-- BEGIN next -->
|
||||
<a class="navButton next" href="{next.U_IMG}" title="{L_NEXT_IMG}{next.TITLE_IMG}" rel="next"><img src="{pwg_root}{themeconf:icon_dir}/right.png" class="button" alt="{lang:next_page}"></a>
|
||||
<a class="navButton next" href="{next.U_IMG}" title="{lang:next_page} : {next.TITLE_IMG}" rel="next"><img src="{pwg_root}{themeconf:icon_dir}/right.png" class="button" alt="{lang:next_page}"></a>
|
||||
<!-- END next -->
|
||||
<a class="navButton up" href="{U_UP}" title="{lang:thumbnails}" rel="up"><img src="{pwg_root}{themeconf:icon_dir}/up.png" class="button" alt="{L_UP_ALT}"></a>
|
||||
<a class="navButton up" href="{U_UP}" title="{lang:thumbnails}" rel="up"><img src="{pwg_root}{themeconf:icon_dir}/up.png" class="button" alt="{lang:home}"></a>
|
||||
<!-- BEGIN previous -->
|
||||
<a class="navButton prev" href="{previous.U_IMG}" title="{L_PREV_IMG}{previous.TITLE_IMG}" rel="prev"><img src="{pwg_root}{themeconf:icon_dir}/left.png" class="button" alt="{lang:previous_page}"></a>
|
||||
<a class="navButton prev" href="{previous.U_IMG}" title="{lang:previous_page} : {previous.TITLE_IMG}" rel="prev"><img src="{pwg_root}{themeconf:icon_dir}/left.png" class="button" alt="{lang:previous_page}"></a>
|
||||
<!-- END previous -->
|
||||
<!-- BEGIN first -->
|
||||
<a class="navButton prev" href="{first.U_IMG}" title="{lang:first_page} : {first.TITLE_IMG}" rel="first"><img src="{pwg_root}{themeconf:icon_dir}/first.png" class="button" alt="{lang:first_page}"></a>
|
||||
@@ -55,31 +55,24 @@
|
||||
</div> <!-- imageToolBar -->
|
||||
|
||||
<div id="theImage">
|
||||
<!-- BEGIN high -->
|
||||
<a href="javascript:phpWGOpenWindow('{high.U_HIGH}','{high.UUID}','scrollbars=yes,toolbar=no,status=no,resizable=yes')">
|
||||
<!-- END high -->
|
||||
<img src="{SRC_IMG}" style="width:{WIDTH_IMG}px;height:{HEIGHT_IMG}px;" alt="{ALT_IMG}">
|
||||
<!-- BEGIN high -->
|
||||
</a>
|
||||
<p>{L_PICTURE_HIGH}</p>
|
||||
<!-- END high -->
|
||||
{ELEMENT_CONTENT}
|
||||
<!-- BEGIN legend -->
|
||||
<p>{legend.COMMENT_IMG}</p>
|
||||
<!-- END legend -->
|
||||
<!-- BEGIN stop_slideshow -->
|
||||
<p>
|
||||
[ <a href="{stop_slideshow.U_SLIDESHOW}">{L_STOP_SLIDESHOW}</a> ]
|
||||
[ <a href="{stop_slideshow.U_SLIDESHOW}">{lang:slideshow_stop}</a> ]
|
||||
</p>
|
||||
<!-- END stop_slideshow -->
|
||||
</div>
|
||||
|
||||
<!-- BEGIN previous -->
|
||||
<a class="navThumb" id="thumbPrev" href="{previous.U_IMG}" title="{L_PREV_IMG}{previous.TITLE_IMG}" rel="prev">
|
||||
<a class="navThumb" id="thumbPrev" href="{previous.U_IMG}" title="{lang:previous_page} : {previous.TITLE_IMG}" rel="prev">
|
||||
<img src="{previous.IMG}" class="thumbLink" id="linkPrev" alt="{previous.TITLE_IMG}">
|
||||
</a>
|
||||
<!-- END previous -->
|
||||
<!-- BEGIN next -->
|
||||
<a class="navThumb" id="thumbNext" href="{next.U_IMG}" title="{L_NEXT_IMG}{next.TITLE_IMG}" rel="next">
|
||||
<a class="navThumb" id="thumbNext" href="{next.U_IMG}" title="{lang:next_page} : {next.TITLE_IMG}" rel="next">
|
||||
<img src="{next.IMG}" class="thumbLink" id="linkNext" alt="{next.TITLE_IMG}">
|
||||
</a>
|
||||
<!-- END next -->
|
||||
@@ -171,7 +164,7 @@
|
||||
|
||||
<!-- BEGIN comments -->
|
||||
<div id="comments">
|
||||
<h2>[{comments.NB_COMMENT}] {L_COMMENT_TITLE}</h2>
|
||||
<h2>[{comments.NB_COMMENT}] {lang:comments_title}</h2>
|
||||
|
||||
<div class="navigationBar">{comments.NAV_BAR}</div>
|
||||
|
||||
@@ -179,8 +172,8 @@
|
||||
<div class="comment">
|
||||
<!-- BEGIN delete -->
|
||||
<p class="userCommentDelete">
|
||||
<a href="{comments.comment.delete.U_COMMENT_DELETE}" title="{L_DELETE_COMMENT}">
|
||||
<img src="{pwg_root}{themeconf:icon_dir}/delete.png" class="button" style="border:none;vertical-align:middle; margin-left:5px;" alt="[{L_DELETE}]"/>
|
||||
<a href="{comments.comment.delete.U_COMMENT_DELETE}" title="{lang:comments_del}">
|
||||
<img src="{pwg_root}{themeconf:icon_dir}/delete.png" class="button" style="border:none;vertical-align:middle; margin-left:5px;" alt="[{lang:delete}]"/>
|
||||
</a>
|
||||
</p>
|
||||
<!-- END delete -->
|
||||
@@ -192,20 +185,18 @@
|
||||
<!-- BEGIN add_comment -->
|
||||
<form method="post" action="{U_ADD_COMMENT}" class="filter" id="addComment">
|
||||
<fieldset>
|
||||
<legend>{L_ADD_COMMENT}</legend>
|
||||
<legend>{lang:comments_add}</legend>
|
||||
<!-- BEGIN author_field -->
|
||||
<label>{L_AUTHOR}<input type="text" name="author"></label>
|
||||
<label>{lang:upload_author}<input type="text" name="author"></label>
|
||||
<!-- END author_field -->
|
||||
<!-- BEGIN author_known -->
|
||||
<input type="hidden" name="author" value="{comments.add_comment.author_known.KNOWN_AUTHOR}">
|
||||
<!-- END author_known -->
|
||||
<label>{L_COMMENT}<textarea name="content" rows="10" cols="80"></textarea></label>
|
||||
<input type="submit" value="{L_SUBMIT}" {TAG_INPUT_ENABLED}>
|
||||
<label>{lang:comment}<textarea name="content" rows="10" cols="80"></textarea></label>
|
||||
<input type="submit" value="{lang:submit}">
|
||||
</fieldset>
|
||||
</form>
|
||||
<!-- END add_comment -->
|
||||
|
||||
</div>
|
||||
<!-- END comments -->
|
||||
|
||||
|
||||
|
||||
8
template/yoga/picture_content.tpl
Normal file
8
template/yoga/picture_content.tpl
Normal file
@@ -0,0 +1,8 @@
|
||||
<!-- BEGIN high -->
|
||||
<a href="javascript:phpWGOpenWindow('{high.U_HIGH}','{high.UUID}','scrollbars=yes,toolbar=no,status=no,resizable=yes')">
|
||||
<!-- END high -->
|
||||
<img src="{SRC_IMG}" style="width:{WIDTH_IMG}px;height:{HEIGHT_IMG}px;" alt="{ALT_IMG}" />
|
||||
<!-- BEGIN high -->
|
||||
</a>
|
||||
<p>{lang:picture_high}</p>
|
||||
<!-- END high -->
|
||||
Reference in New Issue
Block a user