====== Compilation de plugins personnels ======
Voici une liste des petits plugins que vous pouvez utiliser avec [[http://fr.piwigo.org/ext/extension_view.php?eid=144|LocalFilesEditor]].
==== Ajouter une barre de navigation en haut ====
Sur la page des miniatures, si vous avez beaucoup d'éléments, vous pouvez avoir envie d'ajouter une barre de navigation en haut de la page, en plus de celle qui est en bas.
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);
}
?>
==== Supprimer le compteur dans le fil d'Ariane ====
get_template_vars('TITLE');
$pos = strrpos($titre,"[");
if ($pos !== false)
{
$template->assign('TITLE', substr($titre, 0, $pos));
}
}
?>
==== Un seul niveau dans le titre de la page ====
Ce plugin n'affiche que le dernier album dans le titre de la page, pas l'arborescence complète.
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'])));
}
}
?>
==== Changement de thème par URL ====
The plugin permet de partager une URL avec un paramètre additional pour forcer le thème.
Par exemple : http://mysite.com/picture.php?/246/category/186&temp_theme=Stripped ouvrira l'image avec le thème Stripped quelque soit le thème par défaut.
Ne fonctionne que sur picture.php
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&temp_theme={$TEMP_THEME}"';
}
return preg_replace($search, $replace, $content);
}
?>
==== Scroll To Top =====
Ajoute un bouton sur toutes les pages pour retourner en douceur en haut de la page, le bouton s'affiche après 100px.
set_prefilter('header', 'scroll_to_top_pref', 100);
}
function scroll_to_top_pref($content)
{
$search = '';
$scroll = '
{html_style}{literal}
.scrollup {
width:48px; height:48px; opacity:0.7; position:fixed; border-radius:24px;
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;
z-index:1000; border:none !important; text-decoration:none !important;
}
.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}
Scroll';
return str_replace($search, $search.$scroll, $content);
}
?>
==== Afficher la langue des utilisateurs dans le panneau de gestion =====
Pour Piwigo 2.5 et plus anciens
Ajoute une colonne affichant la langue de chaque utilisateur dans le panneau de gestion des utilisateurs.
append('plugin_user_list_column_titles', l10n('Language'));
$user_ids = array();
foreach ($visible_user_list as $i => $user)
{
$user_ids[$i] = $user['id'];
}
$user_nums = array_flip($user_ids);
$languages = get_languages();
/* Sql request to fill the language fields */
if (!empty($user_ids))
{
$query = '
SELECT DISTINCT user_id, language
FROM '.USER_INFOS_TABLE.'
WHERE user_id IN ('.implode(',', $user_ids).')
;';
$result = pwg_query($query);
while ($row = pwg_db_fetch_assoc($result))
{
$visible_user_list[$user_nums[$row['user_id']]]['plugin_columns'][] = $languages[$row['language']];;
}
}
return $visible_user_list;
}
?>
==== Une image sur le plugin GuestBook ===
assign('gb_image', $selected_derivative);
$template->set_prefilter('index', 'add_guestbook_image_prefilter');
}
}
function add_guestbook_image_prefilter($content)
{
$search = '{if isset($comment_add)}';
$add = 'get_size_htm()}">
';
return str_replace($search, $add."\n".$search, $content);
}
?>
More to come...
Plus à venir...