This is an old revision of the document!


Compilation of personal plugins

Here is a list of very simple plugins you can use with LocalFilesEditor.

Add a top navigation bar

On thumbnails list, if you have severals items, you may want to display the navigation bar on the top in addition to the bottom one.

<?php
/*
Plugin Name: Navbar on top
Version: 1.0
Author: Mistic
Author URI: http://www.strangeplanet.fr
*/
 
add_event_handler('loc_end_index', 'top_navbar');
function top_navbar()
{
  global $template;
  $template->set_prefilter('index', 'top_navbar_prefilter');
}
function top_navbar_prefilter($content, &$smarty)
{
  $search = '{if !empty($CATEGORIES)}{$CATEGORIES}{/if}';
  $add = '{if !empty($navbar)}{include file=\'navigation_bar.tpl\'|@get_extent:\'navbar\'}{/if}';
  return str_replace($search, $add.$search, $content);
}
?>

Remove photo counter in the breadcrumb

<?php
/*
Plugin Name: Remove breadcrumb photocounter
Version: 1.0
Author: barbichou
*/
 
add_event_handler('loc_end_index', 'no_breadcrumb_counter');
function no_breadcrumb_counter()
{
  global $template;
  $titre = $template->get_template_vars('TITLE');
  $pos = strrpos($titre,"[");
  if ($pos !== false)
  {
    $template->assign('TITLE', substr($titre, 0, $pos));
  }
}
?>

One level page title

This plugins displays only the last album name in page title, not the full tree.

<?php
/*
Plugin Name: One level in page title
Version: 1.0
Author:barbichou
*/
 
add_event_handler('loc_end_page_header', 'one_level_pagetitle');
function one_level_pagetitle()
{
  global $template, $conf;
  $titre = $template->get_template_vars('PAGE_TITLE');
  $pos = strrpos($titre, $conf['level_separator']);
  if ($pos!==false)
  {
    $template->assign('PAGE_TITLE', substr($titre, $pos+strlen($conf['level_separator']))); 
  }
}
?>

Theme Switch From URL

This plugin allows to give URL with a additional parameter witch will force the current theme. For exemple : http://mysite.com/picture.php?/246/category/186&temp_theme=Stripped will open this picture page with the theme Stripped whatever is the default theme. Only works for picture page.

<?php
/*
Plugin Name: Theme Switch From URL
Version: 1.0
Author: Mistic
Author URI: http://www.strangeplanet.fr
*/
 
add_event_handler('user_init', 'theme_controler_lite1');
add_event_handler('init', 'theme_controler_lite2');
 
function theme_controler_lite1()
{
  global $user;
 
  if ( isset($_GET['temp_theme']) and file_exists(PHPWG_THEMES_PATH.$_GET['temp_theme']) )
  {
    $user['theme'] = $_GET['temp_theme'];
  }
}
function theme_controler_lite2()
{
  global $template;
 
  if ( isset($_GET['temp_theme']) and file_exists(PHPWG_THEMES_PATH.$_GET['temp_theme']) )
  {
    $template->assign('TEMP_THEME', $_GET['temp_theme']);
    $template->set_prefilter('picture', 'theme_controler_lite_prefilter');
  }
}
function theme_controler_lite_prefilter($content)
{
  global $conf;
  if ($conf['question_mark_in_urls']==false)
  {
    $search = '#(action|href)="([^?"]*)"#';
    $replace = '$1="$2?temp_theme={$TEMP_THEME}"';
  }
  else
  {
    $search = '#(action|href)="([^"]*)"#';
    $replace = '$1="$2&amp;temp_theme={$TEMP_THEME}"';
  }
 
  return preg_replace($search, $replace, $content);
}
?>

Scroll To Top

This adds a simple button to smoothly scroll the page to the top, the links appears after 100px of scroll down.

<?php
/*
Plugin Name: Scroll To Top
Version: 1.0
Author: Mistic100
*/
 
add_event_handler('loc_end_page_header', 'scroll_to_top');
 
function scroll_to_top()
{
  global $template;
  $template->set_prefilter('header', 'scroll_to_top_pref', 100);
}
 
function scroll_to_top_pref($content)
{
  $search = '<body id="{$BODY_ID}">';
  $scroll = '
{html_style}{literal}
.scrollup {
    width:48px;
    height:48px;
    opacity:0.7;
    position:fixed;
    bottom:50px;
    right:50px;
    display:none;
    text-indent:-9999px;
    background: rgba(255,255,255,0.8) url("http://cdn4.iconfinder.com/data/icons/cc_mono_icon_set/blacks/48x48/round_and_up.png") no-repeat;
    border-radius:24px;
}
.scrollup:hover { opacity:1; }
{/literal}{/html_style}
{footer_script}{literal}
jQuery(window).scroll(function(){
    if (jQuery(this).scrollTop() > 100) {
        jQuery(".scrollup").fadeIn();
    } else {
        jQuery(".scrollup").fadeOut();
    }
});
 
jQuery(".scrollup").click(function(){
    jQuery("html, body").animate({ scrollTop: 0 }, 600);
    return false;
});
{/literal}{/footer_script}
<a href="#" class="scrollup">Scroll</a>';
 
  return str_replace($search, $search.$scroll, $content);
}
?>

More to come…

 
Back to top
dev/compilation_of_personal_plugins.1359072120.txt.gz · Last modified: 2013/01/25 00:02 by mistic100
 
 
github twitter newsletter Donate Piwigo.org © 2002-2024 · Contact