feature:2832 Provide better integration of plugins adding a all new section
see future version of skeleton/trunk for usage git-svn-id: http://piwigo.org/svn/trunk@23396 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
1a5ba81093
commit
2d15ba1746
2 changed files with 249 additions and 173 deletions
360
index.php
360
index.php
|
@ -68,8 +68,8 @@ if (isset($_GET['display']))
|
|||
pwg_set_session_var('index_deriv', $_GET['display']);
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------- initialization
|
||||
|
||||
//-------------------------------------------------------------- initialization
|
||||
// navigation bar
|
||||
$page['navigation_bar'] = array();
|
||||
if (count($page['items']) > $page['nb_image_page'])
|
||||
|
@ -107,15 +107,8 @@ else
|
|||
}
|
||||
$template->assign('U_CANONICAL', $canonical_url);
|
||||
|
||||
//----------------------------------------------------- template initialization
|
||||
//
|
||||
// Start output of page
|
||||
//
|
||||
//-------------------------------------------------------------- page title
|
||||
$title = $page['title'];
|
||||
$page['body_id'] = 'theCategoryPage';
|
||||
|
||||
$template->set_filenames( array('index'=>'index.tpl') );
|
||||
//-------------------------------------------------------------- category title
|
||||
$template_title = $page['section_title'];
|
||||
if (count($page['items']) > 0)
|
||||
{
|
||||
|
@ -123,219 +116,240 @@ if (count($page['items']) > 0)
|
|||
}
|
||||
$template->assign('TITLE', $template_title);
|
||||
|
||||
if (isset($page['flat']) or isset($page['chronology_field']))
|
||||
{
|
||||
$template->assign(
|
||||
'U_MODE_NORMAL',
|
||||
duplicate_index_url( array(), array('chronology_field', 'start', 'flat') )
|
||||
);
|
||||
}
|
||||
//-------------------------------------------------------------- menubar
|
||||
include( PHPWG_ROOT_PATH.'include/menubar.inc.php');
|
||||
|
||||
if ($conf['index_flat_icon'] and !isset($page['flat']) and 'categories' == $page['section'])
|
||||
{
|
||||
$template->assign(
|
||||
'U_MODE_FLAT',
|
||||
duplicate_index_url(array('flat' => ''), array('start', 'chronology_field'))
|
||||
);
|
||||
}
|
||||
|
||||
if (!isset($page['chronology_field']))
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | index page (categories, thumbnails, search, calendar, random, etc.) |
|
||||
// +-----------------------------------------------------------------------+
|
||||
if ( empty($page['is_external']) or !$page['is_external'] )
|
||||
{
|
||||
$chronology_params =
|
||||
array(
|
||||
'chronology_field' => 'created',
|
||||
'chronology_style' => 'monthly',
|
||||
'chronology_view' => 'list',
|
||||
);
|
||||
if ($conf['index_created_date_icon'])
|
||||
//----------------------------------------------------- template initialization
|
||||
$page['body_id'] = 'theCategoryPage';
|
||||
|
||||
$template->set_filename('index', 'index.tpl');
|
||||
|
||||
if (isset($page['flat']) or isset($page['chronology_field']))
|
||||
{
|
||||
$template->assign(
|
||||
'U_MODE_CREATED',
|
||||
duplicate_index_url( $chronology_params, array('start', 'flat') )
|
||||
'U_MODE_NORMAL',
|
||||
duplicate_index_url( array(), array('chronology_field', 'start', 'flat') )
|
||||
);
|
||||
}
|
||||
if ($conf['index_posted_date_icon'])
|
||||
|
||||
if ($conf['index_flat_icon'] and !isset($page['flat']) and 'categories' == $page['section'])
|
||||
{
|
||||
$chronology_params['chronology_field'] = 'posted';
|
||||
$template->assign(
|
||||
'U_MODE_POSTED',
|
||||
duplicate_index_url( $chronology_params, array('start', 'flat') )
|
||||
'U_MODE_FLAT',
|
||||
duplicate_index_url(array('flat' => ''), array('start', 'chronology_field'))
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($page['chronology_field'] == 'created')
|
||||
|
||||
if (!isset($page['chronology_field']))
|
||||
{
|
||||
$chronology_field = 'posted';
|
||||
$chronology_params = array(
|
||||
'chronology_field' => 'created',
|
||||
'chronology_style' => 'monthly',
|
||||
'chronology_view' => 'list',
|
||||
);
|
||||
if ($conf['index_created_date_icon'])
|
||||
{
|
||||
$template->assign(
|
||||
'U_MODE_CREATED',
|
||||
duplicate_index_url( $chronology_params, array('start', 'flat') )
|
||||
);
|
||||
}
|
||||
if ($conf['index_posted_date_icon'])
|
||||
{
|
||||
$chronology_params['chronology_field'] = 'posted';
|
||||
$template->assign(
|
||||
'U_MODE_POSTED',
|
||||
duplicate_index_url( $chronology_params, array('start', 'flat') )
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$chronology_field = 'created';
|
||||
if ($page['chronology_field'] == 'created')
|
||||
{
|
||||
$chronology_field = 'posted';
|
||||
}
|
||||
else
|
||||
{
|
||||
$chronology_field = 'created';
|
||||
}
|
||||
if ($conf['index_'.$chronology_field.'_date_icon'])
|
||||
{
|
||||
$url = duplicate_index_url(
|
||||
array('chronology_field'=>$chronology_field ),
|
||||
array('chronology_date', 'start', 'flat')
|
||||
);
|
||||
$template->assign(
|
||||
'U_MODE_'.strtoupper($chronology_field),
|
||||
$url
|
||||
);
|
||||
}
|
||||
}
|
||||
if ($conf['index_'.$chronology_field.'_date_icon'])
|
||||
|
||||
if ('search' == $page['section'])
|
||||
{
|
||||
$url = duplicate_index_url(
|
||||
array('chronology_field'=>$chronology_field ),
|
||||
array('chronology_date', 'start', 'flat')
|
||||
);
|
||||
$template->assign(
|
||||
'U_MODE_'.strtoupper($chronology_field),
|
||||
$url
|
||||
'U_SEARCH_RULES',
|
||||
get_root_url().'search_rules.php?search_id='.$page['search']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ('search' == $page['section'])
|
||||
{
|
||||
$template->assign(
|
||||
'U_SEARCH_RULES',
|
||||
get_root_url().'search_rules.php?search_id='.$page['search']
|
||||
);
|
||||
}
|
||||
|
||||
if (isset($page['category']) and is_admin())
|
||||
{
|
||||
$template->assign(
|
||||
'U_EDIT',
|
||||
get_root_url().'admin.php?page=album-'.$page['category']['id']
|
||||
);
|
||||
}
|
||||
|
||||
if (is_admin() and !empty($page['items']))
|
||||
{
|
||||
$template->assign(
|
||||
'U_CADDIE',
|
||||
add_url_params(duplicate_index_url(), array('caddie'=>1) )
|
||||
);
|
||||
}
|
||||
|
||||
if ( $page['section']=='search' and $page['start']==0 and
|
||||
!isset($page['chronology_field']) and isset($page['qsearch_details']) )
|
||||
{
|
||||
$template->assign('QUERY_SEARCH',
|
||||
htmlspecialchars($page['qsearch_details']['q']) );
|
||||
|
||||
$cats = array_merge(
|
||||
(array)@$page['qsearch_details']['matching_cats_no_images'],
|
||||
(array)@$page['qsearch_details']['matching_cats'] );
|
||||
if (count($cats))
|
||||
if (isset($page['category']) and is_admin())
|
||||
{
|
||||
usort($cats, 'name_compare');
|
||||
$hints = array();
|
||||
foreach ( $cats as $cat )
|
||||
$template->assign(
|
||||
'U_EDIT',
|
||||
get_root_url().'admin.php?page=album-'.$page['category']['id']
|
||||
);
|
||||
}
|
||||
|
||||
if (is_admin() and !empty($page['items']))
|
||||
{
|
||||
$template->assign(
|
||||
'U_CADDIE',
|
||||
add_url_params(duplicate_index_url(), array('caddie'=>1) )
|
||||
);
|
||||
}
|
||||
|
||||
if ( $page['section']=='search' and $page['start']==0 and
|
||||
!isset($page['chronology_field']) and isset($page['qsearch_details']) )
|
||||
{
|
||||
$template->assign('QUERY_SEARCH',
|
||||
htmlspecialchars($page['qsearch_details']['q']) );
|
||||
|
||||
$cats = array_merge(
|
||||
(array)@$page['qsearch_details']['matching_cats_no_images'],
|
||||
(array)@$page['qsearch_details']['matching_cats'] );
|
||||
if (count($cats))
|
||||
{
|
||||
$hints[] = get_cat_display_name( array($cat), '', false );
|
||||
usort($cats, 'name_compare');
|
||||
$hints = array();
|
||||
foreach ( $cats as $cat )
|
||||
{
|
||||
$hints[] = get_cat_display_name( array($cat), '', false );
|
||||
}
|
||||
$template->assign( 'category_search_results', $hints);
|
||||
}
|
||||
|
||||
$tags = (array)@$page['qsearch_details']['matching_tags'];
|
||||
foreach ( $tags as $tag )
|
||||
{
|
||||
$tag['URL'] = make_index_url(array('tags'=>array($tag)));
|
||||
$template->append( 'tag_search_results', $tag);
|
||||
}
|
||||
$template->assign( 'category_search_results', $hints);
|
||||
}
|
||||
|
||||
$tags = (array)@$page['qsearch_details']['matching_tags'];
|
||||
foreach ( $tags as $tag )
|
||||
|
||||
if ( $conf['index_sort_order_input']
|
||||
and count($page['items']) > 0
|
||||
and $page['section'] != 'most_visited'
|
||||
and $page['section'] != 'best_rated')
|
||||
{
|
||||
$tag['URL'] = make_index_url(array('tags'=>array($tag)));
|
||||
$template->append( 'tag_search_results', $tag);
|
||||
// image order
|
||||
$order_idx = pwg_get_session_var( 'image_order', 0 );
|
||||
|
||||
$url = add_url_params(
|
||||
duplicate_index_url(),
|
||||
array('image_order' => '')
|
||||
);
|
||||
foreach (get_category_preferred_image_orders() as $order_id => $order)
|
||||
{
|
||||
if ($order[2])
|
||||
{
|
||||
$template->append(
|
||||
'image_orders',
|
||||
array(
|
||||
'DISPLAY' => $order[0],
|
||||
'URL' => $url.$order_id,
|
||||
'SELECTED' => ($order_idx == $order_id ? true:false),
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( $conf['index_sort_order_input']
|
||||
and count($page['items']) > 0
|
||||
and $page['section'] != 'most_visited'
|
||||
and $page['section'] != 'best_rated')
|
||||
{
|
||||
// image order
|
||||
$order_idx = pwg_get_session_var( 'image_order', 0 );
|
||||
|
||||
$url = add_url_params(
|
||||
duplicate_index_url(),
|
||||
array('image_order' => '')
|
||||
);
|
||||
foreach (get_category_preferred_image_orders() as $order_id => $order)
|
||||
// category comment
|
||||
if ($page['start']==0 and !isset($page['chronology_field']) and !empty($page['comment']) )
|
||||
{
|
||||
if ($order[2])
|
||||
$template->assign('CONTENT_DESCRIPTION', $page['comment'] );
|
||||
}
|
||||
|
||||
if ( isset($page['category']['count_categories']) and $page['category']['count_categories']==0 )
|
||||
{// count_categories might be computed by menubar - if the case unassign flat link if no sub albums
|
||||
$template->clear_assign('U_MODE_FLAT');
|
||||
}
|
||||
|
||||
//------------------------------------------------------ main part : thumbnails
|
||||
if ( 0==$page['start']
|
||||
and !isset($page['flat'])
|
||||
and !isset($page['chronology_field'])
|
||||
and ('recent_cats'==$page['section'] or 'categories'==$page['section'])
|
||||
and (!isset($page['category']['count_categories']) or $page['category']['count_categories']>0 )
|
||||
)
|
||||
{
|
||||
include(PHPWG_ROOT_PATH.'include/category_cats.inc.php');
|
||||
}
|
||||
|
||||
if ( !empty($page['items']) )
|
||||
{
|
||||
include(PHPWG_ROOT_PATH.'include/category_default.inc.php');
|
||||
$url = add_url_params(
|
||||
duplicate_index_url(),
|
||||
array('display' => '')
|
||||
);
|
||||
|
||||
$selected_type = $template->get_template_vars('derivative_params')->type;
|
||||
$template->clear_assign( 'derivative_params' );
|
||||
$type_map = ImageStdParams::get_defined_type_map();
|
||||
unset($type_map[IMG_XXLARGE], $type_map[IMG_XLARGE]);
|
||||
|
||||
foreach($type_map as $params)
|
||||
{
|
||||
$template->append(
|
||||
'image_orders',
|
||||
'image_derivatives',
|
||||
array(
|
||||
'DISPLAY' => $order[0],
|
||||
'URL' => $url.$order_id,
|
||||
'SELECTED' => ($order_idx == $order_id ? true:false),
|
||||
'DISPLAY' => l10n($params->type),
|
||||
'URL' => $url.$params->type,
|
||||
'SELECTED' => ($params->type == $selected_type ? true:false),
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// category comment
|
||||
if ($page['start']==0 and !isset($page['chronology_field']) and !empty($page['comment']) )
|
||||
{
|
||||
$template->assign('CONTENT_DESCRIPTION', $page['comment'] );
|
||||
}
|
||||
|
||||
// include menubar
|
||||
include( PHPWG_ROOT_PATH.'include/menubar.inc.php');
|
||||
|
||||
if ( isset($page['category']['count_categories']) and $page['category']['count_categories']==0 )
|
||||
{// count_categories might be computed by menubar - if the case unassign flat link if no sub albums
|
||||
$template->clear_assign('U_MODE_FLAT');
|
||||
}
|
||||
|
||||
//------------------------------------------------------ main part : thumbnails
|
||||
if ( 0==$page['start']
|
||||
and !isset($page['flat'])
|
||||
and !isset($page['chronology_field'])
|
||||
and ('recent_cats'==$page['section'] or 'categories'==$page['section'])
|
||||
and (!isset($page['category']['count_categories']) or $page['category']['count_categories']>0 )
|
||||
)
|
||||
{
|
||||
include(PHPWG_ROOT_PATH.'include/category_cats.inc.php');
|
||||
}
|
||||
|
||||
if ( !empty($page['items']) )
|
||||
{
|
||||
include(PHPWG_ROOT_PATH.'include/category_default.inc.php');
|
||||
$url = add_url_params(
|
||||
duplicate_index_url(),
|
||||
array('display' => '')
|
||||
);
|
||||
$selected_type = $template->get_template_vars('derivative_params')->type;
|
||||
$template->clear_assign( 'derivative_params' );
|
||||
$type_map = ImageStdParams::get_defined_type_map();
|
||||
unset($type_map[IMG_XXLARGE], $type_map[IMG_XLARGE]);
|
||||
foreach($type_map as $params)
|
||||
// slideshow
|
||||
// execute after init thumbs in order to have all picture informations
|
||||
if (!empty($page['cat_slideshow_url']))
|
||||
{
|
||||
$template->append(
|
||||
'image_derivatives',
|
||||
array(
|
||||
'DISPLAY' => l10n($params->type),
|
||||
'URL' => $url.$params->type,
|
||||
'SELECTED' => ($params->type == $selected_type ? true:false),
|
||||
)
|
||||
);
|
||||
if (isset($_GET['slideshow']))
|
||||
{
|
||||
redirect($page['cat_slideshow_url']);
|
||||
}
|
||||
elseif ($conf['index_slideshow_icon'])
|
||||
{
|
||||
$template->assign('U_SLIDESHOW', $page['cat_slideshow_url']);
|
||||
}
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------- category informations
|
||||
|
||||
// slideshow
|
||||
// execute after init thumbs in order to have all picture informations
|
||||
if (!empty($page['cat_slideshow_url']))
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | other pages (added by plugins) |
|
||||
// +-----------------------------------------------------------------------+
|
||||
else
|
||||
{
|
||||
if (isset($_GET['slideshow']))
|
||||
{
|
||||
redirect($page['cat_slideshow_url']);
|
||||
}
|
||||
elseif ($conf['index_slideshow_icon'])
|
||||
{
|
||||
$template->assign('U_SLIDESHOW', $page['cat_slideshow_url']);
|
||||
}
|
||||
$template->set_filename('index', 'common_page.tpl');
|
||||
}
|
||||
|
||||
//------------------------------------------------------------ end
|
||||
include(PHPWG_ROOT_PATH.'include/page_header.php');
|
||||
trigger_action('loc_end_index');
|
||||
flush_page_messages();
|
||||
$template->parse_index_buttons();
|
||||
$template->pparse('index');
|
||||
|
||||
//------------------------------------------------------------ log informations
|
||||
pwg_log();
|
||||
include(PHPWG_ROOT_PATH.'include/page_tail.php');
|
||||
|
|
62
themes/default/template/common_page.tpl
Normal file
62
themes/default/template/common_page.tpl
Normal file
|
@ -0,0 +1,62 @@
|
|||
{combine_script id='core.switchbox' load='footer' require='jquery' path='themes/default/js/switchbox.js'}
|
||||
{$MENUBAR}
|
||||
|
||||
|
||||
{if isset($errors) or isset($infos)}
|
||||
<div class="content messages{if isset($MENUBAR)} contentWithMenu{/if}">
|
||||
{include file='infos_errors.tpl'}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{if !empty($PLUGIN_INDEX_CONTENT_BEFORE)}{$PLUGIN_INDEX_CONTENT_BEFORE}{/if}
|
||||
<div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}">
|
||||
<div class="titrePage">
|
||||
<ul class="categoryActions">
|
||||
{if !empty($image_orders)}
|
||||
<li>{strip}<a id="sortOrderLink" title="{'Sort order'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
|
||||
<span class="pwg-icon pwg-icon-sort"> </span><span class="pwg-button-text">{'Sort order'|@translate}</span>
|
||||
</a>
|
||||
<div id="sortOrderBox" class="switchBox">
|
||||
<div class="switchBoxTitle">{'Sort order'|@translate}</div>
|
||||
{foreach from=$image_orders item=image_order name=loop}{if !$smarty.foreach.loop.first}<br>{/if}
|
||||
{if $image_order.SELECTED}
|
||||
<span>✔ </span>{$image_order.DISPLAY}
|
||||
{else}
|
||||
<span style="visibility:hidden">✔ </span><a href="{$image_order.URL}" rel="nofollow">{$image_order.DISPLAY}</a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</div>
|
||||
{footer_script require='core.switchbox'}switchBox("#sortOrderLink", "#sortOrderBox");{/footer_script}
|
||||
{/strip}</li>
|
||||
{/if}
|
||||
{if !empty($image_derivatives)}
|
||||
<li>{strip}<a id="derivativeSwitchLink" title="{'Photo sizes'|@translate}" class="pwg-state-default pwg-button" rel="nofollow">
|
||||
<span class="pwg-icon pwg-icon-sizes"> </span><span class="pwg-button-text">{'Photo sizes'|@translate}</span>
|
||||
</a>
|
||||
<div id="derivativeSwitchBox" class="switchBox">
|
||||
<div class="switchBoxTitle">{'Photo sizes'|@translate}</div>
|
||||
{foreach from=$image_derivatives item=image_derivative name=loop}{if !$smarty.foreach.loop.first}<br>{/if}
|
||||
{if $image_derivative.SELECTED}
|
||||
<span>✔ </span>{$image_derivative.DISPLAY}
|
||||
{else}
|
||||
<span style="visibility:hidden">✔ </span><a href="{$image_derivative.URL}" rel="nofollow">{$image_derivative.DISPLAY}</a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</div>
|
||||
{footer_script require='core.switchbox'}switchBox("#derivativeSwitchLink", "#derivativeSwitchBox");{/footer_script}
|
||||
{/strip}</li>
|
||||
{/if}
|
||||
{if !empty($PLUGIN_INDEX_BUTTONS)}{foreach from=$PLUGIN_INDEX_BUTTONS item=button}<li>{$button}</li>{/foreach}{/if}
|
||||
{if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if}
|
||||
</ul>
|
||||
|
||||
<h2>{$TITLE}</h2>
|
||||
</div>{* <!-- titrePage --> *}
|
||||
|
||||
{if !empty($PLUGIN_INDEX_CONTENT_BEGIN)}{$PLUGIN_INDEX_CONTENT_BEGIN}{/if}
|
||||
|
||||
{if !empty($CONTENT)}{$CONTENT}{/if}
|
||||
|
||||
{if !empty($PLUGIN_INDEX_CONTENT_END)}{$PLUGIN_INDEX_CONTENT_END}{/if}
|
||||
</div>{* <!-- content --> *}
|
||||
{if !empty($PLUGIN_INDEX_CONTENT_AFTER)}{$PLUGIN_INDEX_CONTENT_AFTER}{/if}
|
Loading…
Add table
Reference in a new issue