Index: /extensions/PWG_Stuffs/branch/2.1/admin/add_module.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/add_module.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/add_module.inc.php	(revision 9736)
@@ -0,0 +1,184 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+if ($page['tab'] == 'add_module')
+{
+  if (!isset($_GET['path']) or !isset($modules[$_GET['path']]))
+  {
+    die('Wrong module path.');
+  }
+  else
+  {
+    $module_path = $_GET['path'];
+  }
+}
+
+// Save module
+if (isset($_POST['submit']) and !is_adviser())
+{
+  @include($module_path.'config.inc.php');
+  if (empty($page['errors']))
+  {
+    if (empty($_POST['module_name']))
+    {
+      array_push($page['errors'], l10n('stuffs_no_name'));
+    }
+    else
+    {
+      $module_name = $_POST['module_name'];
+      $desc = !empty($_POST['module_desc']) ? '"' . $_POST['module_desc'] . '"' : 'NULL';
+      $groups = !empty($_POST['groups']) ? '"' . implode(',', $_POST['groups']) . '"' : 'NULL';
+      $users = 'NULL';
+      if ($conf['Stuffs']['user_perm'])
+      {
+        $users = !empty($_POST['users']) ? '"' . implode(',', $_POST['users']) . '"' : '""';
+      }
+      $level = !empty($_POST['level']) ? $_POST['level'] : 0;
+      $show_title = isset($_POST['show_title']) ? '"true"' : '"false"';
+      $on_home = isset($_POST['on_home'])  ? '"true"' : '"false"';
+      $on_root = isset($_POST['on_root'])  ? '"true"' : '"false"';
+      $on_cats = isset($_POST['on_cats'])  ? '"true"' : '"false"';
+      $on_picture = isset($_POST['on_picture'])  ? '"true"' : '"false"';
+
+      $sav_datas = (!empty($datas) ? '"' . addslashes(serialize($datas)) . '"' : 'NULL');
+
+      if (isset($_GET['edit']))
+      {      
+        pwg_query('
+UPDATE ' . STUFFS_TABLE . '
+SET name ="' . $module_name . '",
+    descr=' . $desc . ',
+    datas=' . $sav_datas . ',
+    users=' . $users . ',
+    groups=' . $groups . ',
+    level=' . $level . ',
+    show_title=' . $show_title .',
+    on_home=' . $on_home .',
+    on_root=' . $on_root .',
+    on_cats=' . $on_cats . ',
+    on_picture='. $on_picture . '
+WHERE id = ' . $_GET['edit'] . ';');
+        if (isset($_GET['redirect']))
+        {
+          redirect(urldecode($_GET['redirect']));
+        }
+      }
+      else
+      {
+        $query = 'SELECT IF(MAX(id)+1 IS NULL, 1, MAX(id)+1) AS next_element_id  FROM ' . STUFFS_TABLE . ' ;';
+        list($next_element_id) = mysql_fetch_array(pwg_query($query));
+
+        $query = 'SELECT MAX(pos)+1 AS next_pos  FROM ' . STUFFS_TABLE . ' ;';
+        list($pos) = mysql_fetch_array(pwg_query($query));
+
+        $query = '
+INSERT INTO ' . STUFFS_TABLE . ' ( id, pos, name, descr, path, datas, users, groups, level, show_title, on_home, on_root, on_cats, on_picture, id_line, width )
+VALUES (' . $next_element_id . ' ,
+  ' . $pos . ',
+  "' . $module_name . '",
+  ' . $desc . ',
+  "' . $module_path . '",
+  ' . $sav_datas . ',
+  ' . $users . ',
+  ' . $groups . ',
+  ' . $level . ',
+  ' . $show_title . ',
+  ' . $on_home . ',
+  ' . $on_root . ',
+  ' . $on_cats . ',
+  ' . $on_picture . ',
+  NULL,
+  NULL);';
+        pwg_query($query);
+      }
+      redirect(PHPWG_ROOT_PATH.'admin.php?page=plugin&section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php');
+    }
+  }
+}
+
+// Default module data
+if ($page['tab'] == 'add_module')
+{
+  $module['users'] = array('guest', 'generic', 'normal', 'admin', 'webmaster');
+  $module['groups'] = array();
+
+  $template->assign(array(
+    'STUFFS_TITLE' => l10n('stuffs_add_mod'),
+    'MODULE_NAME' => $modules[$module_path]['name'],
+    'show_title_CHECKED' => true,
+    )
+  );
+
+  $template->assign('selected_options', array(
+    'on_home' => true,
+    'on_root' => true,
+    'on_cats' => false,
+    'on_picture' => false,
+    )
+  );
+}
+
+// Users perm
+if ($conf['Stuffs']['user_perm'])
+{
+  $users_id = array('guest', 'generic', 'normal', 'admin', 'webmaster');
+  $users = array();
+  foreach ($users_id as $id)
+  {
+    $users[$id] = l10n('user_status_'.$id);
+  }
+  $template->assign(array(
+    'users' => $users,
+    'selected_users' => isset($module['users']) ? $module['users'] : $users_id,
+    )
+  );
+}
+
+// Groups perm
+if ($conf['Stuffs']['group_perm'])
+{
+	$query = 'SELECT id, name FROM '.GROUPS_TABLE.' ORDER BY name ASC;';
+  $result = pwg_query($query);
+  $groups = array();
+  while ($row = pwg_db_fetch_assoc($result))
+  {
+    $groups[$row['id']] = $row['name'];
+  }
+  $template->assign(array(
+    'groups' => $groups,
+    'selected_groups' => isset($module['groups']) ? $module['groups'] : array(),
+    )
+  );
+}
+
+// Level perm
+if ($conf['Stuffs']['level_perm'])
+{
+  foreach ($conf['available_permission_levels'] as $level)
+  {
+    $level_options[$level] = l10n(sprintf('Level %d', $level));
+  }
+  $template->assign(array(
+    'level_perm' => $level_options,
+    'level_selected' => isset($module['level']) ? $module['level'] : 0,
+    )
+  );
+}
+
+// Display options
+$template->assign('display_options', array(
+  'on_home' => true,
+  'on_root' => true,
+  'on_cats' => true,
+  'on_picture' => true,
+  )
+);
+
+// Module configuration
+@include_once($module_path.'config.inc.php');
+
+$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/template/add_module.tpl'));
+$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/admin.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/admin.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/admin.php	(revision 9736)
@@ -0,0 +1,50 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $template, $conf, $user;
+
+load_language('plugin.lang', STUFFS_PATH);
+include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
+include_once(STUFFS_PATH . 'functions.inc.php');
+$my_base_url = get_admin_plugin_menu_link(__FILE__);
+
+// +-----------------------------------------------------------------------+
+// |                            Tabsheet
+// +-----------------------------------------------------------------------+
+$page['tab'] = isset($_GET['tab']) ? $_GET['tab'] : 'manage';
+
+$tabsheet = new tabsheet();
+$tabsheet->add('manage', l10n('stuffs_mods_management'), $my_base_url.'&amp;tab=manage');
+if ($page['tab'] == 'add_module')
+{
+  $tabsheet->add('add_module', l10n('stuffs_add_mod'), $my_base_url.'&amp;tab=add_module&amp;path='.$_GET['path']);
+}
+else
+{
+  $tabsheet->add('new', l10n('stuffs_add_mod'), $my_base_url.'&amp;tab=new');
+}
+if ($page['tab'] == 'edit_module')
+{
+  $tabsheet->add('edit_module', l10n('stuffs_edit_mod'), $my_base_url.'&amp;tab=edit_module&amp;edit='.$_GET['edit']);
+}
+$tabsheet->add('config', l10n('Configuration'), $my_base_url.'&amp;tab=config');
+$tabsheet->select($page['tab']);
+$tabsheet->assign();
+
+//Récupération des modules disponibles
+add_event_handler('get_stuffs_modules', 'get_default_stuffs_modules');
+$disp_modules = trigger_event('get_stuffs_modules', array());
+uasort($disp_modules, 'name_compare');
+
+$modules = array();
+foreach($disp_modules as $module)
+{
+  $module['path'] = PHPWG_ROOT_PATH.trim($module['path'], './').'/';
+  $modules[$module['path']] = $module;
+}
+
+// Include file
+include(STUFFS_PATH.'admin/'.$page['tab'].'.inc.php');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/config.inc.php	(revision 9736)
@@ -0,0 +1,48 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+// Save config
+if (isset($_POST['submit']))
+{
+  if (!$conf['Stuffs']['user_perm'] and isset($_POST['user_perm']))
+  {
+    pwg_query('UPDATE '.STUFFS_TABLE.' SET users = "guest,generic,normal,admin,webmaster";');
+  }
+  if ($conf['Stuffs']['user_perm'] and !isset($_POST['user_perm']))
+  {
+    pwg_query('UPDATE '.STUFFS_TABLE.' SET users = NULL;');
+  }
+  if ($conf['Stuffs']['level_perm'] and !isset($_POST['level_perm']))
+  {
+    $default_user = get_default_user_info(true);
+    pwg_query('UPDATE '.STUFFS_TABLE.' SET level = '.$default_user['level'].';');
+  }
+  if ($conf['Stuffs']['group_perm'] and !isset($_POST['group_perm']))
+  {
+    pwg_query('UPDATE '.STUFFS_TABLE.' SET groups = NULL;');
+  }
+  if ($conf['Stuffs']['level_perm'] and !isset($_POST['level_perm']))
+  {
+    pwg_query('UPDATE '.STUFFS_TABLE.' SET level = 0;');
+  }
+
+  $params = array('group_perm', 'user_perm', 'level_perm');
+
+  foreach ($params as $param)
+  {
+    $conf['Stuffs'][$param] = isset($_POST[$param]);
+  }
+
+  conf_update_param('PWG_Stuffs', pwg_db_real_escape_string(serialize($conf['Stuffs'])));
+
+  array_push($page['infos'], l10n('Information data registered in database'));
+}
+
+// Parametrage du template
+$template->assign('stuffs_conf', $conf['Stuffs']);
+
+$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/template/config.tpl'));
+$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/edit_module.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/edit_module.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/edit_module.inc.php	(revision 9736)
@@ -0,0 +1,34 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+// Retrieve module data
+$q = ('SELECT * FROM ' . STUFFS_TABLE . ' WHERE id = ' . $_GET['edit'] . ';');
+$module = mysql_fetch_array(pwg_query($q));
+
+$module['users'] = explode(',', $module['users']);
+$module['groups'] = explode(',', $module['groups']);
+
+$datas = (!empty($module['datas']) ? unserialize($module['datas']) : false);
+
+$template->assign(array(
+  'STUFFS_TITLE' => l10n('stuffs_edit_mod') . ' <i>' . trigger_event('render_stuffs_name', $module['name']) . '</i>',
+  'MODULE_NAME' => $module['name'],
+  'DESC_VALUE' => (isset($module['descr']) ? $module['descr'] : ''),
+  'show_title_CHECKED' => ($module['show_title'] == 'true'),
+  )
+);
+
+$template->assign('selected_options', array(
+  'on_home' => ($module['on_home'] == 'true'),
+  'on_root' => ($module['on_root'] == 'true'),
+  'on_cats' => ($module['on_cats'] == 'true'),
+  'on_picture' => ($module['on_picture'] == 'true'),
+  )
+);
+
+$module_path = $module['path'];
+
+include('add_module.inc.php');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/manage.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/manage.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/manage.inc.php	(revision 9736)
@@ -0,0 +1,103 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $pwg_loaded_plugins;
+
+// Delete module
+if (isset($_GET['del']) and !is_adviser())
+{
+  pwg_query('DELETE FROM ' . STUFFS_TABLE . ' WHERE id = ' . $_GET['del'] . ' LIMIT 1;');
+  redirect(PHPWG_ROOT_PATH.'admin.php?page=plugin&section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php');
+}
+
+// Save order
+if (isset($_POST['submitOrder']) and !is_adviser())
+{
+  asort($_POST['position'], SORT_NUMERIC);
+  $pos = 1;
+  foreach($_POST['position'] as $id => $old_pos)
+  {
+    $id_line = !empty($_POST['id_line'][$id]) ? '"'.$_POST['id_line'][$id].'"' : 'NULL';
+    $width = (!empty($_POST['width'][$id]) and is_numeric($_POST['width'][$id])) ? '"'.$_POST['width'][$id].'"' : 'NULL';
+
+    pwg_query('
+UPDATE ' . STUFFS_TABLE . '
+SET pos=' . $pos++ . ' , id_line='.$id_line.', width='.$width.'
+WHERE id=' . $id . ' LIMIT 1');
+  }
+
+    pwg_query('
+UPDATE ' . STUFFS_TABLE . '
+SET datas = "'.addslashes(serialize(!isset($_POST['hidemb']))).'"
+WHERE id=0;');
+
+  array_push($page['infos'], l10n('stuffs_order_saved'));
+}
+
+// Display
+$q = 'SELECT id, name, descr, path, id_line, width, datas
+FROM ' . STUFFS_TABLE . '
+ORDER BY pos ASC;';
+$result = pwg_query($q);
+$num = 0;
+$pos = 1;
+$id_line_options = array(
+    '' => '-',
+    'A' => 'A',
+    'B' => 'B',
+    'C' => 'C',
+    'D' => 'D',
+    'E' => 'E',
+    'F' => 'F',
+    'G' => 'G',
+    'H' => 'H',
+    'I' => 'I',
+    'J' => 'J');
+
+while ($module = mysql_fetch_assoc($result))
+{
+  $module['name'] = !empty($module['path']) ? $module['name'] : l10n('stuffs_main_block');
+
+  $missing_message = '';
+  if ($module['path'] == PHPWG_PLUGINS_PATH.'piclens/stuffs_module/' and !file_exists(PICLENS_PATH.'stuffs_module/main.inc.php'))
+  {
+    $missing_message = l10n('stuffs_piclens_need_upgrade');
+  }
+  if (!empty($module['path']))
+  {
+    preg_match('#^'.preg_quote(PHPWG_PLUGINS_PATH).'([^/]*?)/#', $module['path'], $match);
+    if (!isset($pwg_loaded_plugins[$match[1]]))
+    {
+      $missing_message = l10n('stuffs_parent_plugin_is_missing');
+    }
+  }
+
+  $template->append('modules', array(
+    'ID' => $module['id'],
+    'NAME' => trigger_event('render_stuffs_name', $module['name']),
+    'DESC' => $module['descr'],
+    'PATH' => $module['path'],
+    'TYPE_NAME' => (isset($modules[$module['path']]['name']) ? $modules[$module['path']]['name'] : ''),
+    'POS' => 10 * $pos++,
+    'ID_LINE_OPTIONS' => $id_line_options,
+    'ID_LINE_SELECTED' => $module['id_line'],
+    'WIDTH' => $module['width'],
+    'ID' => $module['id'],
+    'U_EDIT' => PHPWG_ROOT_PATH . 'admin.php?page=plugin&amp;section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php&amp;tab=edit_module&amp;edit='.$module['id'],
+    'U_DELETE' => !is_adviser() ? PHPWG_ROOT_PATH . 'admin.php?page=plugin&amp;section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php&amp;del=' . $module['id'] : '',
+    'MISSING' => $missing_message,
+    )
+  );
+
+  if (empty($module['path']))
+  {
+    $show = unserialize($module['datas']);
+    $template->assign('HIDEMB', !$show); 
+  }
+}
+
+$template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/manage.tpl');
+$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/new.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/new.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/new.inc.php	(revision 9736)
@@ -0,0 +1,31 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+//Ajout d'un module
+if (isset($_POST['addModule']) and !is_adviser())
+{
+  if (!isset($_POST['module']))
+  {
+    array_push($page['errors'], l10n('stuffs_error_no_mod_selected'));
+  }
+  else
+  {
+    redirect(PHPWG_ROOT_PATH.'admin.php?page=plugin&section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php&tab=add_module&path=' . urlencode($_POST['module']));
+  }
+}
+
+// Affichages des modules à ajouter
+foreach($modules as $module)
+{
+  $template->append('add_module', array(
+    'MODULE_PATH' => $module['path'],
+    'NAME' => $module['name'],
+    'DESC' => $module['description'],
+    )
+  );
+}
+
+$template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/new.tpl');
+$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/template/add_module.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/template/add_module.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/template/add_module.tpl	(revision 9736)
@@ -0,0 +1,99 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{include file='include/autosize.inc.tpl'}
+{html_head}{literal}
+<style type="text/css">
+.groups { margin-top:15px; }
+.groups input { margin-right:5px; }
+.groups label { margin-right:10px; display: inline-block; overflow: hidden; white-space: nowrap; line-height:1.3em;}
+.groups div { float:right; width:74%; line-height:1.3em;}
+</style>
+{/literal}{/html_head}
+
+<div class="titrePage">
+  <h2>PWG Stuffs - {$STUFFS_TITLE}</h2>
+</div>
+
+<form method="post" action="" class="properties" ENCTYPE="multipart/form-data">
+<fieldset id="mainConf" >
+  <legend>{'stuffs_module_config'|@translate}</legend>
+	<ul>
+    <li>
+      <span class="property">
+        <label for="module_name">{'stuffs_module_title'|@translate}</label>
+      </span>
+      <textarea rows="2" name="module_name" id="module_name" class="description" style="height:2em; width:500px;">{$MODULE_NAME}</textarea>
+    </li>
+    <li>
+      <span class="property">
+        <label for="module_desc">{'stuffs_desc'|@translate}<br>&nbsp;</label>
+      </span>
+      <input type="text" maxlength="255" value="{$DESC_VALUE}" name="module_desc" id="module_desc" style="width:500px;"/><br><i>{'stuffs_only_for_admin'|@translate}</i>
+    </li>
+    <li>
+      <span class="property">
+        <label for="show_title">{'stuffs_show_title'|@translate}</label>
+      </span>
+      <input type="checkbox" name="show_title" id="show_title" value="1" {if $show_title_CHECKED}checked="checked"{/if}>
+    </li>
+
+    {if isset($level_perm)}
+    <li style="margin-top:15px;">
+      <span class="property">
+        <label for="level">{'Privacy level'|@translate}</label>
+      </span>
+      <select name="level" id="level" size="1">{html_options options=$level_perm selected=$level_selected id=privacy}</select>
+    </li>
+    {/if}
+
+    
+    {if isset($users)}
+    <li class="groups" style="margin-top:15px;">
+      <span class="property">
+        <label for="users">{'stuffs_authorized_users'|@translate}</label>
+      </span>
+      {html_checkboxes options=$users selected=$selected_users name=users}
+    </li>
+    {/if}
+
+    {if isset($groups)}
+    <li class="groups" style="margin-top:15px;">
+      <span class="property">
+        <label for="groups">{'stuffs_authorized_group'|@translate}</label>
+      </span>
+      <div>{html_checkboxes options=$groups selected=$selected_groups name=groups}</div>
+    </li>
+    <li class="groups">
+      <div>
+        <a href="#" onClick="jQuery('input[name^=\'groups\']').attr('checked', 'checked');return false;">{'stuffs_select_all'|@translate}</a> /
+        <a href="#" onClick="jQuery('input[name^=\'groups\']').attr('checked', '');return false;">{'stuffs_unselect_all'|@translate}</a> &nbsp; 
+        <i>{'stuffs_guest'|@translate}</i>
+      </div>
+    </li>
+    {/if}
+  </ul>
+</fieldset>
+
+<fieldset id="indexDisplayConf">
+	<legend>{'stuffs_show_module_on'|@translate}</legend>
+  <ul>
+    {foreach from=$display_options key=option item=value}
+    {if $value}
+    <li>
+      <label>
+        <span class="property">{'stuffs_show_'|@cat:$option|@translate}</span>
+        <input type="checkbox" name="{$option}" value="1" {if $selected_options[$option]}checked="checked"{/if}>
+      </label>
+    </li>
+    {/if}
+    {/foreach}
+  </ul>
+</fieldset>
+
+{if not empty($MODULE_OPTIONS)}
+<fieldset>
+	<legend>{'stuffs_module_options'|@translate}</legend>
+	{$MODULE_OPTIONS}
+</fieldset>
+{/if}
+<p><input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}/></p>
+</form>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/template/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/template/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/template/config.tpl	(revision 9736)
@@ -0,0 +1,33 @@
+<div class="titrePage">
+	<h2>PWG Stuffs - {'Configuration'|@translate}</h2>
+</div>
+
+<form name="stuffsform" method="post" action="" class="properties"  ENCTYPE="multipart/form-data">
+<fieldset id="indexDisplayConf">
+  <legend>{'stuffs_perm'|@translate}</legend>
+  <ul>
+      <li>
+      <label>
+        <span class="property">{'stuffs_level_perm'|@translate}</span>
+        <input type="checkbox" name="level_perm" id="level_perm" value="on" {if $stuffs_conf.level_perm}checked="checked"{/if}/>
+      </label>
+    </li>
+
+    <li>
+      <label>
+        <span class="property">{'stuffs_user_perm'|@translate}</span>
+        <input type="checkbox" name="user_perm" id="user_perm" value="on" {if $stuffs_conf.user_perm}checked="checked"{/if}/>
+      </label>
+    </li>
+
+    <li>
+      <label>
+        <span class="property">{'stuffs_group_perm'|@translate}</span>
+        <input type="checkbox" name="group_perm" id="group_perm" value="on" {if $stuffs_conf.group_perm}checked="checked"{/if}/>
+      </label>
+    </li>
+  </ul>
+</fieldset>
+
+<p><input class="submit" type="submit" value="{'Submit'|@translate}" name="submit"/></p>
+</form>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/template/manage.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/template/manage.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/template/manage.tpl	(revision 9736)
@@ -0,0 +1,102 @@
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js" }
+{known_script id="jquery.ui.sortable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.sortable.packed.js" }
+
+{html_head}
+{literal}
+<style type="text/css">
+#categoryOrdering li {
+  height: 60px;
+}
+#categoryOrdering p {
+  margin-bottom: 0 !important;
+  margin-top: 0.5em !important;
+}
+.stuffs_line {
+  margin: 0 10px;
+}
+.MainBlock {
+  color: #ff3363;
+}
+</style>
+{/literal}
+{/html_head}
+
+<script type="text/javascript">
+  jQuery().ready(function(){ldelim}
+    jQuery(".catPos").hide();
+    jQuery(".drag_button").show();
+    jQuery(".categoryLi").css("cursor","move");
+    jQuery(".categoryUl").sortable({ldelim}
+      axis: "y",
+      opacity: 0.8
+    });
+    jQuery("#categoryOrdering").submit(function(){ldelim}
+      ar = jQuery('.categoryUl').sortable('toArray');
+      for(i=0;i<ar.length;i++) {ldelim}
+        module = ar[i].split('module_');
+        document.getElementsByName('position[' + module[1] + ']')[0].value = i;
+      }
+    });
+  });
+</script>
+
+<div class="titrePage">
+  <h2>PWG Stuffs</h2>
+</div>
+
+<form id="categoryOrdering" method="post" action="">
+
+	<ul class="categoryUl">
+  {foreach from=$modules item=module}
+
+    <li class="categoryLi virtual_cat" id="module_{$module.ID}">
+      {if !empty($module.PATH)}
+      <ul class="categoryActions">
+        <li class="stuffs_line">
+          {'stuffs_id_ligne'|@translate}&nbsp;
+          <select name="id_line[{$module.ID}]">
+          {html_options options=$module.ID_LINE_OPTIONS selected=$module.ID_LINE_SELECTED}
+          </select>
+        </li>
+        <li class="stuffs_line">
+          {'stuffs_width'|@translate}&nbsp;
+          <input type="text" size="2" maxlength="2" value="{$module.WIDTH}" name="width[{$module.ID}]" > %
+        </li>
+        {if empty($module.MISSING)}
+        <li><a href="{$module.U_EDIT}" title="{'stuffs_edit'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_edit.png" class="button" alt="{'stuffs_edit'|@translate}"/></a></li>
+        {/if}
+        {if !empty($module.U_DELETE) }
+        <li><a href="{$module.U_DELETE}" title="{'stuffs_delete'|@translate}" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');"><img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'stuffs_delete'|@translate}" /></a></li>
+        {/if}
+      </ul>
+      {/if}
+
+      <p>
+      <img src="{$themeconf.admin_icon_dir}/cat_move.png" class="button drag_button" style="display:none;" alt="{'Drag to re-order'|@translate}" title="{'Drag to re-order'|@translate}"/>
+      <strong>{if empty($module.PATH)}<span class="MainBlock">{$module.NAME}</span>{else}<a href="{$module.U_EDIT}">{$module.NAME}</a>{/if}</strong>
+      {if !empty($module.TYPE_NAME)}&nbsp;-  &nbsp;{$module.TYPE_NAME}{/if}
+      </p>
+
+      {if !empty($module.MISSING)}
+        <p style="margin-left: 30px;">{$module.MISSING}</p> 
+      {elseif !empty($module.DESC)}
+        <p style="margin-left: 30px;"><i>{$module.DESC}</i></p>
+      {elseif empty($module.PATH)}
+        <p style="margin-left: 30px;"><input name="hidemb" type="checkbox" {if $HIDEMB}checked="checked"{/if}> &nbsp;{'Hide on home page'|@translate}</p>
+      {/if}
+
+      <p class="catPos">
+        <label>
+          {'Position'|@translate}
+          <input type="text" size="4" name="position[{$module.ID}]" maxlength="4" value="{$module.POS}" />
+        </label>
+      </p>
+    </li>
+    {/foreach}
+  </ul>
+
+  <p style="text-align: center;">
+  <br />
+    <input class="submit" name="submitOrder" type="submit" value="{'Save order'|@translate}" {$TAG_INPUT_ENABLED} />
+  </p>
+</form>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/template/new.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/template/new.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/template/new.tpl	(revision 9736)
@@ -0,0 +1,21 @@
+<div class="titrePage">
+  <h2>PWG Stuffs</h2>
+</div>
+
+<form method="post" action="" class="properties">
+
+<fieldset id="indexDisplayConf" style="padding-top:25px;">
+  <legend>{'stuffs_add_mod'|@translate}</legend>
+  <ul>
+    {foreach from=$add_module item=module}
+    <li>
+      <label>
+        <span class="property">{$module.NAME} <span style="font-weight:normal;">: {$module.DESC}</span></span>
+        <input type="radio" value="{$module.MODULE_PATH}" name="module"/>
+      </label>
+    </li>
+    {/foreach}
+  </ul>
+</fieldset>
+<p><input class="submit" name="addModule" type="submit" value="{'stuffs_add_mod'|@translate}"/></p>
+</form>
Index: /extensions/PWG_Stuffs/branch/2.1/admin/upgrade.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/admin/upgrade.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/admin/upgrade.inc.php	(revision 9736)
@@ -0,0 +1,170 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $prefixeTable, $conf;
+
+$query = 'SHOW FULL COLUMNS FROM '.STUFFS_TABLE.';';
+$result = array_from_query($query, 'Field');
+if ($result[5] == 'params')
+{
+  $query = 'ALTER TABLE '.STUFFS_TABLE.'
+MODIFY COLUMN name TEXT CHARACTER SET utf8 NOT NULL,
+MODIFY COLUMN descr VARCHAR(255) CHARACTER SET utf8 default NULL,
+MODIFY COLUMN type VARCHAR(255) CHARACTER SET utf8 NOT NULL,
+MODIFY COLUMN params VARCHAR(255) CHARACTER SET utf8 default NULL,
+MODIFY COLUMN datas LONGTEXT CHARACTER SET utf8 default NULL,
+MODIFY COLUMN users VARCHAR(255) CHARACTER SET utf8 default NULL,
+MODIFY COLUMN groups VARCHAR(255) CHARACTER SET utf8 default NULL,
+DEFAULT CHARACTER SET utf8,
+ADD show_title ENUM(\'true\',\'false\') NOT NULL,
+ADD on_home ENUM(\'true\',\'false\') NOT NULL,
+ADD on_cats ENUM(\'true\',\'false\') NOT NULL,
+ADD on_picture ENUM(\'true\',\'false\') NOT NULL,
+ADD id_line VARCHAR(1) default NULL,
+ADD width SMALLINT(9) default NULL,
+ADD INDEX (on_home),
+ADD INDEX (on_cats),
+ADD INDEX (on_picture);';
+
+  pwg_query($query);
+  
+  $query = 'SELECT id, name, type, params, datas FROM '.STUFFS_TABLE.';';
+  $result = pwg_query($query);
+  
+  $modules = array();
+  while ($row = mysql_fetch_assoc($result))
+  {
+    if ($row['name'] != 'MainBlock')
+    {
+      $array = array();
+      foreach (explode('///', $row['name']) as $name)
+      {
+        $a = explode(':', $name);
+        array_push($array, '[lang='.substr($a[0],0,2).']'.$a[1].'[/lang]');
+      }
+      $new_name = implode("\r\n", $array);
+    }
+    else
+    {
+      $new_name = 'MainBlock';
+    }
+
+    if ($row['type'] == 'LastComs')
+    {
+      $datas = unserialize($row['datas']);
+      $row['datas'] = serialize(array($datas[0], $datas[1], $datas[6], $datas[2], $datas[3]));
+    }
+  
+    $params = explode(',', $row['params']);
+    $params[4] = !empty($params[4]) ? '"'.$params[4].'"' : 'NULL';
+    $params[5] = !empty($params[5]) ? $params[5] : 'NULL';
+
+    $query = 'UPDATE ' . $prefixeTable . 'stuffs
+SET
+  name = "'. $new_name . '",
+  datas = "' . addslashes($row['datas']) . '",
+  show_title = "'. ($params[0] ? 'true' : 'false') .'",
+  on_home = "'. ($params[1] ? 'true' : 'false') .'",
+  on_cats = "'. ($params[2] ? 'true' : 'false') .'",
+  on_picture = "'. ($params[3] ? 'true' : 'false') .'",
+  id_line = '. $params[4] .',
+  width = '. $params[5] .'
+WHERE id = '.$row['id'].';';
+
+    pwg_query($query);
+  }
+
+  $query = 'ALTER TABLE '.STUFFS_TABLE.' DROP params;';
+  pwg_query($query);
+
+  if (isset($conf['Stuffs']))
+  {
+    $q = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE param="Stuffs" LIMIT 1;';
+    pwg_query($q);
+  }
+}
+
+$query = 'SHOW FULL COLUMNS FROM '.STUFFS_TABLE.';';
+$result = array_from_query($query, 'Field');
+if ($result[4] != 'path')
+{
+  $path = $plugin['id'];
+  $conf['Stuffs'] = array();
+
+  $query = 'ALTER TABLE '.STUFFS_TABLE.'
+CHANGE `type` `path` VARCHAR( 255 ) NULL DEFAULT NULL,
+ADD `level` TINYINT( 3 ) NOT NULL default "0" AFTER `groups`,
+ADD `on_root` enum(\'true\',\'false\') NOT NULL AFTER `on_home`
+;';
+  pwg_query($query);
+
+  $query = 'UPDATE '.STUFFS_TABLE.'
+SET on_root = "false"
+WHERE on_cats <> "true"
+;';
+  pwg_query($query);
+
+  $query = 'SELECT * FROM '.STUFFS_TABLE.';';
+  $result = pwg_query($query);
+
+  while ($row = pwg_db_fetch_assoc($result))
+  {
+    if ($row['path'] == 'Personal')
+    {
+      $data = unserialize($row['datas']);
+      $row['datas'] = serialize($data[0]);
+    }
+    if ($row['path'] == 'piclenswall')
+    {
+      $row['path'] = PHPWG_PLUGINS_PATH.'piclens/stuffs_module/';
+    }
+    elseif ($row['path'] != 'MainBlock')
+    {
+      $row['path'] = PHPWG_PLUGINS_PATH.$path.'/modules/'.$row['path'].'/';
+    }
+    else
+    {
+      // Main Block
+      $row['path'] = null;
+      if (!empty($row['datas']))
+      {
+        $data = unserialize($row['datas']);
+        $row['datas'] = serialize(!$data['hide']);
+      }
+      else
+      {
+        $row['datas'] = serialize(true);
+      }
+    }
+
+    $query = 'UPDATE '.STUFFS_TABLE.'
+SET path = '.(is_null($row['path']) ? 'NULL' : '"'.$row['path'].'"').',
+    datas = "'.addslashes($row['datas']).'"
+WHERE id = '.$row['id'].'
+;';
+    pwg_query($query);
+  }
+
+  $conf['Stuffs']['level_perm'] = false;
+
+  $query = 'SELECT id
+FROM '.STUFFS_TABLE.'
+WHERE users <> "guest,generic,normal,admin,webmaster"
+;';
+  $ids = array_from_query($query, 'id');
+  $conf['Stuffs']['user_perm'] = !empty($ids);
+
+  $query = 'SELECT id
+FROM '.STUFFS_TABLE.'
+WHERE groups IS NOT NULL
+;';
+  $ids = array_from_query($query, 'id');
+  $conf['Stuffs']['group_perm'] = !empty($ids);
+
+  $query = 'INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment)
+VALUES ("PWG_Stuffs" , "'.pwg_db_real_escape_string(serialize($conf['Stuffs'])).'" , "PWG Stuffs plugin configuration");';
+  pwg_query($query);
+}
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/class.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/class.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/class.inc.php	(revision 9736)
@@ -0,0 +1,229 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+class stuffs
+{
+  var $user_groups = array();
+  var $modules = array();
+  var $blocks = array();
+  var $pos = 'begin';
+  var $prefixe = 'PLUGIN_INDEX_CONTENT_';
+
+  function stuffs()
+  {
+    global $page, $template;
+
+    if ($page['stuffs_section'] == 'on_picture')
+    {
+      $this->prefixe = 'PLUGIN_PICTURE_';
+      $template->set_prefilter('header', array('stuffs', 'prefilter_picture_css'));
+      pwgs_picture_special_sections();
+    }
+    else
+    {
+      $template->set_prefilter( 'header', array('stuffs', 'prefilter_index_css') );
+    }
+
+    $this->get_user_groups();
+    $this->get_modules();
+    $this->process_modules();
+  }
+
+  /* Retrieve user groups  */
+  function get_user_groups()
+  {
+    global $user;
+
+    $query = 'SELECT group_id FROM ' . USER_GROUP_TABLE . ' WHERE user_id = ' . $user['id'] . ';';
+    $result = pwg_query($query);
+    while ($row = mysql_fetch_assoc($result))
+    {
+      array_push($this->user_groups, $row['group_id']);
+    }
+  }
+
+  /* Retrieve modules from table */
+  function get_modules()
+  {
+    global $page, $user;
+
+    if (!isset($page['stuffs_section'])) return;
+
+    $query = '
+SELECT DISTINCT id, name, path, datas, groups, show_title, id_line, width
+FROM ' . STUFFS_TABLE . '
+LEFT JOIN ' . USER_GROUP_TABLE . '
+  ON user_id = '.$user['id'].'
+WHERE (users IS NULL OR users LIKE "%' . $user['status'] . '%")
+  AND (groups IS NULL OR groups REGEXP CONCAT("(^|,)",group_id,"(,|$)"))
+  AND level <= '.$user['level'].'
+  AND '.$page['stuffs_section'].' = "true"
+ORDER BY pos ASC
+;';
+
+    $result = pwg_query($query);
+
+    while ($row = mysql_fetch_assoc($result))
+    {
+      array_push($this->modules, $row);
+    }
+  }
+
+  /* Process modules */
+  function process_modules()
+  {
+    global $pwg_loaded_plugins;
+
+    foreach ($this->modules as $module)
+    {
+      if ($module['name'] == 'MainBlock')
+      {
+        $this->pos = 'end';
+        $show = unserialize($module['datas']);
+        if (!$show)
+        {
+          add_event_handler('loc_end_index', 'hide_main_block');
+        }
+        continue;
+      }
+
+      preg_match('#^'.preg_quote(PHPWG_PLUGINS_PATH).'([^/]*?)/#', $module['path'], $match);
+      if (!isset($pwg_loaded_plugins[$match[1]]))
+      {
+        continue;
+      }
+
+      $datas = (!empty($module['datas']) ? unserialize($module['datas']) : false);
+      $block = array();
+
+      @include($module['path'].'main.inc.php');
+
+      if (!empty($block['TEMPLATE']))
+      {
+        $block['ID'] = $module['id'];
+        if ($module['show_title'] == 'true')
+        {
+          $block['TITLE'] = trigger_event('render_stuffs_name', $module['name']);
+        }
+        if (is_admin())
+        {
+          $block['U_EDIT'] = PHPWG_ROOT_PATH.'admin.php?page=plugin&amp;section='.STUFFS_DIR.'%2Fadmin%2Fadmin.php&amp;tab=edit_module&amp;edit='.$module['id'].'&amp;redirect='.urlencode(urlencode($_SERVER['REQUEST_URI']));
+        }
+        $this->set_tpl_block($block, $module);
+      }
+    }
+  }
+  /* Set template blocks  */
+  function set_tpl_block($block, $module)
+  {
+    if (!empty($module['id_line']))
+    {
+      $block['id_line'] = $module['id_line'];
+      $block['given_width'] = !empty($module['width']) ? $module['width'] : '';
+
+      if (!empty($this->blocks[$this->pos]))
+      {
+        $last = end($this->blocks[$this->pos]);
+        $key = key($this->blocks[$this->pos]);
+        $penul = prev($this->blocks[$this->pos]);
+
+        if (isset($last['id_line']) and $last['id_line'] == $module['id_line'])
+        {
+          if (isset($penul['id_line']) and $penul['id_line'] == $module['id_line'])
+          {
+            $i = 3;
+            !$block['given_width'] or $i--;
+            !$last['given_width'] or $i--;
+            !$penul['given_width'] or $i--;
+
+            !$i or $default_width = intval((100 - $block['given_width'] - $last['given_width'] - $penul['given_width']) / $i);
+
+            $penul['WIDTH'] = $penul['given_width'] ? $penul['given_width'] : $default_width;
+            $block['WIDTH'] = $block['given_width'] ? $block['given_width'] : $default_width;
+
+            $block['CLASS'] = 'right_block';
+            $block['new_line'] = false;
+            $block['end_line'] = false;
+            $last['end_line'] = true;
+            $this->blocks[$this->pos][$key-1] = $penul;
+            $this->blocks[$this->pos][$key] = $block;
+            $this->blocks[$this->pos][] = $last;
+            return;
+          }
+          else
+          {
+            if (empty($block['given_width']) and empty($last['given_width']))
+            {
+              $last['WIDTH'] = 50;
+            }
+            elseif ($block['given_width']>0)
+            {
+              $last['WIDTH'] = 100 - $block['given_width'];
+            }
+            else
+            {
+              $last['WIDTH'] = $last['given_width'];
+            }
+            $block['CLASS'] = 'middle_block';
+            $last['CLASS'] = 'left_block';
+            $block['new_line'] = false;
+            $block['end_line'] = true;
+            $last['end_line'] = false;
+            $this->blocks[$this->pos][$key] = $last;
+            $this->blocks[$this->pos][] = $block;
+            return;
+          }
+        }
+      }
+    }
+
+    $block['new_line'] = true;
+    $block['end_line'] = true;
+    $block['CLASS'] = 'middle_block';
+    $this->blocks[$this->pos][] = $block;
+  }
+
+  static function prefilter_index_css($source, &$smarty)
+  {
+    $css = array(
+      '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}plugins/'.STUFFS_DIR.'/theme/stuffs_index.css">'
+    );
+
+    foreach ($smarty->get_template_vars('themes') as $theme)
+    {
+      if (file_exists(PHPWG_THEMES_PATH.$theme['id'].'/stuffs_index.css'))
+      {
+        array_push($css, '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/'.$theme['id'].'/stuffs_index.css">');
+      }
+    }
+
+    $source = str_replace("\n</head>", "\n".implode( "\n", $css )."\n</head>", $source);
+
+    return $source;
+  }
+
+  static function prefilter_picture_css($source, &$smarty)
+  {
+    $css = array(
+      '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}plugins/'.STUFFS_DIR.'/theme/stuffs_picture.css">'
+    );
+
+    foreach ($smarty->get_template_vars('themes') as $theme)
+    {
+      if (file_exists(PHPWG_THEMES_DIR.$theme['id'].'/stuffs_picture.css'))
+      {
+        array_push($css, '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/'.$theme['id'].'/stuffs_picture.css">');
+      }
+    }
+
+    if (!empty($css))
+    {
+      $source = str_replace("\n</head>", "\n".implode( "\n", $css )."\n</head>", $source);
+    }
+
+    return $source;
+  }
+}
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/functions.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/functions.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/functions.inc.php	(revision 9736)
@@ -0,0 +1,153 @@
+<?php
+
+add_event_handler('render_stuffs_name', 'get_user_language_desc');
+
+if (!function_exists('get_user_language_desc'))
+{
+  function get_user_language_desc($desc)
+  {
+    global $user;
+    
+    $user_lang = substr($user['language'], 0, 2);
+
+    if (!substr_count(strtolower($desc), '[lang=' . $user_lang . ']'))
+    {
+      $user_lang = 'default';
+    }
+    
+    if (substr_count(strtolower($desc), '[lang=' . $user_lang . ']'))
+    {
+      // la balise avec la langue de l'utilisateur a été trouvée
+      $patterns[] = '#(^|\[/lang\])(.*?)(\[lang=(' . $user_lang . '|all)\]|$)#is';
+      $replacements[] = '';
+      $patterns[] = '#\[lang=(' . $user_lang . '|all)\](.*?)\[/lang\]#is';
+      $replacements[] = '\\1';
+    }
+    else
+    {
+      // la balise avec la langue de l'utilisateur n'a pas été trouvée
+      // On prend tout ce qui est hors balise
+      $patterns[] = '#\[lang=all\](.*?)\[/lang\]#is';
+      $replacements[] = '\\1';
+      $patterns[] = '#\[lang=.*\].*\[/lang\]#is';
+      $replacements[] = '';
+    }
+    return preg_replace($patterns, $replacements, $desc);
+  }
+}
+
+function get_default_stuffs_modules($modules)
+{
+  $dir = opendir(STUFFS_PATH . 'modules/');
+  while ($file = readdir($dir))
+  {
+    if ($file != '.' and $file != '..' and $file != '.svn' and $file != 'piclenswall')
+    {
+      $path = STUFFS_PATH . 'modules/' . $file;
+      if (is_dir($path) and !is_link($path))
+      {
+        array_push($modules, array(
+          'path' => $path,
+          'name' => l10n('module_name_' . strtolower($file)),
+          'description' => l10n('module_desc_' . strtolower($file)),
+          )
+        );
+      }
+    }
+  }
+  closedir($dir);
+  return $modules;
+}
+
+function pwgs_picture_special_sections()
+{
+  global $page, $conf;
+
+  if (preg_match('#&(pwgs_..)=#', $_SERVER['REQUEST_URI'], $matches))
+  {
+    if (isset($_GET['action']))
+    {
+      if (isset($page['category']))
+      {
+        $page['section'] = 'category/'.$page['category']['id'];
+        unset($page['category']);
+      }
+      $page['section'] .= $matches[0] . $_GET[$matches[1]];
+    }
+    else
+    {
+      unset($page['flat']);
+      $page['PWG_Stuffs_section'] = $matches[1];
+      $page['items'] = explode(',', $_GET[$matches[1]]);
+      $page['rank_of'] = array_flip($page['items']);
+      switch ($matches[1])
+      {
+        case 'pwgs_mv': $title = l10n('Most visited'); break;
+        case 'pwgs_br': $title = l10n('Best rated'); break;
+        case 'pwgs_re': $title = l10n('Recent pictures'); break;
+        case 'pwgs_ra': $title = l10n('Random pictures'); break;
+      }
+      $page['title'] .= $conf['level_separator'] . $title;
+      add_event_handler('loc_end_page_header', 'add_pwgs_url_params');
+    }
+  }
+}
+
+function add_pwgs_url_params()
+{
+  global $page, $template;
+
+  $param = $page['PWG_Stuffs_section'];
+
+  $urls = array(
+    'first.U_IMG',
+    'previous.U_IMG',
+    'next.U_IMG',
+    'last.U_IMG',
+    'slideshow.U_START_PLAY',
+    'slideshow.U_STOP_PLAY',
+    'slideshow.U_START_REPEAT',
+    'slideshow.U_STOP_REPEAT',
+    'slideshow.U_DEC_PERIOD',
+    'slideshow.U_INC_PERIOD',
+    'U_SLIDESHOW_START',
+    'U_SLIDESHOW_STOP',
+    'U_METADATA',
+    'favorite.U_FAVORITE',
+    'U_SET_AS_REPRESENTATIVE',
+    'U_CADDIE',
+    'rating.F_ACTION',
+    'comment_add.F_ACTION',
+    'page_refresh.U_REFRESH',
+  );
+
+  foreach ($urls as $url)
+  {
+    $k = explode('.', $url);
+    if (isset($k[1]) and isset($template->smarty->_tpl_vars[$k[0]][$k[1]]))
+    {
+      $template->smarty->_tpl_vars[$k[0]][$k[1]] = add_url_params($template->smarty->_tpl_vars[$k[0]][$k[1]], array($param => $_GET[$param]));
+    }
+    elseif (!isset($k[1]) and isset($template->smarty->_tpl_vars[$k[0]]))
+    {
+      $template->smarty->_tpl_vars[$k[0]] = add_url_params($template->smarty->_tpl_vars[$k[0]], array($param => $_GET[$param]));
+    }
+  }
+}
+
+function hide_main_block()
+{
+  global $page, $template;
+
+  if ($page['stuffs_section'] == 'on_home')
+  {
+    $template->set_prefilter('index', 'hide_main_block_prefilter');
+  }
+}
+
+function hide_main_block_prefilter($content, $smarty)
+{
+  return preg_replace('#<div id="content" class="content">.*</div> <!-- content -->#s', '', $content);
+}
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/ar_SA/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/ar_SA/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/ar_SA/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+ادخل موديول الى معرضك
Index: /extensions/PWG_Stuffs/branch/2.1/language/ar_SA/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/ar_SA/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/ar_SA/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/ar_SA/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/ar_SA/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/ar_SA/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'اخر تعليق';
+$lang['module_desc_lastcoms'] = 'عرض اخل تعليق نشر';
+
+$lang['lastcoms_no_nb_comments'] = 'يجب ان تحدد عدد التعليقات.';
+$lang['lastcoms_config'] = 'الاعدادات';
+$lang['lastcoms_nb_comments'] = 'عدد التعليقات للعرض';
+$lang['lastcoms_show_buttons'] = 'اعرض ازرار المشرف';
+$lang['lastcoms_dim'] = 'حجم الصور المصغرة';
+$lang['lastcoms_width'] = 'أقصى عرض';
+$lang['lastcoms_height'] = 'أقصى ارتفاع';
+$lang['lastcoms_nb_cadres'] = 'عدد الاطارات لكل خط';
+$lang['lastcoms_taille_cadres'] = 'ارتفاع الاطار';
+
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'الدخول';
+$lang['module_desc_logon'] = 'عرض منطقة الدخول';
+
+$lang['logon_remove_menubar_block'] = 'حذف منطقة الاتصال السريع من القوائم';
+
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'المنطقة الشخصية';
+$lang['module_desc_personal'] = 'عرض المنطقة الشخصية (ك محرر)';
+
+$lang['personal_content'] = 'المحتوى';
+
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'الدلائل';
+$lang['module_desc_tags'] = 'عرض دلائل المعرض';
+
+$lang['stuffs_tags_default_display'] = 'عرض الدلائل';
+$lang['stuffs_tags_cloud'] = 'حشد الدلائل';
+$lang['stuffs_tags_letters'] = 'تجميع حسب الاحرف';
+$lang['stuffs_tags_cumulus'] = 'استخدام وضع الركام (اداة <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">ركام الدلائل المحتشدة</a> يجب ان تثبت)';
+
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'الأكثر زيارة';
+$lang['module_desc_mostvisited'] = 'عرض الاكثر زيارة في المعرض او التصنيفات';
+
+$lang['stuffs_mv_nb_images'] = 'اقصى عدد للصور المعروضة';
+$lang['stuffs_mv_category_display'] = 'عرض في صفحات التصنيفات';
+$lang['stuffs_mv_all_cats'] = 'كل التصنيفات';
+$lang['stuffs_mv_w_thumb'] = 'فقط في التصنيفات المحتوية على صور مصغرة';
+$lang['stuffs_mv_wo_thumb'] = 'فقط في التصنيفات التي لا تحتوي على صور مصغرة';
+$lang['stuffs_mv_selected_cats'] = 'فقط التصنيفات المختارة';
+
+$lang['stuffs_mv_cat_selection'] = 'اختيار التصنيفات';
+$lang['stuffs_mv_hold_ctrl'] = 'اضغط CTRL';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'افضل تصويت';
+$lang['module_desc_bestrated'] = 'عرض الأفضل تصويتا في المعرض الو التصنيفات';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'الصور الحيثة';
+$lang['module_desc_recent'] = 'عرض صور حديثة في المعرض الو التصنيف(ان وجدت)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'صور عشوائية';
+$lang['module_desc_random'] = 'عرض صور عشوائية في المعرض او التصنيف';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'اقتباس عشوائي';
+$lang['module_desc_citation'] = 'عرض اقتباش عشوائي';
+$lang['module_Citation_lang'] = 'اللغة';
+$lang['module_Citation_code'] = 'كود له علاقة';
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'صور متميزة';
+$lang['module_desc_featuredphotos'] = 'عرض الصور المفضلة لمشرف الموقع';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/cs_CZ/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/cs_CZ/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/cs_CZ/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Vloží moduly do vaší galerie
Index: /extensions/PWG_Stuffs/branch/2.1/language/cs_CZ/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/cs_CZ/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/cs_CZ/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/cs_CZ/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/cs_CZ/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/cs_CZ/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Správa Bloků';
+$lang['stuffs_add_mod'] = 'Přidat blok';
+$lang['stuffs_edit_mod'] = 'Edituj blok';
+
+$lang['stuffs_module_title'] = 'Nadpis Bloku';
+$lang['stuffs_desc'] = 'Popis';
+$lang['stuffs_only_for_admin'] = '(jen pro administrační panel)';
+$lang['stuffs_type'] = 'Typ Bloku';
+$lang['stuffs_position'] = 'Pozice';
+$lang['stuffs_id_ligne'] = 'ID line';
+$lang['stuffs_width'] = 'Šířka';
+$lang['stuffs_action'] = 'Akce';
+$lang['stuffs_edit'] = 'Uprav blok';
+$lang['stuffs_delete'] = 'Odstraň blok';
+$lang['stuffs_confirm_delete'] = 'Opravdu chcete smazat blok %s?';
+$lang['stuffs_main_block'] = 'Hlavní blok';
+$lang['Hide on home page'] = 'Skrytý pro hlavní stránku';
+
+$lang['stuffs_add_module'] = 'Přidat nový blok';
+$lang['stuffs_module_config'] = 'Konfigurace Bloku';
+$lang['stuffs_visual_config'] = 'Konfigurace zobrazeni';
+$lang['stuffs_module_options'] = 'Možnosti bloku';
+$lang['stuffs_authorized_group'] = 'Povolené skupiny';
+$lang['stuffs_authorized_users'] = 'Povolení uživatelé';
+$lang['stuffs_public_module'] = '(Nechat prázdné pro veřejný blok)';
+$lang['stuffs_show_title'] = 'Ukaž nadpis bloku';
+$lang['stuffs_show_module_on'] = 'Zobraz blok :';
+$lang['stuffs_show_on_home'] = 'Na hlavní stráce';
+$lang['stuffs_show_on_root'] = 'Na stránce kategoríí';
+$lang['stuffs_show_on_cats'] = 'Na všech stránkách kategorií';
+$lang['stuffs_show_on_picture'] = 'Na stránkách obrázků';
+$lang['stuffs_no_options'] = 'Tento blok nemá žádné volby nastavení';
+
+$lang['stuffs_perm'] = 'Aktivuj správu autorizací:';
+$lang['stuffs_group_perm'] = 'podle skupin';
+$lang['stuffs_user_perm'] = 'podle typu uživatele';
+$lang['stuffs_level_perm'] = 'podle úrovně oprávnění';
+
+$lang['stuffs_select_all'] = 'Vybrat vše';
+$lang['stuffs_unselect_all'] = 'Zruš celý výběr';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Výběr uložen.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin byl přejměnován na "Blocks/Bloky".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Není vybrán žádný blok.';
+$lang['stuffs_no_name'] = 'Je potřeba nejprve zadat názvy bloku\ů ';
+$lang['stuffs_parent_plugin_is_missing'] = 'Hlavní PLUGIN není aktivován. odeberte tento blok nebo zapněte hlavní plugin Blok.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN musí být aktualizován. PWG Stuffs/Blok není kompatibilní s touto verzí pluginu Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Poslední komentáře';
+$lang['module_desc_lastcoms'] = 'Zobrazí naposledy vložené komentáře';
+
+$lang['lastcoms_no_nb_comments'] = 'Zadejte počet zobrazených komentářù.';
+$lang['lastcoms_config'] = 'Konfigurace';
+$lang['lastcoms_nb_comments'] = 'Počet komentářù k zobrazení';
+$lang['lastcoms_show_buttons'] = 'Zobraz admin tlačítko';
+$lang['lastcoms_dim'] = 'Velikost náhledu';
+$lang['lastcoms_width'] = 'Šířka max';
+$lang['lastcoms_height'] = 'Výška max';
+$lang['lastcoms_nb_cadres'] = 'Počet rámù na řádek';
+$lang['lastcoms_taille_cadres'] = 'Výška rámu';
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Přihlášení';
+$lang['module_desc_logon'] = 'Zobraz přihlašovací blok';
+
+$lang['logon_remove_menubar_block'] = 'Odstranit "Quick connect" blok z menu';
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Osobní blok';
+$lang['module_desc_personal'] = 'Zobrazí personnal block (něco jako editor)';
+
+$lang['personal_content'] = 'obsah';
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Štítky';
+$lang['module_desc_tags'] = 'Zobraz štítky galerie';
+
+$lang['stuffs_tags_default_display'] = 'Zobrazení štítkù';
+$lang['stuffs_tags_cloud'] = 'Mračno štítkù';
+$lang['stuffs_tags_letters'] = 'Podle písmen';
+$lang['stuffs_tags_cumulus'] = 'Použít mód cumulus (plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> musí být nainstalován)';
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Často navštěvované';
+$lang['module_desc_mostvisited'] = 'Zobrazí X nejvíce zobrazených fotek v galerii nebo kategorii';
+
+$lang['stuffs_mv_nb_images'] = 'Maximální počet fotek k zobrazení';
+$lang['stuffs_mv_category_display'] = 'Zobrazit v kategoriích';
+$lang['stuffs_mv_all_cats'] = 'Všechny kategorie';
+$lang['stuffs_mv_w_thumb'] = 'Jen v kategoriích s náhledy';
+$lang['stuffs_mv_wo_thumb'] = 'Jen v kategoriích bez náhledù';
+$lang['stuffs_mv_selected_cats'] = 'Jen vybraným kategoriím';
+
+$lang['stuffs_mv_cat_selection'] = 'Výběr kategorie';
+$lang['stuffs_mv_hold_ctrl'] = 'podržet CTRL';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Nejlépe hodnocené';
+$lang['module_desc_bestrated'] = 'Zobrazí x nejlépe hodnocených fotek v galerii nebo kategorii';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Nové fotografie';
+$lang['module_desc_recent'] = 'Zobrazí x nových fotek v galerii nebo kategorii(pokud existují)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Náhodné fotografie';
+$lang['module_desc_random'] = 'Zobrazí x náhodných fotek v galerii nebo kategorii';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Náhodná citace';
+$lang['module_desc_citation'] = 'Zobrazí náhodnou citaci';
+$lang['module_Citation_lang'] = 'Jazyk';
+$lang['module_Citation_code'] = 'Související kód';
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Nejlepší Fotky';
+$lang['module_desc_featuredphotos'] = 'Zobrazí favorizované fotky webmastera';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/de_DE/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/de_DE/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/de_DE/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Fügt Module in die Gallery ein
Index: /extensions/PWG_Stuffs/branch/2.1/language/de_DE/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/de_DE/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/de_DE/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/de_DE/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/de_DE/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/de_DE/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Verwaltung der Blöcke';
+$lang['stuffs_add_mod'] = 'Einen Block hinzufügen';
+$lang['stuffs_edit_mod'] = 'Einen Block bearbeiten';
+
+$lang['stuffs_module_title'] = 'Titel des Blockes';
+$lang['stuffs_desc'] = 'Beschreibung';
+$lang['stuffs_only_for_admin'] = '(nur für den Administrations Panel)';
+$lang['stuffs_type'] = 'Block-Typ';
+$lang['stuffs_position'] = 'Position';
+$lang['stuffs_id_ligne'] = 'ID Linie';
+$lang['stuffs_width'] = 'Breite';
+$lang['stuffs_action'] = 'Aktionen';
+$lang['stuffs_edit'] = 'Block bearbeiten';
+$lang['stuffs_delete'] = 'Block löschen';
+$lang['stuffs_confirm_delete'] = 'Sind Sie sicher, dass Sie den Block %s löschen wollen?';
+$lang['stuffs_main_block'] = 'Hauptblock';
+$lang['Hide on home page'] = 'Auf der Startseite verbergen';
+
+$lang['stuffs_add_module'] = 'Einen neuen Block hinzufügen';
+$lang['stuffs_module_config'] = 'Block-Konfiguration';
+$lang['stuffs_visual_config'] = 'Display-Konfiguration';
+$lang['stuffs_module_options'] = 'Block-Optionen';
+$lang['stuffs_authorized_group'] = 'Autorisierte Gruppen';
+$lang['stuffs_authorized_users'] = 'Autorisierte Benutzer';
+$lang['stuffs_public_module'] = '(Leer lassen um den Block öffentlich zu halten.)';
+$lang['stuffs_show_title'] = 'Block Titel anzeigen';
+$lang['stuffs_show_module_on'] = 'Block anzeigen :';
+$lang['stuffs_show_on_home'] = 'Auf der Startseite';
+$lang['stuffs_show_on_root'] = 'Am Stamm der Kategorien.';
+$lang['stuffs_show_on_cats'] = 'Auf allen Kategorie Seiten';
+$lang['stuffs_show_on_picture'] = 'Auf den Bilderseiten';
+$lang['stuffs_no_options'] = 'Keine Optionen für diesen Block';
+
+$lang['stuffs_perm'] = 'Verwaltung der Genehmigungen aktivieren';
+$lang['stuffs_group_perm'] = 'nach Gruppen';
+$lang['stuffs_user_perm'] = 'nach Benutzer Typ';
+$lang['stuffs_level_perm'] = 'nach Privacy Level';
+
+$lang['stuffs_select_all'] = 'Alle auswählen';
+$lang['stuffs_unselect_all'] = 'Alle Auswahlen aufheben';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Reihenfolge erfolgreich gespeichert.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs Plug-In wurde umbenannt. Es heißt nun "Blocks".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Sie haben keinen Block ausgewählt.';
+$lang['stuffs_no_name'] = 'Sie müssen den Namen des Blockes angeben';
+$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IST NICHT AKTIVIERT. Sie sollten diesen Block entfernen oder den übergeordneten Plug-In reaktivieren.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUSS AKTUALISIERT WERDEN. PWG Stuffs ist nicht kompatibel mit dieser Version von Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Die letzten Kommentare';
+$lang['module_desc_lastcoms'] = 'Zeigt die zuletzt eingegebenen Kommentare an';
+
+$lang['lastcoms_no_nb_comments'] = 'Das Feld "Anzahl der angezeigten Kommentare" ist obligatorisch.';
+$lang['lastcoms_config'] = 'Einstellung';
+$lang['lastcoms_nb_comments'] = 'Anzahl der angezeigten Kommentare';
+$lang['lastcoms_show_buttons'] = 'Verwaltungsknöpfe anzeigen';
+$lang['lastcoms_dim'] = 'Dimensionen der Miniaturbilder';
+$lang['lastcoms_width'] = 'Max. Breite';
+$lang['lastcoms_height'] = 'Max. Höhe';
+$lang['lastcoms_nb_cadres'] = 'Anzahl Blöcke pro Linie';
+$lang['lastcoms_taille_cadres'] = 'Höhe der Blöcke';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Anmeldung';
+$lang['module_desc_logon'] = 'Zeigt ein Anmeldefenster in einem Block auf der Indexseite an';
+
+$lang['logon_remove_menubar_block'] = 'Die "Schnellanmeldung" vom Hauptmenü entfernen';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Persönlicher Block';
+$lang['module_desc_personal'] = 'Zeigt einen persönlichen Block an (z. Bsp. ein Editorial)';
+
+$lang['personal_content'] = 'Inhalt';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tags';
+$lang['module_desc_tags'] = 'Zeigt die Tags der Galerien an';
+
+$lang['stuffs_tags_default_display'] = 'Tags-Anzeige';
+$lang['stuffs_tags_cloud'] = 'Tags normal auflisten';
+$lang['stuffs_tags_letters'] = 'Nach Buchstaben gruppieren';
+$lang['stuffs_tags_cumulus'] = 'Den Modus Cumulus benützen(Das Plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> muss dazu installiert werden)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Meist angeschaute Bilder';
+$lang['module_desc_mostvisited'] = 'Zeigt die x meist angeschauten Bilder der Galerie oder Kategorie an';
+
+$lang['stuffs_mv_nb_images'] = 'Max. Anzahl der anzuzeigenden Bilder';
+$lang['stuffs_mv_category_display'] = 'Auf der Kategorieseite anzeigen';
+$lang['stuffs_mv_all_cats'] = 'Alle Kategorien';
+$lang['stuffs_mv_w_thumb'] = 'Nur Kategorien mit Miniaturbildern';
+$lang['stuffs_mv_wo_thumb'] = 'Nur Kategorien ohne Miniaturbilder';
+$lang['stuffs_mv_selected_cats'] = 'Nur ausgewählte Kategorien';
+
+$lang['stuffs_mv_cat_selection'] = 'Auswahl Kategorie';
+$lang['stuffs_mv_hold_ctrl'] = 'CTRL-Taste gedrückt halten';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Beste Noten';
+$lang['module_desc_bestrated'] = 'Zeigt die x bestbenoteten Bilder der Galerie oder Kategorie an';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Neuesten Bilder';
+$lang['module_desc_recent'] = 'Zeigt die neusten hinzugefügten Bilder der Galerie oder Kategorie an (falls vorhanden!)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Zufallsbild';
+$lang['module_desc_random'] = 'Zeigt x Zufallsbilder der Galerie oder Kategorie an';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Zufälliges Zitat';
+$lang['module_desc_citation'] = 'Zeige ein zufälliges Zitat';
+$lang['module_Citation_lang'] = 'Sprache';
+$lang['module_Citation_code'] = 'Dazugehöriger Code';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Ausgewählte Fotos';
+$lang['module_desc_featuredphotos'] = 'Lieblingsbilder des Webmasters anzeigen';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/en_UK/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/en_UK/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/en_UK/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+ Insert modules on your gallery
Index: /extensions/PWG_Stuffs/branch/2.1/language/en_UK/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/en_UK/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/en_UK/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/en_UK/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/en_UK/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/en_UK/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Blocks management';
+$lang['stuffs_add_mod'] = 'Add a block';
+$lang['stuffs_edit_mod'] = 'Edit block';
+
+$lang['stuffs_module_title'] = 'Block title';
+$lang['stuffs_desc'] = 'Description';
+$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+$lang['stuffs_type'] = 'Block type';
+$lang['stuffs_position'] = 'Position';
+$lang['stuffs_id_ligne'] = 'ID line';
+$lang['stuffs_width'] = 'Width';
+$lang['stuffs_action'] = 'Actions';
+$lang['stuffs_edit'] = 'Modify block';
+$lang['stuffs_delete'] = 'Delete block';
+$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+$lang['stuffs_main_block'] = 'Main block';
+$lang['Hide on home page'] = 'Hide on home page';
+
+$lang['stuffs_add_module'] = 'Add new block';
+$lang['stuffs_module_config'] = 'Block configuration';
+$lang['stuffs_visual_config'] = 'Display configuration';
+$lang['stuffs_module_options'] = 'Block options';
+$lang['stuffs_authorized_group'] = 'Authorized groups';
+$lang['stuffs_authorized_users'] = 'Authorized users';
+$lang['stuffs_public_module'] = '(Keep empty for public block)';
+$lang['stuffs_show_title'] = 'Show block title';
+$lang['stuffs_show_module_on'] = 'Show block :';
+$lang['stuffs_show_on_home'] = 'On main page';
+$lang['stuffs_show_on_root'] = 'On categories root page';
+$lang['stuffs_show_on_cats'] = 'On all categories pages';
+$lang['stuffs_show_on_picture'] = 'On picture pages';
+$lang['stuffs_no_options'] = 'No options for this block';
+
+$lang['stuffs_perm'] = 'Activate authorization management:';
+$lang['stuffs_group_perm'] = 'by groups';
+$lang['stuffs_user_perm'] = 'by user type';
+$lang['stuffs_level_perm'] = 'by privacy level';
+
+$lang['stuffs_select_all'] = 'Select all';
+$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Order successfully saved.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+$lang['stuffs_no_name'] = 'You must specify block\'s name';
+$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Last comments';
+$lang['module_desc_lastcoms'] = 'Display last posted comments';
+
+$lang['lastcoms_no_nb_comments'] = 'You must specify numbers of comments.';
+$lang['lastcoms_config'] = 'Configuration';
+$lang['lastcoms_nb_comments'] = 'Number of comments to display';
+$lang['lastcoms_show_buttons'] = 'Show admin buttons';
+$lang['lastcoms_dim'] = 'Thumbnails size';
+$lang['lastcoms_width'] = 'Max width';
+$lang['lastcoms_height'] = 'Max height';
+$lang['lastcoms_nb_cadres'] = 'Numbers of frame by line';
+$lang['lastcoms_taille_cadres'] = 'Frame height';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Login';
+$lang['module_desc_logon'] = 'Display login block';
+
+$lang['logon_remove_menubar_block'] = 'Remove "Quick connect" block from menubar';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Personnal block';
+$lang['module_desc_personal'] = 'Display personnal block (like an edito)';
+
+$lang['personal_content'] = 'content';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tags';
+$lang['module_desc_tags'] = 'Display gallery tags';
+
+$lang['stuffs_tags_default_display'] = 'Tags display';
+$lang['stuffs_tags_cloud'] = 'Tags cloud';
+$lang['stuffs_tags_letters'] = 'Group by lettters';
+$lang['stuffs_tags_cumulus'] = 'Use cumulus mode (plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> must be installed)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Most visited';
+$lang['module_desc_mostvisited'] = 'Display x most visited pictures in the gallery or a category';
+
+$lang['stuffs_mv_nb_images'] = 'Maximum number of pictures to display';
+$lang['stuffs_mv_category_display'] = 'Display on categories pages';
+$lang['stuffs_mv_all_cats'] = 'All categories';
+$lang['stuffs_mv_w_thumb'] = 'Only categories with thumbnails';
+$lang['stuffs_mv_wo_thumb'] = 'Only categories without thumbnails';
+$lang['stuffs_mv_selected_cats'] = 'Only selected categories';
+
+$lang['stuffs_mv_cat_selection'] = 'Categories selection';
+$lang['stuffs_mv_hold_ctrl'] = 'hold CTRL';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Best rated';
+$lang['module_desc_bestrated'] = 'Display x best rated pictures in the gallery or a category';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Recent pictures';
+$lang['module_desc_recent'] = 'Display x recent pictures in the gallery or a category (if exist)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Random pictures';
+$lang['module_desc_random'] = 'Display x random pictures in the gallery or a category';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Random quote';
+$lang['module_desc_citation'] = 'Display a random quote';
+$lang['module_Citation_lang'] = 'Language';
+$lang['module_Citation_code'] = 'Related code';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Featured Photos';
+$lang['module_desc_featuredphotos'] = 'Display favorites photos of the webmaster';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/es_ES/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/es_ES/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/es_ES/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Módulos de encarte sobre su galería
Index: /extensions/PWG_Stuffs/branch/2.1/language/es_ES/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/es_ES/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/es_ES/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/es_ES/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/es_ES/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/es_ES/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Gestión de los bloques';
+$lang['stuffs_add_mod'] = 'Añadir un nuevo bloque';
+$lang['stuffs_edit_mod'] = 'Edición del bloque';
+
+$lang['stuffs_module_title'] = 'Titulo del bloque';
+$lang['stuffs_desc'] = 'Descripcion';
+$lang['stuffs_only_for_admin'] = '(sólo para el panel de la administración)';
+$lang['stuffs_type'] = 'Tipo de bloque';
+$lang['stuffs_position'] = 'Posicion';
+$lang['stuffs_id_ligne'] = 'ID línea';
+$lang['stuffs_width'] = 'Ancho';
+$lang['stuffs_action'] = 'Acciones';
+$lang['stuffs_edit'] = 'Modificar el bloque';
+$lang['stuffs_delete'] = 'Supprimir el bloque';
+$lang['stuffs_confirm_delete'] = 'Está seguro quierer eliminar el bloque %s?';
+$lang['stuffs_main_block'] = 'Bloque principal';
+$lang['Hide on home page'] = 'Ocultar en la página principal';
+
+$lang['stuffs_add_module'] = 'Añadir un nuevo bloque';
+$lang['stuffs_module_config'] = 'Configuracion del bloque';
+$lang['stuffs_visual_config'] = 'Configuración de la visualizacion';
+$lang['stuffs_module_options'] = 'Opción del blosque';
+$lang['stuffs_authorized_group'] = 'Grupos autorizados';
+$lang['stuffs_authorized_users'] = 'Usuarios autorizados';
+$lang['stuffs_public_module'] = '(Deja en blanco para bloque público)';
+$lang['stuffs_show_title'] = 'Mostrar el titulo del bloque';
+$lang['stuffs_show_module_on'] = 'Mostrar el bloque :';
+$lang['stuffs_show_on_home'] = 'En la pagina principal del sitio';
+$lang['stuffs_show_on_root'] = 'En la raíz de las categorías';
+$lang['stuffs_show_on_cats'] = 'En todas las páginas de las categorías';
+$lang['stuffs_show_on_picture'] = 'En las páginas de imágenes';
+$lang['stuffs_no_options'] = 'No hay opciones para este bloque';
+
+$lang['stuffs_perm'] = 'Habilitar la administración de los derechos de acceso a los módulos:';
+$lang['stuffs_group_perm'] = 'por grupos';
+$lang['stuffs_user_perm'] = 'por tipo de usuario';
+$lang['stuffs_level_perm'] = 'por nivel de confidencialidad';
+
+$lang['stuffs_select_all'] = 'Seleccionar todo';
+$lang['stuffs_unselect_all'] = 'Deseleccionar todos';
+
+//Mensajes de información
+$lang['stuffs_order_saved'] = 'El orden se ha guardado.';
+$lang['stuffs_upgrade_message'] = 'El plugin PWG Stuffs a sido renombrado. Ahora se llama "Blocks".';
+
+// Mensajes de error
+$lang['stuffs_error_no_mod_selected'] = 'No ha seleccionado un bloque para agregar.';
+$lang['stuffs_no_name'] = 'Debe introducir un nombre para el bloque';
+$lang['stuffs_parent_plugin_is_missing'] = 'EL PLUGIN PADRE ya no está activo. Por favor, elimine este bloque o activar el plugin padres.';
+$lang['stuffs_piclens_need_upgrade'] = 'EL PLUGIN PicLens debe ser actualizado. PWG Stuffs no es compatible con esta versión de Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Últimos comentarios';
+$lang['module_desc_lastcoms'] = 'Visualiza los últimos comentarios enviados';
+
+$lang['lastcoms_no_nb_comments'] = 'Usted debe informar el campo " Número de comentarios que hay que visualizar ".';
+$lang['lastcoms_config'] = 'Configuración';
+$lang['lastcoms_nb_comments'] = 'Número de comentarios que hay que visualizar';
+$lang['lastcoms_show_buttons'] = 'Visualizar los botones admin';
+$lang['lastcoms_dim'] = 'Dimensión de las miniaturas';
+$lang['lastcoms_width'] = 'Anchura máxima';
+$lang['lastcoms_height'] = 'Altura máxima';
+$lang['lastcoms_nb_cadres'] = 'Número de cuadro por línea';
+$lang['lastcoms_taille_cadres'] = 'Altura del cuadro';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Identificación';
+$lang['module_desc_logon'] = 'Fija un bloque "Identificación" sobre el índice';
+
+$lang['logon_remove_menubar_block'] = 'Retirar el bloque " identificación rápida " del menubar';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Bloque personal';
+$lang['module_desc_personal'] = 'Fija un bloque personal (un editorial por ejemplo)';
+
+$lang['personal_content'] = 'Contenido';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tags';
+$lang['module_desc_tags'] = 'Fija las tags de la galería';
+
+$lang['stuffs_tags_default_display'] = 'Fijación de las tags';
+$lang['stuffs_tags_cloud'] = 'Nube de tags';
+$lang['stuffs_tags_letters'] = 'Reagrupar por letras';
+$lang['stuffs_tags_cumulus'] = '¿ Utilizar el modo Cúmulo (el plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> debe etre instalado)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Más vistas';
+$lang['module_desc_mostvisited'] = 'Anuncio las x imágenes más vistas de la galería o de la categoría';
+
+$lang['stuffs_mv_nb_images'] = 'Número máximo de imágenes que hay que fijar';
+$lang['stuffs_mv_category_display'] = 'Fijación sobre las páginas de las categorías';
+$lang['stuffs_mv_all_cats'] = 'Todas las categorías';
+$lang['stuffs_mv_w_thumb'] = 'Categorías con miniaturas únicamente';
+$lang['stuffs_mv_wo_thumb'] = 'Categorías sin miniaturas únicamente';
+$lang['stuffs_mv_selected_cats'] = 'Categorías seleccionadas únicamente';
+
+$lang['stuffs_mv_cat_selection'] = 'Selección de las categorías';
+$lang['stuffs_mv_hold_ctrl'] = 'Mantener a CTRL insistente';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Mejor anotadas';
+$lang['module_desc_bestrated'] = 'Anuncio x imágenes las mejor anotadas por la galería o por la categoría';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Imágenes recientes';
+$lang['module_desc_recent'] = 'Fija las imágenes recientes de la galería o de la categoría (si él de allí a)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Imágenes al azar';
+$lang['module_desc_random'] = 'Anuncio x llenas de imágenes al azar en la galería o la categoría';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Citación aleatoria del momento';
+$lang['module_desc_citation'] = 'Fija una citación en francés tomada al azar';
+$lang['module_Citation_lang'] = 'Idioma';
+$lang['module_Citation_code'] = 'Código asociado';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Imágenes de día';
+$lang['module_desc_featuredphotos'] = 'Fija las imágenes favoritas del webmaster';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/fr_FR/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/fr_FR/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/fr_FR/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Insérer des modules sur votre galerie.
Index: /extensions/PWG_Stuffs/branch/2.1/language/fr_FR/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/fr_FR/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/fr_FR/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/fr_FR/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/fr_FR/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/fr_FR/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Gestion des blocs';
+$lang['stuffs_add_mod'] = 'Ajouter un nouveau bloc';
+$lang['stuffs_edit_mod'] = 'Edition du bloc';
+
+$lang['stuffs_module_title'] = 'Titre du bloc';
+$lang['stuffs_desc'] = 'Description';
+$lang['stuffs_only_for_admin'] = '(uniquement pour le panneau d\'administration)';
+$lang['stuffs_type'] = 'Type de bloc';
+$lang['stuffs_position'] = 'Position';
+$lang['stuffs_id_ligne'] = 'ID ligne';
+$lang['stuffs_width'] = 'Largeur';
+$lang['stuffs_action'] = 'Actions';
+$lang['stuffs_edit'] = 'Modifier le bloc';
+$lang['stuffs_delete'] = 'Supprimer le bloc';
+$lang['stuffs_confirm_delete'] = 'Etes-vous sur de vouloir supprimer le bloc %s?';
+$lang['stuffs_main_block'] = 'Bloc principal';
+$lang['Hide on home page'] = 'Masquer sur la page d\'accueil';
+
+$lang['stuffs_add_module'] = 'Ajout d\'un nouveau bloc';
+$lang['stuffs_module_config'] = 'Configuration du bloc';
+$lang['stuffs_visual_config'] = 'Configuration de l\'affichage';
+$lang['stuffs_module_options'] = 'Options du bloc';
+$lang['stuffs_authorized_group'] = 'Groupes autorisés';
+$lang['stuffs_authorized_users'] = 'Utilisateurs autorisés';
+$lang['stuffs_public_module'] = '(Laisser vide pour un bloc publique)';
+$lang['stuffs_show_title'] = 'Afficher le titre du bloc';
+$lang['stuffs_show_module_on'] = 'Afficher le bloc :';
+$lang['stuffs_show_on_home'] = 'Sur la page d\'accueil du site';
+$lang['stuffs_show_on_root'] = 'A la racine des catégories';
+$lang['stuffs_show_on_cats'] = 'Sur toutes les pages des catégories';
+$lang['stuffs_show_on_picture'] = 'Sur les pages des images';
+$lang['stuffs_no_options'] = 'Pas d\'options disponibles pour ce bloc';
+
+$lang['stuffs_perm'] = 'Activer la gestion des droits d\'accès aux modules:';
+$lang['stuffs_group_perm'] = 'par groupes';
+$lang['stuffs_user_perm'] = 'par type d\'utilisateurs';
+$lang['stuffs_level_perm'] = 'par niveau de confidentialité';
+
+$lang['stuffs_select_all'] = 'Sélectionner tout';
+$lang['stuffs_unselect_all'] = 'Déselectionner tout';
+
+//Messages d'infos
+$lang['stuffs_order_saved'] = 'L\'ordre a été sauvegardé.';
+$lang['stuffs_upgrade_message'] = 'Le plugin PWG Stuffs a été renommé. Il s\'appelle désormais "Blocks".';
+
+// Messages d'erreurs
+$lang['stuffs_error_no_mod_selected'] = 'Vous n\'avez pas sélectionné de bloc à ajouter.';
+$lang['stuffs_no_name'] = 'Vous devez indiquer un nom pour le bloc';
+$lang['stuffs_parent_plugin_is_missing'] = 'LE PLUGIN PARENT N\'EST PLUS ACTIVÉ. Veuillez supprimer ce bloc ou réactiver le plugin parent.';
+$lang['stuffs_piclens_need_upgrade'] = 'LE PLUGIN PICLENS DOIT ÊTRE MIS À JOUR. PWG Stuffs n\'est pas compatible avec cette version de Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Derniers commentaires';
+$lang['module_desc_lastcoms'] = 'Affiche les derniers commentaires postés';
+
+$lang['lastcoms_no_nb_comments'] = 'Vous devez renseigner le champ "Nombre de commentaires à afficher".';
+$lang['lastcoms_config'] = 'Configuration';
+$lang['lastcoms_nb_comments'] = 'Nombre de commentaires à afficher';
+$lang['lastcoms_show_buttons'] = 'Afficher les boutons admin';
+$lang['lastcoms_dim'] = 'Dimension des miniatures';
+$lang['lastcoms_width'] = 'largeur maxi';
+$lang['lastcoms_height'] = 'hauteur maxi';
+$lang['lastcoms_nb_cadres'] = 'Nombre de cadres par ligne';
+$lang['lastcoms_taille_cadres'] = 'Hauteur des cadres';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Identification';
+$lang['module_desc_logon'] = 'Affiche un bloc "Identification" sur l\'index';
+
+$lang['logon_remove_menubar_block'] = 'Retirer le bloc "identification rapide" du menubar';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Bloc personnel';
+$lang['module_desc_personal'] = 'Affiche un bloc personnel (un édito par exemple)';
+
+$lang['personal_content'] = 'contenu';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tags';
+$lang['module_desc_tags'] = 'Affiche les tags de la galerie';
+
+$lang['stuffs_tags_default_display'] = 'Affichage des tags';
+$lang['stuffs_tags_cloud'] = 'Nuage de tags';
+$lang['stuffs_tags_letters'] = 'Regrouper par lettres';
+$lang['stuffs_tags_cumulus'] = 'Utiliser le mode Cumulus (le plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> doit etre installé)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Plus vues';
+$lang['module_desc_mostvisited'] = 'Affiche les x images les plus vues de la galerie ou de la catégorie';
+
+$lang['stuffs_mv_nb_images'] = 'Nombre maximum d\'images à afficher';
+$lang['stuffs_mv_category_display'] = 'Affichage sur les pages des catégories';
+$lang['stuffs_mv_all_cats'] = 'Toutes les catégories';
+$lang['stuffs_mv_w_thumb'] = 'Catégories avec miniatures uniquement';
+$lang['stuffs_mv_wo_thumb'] = 'Catégories sans miniatures uniquement';
+$lang['stuffs_mv_selected_cats'] = 'Catégories sélectionnées uniquement';
+
+$lang['stuffs_mv_cat_selection'] = 'Sélection des catégories';
+$lang['stuffs_mv_hold_ctrl'] = 'maintenir CTRL appuyé';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Mieux notées';
+$lang['module_desc_bestrated'] = 'Affiche les x images les mieux notées de la galerie ou de la catégorie';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Images récentes';
+$lang['module_desc_recent'] = 'Affiche les images récentes de la galerie ou de la catégorie (s\'il y en a)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Images au hasard';
+$lang['module_desc_random'] = 'Affiche x images au hasard dans la galerie ou la catégorie';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Citation aléatoire du moment';
+$lang['module_desc_citation'] = 'Affiche une citation en français prise au hasard';
+$lang['module_Citation_lang'] = 'Langue';
+$lang['module_Citation_code'] = 'Code associé';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Images du jour';
+$lang['module_desc_featuredphotos'] = 'Affiche les images favorites du webmaster';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/hr_HR/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/hr_HR/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/hr_HR/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Dodavanje modula u galeriju
Index: /extensions/PWG_Stuffs/branch/2.1/language/hr_HR/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/hr_HR/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/hr_HR/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/hr_HR/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/hr_HR/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/hr_HR/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Zadnji komentari';
+$lang['module_desc_lastcoms'] = 'Prikazuje zadnje postavljene komentare';
+
+$lang['lastcoms_no_nb_comments'] = 'Morate navesti broj komentara.';
+$lang['lastcoms_config'] = 'Podešavanja';
+$lang['lastcoms_nb_comments'] = 'Broj komentara za prikaz';
+$lang['lastcoms_show_buttons'] = 'Prikaži administrativne gumbe';
+$lang['lastcoms_dim'] = 'Veličina umanjene sličice';
+$lang['lastcoms_width'] = 'Maksimalna širina';
+$lang['lastcoms_height'] = 'Maksimalna visina';
+$lang['lastcoms_nb_cadres'] = 'Broj okvira po liniji';
+$lang['lastcoms_taille_cadres'] = 'Visina okvira';
+
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Prijava';
+$lang['module_desc_logon'] = 'Prikazuje blok sa prijavom';
+
+$lang['logon_remove_menubar_block'] = 'Ukloni "Quick connect" ("Brzu prijavu") iz izbornika';
+
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Osobni blok';
+$lang['module_desc_personal'] = 'Prikazuje osobno kreirani blok teksta na naslovnici (ili nekoj drugoj stranici)';
+
+$lang['personal_content'] = 'sadržaj';
+
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tagovi';
+$lang['module_desc_tags'] = 'Prikazuje tagove galerije';
+
+$lang['stuffs_tags_default_display'] = 'Prikaz tagova';
+$lang['stuffs_tags_cloud'] = 'Oblak tagova';
+$lang['stuffs_tags_letters'] = 'Grupiraj prema slovima';
+$lang['stuffs_tags_cumulus'] = 'Koristi cumulus mod (<a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> plugin mora biti instaliran)';
+
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Najposjećenije';
+$lang['module_desc_mostvisited'] = 'Prikazuje x najćešće posjećenih slika u galeriji ili kategoriji';
+
+$lang['stuffs_mv_nb_images'] = 'Najveći broj slika za prikaz';
+$lang['stuffs_mv_category_display'] = 'Prikaži na stranicama kategorija';
+$lang['stuffs_mv_all_cats'] = 'Svih kategorija';
+$lang['stuffs_mv_w_thumb'] = 'Samo kategorija sa umanjenim sličicama';
+$lang['stuffs_mv_wo_thumb'] = 'Samo kategorija bez umanjenih sličica';
+$lang['stuffs_mv_selected_cats'] = 'Samo odabranih kategorija';
+
+$lang['stuffs_mv_cat_selection'] = 'Odabir kategorija';
+$lang['stuffs_mv_hold_ctrl'] = 'držite CTRL';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Najbolje ocijenjene';
+$lang['module_desc_bestrated'] = 'Prikazuje x najbolje ocjenjenih slika u galeriji ili kategoriji';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Nedavno objavljene slike';
+$lang['module_desc_recent'] = 'Prikazuje x nedavno objavljenih slika u galeriji ili kategoriji (ako postoje)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Slučajno odabrane slike';
+$lang['module_desc_random'] = 'Prikazuje x slučajno odabranih slika u galeriji ili kategoriji';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Slučajno odabrani citat';
+$lang['module_desc_citation'] = 'Prikazuje slučajno odabrani citat';
+$lang['module_Citation_lang'] = 'Jezik';
+$lang['module_Citation_code'] = 'Povezani kod';
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Istaknute fotografije';
+$lang['module_desc_featuredphotos'] = 'Prikazuje omiljene slike webmastera';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/hu_HU/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/hu_HU/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/hu_HU/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Modulok hozzáadása a galériához.
Index: /extensions/PWG_Stuffs/branch/2.1/language/hu_HU/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/hu_HU/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/hu_HU/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/hu_HU/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/hu_HU/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/hu_HU/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Modulok kezelése';
+$lang['stuffs_add_mod'] = 'Modul hozzáadása';
+$lang['stuffs_edit_mod'] = 'Modul beállítása:';
+
+$lang['stuffs_module_title'] = 'Modul címe';
+$lang['stuffs_desc'] = 'Leírás';
+$lang['stuffs_only_for_admin'] = '(csak az Adminisztrációs panelen)';
+$lang['stuffs_type'] = 'Modul tipusa';
+$lang['stuffs_position'] = 'Elhelyezkedés';
+$lang['stuffs_id_ligne'] = 'ID line';
+$lang['stuffs_width'] = 'Szélesség';
+$lang['stuffs_action'] = 'Végrehajtás';
+$lang['stuffs_edit'] = 'Modul szerkesztése';
+$lang['stuffs_delete'] = 'Modul törlése';
+$lang['stuffs_confirm_delete'] = 'Biztos, hogy törölni akarod ezt a modult: %s?';
+$lang['stuffs_main_block'] = 'Fő blokk';
+$lang['Hide on home page'] = 'Elrejtés a kezdő lapon';
+
+$lang['stuffs_add_module'] = 'Új modul hozzáadva';
+$lang['stuffs_module_config'] = 'Modul beállítások';
+$lang['stuffs_visual_config'] = 'Megjelenítés beállításai';
+$lang['stuffs_module_options'] = 'Egyéb lehetőségek';
+$lang['stuffs_authorized_group'] = 'Mely csoportok láthatják';
+$lang['stuffs_authorized_users'] = 'Mely felhasználók láthatják';
+$lang['stuffs_public_module'] = '(A publikus modulok legyenek üresek)';
+$lang['stuffs_show_title'] = 'Mutassa a modul címét';
+$lang['stuffs_show_module_on'] = 'Modul megjelenés :';
+$lang['stuffs_show_on_home'] = 'Fő oldalon';
+$lang['stuffs_show_on_root'] = 'Gyökér ketegóriákban';
+$lang['stuffs_show_on_cats'] = 'Minden kategória oldalon';
+$lang['stuffs_show_on_picture'] = 'Kép oldalakon';
+$lang['stuffs_no_options'] = 'A modulhoz nincs egyéb beállítási lehetőség';
+
+$lang['stuffs_perm'] = 'Modul hozzáférési jog engedély kezelése:';
+$lang['stuffs_group_perm'] = 'Csoportok';
+$lang['stuffs_user_perm'] = 'Felhasználói státusz';
+$lang['stuffs_level_perm'] = 'Hozzáférési szint';
+
+$lang['stuffs_select_all'] = 'Összes kijelölése';
+$lang['stuffs_unselect_all'] = 'Összes kijelölés törlése';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Beállítások mentése sikeres.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs bővítmény át lett nevezve. Itt az új neve "Blokkok".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Nincs modul kiválasztva.';
+$lang['stuffs_no_name'] = 'Meg kell adni a modul címét';
+$lang['stuffs_parent_plugin_is_missing'] = 'A SZÜLŐ BŐVÍTMÉNY NINCS AKTIVÁLVA. El kell távolítanod a blokkot, vagy aktiválnod kell a szülő bővítményt.';
+$lang['stuffs_piclens_need_upgrade'] = 'FRISSÍTENED KELL A PICLENS BŐVÍTMÉNYT. PWG Stuffs nem kompatibilis a jelenleg futó Piclens verzióval.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Friss hozzászólások';
+$lang['module_desc_lastcoms'] = 'Jelenjenek meg az utolsó hozzászólások';
+
+$lang['lastcoms_no_nb_comments'] = 'Meg kell adnia a hozzászólások számát.';
+$lang['lastcoms_config'] = 'Beállítások';
+$lang['lastcoms_nb_comments'] = 'Megjelenő hozzászólások száma';
+$lang['lastcoms_show_buttons'] = 'Jelenjen meg az admin gomb';
+$lang['lastcoms_dim'] = 'Bélyegkép mérete';
+$lang['lastcoms_width'] = 'Legnagyobb szélesség';
+$lang['lastcoms_height'] = 'Legnagyobb magasság';
+$lang['lastcoms_nb_cadres'] = 'Keret száma a sorra';
+$lang['lastcoms_taille_cadres'] = 'Keret magassága';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Azonosító';
+$lang['module_desc_logon'] = 'Jelenjen meg az Azonosító blokk';
+
+$lang['logon_remove_menubar_block'] = 'Azonosító blokk eltávolítása a menüből';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Személyes blokk';
+$lang['module_desc_personal'] = 'Jelenjen meg a személyes blokk (like an edito)';
+
+$lang['personal_content'] = 'tartalom';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Cimkefelhő';
+$lang['module_desc_tags'] = 'Jelenjenek meg a Galéria cimkék';
+
+$lang['stuffs_tags_default_display'] = 'Cimkék megjelenítése';
+$lang['stuffs_tags_cloud'] = 'Cimkefelhő';
+$lang['stuffs_tags_letters'] = 'Csoportosítás betűrendben';
+$lang['stuffs_tags_cumulus'] = 'Használja a gomolyfelhő módot (telepíteni kell a <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> bővítményt)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Legtöbbször nézett';
+$lang['module_desc_mostvisited'] = 'Jelenjenek meg a legtöbbször nézett kategóriák vagy képek';
+
+$lang['stuffs_mv_nb_images'] = 'Legfeljebb ennyi kép';
+$lang['stuffs_mv_category_display'] = 'Jelenjen meg a kategóriák oldalain';
+$lang['stuffs_mv_all_cats'] = 'Minden kategória';
+$lang['stuffs_mv_w_thumb'] = 'Csak kategóriák bélyegképpel';
+$lang['stuffs_mv_wo_thumb'] = 'Csak kategóriák bélyegkép nélkül';
+$lang['stuffs_mv_selected_cats'] = 'Csak a kiválasztott kategóriák';
+
+$lang['stuffs_mv_cat_selection'] = 'Kategóriák kiválasztása';
+$lang['stuffs_mv_hold_ctrl'] = 'tartsa lenyomva a CTRL-t';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Legjobbra értékelt';
+$lang['module_desc_bestrated'] = 'Jelenjenek meg a legjobbra értékelt kategóriák vagy képek';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Legfrissebb képek';
+$lang['module_desc_recent'] = 'Jelenjenek meg a legfrissebb kategóriák vagy képek (ha vannak)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Véletlenszerű képek';
+$lang['module_desc_random'] = 'Jelenjenek meg a véletlenszerű kategóriák vagy képek';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Véletlenszerű idézet';
+$lang['module_desc_citation'] = 'Jelenjen meg véletlenszerű idézet';
+$lang['module_Citation_lang'] = 'Nyelv';
+$lang['module_Citation_code'] = 'Kapcsolódó kód';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Aktuális képek';
+$lang['module_desc_featuredphotos'] = 'Jelenjenek meg a webmester kedvenc képei';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/it_IT/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/it_IT/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/it_IT/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Inserisce dei moduli nella vostra galleria.
Index: /extensions/PWG_Stuffs/branch/2.1/language/it_IT/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/it_IT/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/it_IT/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/it_IT/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/it_IT/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/it_IT/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Gestione dei blocchi';
+$lang['stuffs_add_mod'] = 'Aggiungere un blocco';
+$lang['stuffs_edit_mod'] = 'Modificare il blocco';
+
+$lang['stuffs_module_title'] = 'Titolo del blocco';
+$lang['stuffs_desc'] = 'Descrizione';
+$lang['stuffs_only_for_admin'] = '(solo per il pannello dell\'amministrazione)';
+$lang['stuffs_type'] = 'Tipo di blocco';
+$lang['stuffs_position'] = 'Posizione';
+$lang['stuffs_id_ligne'] = 'ID line';
+$lang['stuffs_width'] = 'Larghezza';
+$lang['stuffs_action'] = 'Azioni';
+$lang['stuffs_edit'] = 'Modifica del blocco';
+$lang['stuffs_delete'] = 'Eliminare il blocco';
+$lang['stuffs_confirm_delete'] = 'È sicuro di voler eliminare il blocco %s?';
+$lang['stuffs_main_block'] = 'Blocco principale';
+$lang['Hide on home page'] = 'Nascondi sulla pagina iniziale';
+
+$lang['stuffs_add_module'] = 'Aggiungere un nuovo blocco';
+$lang['stuffs_module_config'] = 'Configurazione del blocco';
+$lang['stuffs_visual_config'] = 'Configurazione della visualizzazione';
+$lang['stuffs_module_options'] = 'Opzioni del blocco';
+$lang['stuffs_authorized_group'] = 'Gruppi autorizzati';
+$lang['stuffs_authorized_users'] = 'utenti autorizzati';
+$lang['stuffs_public_module'] = '(Mantenere vuoto per un blocco pubblico)';
+$lang['stuffs_show_title'] = 'Mostrare il titolo del blocco';
+$lang['stuffs_show_module_on'] = 'Mostrare il blocco :';
+$lang['stuffs_show_on_home'] = 'Sulla pagina principale';
+$lang['stuffs_show_on_root'] = 'Alla radice delle categorie';
+$lang['stuffs_show_on_cats'] = 'Su tutte le pagine delle categorie';
+$lang['stuffs_show_on_picture'] = 'Sulle pagine delle foto';
+$lang['stuffs_no_options'] = 'Nessuna opzione per questo blocco';
+
+$lang['stuffs_perm'] = 'Attivare la gestione di autorizzazione:';
+$lang['stuffs_group_perm'] = 'per gruppi';
+$lang['stuffs_user_perm'] = 'per tipo d\'utente';
+$lang['stuffs_level_perm'] = 'per livello privacy';
+
+$lang['stuffs_select_all'] = 'Selezionare tutto';
+$lang['stuffs_unselect_all'] = 'Deselezionare tutto';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Ordine salvato con successo.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs plug-in è stato rinominato. Ora si chiama "Blocks".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Non ha scelto nessun blocco.';
+$lang['stuffs_no_name'] = 'Deve specificare il nome del blocco';
+$lang['stuffs_parent_plugin_is_missing'] = 'IL PLUG-IN PARENTE NON È ATTIVO. Dovrebbe rimuovere il blocco o riattivare il plug-in parente.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUG-IN DEVE ESSERE AGGIORNATO. PWG Stuffs non è compatibile con la versione di Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Ultimi commenti';
+$lang['module_desc_lastcoms'] = 'Visualizzare gli ultimi commenti inseriti';
+
+$lang['lastcoms_no_nb_comments'] = 'Dovete inserire un valore nel campo "Numero di commenti da visualizzare".';
+$lang['lastcoms_config'] = 'Configurazione';
+$lang['lastcoms_nb_comments'] = 'Numero di commenti da visualizzare';
+$lang['lastcoms_show_buttons'] = 'Visualizzare i pulsanti d\'amministrazione';
+$lang['lastcoms_dim'] = 'Dimensioni delle miniature';
+$lang['lastcoms_width'] = 'larghezza massima';
+$lang['lastcoms_height'] = 'altezza massima';
+$lang['lastcoms_nb_cadres'] = 'Numero di quadri per riga';
+$lang['lastcoms_taille_cadres'] = 'Altezza dei quadri';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Identificazione';
+$lang['module_desc_logon'] = 'Visualizzare un blocco "Identificazione" sull\'indice';
+
+$lang['logon_remove_menubar_block'] = 'Rimuovere il blocco "identificazione rapida" dalla barra dei menu';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Blocco personale';
+$lang['module_desc_personal'] = 'Visualizzare blocco personale (una nota per esempio)';
+
+$lang['personal_content'] = 'Contenuto';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tags';
+$lang['module_desc_tags'] = 'Visualizzare i tags della galleria';
+
+$lang['stuffs_tags_default_display'] = 'Visualizzazione dei tag';
+$lang['stuffs_tags_cloud'] = 'Nuvola di tag';
+$lang['stuffs_tags_letters'] = 'Ragruppare per lettera';
+$lang['stuffs_tags_cumulus'] = 'Usare cumulus (il plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> deve essere installato)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'I più visti';
+$lang['module_desc_mostvisited'] = 'Visualizza le x immagini le più viste della galleria o della categoria';
+
+$lang['stuffs_mv_nb_images'] = 'Numero massimo d\'immagini da visualizzare';
+$lang['stuffs_mv_category_display'] = 'Visualizzazione sulle pagine delle categorie';
+$lang['stuffs_mv_all_cats'] = 'Tutte le categorie';
+$lang['stuffs_mv_w_thumb'] = 'Solo categorie con miniature';
+$lang['stuffs_mv_wo_thumb'] = 'Solo categorie senza miniature';
+$lang['stuffs_mv_selected_cats'] = 'Solo categorie selezionate';
+
+$lang['stuffs_mv_cat_selection'] = 'Selezione delle categorie';
+$lang['stuffs_mv_hold_ctrl'] = 'tenere premuto CTRL';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Le più votate';
+$lang['module_desc_bestrated'] = 'Visualizza le x immagini le più votate della galleria o della categoria';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Immagini recenti';
+$lang['module_desc_recent'] = 'Visualizza le x immagini le più recenti della galleria o della categoria (se esistono)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Immagini a caso';
+$lang['module_desc_random'] = 'Visualizza x immagini a caso della galleria o della categoria';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Citazione a caso del momento';
+$lang['module_desc_citation'] = 'Vizualizza una citazione a caso';
+$lang['module_Citation_lang'] = 'Lingua';
+$lang['module_Citation_code'] = 'Codice associato';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Immagine del giorno';
+$lang['module_desc_featuredphotos'] = 'Visualizza le immagini preferite del webmaster';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/ja_JP/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/ja_JP/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/ja_JP/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/ja_JP/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/ja_JP/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/ja_JP/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = '最新コメント';
+$lang['module_desc_lastcoms'] = '最新コメントを表示する';
+
+$lang['lastcoms_no_nb_comments'] = 'あなたは、コメント数を指定する必要があります。';
+$lang['lastcoms_config'] = '設定';
+$lang['lastcoms_nb_comments'] = '表示コメント数';
+$lang['lastcoms_show_buttons'] = '管理ボタンを表示する';
+$lang['lastcoms_dim'] = 'サムネイルサイズ';
+$lang['lastcoms_width'] = '最大幅';
+$lang['lastcoms_height'] = '最大高';
+$lang['lastcoms_nb_cadres'] = '1行あたりのフレーム数';
+$lang['lastcoms_taille_cadres'] = 'フレーム高';
+
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'ログイン';
+$lang['module_desc_logon'] = 'ログインブロックを表示する';
+
+$lang['logon_remove_menubar_block'] = 'メニューバーより「クイック接続」ブロックを削除する';
+
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'パーソナルブロック';
+$lang['module_desc_personal'] = 'パーソナルブロックを表示する';
+
+$lang['personal_content'] = 'コンテンツ';
+
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'タグ';
+$lang['module_desc_tags'] = 'ギャラリータグを表示する';
+
+$lang['stuffs_tags_default_display'] = 'タグ表示';
+$lang['stuffs_tags_cloud'] = 'タグクラウド';
+$lang['stuffs_tags_letters'] = '文字でグルーピングする';
+$lang['stuffs_tags_cumulus'] = 'カミュラスモードを使用する (プラグイン <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">カミュラス・タグクラウド</a>をインストールする必要があります)';
+
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = '最大アクセス';
+$lang['module_desc_mostvisited'] = 'ギャラリまたはカテゴリで最もアクセスされた写真 x件を表示する';
+
+$lang['stuffs_mv_nb_images'] = '表示する写真の最大数';
+$lang['stuffs_mv_category_display'] = 'カテゴリページに表示する';
+$lang['stuffs_mv_all_cats'] = 'すべてのカテゴリ';
+$lang['stuffs_mv_w_thumb'] = 'サムネイル付きカテゴリのみ';
+$lang['stuffs_mv_wo_thumb'] = 'カテゴリなしサムネイルのみ';
+$lang['stuffs_mv_selected_cats'] = '選択したカテゴリのみ';
+
+$lang['stuffs_mv_cat_selection'] = 'カテゴリ選択';
+$lang['stuffs_mv_hold_ctrl'] = 'CTRLを保持';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = '最高評価';
+$lang['module_desc_bestrated'] = 'ギャラリまたはカテゴリで最高評価された写真 x件を表示する';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = '最近の写真';
+$lang['module_desc_recent'] = '存在する場合、ギャラリまたはカテゴリ内の最近の写真 x 件を表示する';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'ランダム写真';
+$lang['module_desc_random'] = 'ギャラリまたはカテゴリ内にランダム写真 x件を表示する';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'ランダムクオート';
+$lang['module_desc_citation'] = 'ランダムクオートを表示する';
+$lang['module_Citation_lang'] = '言語';
+$lang['module_Citation_code'] = '関連コード';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = '特集写真';
+$lang['module_desc_featuredphotos'] = 'ウェブマスタのお気に入り写真を表示する';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/lv_LV/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/lv_LV/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/lv_LV/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Pievieno moduļus Jūsu galerijai
Index: /extensions/PWG_Stuffs/branch/2.1/language/lv_LV/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/lv_LV/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/lv_LV/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/lv_LV/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/lv_LV/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/lv_LV/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Bloku pārvaldība';
+$lang['stuffs_add_mod'] = 'Pievienot bloku';
+$lang['stuffs_edit_mod'] = 'Rediģēt bloku';
+
+$lang['stuffs_module_title'] = 'Bloka virsraksts';
+$lang['stuffs_desc'] = 'Apraksts';
+$lang['stuffs_only_for_admin'] = '(tikai administrēšanas panelim)';
+$lang['stuffs_type'] = 'Bloka tips';
+$lang['stuffs_position'] = 'Pozīcija';
+$lang['stuffs_id_ligne'] = 'ID rinda';
+$lang['stuffs_width'] = 'Platums';
+$lang['stuffs_action'] = 'Darbības';
+$lang['stuffs_edit'] = 'Modificēt bloku';
+$lang['stuffs_delete'] = 'Dzēst bloku';
+$lang['stuffs_confirm_delete'] = 'Vai esat pārliecināts, ka gribat dzēst bloku %s?';
+$lang['stuffs_main_block'] = 'Galvenais bloks';
+$lang['Hide on home page'] = 'paslēpt mājas lapā';
+
+$lang['stuffs_add_module'] = 'Pievienot jaunu bloku';
+$lang['stuffs_module_config'] = 'Bloka konfigurācija';
+$lang['stuffs_visual_config'] = 'Vizuālā konfigurācija';
+$lang['stuffs_module_options'] = 'Bloka opcijas';
+$lang['stuffs_authorized_group'] = 'Autorizētās grupas';
+$lang['stuffs_authorized_users'] = 'Autorizētie lietotāji';
+$lang['stuffs_public_module'] = '(Atstāt tukšu priekš publiskā bloka)';
+$lang['stuffs_show_title'] = 'Rādīt bloka virsrakstu';
+$lang['stuffs_show_module_on'] = 'Rādīt bloku :';
+$lang['stuffs_show_on_home'] = 'Galvenajā lapā';
+$lang['stuffs_show_on_root'] = 'Kategoriju saknes lapā';
+$lang['stuffs_show_on_cats'] = 'Visās kategorijas lapās';
+$lang['stuffs_show_on_picture'] = 'Attēlu lapās';
+$lang['stuffs_no_options'] = 'Šim blokam nav opciju';
+
+$lang['stuffs_perm'] = 'Aktivizēt autorizācijas pārvaldību:';
+$lang['stuffs_group_perm'] = 'pēc grupām';
+$lang['stuffs_user_perm'] = 'pēc lietotāja tipa';
+$lang['stuffs_level_perm'] = 'pēc konfidencialitātes līmeņa';
+
+$lang['stuffs_select_all'] = 'Atlasīt visu';
+$lang['stuffs_unselect_all'] = 'Atcelt atlasīšanu';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Kārtība sekmīgi saglabāta.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs spraudnis ticis pārsaukts. Tagad tas saucas "Blocks".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Jūs neesat izvēlējies nevienu bloku.';
+$lang['stuffs_no_name'] = 'Jums jānorāda bloka nosaukums';
+$lang['stuffs_parent_plugin_is_missing'] = 'MĀTES PRAUDNIS (PARENT PLUGIN) NAV AKTIVIZĒTS. Jums jāizdzēš šis bloks vai jāreaktivē mātes spraudnis.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS SPRAUDNI IR NEPIECIEŠAMS ATJAUNINĀT. PWG Stuffs nav savietojams ar šo Piclens versiju.';
+
+//------------------------------------------------------------------------------
+//                            Jaunāko komentāru modulis
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Jaunākie komentāri';
+$lang['module_desc_lastcoms'] = 'Parādīt jaunākos atsūtītos komentārus';
+
+$lang['lastcoms_no_nb_comments'] = 'Jums jāizvēlas komentāru skaits.';
+$lang['lastcoms_config'] = 'Konfigurācija';
+$lang['lastcoms_nb_comments'] = 'Parādāmo komentāru skaits';
+$lang['lastcoms_show_buttons'] = 'Rādīt administratora pogas';
+$lang['lastcoms_dim'] = 'Sīkbildes izmērs';
+$lang['lastcoms_width'] = 'Max platums';
+$lang['lastcoms_height'] = 'Max augstums';
+$lang['lastcoms_nb_cadres'] = 'Attēla rāmju skaits rindā';
+$lang['lastcoms_taille_cadres'] = 'Rāmja augstums';
+
+
+//------------------------------------------------------------------------------
+//                            Ielogošanās modulis
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Logins';
+$lang['module_desc_logon'] = 'Rādīt ielogošanās bloku';
+
+$lang['logon_remove_menubar_block'] = 'Izņemt "Ātrais savienojums" bloku no izvēlnes';
+
+
+//------------------------------------------------------------------------------
+//                               Personāla Modulis
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Personālais bloks';
+$lang['module_desc_personal'] = 'Rādīt personālo bloku (kā edito)';
+
+$lang['personal_content'] = 'saturs';
+
+
+//------------------------------------------------------------------------------
+//                            Modulis Iezīmes
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Iezīmes';
+$lang['module_desc_tags'] = 'Rādīt galerijas iezīmes';
+
+$lang['stuffs_tags_default_display'] = 'Iezīmes atainojums';
+$lang['stuffs_tags_cloud'] = 'Iezīmes aizsegs';
+$lang['stuffs_tags_letters'] = 'Burtu grupa';
+$lang['stuffs_tags_cumulus'] = ' Lietot ~cumulus~ režīmu (spraudnis <a
+href=http://piwigo.org/ext/extension_view.php?eid=263
+target="_blank">Cumulus Aizsega Iezīmei </a> jābūt instalētai)';
+
+
+//------------------------------------------------------------------------------
+//                            Modulis Visvairāk Apmeklēts
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Visvairāk apmeklēts';
+$lang['module_desc_mostvisited'] = 'Parādīt x visvairāk apmeklētos attēlus galerijā vai kategorijā';
+$lang['stuffs_mv_nb_images'] = 'Parādāmo attēlu maksimālais skaits';
+$lang['stuffs_mv_category_display'] = 'Rādīt kategoriju lapās';
+$lang['stuffs_mv_all_cats'] = ' Visas kategorijas';
+$lang['stuffs_mv_w_thumb'] = 'Tikai kategorijas ar piktogrammām';
+$lang['stuffs_mv_wo_thumb'] = 'Tikai kategorijas bez piktogrammām';
+$lang['stuffs_mv_selected_cats'] = 'Tikai izvēlētās kategorijas';
+$lang['stuffs_mv_cat_selection'] = 'Categories selection';
+$lang['stuffs_mv_hold_ctrl'] = 'hold CTRL';
+
+//------------------------------------------------------------------------------
+//                            Modulis  Visaugstāk novērtēts
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Visaugstāk novērtēts';
+$lang['module_desc_bestrated'] = 'Rādīt x visaugstāk novērtētos attēlus galerijā vai kategorijā';
+
+//------------------------------------------------------------------------------
+//                            Modulis  Jaunākais
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Jaunākie attēli';
+$lang['module_desc_recent'] = 'Rādīt x jaunākos attēlus galerijā vai kategorijā (ja ir)';
+
+//------------------------------------------------------------------------------
+//                            Modulis Gadījuma
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Gadījuma attēli';
+$lang['module_desc_random'] = 'Rādīt x gadījuma attējus galerijā vai kategorijā';
+
+//------------------------------------------------------------------------------
+//                            Modulis Atsauce
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Gadījuma citāts';
+$lang['module_desc_citation'] = 'Rādīt gadījuma citātu';
+$lang['module_Citation_lang'] = 'Valoda';
+$lang['module_Citation_code'] = 'Saistītais kods';
+
+//------------------------------------------------------------------------------
+//                            Module Raksturīgie attēli
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Raksturīgie attēli';
+$lang['module_desc_featuredphotos'] = 'Rādīt webmāstera mīļākos attēlus';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/no_NO/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/no_NO/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/no_NO/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/no_NO/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/no_NO/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/no_NO/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Modul LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Siste kommentarer';
+$lang['module_desc_lastcoms'] = 'Vis siste postede kommentar';
+
+$lang['lastcoms_no_nb_comments'] = 'Du må spesifisere antall kommentarer.';
+$lang['lastcoms_config'] = 'Konfigurasjon';
+$lang['lastcoms_nb_comments'] = 'Antall kommentarer å vise';
+$lang['lastcoms_show_buttons'] = 'Vis admin knapper';
+$lang['lastcoms_dim'] = 'Miniatyr bilde størrelse';
+$lang['lastcoms_width'] = 'Maks bredde';
+$lang['lastcoms_height'] = 'Maks høyde';
+$lang['lastcoms_nb_cadres'] = 'Antall rammer per linje';
+$lang['lastcoms_taille_cadres'] = 'Ramme høyde';
+
+
+//------------------------------------------------------------------------------
+//                            Modul Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Logg inn';
+$lang['module_desc_logon'] = 'Vis logg inn blokk';
+
+$lang['logon_remove_menubar_block'] = 'Fjern "Hurtig tilkobling" blokken fra menylinjen';
+
+
+//------------------------------------------------------------------------------
+//                            Modul Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Personlig blokk';
+$lang['module_desc_personal'] = 'Vis personlig blokk (Som redigerings bilde)';
+
+$lang['personal_content'] = 'innhold';
+
+
+//------------------------------------------------------------------------------
+//                            Modul Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tagger';
+$lang['module_desc_tags'] = 'Vis galleri tagger';
+
+$lang['stuffs_tags_default_display'] = 'Tagg visning';
+$lang['stuffs_tags_cloud'] = 'Tagg sky';
+$lang['stuffs_tags_letters'] = 'Gruper alfabetisk';
+$lang['stuffs_tags_cumulus'] = 'Bruk cumulus modus (plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tagger Cloud</a> må være installert)';
+
+
+//------------------------------------------------------------------------------
+//                            Modul Mest Besøkte
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Mest besøkte';
+$lang['module_desc_mostvisited'] = 'Vis x mest besøkte bilder i galleri eller album';
+
+$lang['stuffs_mv_nb_images'] = 'Maksimum antall bilderå vise';
+$lang['stuffs_mv_category_display'] = 'Vis album sider';
+$lang['stuffs_mv_all_cats'] = 'Alle album';
+$lang['stuffs_mv_w_thumb'] = 'Kun album med miniatyr bilder';
+$lang['stuffs_mv_wo_thumb'] = 'Kun album uten miniatyr bilder';
+$lang['stuffs_mv_selected_cats'] = 'Kun utvalgte album';
+
+$lang['stuffs_mv_cat_selection'] = 'Album valg';
+$lang['stuffs_mv_hold_ctrl'] = 'hold CTRL';
+
+//------------------------------------------------------------------------------
+//                            Modul Best Rangert
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Best rangerte';
+$lang['module_desc_bestrated'] = 'Vis x best rangerte bilder i galleriet eller et album';
+
+//------------------------------------------------------------------------------
+//                            Modul Siste
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Siste bilder';
+$lang['module_desc_recent'] = 'Vis x siste bilder i galleriet eller album (om det eksisterer)';
+
+//------------------------------------------------------------------------------
+//                            Modul Tilfeldig
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Tilfeldige bilder';
+$lang['module_desc_random'] = 'Vis x tilfeldige bilder i galleriet eller i album';
+
+//------------------------------------------------------------------------------
+//                            Modul Sitater
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Tilfeldig sitat';
+$lang['module_desc_citation'] = 'Vis et tilfeldig sitat';
+$lang['module_Citation_lang'] = 'Språk';
+$lang['module_Citation_code'] = 'Relatert kode';
+
+//------------------------------------------------------------------------------
+//                            Modul fremtidige bilder
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Kommende bilder';
+$lang['module_desc_featuredphotos'] = 'Vis favoritt bildene til webmasteren';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/pl_PL/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/pl_PL/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/pl_PL/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Dodaj moduły do Twojej galerii
Index: /extensions/PWG_Stuffs/branch/2.1/language/pl_PL/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/pl_PL/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/pl_PL/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/pl_PL/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/pl_PL/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/pl_PL/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Najnowsze komentarze';
+$lang['module_desc_lastcoms'] = 'Wyświetl najnowsze komentarze';
+
+$lang['lastcoms_no_nb_comments'] = 'Musisz wprowadzić liczbę komentarzy.';
+$lang['lastcoms_config'] = 'Konfiguracja';
+$lang['lastcoms_nb_comments'] = 'Ilość komentarzy do wyświetlenia';
+$lang['lastcoms_show_buttons'] = 'Pokaż opcje administracyjne';
+$lang['lastcoms_dim'] = 'Wielkość miniaturek';
+$lang['lastcoms_width'] = 'Max szerokość';
+$lang['lastcoms_height'] = 'Maksymalna wysokość';
+$lang['lastcoms_nb_cadres'] = 'Ilość ramek przez linię'; //* to fix *//
+$lang['lastcoms_taille_cadres'] = 'Wysokość ramki';
+
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Login';
+$lang['module_desc_logon'] = 'Wyświetl blok logowania';
+
+$lang['logon_remove_menubar_block'] = 'Usuń blok "Szybkie połączenie" z menu';
+
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Osobisty blok';
+$lang['module_desc_personal'] = 'Wyświetl osobisty blok (like an edito)'; //* to fix *//
+
+$lang['personal_content'] = 'zawartość';
+
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tagi';
+$lang['module_desc_tags'] = 'Wyświetl tagi galerii';
+
+$lang['stuffs_tags_default_display'] = 'Wyświetlanie tagów'; //* to fix *//
+$lang['stuffs_tags_cloud'] = 'Chmura tagów';
+$lang['stuffs_tags_letters'] = 'Grupuj literami';
+$lang['stuffs_tags_cumulus'] = 'Użyj trybu cumulus (dodatek <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> musi być zainstalowany)';
+
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Najczęsciej odwiedzane';
+$lang['module_desc_mostvisited'] = 'Wyświetl x najczęściej odwiedzanych obrazów w galerii lub kategorii';
+
+$lang['stuffs_mv_nb_images'] = 'Maksymalna ilość obrazów do wyświetlenia';
+$lang['stuffs_mv_category_display'] = 'Wyświetl na stronach kategorii';
+$lang['stuffs_mv_all_cats'] = 'Wszystkie kategorie';
+$lang['stuffs_mv_w_thumb'] = 'Tylko kategorie z miniaturkami';
+$lang['stuffs_mv_wo_thumb'] = 'Tylko kategorie bez miniaturkami';
+$lang['stuffs_mv_selected_cats'] = 'Tylko wybrane kategorie';
+
+$lang['stuffs_mv_cat_selection'] = 'Wybór kategorii';
+$lang['stuffs_mv_hold_ctrl'] = 'przytrzymaj CTRL';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Najwyżej oceniane';
+$lang['module_desc_bestrated'] = 'Wyświetl x najwyżej ocenianych obrazów w galerii lub kategorii';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Najnowsze obrazy';
+$lang['module_desc_recent'] = 'Wyświetl x najnowszych obrazów w galerii lub w kategorii (jeśli istnieje)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Losowy obrazek';
+$lang['module_desc_random'] = 'Wyświetl x losowych obrazów w galerii lub kategorii';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Losowy cytat';
+$lang['module_desc_citation'] = 'Wyświetl losowy cytat';
+$lang['module_Citation_lang'] = 'Język';
+$lang['module_Citation_code'] = 'Powiązany kod'; //* to fix *//
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Doskonałe obrazy'; //* to fix *//
+$lang['module_desc_featuredphotos'] = 'Wyświetl ulubione obrazki administratora strony';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/pt_PT/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/pt_PT/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/pt_PT/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Insira módulos na sua galeria
Index: /extensions/PWG_Stuffs/branch/2.1/language/pt_PT/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/pt_PT/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/pt_PT/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/pt_PT/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/pt_PT/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/pt_PT/plugin.lang.php	(revision 9736)
@@ -0,0 +1,160 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Últimos Comentários';
+$lang['module_desc_lastcoms'] = 'Mostrar comentários mais recentes';
+
+$lang['lastcoms_no_nb_comments'] = 'Deverá especificar o número de comentários.';
+$lang['lastcoms_config'] = 'Configuração';
+$lang['lastcoms_nb_comments'] = 'Número de comentários a mostrar';
+$lang['lastcoms_show_buttons'] = 'Mostrar Botões de Administração';
+$lang['lastcoms_dim'] = 'Tamanho das miniaturas';
+$lang['lastcoms_width'] = 'Largura máxima';
+$lang['lastcoms_height'] = 'Altura máxima';
+$lang['lastcoms_nb_cadres'] = 'Número de molduras por linha';
+$lang['lastcoms_taille_cadres'] = 'Altura da moldura';
+
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Iniciar Sessão';
+$lang['module_desc_logon'] = 'Mostrar bloco de Início de Sessão';
+
+$lang['logon_remove_menubar_block'] = 'Remover bloco de "Ligação Rápida" da barra de menú';
+
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Bloco Pessoal';
+$lang['module_desc_personal'] = 'Mostrar bloco Pessoal (como um editor)';
+
+$lang['personal_content'] = 'Conteúdo';
+
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Etiquetas';
+$lang['module_desc_tags'] = 'Mostrar Etiquetas da galeria';
+
+$lang['stuffs_tags_default_display'] = 'Mostrar Etiquetas como';
+$lang['stuffs_tags_cloud'] = 'Núvem de Etiquetas';
+$lang['stuffs_tags_letters'] = 'Agrupar por letras';
+$lang['stuffs_tags_cumulus'] = 'Usar modo cumulus (o plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> deverá estar instalado)';
+
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Mais Vistas';
+$lang['module_desc_mostvisited'] = 'Mostrar as x fotos mais vistas na galeria ou numa categoria';
+
+$lang['stuffs_mv_nb_images'] = 'Número máximo de fotos a mostrar';
+$lang['stuffs_mv_category_display'] = 'Mostrar nas páginas de categoria';
+$lang['stuffs_mv_all_cats'] = 'Em todoas as categorias';
+$lang['stuffs_mv_w_thumb'] = 'Apenas em categorias com miniaturas';
+$lang['stuffs_mv_wo_thumb'] = 'Apenas em categorias com miniaturas';
+$lang['stuffs_mv_selected_cats'] = 'Apenas nas categorias seleccionadas';
+
+$lang['stuffs_mv_cat_selection'] = 'Seleccionar categorias';
+$lang['stuffs_mv_hold_ctrl'] = 'Pressione CTRL sem largar enquanto clica nas categorias para seleccionar várias';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Mais Votadas';
+$lang['module_desc_bestrated'] = 'Mostrar as x fotos mais votadas na galeria ou numa categoria';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Fotos Recentes';
+$lang['module_desc_recent'] = 'Mostrar as x fotos mais recentes na galeria ou numa categoria (se existirem)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Fotos Aleatórias';
+$lang['module_desc_random'] = 'Mostrar x fotos aleatórias na galeria ou numa categoria';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Citação Aleatória';
+$lang['module_desc_citation'] = 'Mostrar uma citação aleatória';
+$lang['module_Citation_lang'] = 'Linguagem';
+$lang['module_Citation_code'] = 'Código Relacionado';
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Fotos em Destaque';
+$lang['module_desc_featuredphotos'] = 'Mostrar as fotos favoritas do webmaster';
+
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/ru_RU/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/ru_RU/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/ru_RU/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/ru_RU/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/ru_RU/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/ru_RU/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Управление модулями';
+$lang['stuffs_add_mod'] = 'Добавить модуль';
+$lang['stuffs_edit_mod'] = 'Редактировать модуль';
+
+$lang['stuffs_module_title'] = 'Название модуля';
+$lang['stuffs_desc'] = 'Описание';
+$lang['stuffs_only_for_admin'] = '(только для панели администрирования)';
+$lang['stuffs_type'] = 'Тип модуля';
+$lang['stuffs_position'] = 'Позиция';
+$lang['stuffs_id_ligne'] = 'ID строки';
+$lang['stuffs_width'] = 'ширина';
+$lang['stuffs_action'] = 'Действие';
+$lang['stuffs_edit'] = 'Изменить модуль';
+$lang['stuffs_delete'] = 'Удалить модуль';
+$lang['stuffs_confirm_delete'] = 'Вы уверены, что хотите удалить модуль %s?';
+$lang['stuffs_main_block'] = 'Основной блок';
+$lang['Hide on home page'] = 'Скрыть на главной странице';
+
+$lang['stuffs_add_module'] = 'Добавить новый модуль';
+$lang['stuffs_module_config'] = 'Настройки модуля';
+$lang['stuffs_visual_config'] = 'Отображение модуля';
+$lang['stuffs_module_options'] = 'Опции модуля';
+$lang['stuffs_authorized_group'] = 'Авторизованная группа';
+$lang['stuffs_authorized_users'] = 'Авторизованные пользователи';
+$lang['stuffs_public_module'] = '(Оставьте пустым для открытых модулей)';
+$lang['stuffs_show_title'] = 'Показывать название модуля';
+$lang['stuffs_show_module_on'] = 'Показывать блок :';
+$lang['stuffs_show_on_home'] = 'На главной странице';
+$lang['stuffs_show_on_root'] = 'На странице категории';
+$lang['stuffs_show_on_cats'] = 'На всех страницах этой категории';
+$lang['stuffs_show_on_picture'] = 'На страницах изображения';
+$lang['stuffs_no_options'] = 'Для этого модуля нет настроек';
+
+$lang['stuffs_perm'] = 'Активировать управление авторизацией:';
+$lang['stuffs_group_perm'] = 'по группам';
+$lang['stuffs_user_perm'] = 'по типу пользователя';
+$lang['stuffs_level_perm'] = 'по уровню доступа';
+
+$lang['stuffs_select_all'] = 'Выбрать все';
+$lang['stuffs_unselect_all'] = 'Инверсия';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Порядок успешно сохранен.';
+$lang['stuffs_upgrade_message'] = 'Плагин PWG Stuffs был переименован. Теперь он называется "Модули".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Вы не выбрали ни один модуль.';
+$lang['stuffs_no_name'] = 'Вы должны определить название модуля';
+$lang['stuffs_parent_plugin_is_missing'] = 'Основной плагин не активирован. Вы должны удалить этот модуль и реактивировать основной плагин.';
+$lang['stuffs_piclens_need_upgrade'] = 'Плагин PICLENS нужно актуализировать. Плагин PWG Stuffs не работает с этой версией Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Последние комментарии';
+$lang['module_desc_lastcoms'] = 'Список последних комментариев';
+
+$lang['lastcoms_no_nb_comments'] = 'Вам необходимо заполнить поле "Количество отображаемых комментариев".';
+$lang['lastcoms_config'] = 'Конфигурация';
+$lang['lastcoms_nb_comments'] = 'Количество отображаемых комментариев';
+$lang['lastcoms_show_buttons'] = 'Показывать кнопки администрирования';
+$lang['lastcoms_dim'] = 'Размер миниатюры';
+$lang['lastcoms_width'] = 'максимальная ширина';
+$lang['lastcoms_height'] = 'максимальная высота';
+$lang['lastcoms_nb_cadres'] = 'Количество кадров в каждой строке';
+$lang['lastcoms_taille_cadres'] = 'Высота кадра';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Идентификация';
+$lang['module_desc_logon'] = 'Отобразить блок "Идентификация" на главной странице';
+
+$lang['logon_remove_menubar_block'] = 'Убрать блок "идентификации" в меню';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Личный блок';
+$lang['module_desc_personal'] = 'Отобразить Личный блок (например, для редактирования)';
+
+$lang['personal_content'] = 'содержание';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Теги';
+$lang['module_desc_tags'] = 'Отобразить теги в галерее';
+
+$lang['stuffs_tags_default_display'] = 'Отображение меток';
+$lang['stuffs_tags_cloud'] = 'Облако меток';
+$lang['stuffs_tags_letters'] = 'Группировка по алфавиту';
+$lang['stuffs_tags_cumulus'] = 'Используйте опцию cumulus (плагин <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> должен быть установлен)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Самые посещаемые';
+$lang['module_desc_mostvisited'] = 'Показать x самых посещаемых фотографий в галерее или категории';
+
+$lang['stuffs_mv_nb_images'] = 'Максимальное число фотографий, которые показываются';
+$lang['stuffs_mv_category_display'] = 'Показывать на страницах категорий';
+$lang['stuffs_mv_all_cats'] = 'Все категории';
+$lang['stuffs_mv_w_thumb'] = 'Только категории с миниатюрами';
+$lang['stuffs_mv_wo_thumb'] = 'Только категории без миниатюр';
+$lang['stuffs_mv_selected_cats'] = 'Только выбранные категории';
+
+$lang['stuffs_mv_cat_selection'] = 'Выбор категорий';
+$lang['stuffs_mv_hold_ctrl'] = 'удерживайте CTRL';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Самые высокооцененные';
+$lang['module_desc_bestrated'] = 'Показать x самых высокооцененных фотографий в галерее или категорииDisplay x best rated';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Недавно добавленные фотографии';
+$lang['module_desc_recent'] = 'Показать x последних фотографий в галерее или категории (если есть)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Случайная фотография';
+$lang['module_desc_random'] = 'Показать x случайных фотографий в галерее или категории';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Случайная цитата';
+$lang['module_desc_citation'] = 'Показать случайную цитату';
+$lang['module_Citation_lang'] = 'Язык';
+$lang['module_Citation_code'] = 'Код';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Избранные фотографии';
+$lang['module_desc_featuredphotos'] = 'Показать любимые фотографии вебмастера';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/sk_SK/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/sk_SK/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/sk_SK/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Vloženie modulov do Vašej galérie
Index: /extensions/PWG_Stuffs/branch/2.1/language/sk_SK/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/sk_SK/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/sk_SK/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/sk_SK/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/sk_SK/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/sk_SK/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Ovládnie blokov'; 
+$lang['stuffs_add_mod'] = 'Pridať blok'; 
+$lang['stuffs_edit_mod'] = 'Upraviť blok';
+
+$lang['stuffs_module_title'] = 'Názov bloku'; 
+$lang['stuffs_desc'] = 'Popis'; 
+$lang['stuffs_only_for_admin'] = '(len pre administrátorský panel)';
+$lang['stuffs_type'] = 'Typ bloku'; 
+$lang['stuffs_position'] = 'Umiestnenie'; 
+$lang['stuffs_id_ligne'] = 'ID linka'; 
+$lang['stuffs_width'] = 'Šírka'; 
+$lang['stuffs_action'] = 'Akcie'; 
+$lang['stuffs_edit'] = 'Upraviť blok'; 
+$lang['stuffs_delete'] = 'Vymazať blok'; 
+$lang['stuffs_confirm_delete'] = 'Ste si istý, že chcete vymazať blok %s?'; 
+$lang['stuffs_main_block'] = 'Hlavný blok'; 
+$lang['Hide on home page'] = 'Schovať na domovskej stránke';
+
+$lang['stuffs_add_module'] = 'Pridať nový blok'; 
+$lang['stuffs_module_config'] = 'Konfigurácia bloku'; 
+$lang['stuffs_visual_config'] = 'Zobrazenie konfigurácie'; 
+$lang['stuffs_module_options'] = 'Voľby bloku'; 
+$lang['stuffs_authorized_group'] = 'Autorizované skupiny'; 
+$lang['stuffs_authorized_users'] = 'Autorizovaní používatelia';
+$lang['stuffs_public_module'] = '(Ponechať prázdne pre verejný blok)'; 
+$lang['stuffs_show_title'] = 'Zobraziť názov bloku';
+$lang['stuffs_show_module_on'] = 'Zobraziť blok:'; 
+$lang['stuffs_show_on_home'] = 'Na hlavnej stránke'; 
+$lang['stuffs_show_on_root'] = 'Na hlavnej stránke kategórií'; 
+$lang['stuffs_show_on_cats'] = 'Na všetkých stránkach kategórií'; 
+$lang['stuffs_show_on_picture'] = 'Na stránkach fotografií'; 
+$lang['stuffs_no_options'] = 'Žiadne voľby pre tento blok';
+
+$lang['stuffs_perm'] = 'Aktivovať autorizované ovládanie:'; 
+$lang['stuffs_group_perm'] = 'po skupinách'; 
+$lang['stuffs_user_perm'] = 'po type užívateľa'; 
+$lang['stuffs_level_perm'] = 'po súkromnej úrovni';
+
+$lang['stuffs_select_all'] = 'Označiť všetko'; 
+$lang['stuffs_unselect_all'] = 'Odznačiť všetko';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Zoradenie úspešne uložené.'; 
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs doplnok bol premenovaný. Teraz sa nazýva "Bloky".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Nemáte označený žiaden blok.'; 
+$lang['stuffs_no_name'] = 'Musíte zadať názov bloku'; 
+$lang['stuffs_parent_plugin_is_missing'] = 'RODIČOVSKÝ DOPLNOK NIE JE AKTIVOVANÝ. Mali by ste vymazať tento blok alebo reaktivovať rodičovský doplnok.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS DOPLNOK MUSÍ BYŤ AKTUALIZOVANÝ. PWG Stuffs nie je kompatibilný s touto verziou Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Posledné komentáre';
+$lang['module_desc_lastcoms'] = 'Zobraziť posledné poslané komentáre';
+
+$lang['lastcoms_no_nb_comments'] = 'Musíte určiť počet komentárov.';
+$lang['lastcoms_config'] = 'Konfigurácia';
+$lang['lastcoms_nb_comments'] = 'Počet zobrazených komentárov';
+$lang['lastcoms_show_buttons'] = 'Ukázať administrátorské tlačidlá';
+$lang['lastcoms_dim'] = 'Veľkosť náhľadov';
+$lang['lastcoms_width'] = 'Max výška';
+$lang['lastcoms_height'] = 'Max šírka';
+$lang['lastcoms_nb_cadres'] = 'Počet stĺpcov';
+$lang['lastcoms_taille_cadres'] = 'Výška stĺpca';
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Prihlasovacie meno';
+$lang['module_desc_logon'] = 'Zobraziť prihlasovací blok';
+
+$lang['logon_remove_menubar_block'] = 'Odstrániť blok "Rýchle pripojenie" z menu';
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Osobný blok';
+$lang['module_desc_personal'] = 'Zobraziť osobný blok (osožný na editáciu)';
+
+$lang['personal_content'] = 'obsah';
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Kľúčové slová';
+$lang['module_desc_tags'] = 'Zobraziť kľúčové slová galérie';
+
+$lang['stuffs_tags_default_display'] = 'Zobraziť kľúčové slová';
+$lang['stuffs_tags_cloud'] = 'Mračno kľúčových slov';
+$lang['stuffs_tags_letters'] = 'Zoskupiť podľa písmen';
+$lang['stuffs_tags_cumulus'] = 'Použiť kumulus mód (plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> musí byť nainštalovaný)';
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Najviac navštevované';
+$lang['module_desc_mostvisited'] = 'Zobraziť x najviac navštívených fotiek v galérii alebo kategórii';
+
+$lang['stuffs_mv_nb_images'] = 'Maximálny počet zobrazených fotiek';
+$lang['stuffs_mv_category_display'] = 'Zobraziť na stránke kategórií';
+$lang['stuffs_mv_all_cats'] = 'Všetky kategórie';
+$lang['stuffs_mv_w_thumb'] = 'Len kategórie s náhľadmi';
+$lang['stuffs_mv_wo_thumb'] = 'Len kategórie bez náhľadov';
+$lang['stuffs_mv_selected_cats'] = 'Len vybrané kategórie';
+
+$lang['stuffs_mv_cat_selection'] = 'Výber kategórií';
+$lang['stuffs_mv_hold_ctrl'] = 'držte CTRL';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Najlepšie hodnotené';
+$lang['module_desc_bestrated'] = 'Zobraziť x najlepšie hodnotených fotografií v galérii alebo kategórii';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Nedávno pridané fotografie';
+$lang['module_desc_recent'] = 'Zobraziť x nedávno pridaných fotografií v galérii alebo kategórii (ak existujú)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Náhodné fotografie';
+$lang['module_desc_random'] = 'Zobraziť x náhodných fotografií v galérii alebo kategórii';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Náhodné citácie';
+$lang['module_desc_citation'] = 'Zobraziť náhodné citácie';
+$lang['module_Citation_lang'] = 'Jazyk';
+$lang['module_Citation_code'] = 'Súvisiaci kód';
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Hlavné fotografie';
+$lang['module_desc_featuredphotos'] = 'Zobraziť obľúbené fotografie webmastera';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/sv_SE/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/sv_SE/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/sv_SE/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Lägg till moduler i ditt galleri
Index: /extensions/PWG_Stuffs/branch/2.1/language/sv_SE/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/sv_SE/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/sv_SE/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/sv_SE/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/sv_SE/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/sv_SE/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Senaste kommentarer';
+$lang['module_desc_lastcoms'] = 'Visa senast tillagda kommentarer';
+
+$lang['lastcoms_no_nb_comments'] = 'Du måste specifiera antal kommentarer.';
+$lang['lastcoms_config'] = 'Konfiguration';
+$lang['lastcoms_nb_comments'] = 'Antal kommentarer att visa';
+$lang['lastcoms_show_buttons'] = 'Visa admin knappar';
+$lang['lastcoms_dim'] = 'Storlek på miniatyrbilder';
+$lang['lastcoms_width'] = 'Max bredd';
+$lang['lastcoms_height'] = 'Max höjd';
+$lang['lastcoms_nb_cadres'] = 'Antal ramar i linje';
+$lang['lastcoms_taille_cadres'] = 'Ram höjd';
+
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Logga in';
+$lang['module_desc_logon'] = 'Visa "logga in" block';
+
+$lang['logon_remove_menubar_block'] = 'Ta bort "Snabb anslutning" block från menyn';
+
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Personligt block';
+$lang['module_desc_personal'] = 'Visa personligt block (som en edito)';
+
+$lang['personal_content'] = 'innehåll';
+
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Taggar';
+$lang['module_desc_tags'] = 'Visa taggar i galleriet';
+
+$lang['stuffs_tags_default_display'] = 'Visning av taggar';
+$lang['stuffs_tags_cloud'] = 'Taggmoln';
+$lang['stuffs_tags_letters'] = 'Sortera efter bokstäver';
+$lang['stuffs_tags_cumulus'] = 'Använd cumulus läge (plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> måste vara installerat)';
+
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Mest visad';
+$lang['module_desc_mostvisited'] = 'Visa x mest visade bilder i galleriet eller i en kategori';
+
+$lang['stuffs_mv_nb_images'] = 'Maximalt antal bilder att visa';
+$lang['stuffs_mv_category_display'] = 'Visa på kategori sidorna';
+$lang['stuffs_mv_all_cats'] = 'Alla kategorier';
+$lang['stuffs_mv_w_thumb'] = 'Enbart kategorier med miniatyrbilder';
+$lang['stuffs_mv_wo_thumb'] = 'Enbart kategorier utan miniatyrbilder';
+$lang['stuffs_mv_selected_cats'] = 'Enbart markerade kategorier';
+
+$lang['stuffs_mv_cat_selection'] = 'Kategoriernas markering';
+$lang['stuffs_mv_hold_ctrl'] = 'håll in CTRL';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Högst betygsatt';
+$lang['module_desc_bestrated'] = 'Visa x högst betygsatta bilder i galleriet eller i en kategori';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Senastee bilder';
+$lang['module_desc_recent'] = 'Visa x senaste bilder i galleriet eller i en kategori (om det finns)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Slumpade bilder';
+$lang['module_desc_random'] = 'Visa x slumpade bilder i galleriet eller i en kategori';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Slumpa citat';
+$lang['module_desc_citation'] = 'Visa ett slumpad citat';
+$lang['module_Citation_lang'] = 'Språk';
+$lang['module_Citation_code'] = 'Relaterad kod';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Bilder i rampljuset';
+$lang['module_desc_featuredphotos'] = 'Visa webmasterns favorit bilder';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/tr_TR/description.txt
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/tr_TR/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/tr_TR/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Galerinize modül ekleyiniz
Index: /extensions/PWG_Stuffs/branch/2.1/language/tr_TR/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/tr_TR/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/tr_TR/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/language/tr_TR/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/language/tr_TR/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/language/tr_TR/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                           Son Yorumlar Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Son yorumlar';
+$lang['module_desc_lastcoms'] = 'Son yorumları göster';
+
+$lang['lastcoms_no_nb_comments'] = 'Yorum sayısı belirtmelisiniz.';
+$lang['lastcoms_config'] = 'Konfigürasyon';
+$lang['lastcoms_nb_comments'] = 'Gösterilecek yorum sayısı';
+$lang['lastcoms_show_buttons'] = 'Admin buttonlarını göster';
+$lang['lastcoms_dim'] = 'Küçük resim boyutu';
+$lang['lastcoms_width'] = 'Azami genişlik';
+$lang['lastcoms_height'] = 'Azami yükseklik';
+$lang['lastcoms_nb_cadres'] = 'Çizgi ile çerçeve sayısı';
+$lang['lastcoms_taille_cadres'] = 'Çerçeve yüksekliği';
+
+
+//------------------------------------------------------------------------------
+//                            Oturum Açma Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Giriş';
+$lang['module_desc_logon'] = 'Giriş bloğunu göster';
+
+$lang['logon_remove_menubar_block'] = '"Hızlı Bağlan" bloğunu menüden sil';
+
+
+//------------------------------------------------------------------------------
+//                           Kişisel Modül
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Kişisel blok';
+$lang['module_desc_personal'] = 'Kişisel bloğu (like an edito) göster';
+
+$lang['personal_content'] = 'içerik';
+
+
+//------------------------------------------------------------------------------
+//                            Etiket Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Etiketler';
+$lang['module_desc_tags'] = 'Galeri etiketlerini göster';
+
+$lang['stuffs_tags_default_display'] = 'Etiketleri göster';
+$lang['stuffs_tags_cloud'] = 'Bulut etiketleri';
+$lang['stuffs_tags_letters'] = 'Gruplar harf sıralaması';
+$lang['stuffs_tags_cumulus'] = 'Cumulus modunu kullan (eklenti <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> kurulmus olmalıdır)';
+
+
+//------------------------------------------------------------------------------
+//                            En çok ziyaret edilen Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'En çok ziyaret edilen';
+$lang['module_desc_mostvisited'] = 'Galeride veya bir kategoride gösterilecek olan en çok ziyaret edilen resim sayısı x';
+
+$lang['stuffs_mv_nb_images'] = 'Maximum number of pictures to display';
+$lang['stuffs_mv_category_display'] = 'Display on categories pages';
+$lang['stuffs_mv_all_cats'] = 'Tüm kategoriler';
+$lang['stuffs_mv_w_thumb'] = 'Küçük resimler ile sadece kategoriler';
+$lang['stuffs_mv_wo_thumb'] = 'Küçük resimler hariç sadece kategoriler';
+$lang['stuffs_mv_selected_cats'] = 'Sadece seçilen kategoriler';
+
+$lang['stuffs_mv_cat_selection'] = 'Kategori seçimi';
+$lang['stuffs_mv_hold_ctrl'] = 'CTRL\'ye basılı tutunuz';
+
+//------------------------------------------------------------------------------
+//                            En çok derecelendirilen Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'En çok derecelendirilen';
+$lang['module_desc_bestrated'] = 'Galeride veya bir kategoride gösterilecek olan en iyi derecelendirilen resim sayısı x';
+
+//------------------------------------------------------------------------------
+//                            En son resimler Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'En son resimler';
+$lang['module_desc_recent'] = 'Galeride veya bir kategoride gösterilecek olan en son eklenen resim sayısı x (eğer varsa)';
+
+//------------------------------------------------------------------------------
+//                            Rastgele resimler Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Rastgele resimler';
+$lang['module_desc_random'] = 'Galeride veya bir kategoride gösterilecek olan rastgele seçilen resim sayısı x';
+
+//------------------------------------------------------------------------------
+//                            Alıntı Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Rastgele alıntı';
+$lang['module_desc_citation'] = 'Rastgele bir alıntı göster';
+$lang['module_Citation_lang'] = 'Dil';
+$lang['module_Citation_code'] = 'İlgili Kod';
+
+//------------------------------------------------------------------------------
+//                            Öne Çıkan Resimler Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Öne çıkan resimler';
+$lang['module_desc_featuredphotos'] = 'Site yöneticisinin favori resimlerini göster';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/main.inc.php	(revision 9736)
@@ -0,0 +1,92 @@
+<?php
+/*
+Plugin Name: PWG Stuffs
+Version: auto
+Description: Insert modules on your gallery
+Plugin URI: http://piwigo.org/ext/extension_view.php?eid=190
+Author: P@t
+Author URI: http://www.gauchon.com
+*/
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $prefixeTable, $conf;
+
+$conf['Stuffs'] = @unserialize($conf['PWG_Stuffs']);
+
+define('STUFFS_DIR' , basename(dirname(__FILE__)));
+define('STUFFS_PATH' , PHPWG_PLUGINS_PATH . STUFFS_DIR . '/');
+define('STUFFS_TABLE' , $prefixeTable . 'stuffs');
+
+// Need upgrade?
+if ($conf['Stuffs'] === false)
+  include('admin/upgrade.inc.php');
+
+function stuffs_admin_menu($menu)
+{
+  global $conf;
+
+  array_push($menu, array(
+    'NAME' => 'PWG Stuffs',
+    'URL' => get_admin_plugin_menu_link(STUFFS_PATH . 'admin/admin.php')
+    )
+  );
+  return $menu;
+}
+
+function load_stuffs()
+{
+  global $template;
+
+  include(STUFFS_PATH . 'class.inc.php');
+  include(STUFFS_PATH . 'functions.inc.php');
+
+  $template->set_template_dir(STUFFS_PATH.'theme/template/');
+  $template->set_filename('stuffs', 'stuffs_blocks.tpl');
+
+  $stuffs = new stuffs();
+
+  if (!empty($stuffs->blocks['begin']))
+  {
+    $template->assign('blocks', $stuffs->blocks['begin']);
+    $template->concat($stuffs->prefixe.'BEFORE',  $template->parse('stuffs', true));
+  }
+  if (!empty($stuffs->blocks['end']))
+  {
+    $template->assign('blocks', $stuffs->blocks['end']);
+    $template->concat($stuffs->prefixe.'AFTER',  $template->parse('stuffs', true));
+  }
+}
+
+function stuffs_section_init()
+{
+  global $tokens, $page;
+
+  switch (script_basename())
+  {
+    case 'picture':
+      $page['stuffs_section'] = 'on_picture';
+      break;
+
+    case 'index':
+      if (count($tokens) == 1 and empty($tokens[0]))
+      {
+        $page['stuffs_section'] = 'on_home';
+        break;
+      }
+      elseif (isset($page['section']) and $page['section'] == 'categories')
+      {
+        $page['stuffs_section'] = isset($page['category']) ? 'on_cats' : 'on_root';
+        break;
+      }
+
+      default: return;
+  }
+
+  add_event_handler('loc_begin_page_header', 'load_stuffs');
+}
+
+add_event_handler('get_admin_plugin_menu_links', 'stuffs_admin_menu');
+add_event_handler('loc_end_section_init', 'stuffs_section_init', 60);
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/maintain.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/maintain.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/maintain.inc.php	(revision 9736)
@@ -0,0 +1,67 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+function plugin_install()
+{
+  global $prefixeTable, $conf;
+
+  $query = 'SHOW TABLES LIKE "' . $prefixeTable . 'stuffs"';
+  $result = pwg_query($query);
+  if (!mysql_fetch_row($result))
+  {
+    $q = 'CREATE TABLE `' . $prefixeTable . 'stuffs` (
+`id` smallint(5) NOT NULL,
+`pos` smallint(5) NOT NULL,
+`name` text NOT NULL,
+`descr` varchar(255) default NULL,
+`path` varchar(255) default NULL,
+`datas` longtext default NULL,
+`users` varchar(255) default NULL,
+`groups` varchar(255) default NULL,
+`level` TINYINT( 3 ) NOT NULL default "0",
+`show_title` enum(\'true\',\'false\') NOT NULL,
+`on_home` enum(\'true\',\'false\') NOT NULL,
+`on_root` enum(\'true\',\'false\') NOT NULL,
+`on_cats` enum(\'true\',\'false\') NOT NULL,
+`on_picture` enum(\'true\',\'false\') NOT NULL,
+`id_line` varchar(1) default NULL,
+`width` smallint(9) default NULL,
+PRIMARY KEY  (`id`),
+KEY `on_home` (`on_home`),
+KEY `on_cats` (`on_cats`),
+KEY `on_picture` (`on_picture`)
+) DEFAULT CHARSET=utf8;';
+    pwg_query($q);
+  
+    $q = "INSERT INTO `" . $prefixeTable . "stuffs` (`id`, `pos`, `name`, `datas`, `users`, `show_title`, `on_home`, `on_cats`, `on_picture`) 
+VALUES (0, 1, 'MainBlock', '".addslashes(serialize(true))."', 'guest,generic,normal,admin,webmaster', 'true', 'true', 'true', 'true');";
+    pwg_query($q);
+  }
+
+  if (!isset($conf['PWG_Stuffs']))
+  {
+    $config = array(
+      'level_perm' => false,
+      'group_perm' => false,
+      'user_perm' => false,
+    );
+
+    $query = 'INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment)
+VALUES ("PWG_Stuffs" , "'.pwg_db_real_escape_string(serialize($config)).'" , "PWG Stuffs plugin configuration");';
+    pwg_query($query);
+  }
+}
+
+function plugin_uninstall()
+{
+  global $prefixeTable;
+
+  $q = 'DROP TABLE ' . $prefixeTable . 'stuffs;';
+  pwg_query($q);
+
+	$q = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE param="PWG_Stuffs";';
+  pwg_query($q);
+}
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/config.inc.php	(revision 9736)
@@ -0,0 +1,41 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (!isset($datas))
+{
+  $datas = array(
+    'nb_images'     => 10,
+    'cat_display'   => 'all',
+    'cat_selection' => array(),
+  );
+}
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  $datas = array(
+    'nb_images' => intval($_POST['nb_images']),
+    'cat_display' => $_POST['cat_display'],
+    'cat_selection' => @$_POST['cat_selection'],
+    );
+  unset($_POST['on_picture']);
+}
+
+// Parametrage du template
+$query = 'SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE.';';
+display_select_cat_wrapper($query,array(),'category_selection');
+
+$template->assign(array(
+  'NB_IMAGES' => $datas['nb_images'],
+  'cat_display' => $datas['cat_display'],
+  'category_selected' => $datas['cat_selection'],
+  )
+);
+
+$display_options = & $template->get_template_vars('display_options');
+$display_options['on_picture'] = false;
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/config.tpl	(revision 9736)
@@ -0,0 +1,86 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
+{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+
+<table>
+	<tr>
+		<td align="right"><br>{'stuffs_mv_nb_images'|@translate} &nbsp;&nbsp;</td>
+		<td><br><input type="text" name="nb_images" size="3" maxlength="2" value="{$NB_IMAGES}"></td>
+	</tr>
+	<tr class="cat_options" style="display: none;">
+		<td align="right"><br>{'stuffs_mv_category_display'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+      <select name="cat_display">
+        <option label="{'stuffs_mv_all_cats'|@translate}" value="all" {if $cat_display == 'all'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_all_cats'|@translate}</option>
+        <option label="{'stuffs_mv_wo_thumb'|@translate}" value="wo_thumb" {if $cat_display == 'wo_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_wo_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_w_thumb'|@translate}" value="w_thumb" {if $cat_display == 'w_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_w_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_selected_cats'|@translate}" value="selected_cats" {if $cat_display == 'selected_cats'}selected="selected"{/if} onClick="javascript: show_cat_list();">{'stuffs_mv_selected_cats'|@translate}</option>
+      </select>
+    </td>
+	</tr>
+	<tr class="cat_selection" style="display: none;">
+		<td align="right">
+      <br>{'stuffs_mv_cat_selection'|@translate} &nbsp;&nbsp;
+      <br>({'stuffs_mv_hold_ctrl'|@translate}) &nbsp;&nbsp;</td>
+		<td><br>
+		  <select class="categoryList" name="cat_selection[]" multiple="multiple" size="30">
+        {html_options options=$category_selection selected=$category_selected}
+      </select></td>
+	</tr>
+</table>
+<br>
+
+{literal}
+<script type="text/javascript">
+resize = false;
+function show_cat_list()
+{
+  jQuery('.cat_selection').show();
+  if (!resize)
+  {
+    resize = true;
+    jQuery('.categoryList').resizable({
+      handles: "all",
+      animate: true,
+      animateDuration: "slow",
+      animateEasing: "swing",
+      preventDefault: true,
+      preserveCursor: true,
+      autoHide: true,
+      ghost: true
+    });
+  }
+}
+
+function hide_cat_list()
+{
+  jQuery('.cat_selection').hide();
+}
+
+jQuery().ready( function () {
+  jQuery("input[name='on_cats']").click( function() {
+    if (this.checked)
+    {
+      jQuery('.cat_options').show();
+      if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+        show_cat_list();
+    }
+    else
+    {
+      jQuery('.cat_options').hide();
+      hide_cat_list();
+    }
+  });
+});
+
+if (document.getElementsByName("on_cats")[0].checked)
+{
+  jQuery('.cat_options').show();
+  if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+  {
+    show_cat_list();
+  }
+}
+</script>
+{/literal}
+
Index: /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/BestRated/main.inc.php	(revision 9736)
@@ -0,0 +1,156 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $page, $user, $conf, $template;
+
+if (script_basename() == 'picture'
+  or ($datas['cat_display'] == 'wo_thumb' and !empty($page['items']))
+  or ($datas['cat_display'] == 'w_thumb' and empty($page['items']) and isset($page['category']))
+  or ($datas['cat_display'] == 'selected_cats' and isset($page['category']) and !in_array($page['category']['id'], $datas['cat_selection'])))
+{
+  return false;
+}
+
+$forbidden = get_sql_condition_FandF
+  (
+    array
+      (
+        'forbidden_categories' => 'ic.category_id',
+        'visible_categories' => 'ic.category_id',
+        'visible_images' => 'i.id'
+      ),
+    'AND'
+  );
+
+$query ='
+SELECT DISTINCT(i.id)
+  FROM '.IMAGES_TABLE.' AS i
+    INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id = ic.image_id
+    INNER JOIN '.CATEGORIES_TABLE.' AS c ON ic.category_id = c.id
+  WHERE i.average_rate IS NOT NULL';
+
+if (isset($page['category']))
+{
+  $query .= '
+        AND ( c.uppercats LIKE \''.$page['category']['uppercats'].',%\' OR c.id = '.$page['category']['id'].' )
+  ';
+}
+
+$query .= '
+      '.$forbidden.'
+      ORDER BY i.average_rate DESC, i.id ASC
+    LIMIT 0, '.$datas['nb_images'].'
+  ;';
+
+$pictures = array();
+$selection = array_from_query($query, 'id');
+ 
+if (count($selection) > 0)
+{
+  $rank_of = array_flip($selection);
+
+  $query = '
+SELECT *
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $selection).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $row['rank'] = $rank_of[ $row['id'] ];
+
+    array_push($pictures, $row);
+  }
+
+  usort($pictures, 'rank_compare');
+  unset($rank_of);
+}
+
+if (count($pictures) > 0)
+{
+  if ($user['show_nb_comments'])
+  {
+    $query = '
+SELECT image_id, COUNT(*) AS nb_comments
+  FROM '.COMMENTS_TABLE.'
+  WHERE validated = \'true\'
+    AND image_id IN ('.implode(',', $selection).')
+  GROUP BY image_id
+;';
+    $nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
+  }
+
+  // template thumbnail initialization
+  trigger_action('loc_begin_index_thumbnails', $pictures);
+  $block['thumbnails'] = array();
+
+  foreach ($pictures as $row)
+  {
+    // link on picture.php page
+    $url = duplicate_picture_url(
+          array(
+            'image_id' => $row['id'],
+            'image_file' => $row['file']
+          ),
+          array('start')
+        );
+    $url = add_url_params($url, array('pwgs_br' => implode(',',$selection)));
+
+    $tpl_var =
+      array(
+        'ID'        => $row['id'],
+        'TN_SRC'    => get_thumbnail_url($row),
+        'TN_ALT'    => $row['file'],
+        'TN_TITLE'  => get_thumbnail_title($row),
+        'ICON_TS'   => get_icon($row['date_available']),
+        'URL'       => $url,
+
+     /* Fields for template-extension usage */
+        'FILE_PATH' => $row['path'],
+        'FILE_POSTED' => $row['date_available'],
+        'FILE_CREATED' => $row['date_creation'],
+        'FILE_DESC' => $row['comment'],
+        'FILE_AUTHOR' => $row['author'],
+        'FILE_HIT' => $row['hit'],
+        'FILE_SIZE' => $row['filesize'],
+        'FILE_WIDTH' => $row['width'],
+        'FILE_HEIGHT' => $row['height'],
+        'FILE_METADATE' => $row['date_metadata_update'],
+        'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
+                  true:false, /* lack of include/functions_picture.inc.php */
+      );
+
+    if ($user['show_nb_hits'])
+    {
+      $tpl_var['NB_HITS'] = $row['hit'];
+    }
+
+    if ($conf['show_thumbnail_caption'])
+    {// name of the picture
+      if (isset($row['name']) and $row['name'] != '')
+      {
+        $name = $row['name'];
+      }
+      else
+      {
+        $name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
+      }
+
+      $tpl_var['NAME'] = '('.$row['average_rate'].') '.$name;
+    }
+
+    if ( isset($nb_comments_of) )
+    {
+      $tpl_var['NB_COMMENTS'] = (int)@$nb_comments_of[$row['id']];
+    }
+
+    $block['thumbnails'][] = $tpl_var;
+  }
+
+  $block['thumbnails'] = trigger_event('loc_end_index_thumbnails', $block['thumbnails'], $pictures);
+
+  $block['TEMPLATE'] = 'stuffs_thumbnails.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Citation/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Citation/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Citation/config.inc.php	(revision 9736)
@@ -0,0 +1,39 @@
+<?php
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+if (!isset($datas)) {
+  $default_fr_value  = '<script type="text/javascript" ';
+  $default_fr_value .= 'src="http://citations.hasarddujour.com/'; 
+  $default_fr_value .= 'citation-hasard-du-jour.php?random"></script>';
+  $datas = array(
+      'quote_lang'    => array(
+          "fr_FR" => $default_fr_value
+        ),
+    );
+}
+$available_languages = get_languages();
+// Save configuration
+if (isset($_POST['submit']) and !is_adviser()) {
+  $new_data = array();
+  foreach (array_keys($available_languages) as $current_lang) {
+    $quote_value_key = 'quote_config_' . $current_lang;
+    if ((isset($_POST[$quote_value_key])) and
+        ("" != $_POST[$quote_value_key])) {
+      $new_data = array_merge(
+          $new_data,
+          array($current_lang => stripslashes($_POST[$quote_value_key]))
+        );
+    }
+  }
+  $datas = array(
+      'quote_lang'  => $new_data
+    );
+}
+global $user;
+$template->assign('MODULE_QUOTE_DATA', $datas['quote_lang']);
+$template->assign('MODULE_QUOTE_LANGUAGES', $available_languages);
+$template->set_filenames(array(
+    'module_options' => dirname(__FILE__) . '/config.tpl')
+  );
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Citation/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Citation/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Citation/config.tpl	(revision 9736)
@@ -0,0 +1,17 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
+{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+<table>
+    <tr>
+        <td align="center" colspan="2"><b>{'module_Citation_lang'|@translate}</b></td>
+        <td align="center"><b>{'module_Citation_code'|@translate}</b></td>
+    </tr>
+{foreach from=$MODULE_QUOTE_LANGUAGES item=language key=language_key}
+    <tr>
+        <td align="right">{$language}</td>
+        <td>&nbsp;</td>
+        <td><textarea cols="50" rows="2" name="quote_config_{$language_key}" id="quote_config_{$language_key}" class="description" style="height: 2em">{$MODULE_QUOTE_DATA[$language_key]}</textarea></td>
+    </tr>
+{/foreach}
+</table>
+<br>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Citation/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Citation/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Citation/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php,v 1.2 2009/07/07 10:02:11 Criss Exp $
+// | last update   : $Date: 2009/07/07 10:02:11 $
+// | last modifier : $Author: Criss $
+// | revision      : $Revision: 1.2 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Citation/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Citation/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Citation/main.inc.php	(revision 9736)
@@ -0,0 +1,12 @@
+<?php
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $user;
+
+if ((isset($datas['quote_lang'][$user['language']])) and
+  ("" != $datas['quote_lang'][$user['language']]))
+{
+  $block['CONTENT'] = $datas['quote_lang'][$user['language']];
+  $block['TEMPLATE'] = 'stuffs_citation.tpl';
+}
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/FeaturedPhotos/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/FeaturedPhotos/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/FeaturedPhotos/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/FeaturedPhotos/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/FeaturedPhotos/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/FeaturedPhotos/main.inc.php	(revision 9736)
@@ -0,0 +1,137 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $page, $user, $conf, $template;
+
+$forbidden = get_sql_condition_FandF
+  (
+    array
+      (
+        'forbidden_categories' => 'ic.category_id',
+        'visible_categories' => 'ic.category_id',
+        'visible_images' => 'i.id'
+      ),
+    'AND'
+  );
+  
+$query ='
+SELECT DISTINCT(i.id)
+  FROM '.IMAGES_TABLE.' AS i
+    INNER JOIN '.FAVORITES_TABLE.' AS f       ON f.image_id = i.id
+    INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id = ic.image_id
+    INNER JOIN '.CATEGORIES_TABLE.' AS c      ON ic.category_id = c.id
+      WHERE f.user_id = '.$conf['webmaster_id'].'
+       '.$forbidden.';';
+
+$pictures = array();
+$selection = array_from_query($query, 'id');
+
+if (count($selection) > 0)
+{
+  $rank_of = array_flip($selection);
+
+  $query = '
+SELECT *
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $selection).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $row['rank'] = $rank_of[ $row['id'] ];
+
+    array_push($pictures, $row);
+  }
+
+  usort($pictures, 'rank_compare');
+  unset($rank_of);
+}
+
+if (count($pictures) > 0)
+{
+  if ($user['show_nb_comments'])
+  {
+    $query = '
+SELECT image_id, COUNT(*) AS nb_comments
+  FROM '.COMMENTS_TABLE.'
+  WHERE validated = \'true\'
+    AND image_id IN ('.implode(',', $selection).')
+  GROUP BY image_id
+;';
+    $nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
+  }
+
+  // template thumbnail initialization
+  trigger_action('loc_begin_index_thumbnails', $pictures);
+  $block['thumbnails'] = array();
+
+  foreach ($pictures as $row)
+  {
+    // link on picture.php page
+    $url = duplicate_picture_url(
+          array(
+            'image_id' => $row['id'],
+            'image_file' => $row['file']
+          ),
+          array('start')
+        );
+    $url = add_url_params($url, array('pwgs_ra' => implode(',',$selection)));
+
+    $tpl_var =
+      array(
+        'ID'        => $row['id'],
+        'TN_SRC'    => get_thumbnail_url($row),
+        'TN_ALT'    => $row['file'],
+        'TN_TITLE'  => get_thumbnail_title($row),
+        'ICON_TS'   => get_icon($row['date_available']),
+        'URL'       => $url,
+
+     /* Fields for template-extension usage */
+        'FILE_PATH' => $row['path'],
+        'FILE_POSTED' => $row['date_available'],
+        'FILE_CREATED' => $row['date_creation'],
+        'FILE_DESC' => $row['comment'],
+        'FILE_AUTHOR' => $row['author'],
+        'FILE_HIT' => $row['hit'],
+        'FILE_SIZE' => $row['filesize'],
+        'FILE_WIDTH' => $row['width'],
+        'FILE_HEIGHT' => $row['height'],
+        'FILE_METADATE' => $row['date_metadata_update'],
+        'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
+                  true:false, /* lack of include/functions_picture.inc.php */
+      );
+
+    if ($user['show_nb_hits'])
+    {
+      $tpl_var['NB_HITS'] = $row['hit'];
+    }
+
+    if ($conf['show_thumbnail_caption'])
+    {// name of the picture
+      if (isset($row['name']) and $row['name'] != '')
+      {
+        $name = $row['name'];
+      }
+      else
+      {
+        $name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
+      }
+
+      $tpl_var['NAME'] = $name;
+    }
+
+    if ( isset($nb_comments_of) )
+    {
+      $tpl_var['NB_COMMENTS'] = (int)@$nb_comments_of[$row['id']];
+    }
+
+    $block['thumbnails'][] = $tpl_var;
+  }
+
+  $block['thumbnails'] = trigger_event('loc_end_index_thumbnails', $block['thumbnails'], $pictures);
+
+  $block['TEMPLATE'] = 'stuffs_thumbnails.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/config.inc.php	(revision 9736)
@@ -0,0 +1,47 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (!isset($datas)) $datas = array(5, 'on', 'default', '', '');
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  if (empty($_POST['nb_comments']))
+  {
+    array_push($page['errors'], l10n('lastcoms_no_nb_comments'));
+  }
+  else
+  {
+    if (!isset($_POST['show_admin_buttons']))
+    {
+      $_POST['show_admin_buttons'] = 'off';
+    }
+    $datas = array(
+      $_POST['nb_comments'],
+      $_POST['show_admin_buttons'],
+      $_POST['nb_cadres'],
+      $_POST['width'],
+      $_POST['height']
+      );
+  }
+}
+
+// Parametrage du template
+$template->assign('nb_cadres', array(
+  'OPTIONS' => array('default' => 'default', 1 => 1, 2 => 2, 3 => 3),
+  'SELECTED' => $datas[2]));
+
+$template->assign(array(
+  'NB_COMMENTS' => $datas[0],
+  'WIDTH'       => $datas[3],
+  'HEIGHT'      => $datas[4]
+));
+if ($datas[1] == 'on')
+{
+  $template->assign(array('SHOW_ADMIN_BUTTONS' => 'checked="checked"'));
+}
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/config.tpl	(revision 9736)
@@ -0,0 +1,29 @@
+<table>
+	<tr>
+		<td align="right"><br>{'lastcoms_nb_comments'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+		<input type="text" size="3" maxlength="2" value="{$NB_COMMENTS}" name="nb_comments"/></td>
+	</tr>
+	<tr>
+		<td align="right"><br>{'lastcoms_show_buttons'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+		<input type="checkbox" name="show_admin_buttons" value="on" {$SHOW_ADMIN_BUTTONS}/></td>
+	</tr>
+  <tr>
+		<td align="right"><br>{'lastcoms_nb_cadres'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+    {html_options name=nb_cadres options=$nb_cadres.OPTIONS selected=$nb_cadres.SELECTED}
+    </td>
+	</tr>
+  <tr>
+		<td align="right"><br>{'lastcoms_dim'|@translate} : &nbsp;&nbsp; {'lastcoms_width'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+		<input type="text" size="3" maxlength="3" value="{$WIDTH}" name="width"/>&nbsp;px</td>
+	</tr>
+	<tr>
+		<td align="right">{'lastcoms_height'|@translate} &nbsp;&nbsp;</td>
+		<td>
+		<input type="text" size="3" maxlength="3" value="{$HEIGHT}" name="height"/>&nbsp;px</td>
+	</tr>
+</table>
+<br>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/LastComs/main.inc.php	(revision 9736)
@@ -0,0 +1,184 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+global $user, $conf;
+
+// +-----------------------------------------------------------------------+
+// |                         comments management                           |
+// +-----------------------------------------------------------------------+
+// comments deletion
+if (isset($_GET['delete']) and is_numeric($_GET['delete']) and is_admin() and !is_adviser())
+{
+    check_status(ACCESS_ADMINISTRATOR);
+    check_pwg_token();
+    $query = '
+DELETE FROM ' . COMMENTS_TABLE . '
+  WHERE id=' . $_GET['delete'] . '
+;';
+    pwg_query($query);
+}
+
+// comments validation
+if (isset($_GET['validate']) and is_numeric($_GET['validate']) and is_admin() and !is_adviser())
+{
+    check_status(ACCESS_ADMINISTRATOR);
+    check_pwg_token();
+    $query = '
+UPDATE ' . COMMENTS_TABLE . '
+  SET validated = \'true\'
+  , validation_date = NOW()
+  WHERE id=' . $_GET['validate'] . '
+;';
+    pwg_query($query);
+}
+
+// +-----------------------------------------------------------------------+
+// |                        last comments display                          |
+// +-----------------------------------------------------------------------+
+$comments = array();
+$element_ids = array();
+$category_ids = array();
+$max_width = 0;
+if (!is_admin())
+{
+  $clauses[] = 'validated="true"';
+}
+$clauses[] = get_sql_condition_FandF (
+    array ('forbidden_categories' => 'category_id',
+        'visible_categories' => 'category_id',
+        'visible_images' => 'ic.image_id'), '', true);
+
+$query = 'SELECT com.id AS comment_id
+   , com.image_id
+   , ic.category_id
+   , com.author
+   , com.date
+   , com.content
+   , com.id AS comment_id
+   , com.validated
+   FROM ' . IMAGE_CATEGORY_TABLE . ' AS ic
+   INNER JOIN ' . COMMENTS_TABLE . ' AS com
+   ON ic.image_id = com.image_id
+   WHERE ' . implode(' AND ', $clauses) . '
+    GROUP BY comment_id
+    ORDER BY date DESC
+    LIMIT 0, ' . $datas[0] . ';';
+
+$result = pwg_query($query);
+while ($row = mysql_fetch_assoc($result))
+{
+  array_push($comments, $row);
+  array_push($element_ids, $row['image_id']);
+  array_push($category_ids, $row['category_id']);
+}
+
+if (count($comments) > 0)
+{
+  $block['TITLE_URL'] = 'comments.php';
+  $block['comments'] = array();
+
+  // retrieving element informations
+  $elements = array();
+  $query = '
+SELECT id, name, file, path, tn_ext
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $element_ids).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $elements[$row['id']] = $row;
+  }
+
+  // retrieving category informations
+  $query = '
+SELECT id, name, permalink, uppercats
+  FROM '.CATEGORIES_TABLE.'
+  WHERE id IN ('.implode(',', $category_ids).')
+;';
+  $categories = hash_from_query($query, 'id');
+
+  foreach ($comments as $comment)
+  {
+    if (!empty($elements[$comment['image_id']]['name']))
+    {
+      $name=$elements[$comment['image_id']]['name'];
+    }
+    else
+    {
+      $name=get_name_from_file($elements[$comment['image_id']]['file']);
+    }
+
+    // source of the thumbnail picture
+    $thumbnail_src = get_thumbnail_url( $elements[$comment['image_id']] );
+
+    // link to the full size picture
+    $url = make_picture_url(
+            array(
+              'category' => $categories[ $comment['category_id'] ],
+              'image_id' => $comment['image_id'],
+              'image_file' => $elements[$comment['image_id']]['file'],
+            )
+          );
+
+    $author = $comment['author'];
+    if (empty($comment['author']))
+    {
+      $author = l10n('guest');
+    }
+
+    $tpl_comment =
+      array(
+        'U_PICTURE' => $url,
+        'TN_SRC' => $thumbnail_src,
+        'ALT' => $name,
+        'AUTHOR' => trigger_event('render_comment_author', $author),
+        'DATE' => format_date($comment['date'],'mysql_datetime',true),
+        'CONTENT' => trigger_event('render_comment_content',$comment['content']),
+        'WIDTH' => $datas[3],
+        'HEIGHT' => $datas[4],
+        );
+
+    switch ($datas[2])
+    {
+      case 1 :
+        $tpl_comment['CLASS'] = 'one_comment';
+        break;
+      case 2 :
+        $tpl_comment['CLASS'] = 'two_comment';
+        break;
+      case 3 :
+        $tpl_comment['CLASS'] = 'three_comment';
+        break;
+    }
+
+    if ( is_admin() )
+    {
+      $url = get_root_url().'index.php'.get_query_string_diff(array('delete','validate'));
+      $tpl_comment['U_DELETE'] = add_url_params($url, array(
+            'delete' => $comment['comment_id'],
+            'pwg_token' => get_pwg_token()));
+
+            if ($comment['validated'] != 'true')
+      {
+        $tpl_comment['U_VALIDATE'] = add_url_params($url, array(
+            'validate' => $comment['comment_id'],
+            'pwg_token' => get_pwg_token()));
+      }
+    }
+
+    // Show comment editor link
+    if (defined('CE_PATH') and ((!is_a_guest() and ($user[$conf['user_fields']['username']] == $author)) or is_admin()))
+    {
+      load_language('plugin.lang', CE_PATH);
+      $tpl_comment['U_EDIT'] = add_url_params(get_root_url() . 'index.php', array(
+            CE_ACTION => CE_ACTION_EDIT,
+            CE_ID => $comment['comment_id'],
+            'pwg_token' => get_pwg_token()));
+    }
+    array_push($block['comments'], $tpl_comment);
+  }
+  $block['TEMPLATE'] = 'stuffs_lastcoms.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Logon/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Logon/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Logon/config.inc.php	(revision 9736)
@@ -0,0 +1,23 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+unset($template->_tpldata['user_perm.'], $template->_tpldata['group_perm.']);
+$_POST['users'] = array('guest');
+
+if (!isset($datas)) $datas = array('0');
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser()) {
+  if (!isset($_POST['remove_menubar_block'])) $_POST['remove_menubar_block']  = '0';
+    $datas = array($_POST['remove_menubar_block']);
+}
+
+// Parametrage du template
+if ($datas[0] == '1') $template->assign(array('REMOVE_MENUBAR_BLOCK' => 'checked="checked"'));
+
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Logon/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Logon/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Logon/config.tpl	(revision 9736)
@@ -0,0 +1,1 @@
+<p><input type="checkbox" name="remove_menubar_block" value="1" {$REMOVE_MENUBAR_BLOCK}/> &nbsp; {'logon_remove_menubar_block'|@translate}</p><br>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Logon/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Logon/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Logon/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Logon/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Logon/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Logon/main.inc.php	(revision 9736)
@@ -0,0 +1,35 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+if (!is_a_guest()) return;
+
+global $conf;
+
+// template initialization
+$block = array_merge($block, 
+  array(
+    'U_LOST_PASSWORD' => get_root_url().'password.php',
+    'F_LOGIN_ACTION' => get_root_url().'identification.php',
+    'authorize_remembering' => $conf['authorize_remembering'],
+    ));
+
+if ($conf['allow_user_registration'])
+{
+  $block['U_REGISTER'] = get_root_url().'register.php';
+}
+
+// Retirer le bloc identification rapide du menubar
+if ($datas[0] == '1')
+{
+  add_event_handler('blockmanager_apply', 'stuffs_hide_identification');
+  function stuffs_hide_identification($menu_ref_arr)
+  {
+    $menu = & $menu_ref_arr[0];
+    $menu->hide_block('mbIdentification');
+  }
+}
+
+$block['TEMPLATE'] = 'stuffs_logon.tpl';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/config.inc.php	(revision 9736)
@@ -0,0 +1,41 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (!isset($datas))
+{
+  $datas = array(
+    'nb_images'     => 5,
+    'cat_display'   => 'all',
+    'cat_selection' => array(),
+  );
+}
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  $datas = array(
+    'nb_images' => intval($_POST['nb_images']),
+    'cat_display' => $_POST['cat_display'],
+    'cat_selection' => @$_POST['cat_selection'],
+    );
+  unset($_POST['on_picture']);
+}
+
+// Parametrage du template
+$query = 'SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE.';';
+display_select_cat_wrapper($query,array(),'category_selection');
+
+$template->assign(array(
+  'NB_IMAGES' => $datas['nb_images'],
+  'cat_display' => $datas['cat_display'],
+  'category_selected' => $datas['cat_selection'],
+  )
+);
+
+$display_options = & $template->get_template_vars('display_options');
+$display_options['on_picture'] = false;
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/config.tpl	(revision 9736)
@@ -0,0 +1,86 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
+{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+
+<table>
+	<tr>
+		<td align="right"><br>{'stuffs_mv_nb_images'|@translate} &nbsp;&nbsp;</td>
+		<td><br><input type="text" name="nb_images" size="3" maxlength="2" value="{$NB_IMAGES}"></td>
+	</tr>
+	<tr class="cat_options" style="display: none;">
+		<td align="right"><br>{'stuffs_mv_category_display'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+      <select name="cat_display">
+        <option label="{'stuffs_mv_all_cats'|@translate}" value="all" {if $cat_display == 'all'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_all_cats'|@translate}</option>
+        <option label="{'stuffs_mv_wo_thumb'|@translate}" value="wo_thumb" {if $cat_display == 'wo_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_wo_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_w_thumb'|@translate}" value="w_thumb" {if $cat_display == 'w_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_w_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_selected_cats'|@translate}" value="selected_cats" {if $cat_display == 'selected_cats'}selected="selected"{/if} onClick="javascript: show_cat_list();">{'stuffs_mv_selected_cats'|@translate}</option>
+      </select>
+    </td>
+	</tr>
+	<tr class="cat_selection" style="display: none;">
+		<td align="right">
+      <br>{'stuffs_mv_cat_selection'|@translate} &nbsp;&nbsp;
+      <br>({'stuffs_mv_hold_ctrl'|@translate}) &nbsp;&nbsp;</td>
+		<td><br>
+		  <select class="categoryList" name="cat_selection[]" multiple="multiple" size="30">
+        {html_options options=$category_selection selected=$category_selected}
+      </select></td>
+	</tr>
+</table>
+<br>
+
+{literal}
+<script type="text/javascript">
+resize = false;
+function show_cat_list()
+{
+  jQuery('.cat_selection').show();
+  if (!resize)
+  {
+    resize = true;
+    jQuery('.categoryList').resizable({
+      handles: "all",
+      animate: true,
+      animateDuration: "slow",
+      animateEasing: "swing",
+      preventDefault: true,
+      preserveCursor: true,
+      autoHide: true,
+      ghost: true
+    });
+  }
+}
+
+function hide_cat_list()
+{
+  jQuery('.cat_selection').hide();
+}
+
+jQuery().ready( function () {
+  jQuery("input[name='on_cats']").click( function() {
+    if (this.checked)
+    {
+      jQuery('.cat_options').show();
+      if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+        show_cat_list();
+    }
+    else
+    {
+      jQuery('.cat_options').hide();
+      hide_cat_list();
+    }
+  });
+});
+
+if (document.getElementsByName("on_cats")[0].checked)
+{
+  jQuery('.cat_options').show();
+  if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+  {
+    show_cat_list();
+  }
+}
+</script>
+{/literal}
+
Index: /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/MostVisited/main.inc.php	(revision 9736)
@@ -0,0 +1,161 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $page, $user, $conf, $template, $pwg_event_handlers, $yop;
+
+if (script_basename() == 'picture'
+  or ($datas['cat_display'] == 'wo_thumb' and !empty($page['items']))
+  or ($datas['cat_display'] == 'w_thumb' and empty($page['items']) and isset($page['category']))
+  or ($datas['cat_display'] == 'selected_cats' and isset($page['category']) and !in_array($page['category']['id'], $datas['cat_selection'])))
+{
+  return false;
+}
+
+$forbidden = get_sql_condition_FandF
+  (
+    array
+      (
+        'forbidden_categories' => 'ic.category_id',
+        'visible_categories' => 'ic.category_id',
+        'visible_images' => 'i.id'
+      ),
+    'AND'
+  );
+
+$query = '
+  SELECT DISTINCT (i.id)
+    FROM '.IMAGES_TABLE.' as i
+      INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id = ic.image_id
+      INNER JOIN '.CATEGORIES_TABLE.' AS c ON ic.category_id = c.id
+    WHERE i.hit > 0';
+
+if (isset($page['category']))
+{
+  $query .= '
+        AND ( c.uppercats LIKE \''.$page['category']['uppercats'].',%\' OR c.id = '.$page['category']['id'].' )
+  ';
+}
+
+$query .= '
+      '.$forbidden.'
+      ORDER BY i.hit DESC, i.file ASC
+    LIMIT 0, '.$datas['nb_images'].'
+  ;';
+
+$pictures = array();
+$selection = array_from_query($query, 'id');
+ 
+if (count($selection) > 0)
+{
+  $rank_of = array_flip($selection);
+
+  $query = '
+SELECT *
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $selection).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $row['rank'] = $rank_of[ $row['id'] ];
+
+    array_push($pictures, $row);
+  }
+
+  usort($pictures, 'rank_compare');
+  unset($rank_of);
+}
+
+if (count($pictures) > 0)
+{
+  if ($user['show_nb_comments'])
+  {
+    $query = '
+SELECT image_id, COUNT(*) AS nb_comments
+  FROM '.COMMENTS_TABLE.'
+  WHERE validated = \'true\'
+    AND image_id IN ('.implode(',', $selection).')
+  GROUP BY image_id
+;';
+    $nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
+  }
+
+  // template thumbnail initialization
+  trigger_action('loc_begin_index_thumbnails', $pictures);
+  $block['thumbnails'] = array();
+
+  foreach ($pictures as $row)
+  {
+    // link on picture.php page
+    $url = duplicate_picture_url(
+          array(
+            'image_id' => $row['id'],
+            'image_file' => $row['file']
+          ),
+          array('start')
+        );
+    $url = add_url_params($url, array('pwgs_mv' => implode(',',$selection)));
+
+    $tpl_var =
+      array(
+        'ID'        => $row['id'],
+        'TN_SRC'    => get_thumbnail_url($row),
+        'TN_ALT'    => $row['file'],
+        'TN_TITLE'  => get_thumbnail_title($row),
+        'ICON_TS'   => get_icon($row['date_available']),
+        'URL'       => $url,
+
+     /* Fields for template-extension usage */
+        'FILE_PATH' => $row['path'],
+        'FILE_POSTED' => $row['date_available'],
+        'FILE_CREATED' => $row['date_creation'],
+        'FILE_DESC' => $row['comment'],
+        'FILE_AUTHOR' => $row['author'],
+        'FILE_HIT' => $row['hit'],
+        'FILE_SIZE' => $row['filesize'],
+        'FILE_WIDTH' => $row['width'],
+        'FILE_HEIGHT' => $row['height'],
+        'FILE_METADATE' => $row['date_metadata_update'],
+        'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
+                  true:false, /* lack of include/functions_picture.inc.php */
+      );
+
+    if ($user['show_nb_hits'])
+    {
+      $tpl_var['NB_HITS'] = $row['hit'];
+    }
+
+    if ($conf['show_thumbnail_caption'])
+    {// name of the picture
+      if (isset($row['name']) and $row['name'] != '')
+      {
+        $name = $row['name'];
+      }
+      else
+      {
+        $name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
+      }
+
+      if ( !$user['show_nb_hits'])
+      {
+        $name = '('.$row['hit'].') '.$name;
+      }
+
+      $tpl_var['NAME'] = $name;
+    }
+
+    if ( isset($nb_comments_of) )
+    {
+      $tpl_var['NB_COMMENTS'] = (int)@$nb_comments_of[$row['id']];
+    }
+
+    $block['thumbnails'][] = $tpl_var;
+  }
+
+  $block['thumbnails'] = trigger_event('loc_end_index_thumbnails', $block['thumbnails'], $pictures);
+
+  $block['TEMPLATE'] = 'stuffs_thumbnails.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Personal/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Personal/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Personal/config.inc.php	(revision 9736)
@@ -0,0 +1,19 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+if (!isset($datas)) $datas = '';
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser()) {
+  $datas = stripslashes($_POST['personal_content']);
+}
+
+// Parametrage du template
+$template->assign('cat_style', array());
+$template->assign(array('PERSONAL_CONTENT' => $datas));
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Personal/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Personal/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Personal/config.tpl	(revision 9736)
@@ -0,0 +1,7 @@
+<div style="text-align:center;">
+<br>
+<b>{'personal_content'|@translate}</b>
+<br>
+<textarea name="personal_content" id ="textarea" rows="10" cols="50" style="width:90%;">{$PERSONAL_CONTENT}</textarea>
+</div>
+<br>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Personal/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Personal/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Personal/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Personal/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Personal/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Personal/main.inc.php	(revision 9736)
@@ -0,0 +1,19 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+$block['CONTENT'] = $datas;
+
+// Extended description
+if (function_exists('get_extended_desc'))
+{
+  $block['CONTENT'] = get_extended_desc($block['CONTENT']);
+}
+else
+{
+  $block['CONTENT'] = get_user_language_desc($block['CONTENT']);
+}
+
+$block['TEMPLATE'] = 'stuffs_personal.tpl';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Random/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Random/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Random/config.inc.php	(revision 9736)
@@ -0,0 +1,41 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (!isset($datas))
+{
+  $datas = array(
+    'nb_images'     => 10,
+    'cat_display'   => 'all',
+    'cat_selection' => array(),
+  );
+}
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  $datas = array(
+    'nb_images' => intval($_POST['nb_images']),
+    'cat_display' => $_POST['cat_display'],
+    'cat_selection' => @$_POST['cat_selection'],
+    );
+  unset($_POST['on_picture']);
+}
+
+// Parametrage du template
+$query = 'SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE.';';
+display_select_cat_wrapper($query,array(),'category_selection');
+
+$template->assign(array(
+  'NB_IMAGES' => $datas['nb_images'],
+  'cat_display' => $datas['cat_display'],
+  'category_selected' => $datas['cat_selection'],
+  )
+);
+
+$display_options = & $template->get_template_vars('display_options');
+$display_options['on_picture'] = false;
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Random/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Random/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Random/config.tpl	(revision 9736)
@@ -0,0 +1,86 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
+{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+
+<table>
+	<tr>
+		<td align="right"><br>{'stuffs_mv_nb_images'|@translate} &nbsp;&nbsp;</td>
+		<td><br><input type="text" name="nb_images" size="3" maxlength="2" value="{$NB_IMAGES}"></td>
+	</tr>
+	<tr class="cat_options" style="display: none;">
+		<td align="right"><br>{'stuffs_mv_category_display'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+      <select name="cat_display">
+        <option label="{'stuffs_mv_all_cats'|@translate}" value="all" {if $cat_display == 'all'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_all_cats'|@translate}</option>
+        <option label="{'stuffs_mv_wo_thumb'|@translate}" value="wo_thumb" {if $cat_display == 'wo_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_wo_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_w_thumb'|@translate}" value="w_thumb" {if $cat_display == 'w_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_w_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_selected_cats'|@translate}" value="selected_cats" {if $cat_display == 'selected_cats'}selected="selected"{/if} onClick="javascript: show_cat_list();">{'stuffs_mv_selected_cats'|@translate}</option>
+      </select>
+    </td>
+	</tr>
+	<tr class="cat_selection" style="display: none;">
+		<td align="right">
+      <br>{'stuffs_mv_cat_selection'|@translate} &nbsp;&nbsp;
+      <br>({'stuffs_mv_hold_ctrl'|@translate}) &nbsp;&nbsp;</td>
+		<td><br>
+		  <select class="categoryList" name="cat_selection[]" multiple="multiple" size="30">
+        {html_options options=$category_selection selected=$category_selected}
+      </select></td>
+	</tr>
+</table>
+<br>
+
+{literal}
+<script type="text/javascript">
+resize = false;
+function show_cat_list()
+{
+  jQuery('.cat_selection').show();
+  if (!resize)
+  {
+    resize = true;
+    jQuery('.categoryList').resizable({
+      handles: "all",
+      animate: true,
+      animateDuration: "slow",
+      animateEasing: "swing",
+      preventDefault: true,
+      preserveCursor: true,
+      autoHide: true,
+      ghost: true
+    });
+  }
+}
+
+function hide_cat_list()
+{
+  jQuery('.cat_selection').hide();
+}
+
+jQuery().ready( function () {
+  jQuery("input[name='on_cats']").click( function() {
+    if (this.checked)
+    {
+      jQuery('.cat_options').show();
+      if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+        show_cat_list();
+    }
+    else
+    {
+      jQuery('.cat_options').hide();
+      hide_cat_list();
+    }
+  });
+});
+
+if (document.getElementsByName("on_cats")[0].checked)
+{
+  jQuery('.cat_options').show();
+  if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+  {
+    show_cat_list();
+  }
+}
+</script>
+{/literal}
+
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Random/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Random/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Random/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Random/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Random/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Random/main.inc.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $page, $user, $conf, $template;
+
+if (script_basename() == 'picture'
+  or ($datas['cat_display'] == 'wo_thumb' and !empty($page['items']))
+  or ($datas['cat_display'] == 'w_thumb' and empty($page['items']) and isset($page['category']))
+  or ($datas['cat_display'] == 'selected_cats' and isset($page['category']) and !in_array($page['category']['id'], $datas['cat_selection'])))
+{
+  return false;
+}
+
+$forbidden = get_sql_condition_FandF
+  (
+    array
+      (
+        'forbidden_categories' => 'ic.category_id',
+        'visible_categories' => 'ic.category_id',
+        'visible_images' => 'i.id'
+      ),
+    'WHERE'
+  );
+
+$query ='
+SELECT DISTINCT(i.id)
+  FROM '.IMAGES_TABLE.' AS i
+    INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id = ic.image_id
+    INNER JOIN '.CATEGORIES_TABLE.' AS c ON ic.category_id = c.id
+    '.$forbidden;
+
+if (isset($page['category']))
+{
+  $query .= '
+        AND ( c.uppercats LIKE \''.$page['category']['uppercats'].',%\' OR c.id = '.$page['category']['id'].' )
+  ';
+}
+
+$query .= '
+    ORDER BY RAND(NOW())
+    LIMIT 0, '.$datas['nb_images'].'
+  ;';
+
+$pictures = array();
+$selection = array_from_query($query, 'id');
+ 
+if (count($selection) > 0)
+{
+  $rank_of = array_flip($selection);
+
+  $query = '
+SELECT *
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $selection).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $row['rank'] = $rank_of[ $row['id'] ];
+
+    array_push($pictures, $row);
+  }
+
+  usort($pictures, 'rank_compare');
+  unset($rank_of);
+}
+
+if (count($pictures) > 0)
+{
+  if ($user['show_nb_comments'])
+  {
+    $query = '
+SELECT image_id, COUNT(*) AS nb_comments
+  FROM '.COMMENTS_TABLE.'
+  WHERE validated = \'true\'
+    AND image_id IN ('.implode(',', $selection).')
+  GROUP BY image_id
+;';
+    $nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
+  }
+
+  // template thumbnail initialization
+  trigger_action('loc_begin_index_thumbnails', $pictures);
+  $block['thumbnails'] = array();
+
+  foreach ($pictures as $row)
+  {
+    // link on picture.php page
+    $url = duplicate_picture_url(
+          array(
+            'image_id' => $row['id'],
+            'image_file' => $row['file']
+          ),
+          array('start')
+        );
+    $url = add_url_params($url, array('pwgs_ra' => implode(',',$selection)));
+
+    $tpl_var =
+      array(
+        'ID'        => $row['id'],
+        'TN_SRC'    => get_thumbnail_url($row),
+        'TN_ALT'    => $row['file'],
+        'TN_TITLE'  => get_thumbnail_title($row),
+        'ICON_TS'   => get_icon($row['date_available']),
+        'URL'       => $url,
+
+     /* Fields for template-extension usage */
+        'FILE_PATH' => $row['path'],
+        'FILE_POSTED' => $row['date_available'],
+        'FILE_CREATED' => $row['date_creation'],
+        'FILE_DESC' => $row['comment'],
+        'FILE_AUTHOR' => $row['author'],
+        'FILE_HIT' => $row['hit'],
+        'FILE_SIZE' => $row['filesize'],
+        'FILE_WIDTH' => $row['width'],
+        'FILE_HEIGHT' => $row['height'],
+        'FILE_METADATE' => $row['date_metadata_update'],
+        'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
+                  true:false, /* lack of include/functions_picture.inc.php */
+      );
+
+    if ($user['show_nb_hits'])
+    {
+      $tpl_var['NB_HITS'] = $row['hit'];
+    }
+
+    if ($conf['show_thumbnail_caption'])
+    {// name of the picture
+      if (isset($row['name']) and $row['name'] != '')
+      {
+        $name = $row['name'];
+      }
+      else
+      {
+        $name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
+      }
+
+      $tpl_var['NAME'] = $name;
+    }
+
+    if ( isset($nb_comments_of) )
+    {
+      $tpl_var['NB_COMMENTS'] = (int)@$nb_comments_of[$row['id']];
+    }
+
+    $block['thumbnails'][] = $tpl_var;
+  }
+
+  $block['thumbnails'] = trigger_event('loc_end_index_thumbnails', $block['thumbnails'], $pictures);
+
+  $block['TEMPLATE'] = 'stuffs_thumbnails.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Recent/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Recent/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Recent/config.inc.php	(revision 9736)
@@ -0,0 +1,41 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (!isset($datas))
+{
+  $datas = array(
+    'nb_images'     => 10,
+    'cat_display'   => 'all',
+    'cat_selection' => array(),
+  );
+}
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  $datas = array(
+    'nb_images' => intval($_POST['nb_images']),
+    'cat_display' => $_POST['cat_display'],
+    'cat_selection' => @$_POST['cat_selection'],
+    );
+  unset($_POST['on_picture']);
+}
+
+// Parametrage du template
+$query = 'SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE.';';
+display_select_cat_wrapper($query,array(),'category_selection');
+
+$template->assign(array(
+  'NB_IMAGES' => $datas['nb_images'],
+  'cat_display' => $datas['cat_display'],
+  'category_selected' => $datas['cat_selection'],
+  )
+);
+
+$display_options = & $template->get_template_vars('display_options');
+$display_options['on_picture'] = false;
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Recent/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Recent/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Recent/config.tpl	(revision 9736)
@@ -0,0 +1,86 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
+{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+
+<table>
+	<tr>
+		<td align="right"><br>{'stuffs_mv_nb_images'|@translate} &nbsp;&nbsp;</td>
+		<td><br><input type="text" name="nb_images" size="3" maxlength="2" value="{$NB_IMAGES}"></td>
+	</tr>
+	<tr class="cat_options" style="display: none;">
+		<td align="right"><br>{'stuffs_mv_category_display'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+      <select name="cat_display">
+        <option label="{'stuffs_mv_all_cats'|@translate}" value="all" {if $cat_display == 'all'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_all_cats'|@translate}</option>
+        <option label="{'stuffs_mv_wo_thumb'|@translate}" value="wo_thumb" {if $cat_display == 'wo_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_wo_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_w_thumb'|@translate}" value="w_thumb" {if $cat_display == 'w_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_w_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_selected_cats'|@translate}" value="selected_cats" {if $cat_display == 'selected_cats'}selected="selected"{/if} onClick="javascript: show_cat_list();">{'stuffs_mv_selected_cats'|@translate}</option>
+      </select>
+    </td>
+	</tr>
+	<tr class="cat_selection" style="display: none;">
+		<td align="right">
+      <br>{'stuffs_mv_cat_selection'|@translate} &nbsp;&nbsp;
+      <br>({'stuffs_mv_hold_ctrl'|@translate}) &nbsp;&nbsp;</td>
+		<td><br>
+		  <select class="categoryList" name="cat_selection[]" multiple="multiple" size="30">
+        {html_options options=$category_selection selected=$category_selected}
+      </select></td>
+	</tr>
+</table>
+<br>
+
+{literal}
+<script type="text/javascript">
+resize = false;
+function show_cat_list()
+{
+  jQuery('.cat_selection').show();
+  if (!resize)
+  {
+    resize = true;
+    jQuery('.categoryList').resizable({
+      handles: "all",
+      animate: true,
+      animateDuration: "slow",
+      animateEasing: "swing",
+      preventDefault: true,
+      preserveCursor: true,
+      autoHide: true,
+      ghost: true
+    });
+  }
+}
+
+function hide_cat_list()
+{
+  jQuery('.cat_selection').hide();
+}
+
+jQuery().ready( function () {
+  jQuery("input[name='on_cats']").click( function() {
+    if (this.checked)
+    {
+      jQuery('.cat_options').show();
+      if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+        show_cat_list();
+    }
+    else
+    {
+      jQuery('.cat_options').hide();
+      hide_cat_list();
+    }
+  });
+});
+
+if (document.getElementsByName("on_cats")[0].checked)
+{
+  jQuery('.cat_options').show();
+  if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+  {
+    show_cat_list();
+  }
+}
+</script>
+{/literal}
+
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Recent/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Recent/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Recent/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Recent/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Recent/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Recent/main.inc.php	(revision 9736)
@@ -0,0 +1,151 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $page, $user, $conf, $template;
+
+if (script_basename() == 'picture'
+  or ($datas['cat_display'] == 'wo_thumb' and !empty($page['items']))
+  or ($datas['cat_display'] == 'w_thumb' and empty($page['items']) and isset($page['category']))
+  or ($datas['cat_display'] == 'selected_cats' and isset($page['category']) and !in_array($page['category']['id'], $datas['cat_selection'])))
+{
+  return false;
+}
+
+$forbidden = get_sql_condition_FandF
+  (
+    array
+      (
+        'forbidden_categories' => 'ic.category_id',
+        'visible_categories' => 'ic.category_id',
+        'visible_images' => 'i.id'
+      ),
+    'AND'
+  );
+
+$query ='
+SELECT DISTINCT(i.id)
+  FROM '.IMAGES_TABLE.' AS i
+    INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id = ic.image_id
+    INNER JOIN '.CATEGORIES_TABLE.' AS c ON ic.category_id = c.id
+  WHERE i.date_available >= SUBDATE(
+      CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY)';
+
+if (isset($page['category']))
+{
+  $query .= '
+        AND ( c.uppercats LIKE \''.$page['category']['uppercats'].',%\' OR c.id = '.$page['category']['id'].' )
+  ';
+}
+
+$query .= '
+    '.$forbidden.'
+    ORDER BY i.id DESC
+    LIMIT 0, '.$datas['nb_images'].'
+  ;';
+
+$pictures = array();
+$selection = array_from_query($query, 'id');
+ 
+if (count($selection) > 0)
+{
+  $query = '
+SELECT *
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $selection).')
+  ORDER BY id DESC
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    array_push($pictures, $row);
+  }
+}
+
+if (count($pictures) > 0)
+{
+  if ($user['show_nb_comments'])
+  {
+    $query = '
+SELECT image_id, COUNT(*) AS nb_comments
+  FROM '.COMMENTS_TABLE.'
+  WHERE validated = \'true\'
+    AND image_id IN ('.implode(',', $selection).')
+  GROUP BY image_id
+;';
+    $nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
+  }
+
+  // template thumbnail initialization
+  trigger_action('loc_begin_index_thumbnails', $pictures);
+  $block['thumbnails'] = array();
+
+  foreach ($pictures as $row)
+  {
+    // link on picture.php page
+    $url = duplicate_picture_url(
+          array(
+            'image_id' => $row['id'],
+            'image_file' => $row['file']
+          ),
+          array('start')
+        );
+    $url = add_url_params($url, array('pwgs_re' => implode(',',$selection)));
+
+    $tpl_var =
+      array(
+        'ID'        => $row['id'],
+        'TN_SRC'    => get_thumbnail_url($row),
+        'TN_ALT'    => $row['file'],
+        'TN_TITLE'  => get_thumbnail_title($row),
+        'ICON_TS'   => get_icon($row['date_available']),
+        'URL'       => $url,
+
+     /* Fields for template-extension usage */
+        'FILE_PATH' => $row['path'],
+        'FILE_POSTED' => $row['date_available'],
+        'FILE_CREATED' => $row['date_creation'],
+        'FILE_DESC' => $row['comment'],
+        'FILE_AUTHOR' => $row['author'],
+        'FILE_HIT' => $row['hit'],
+        'FILE_SIZE' => $row['filesize'],
+        'FILE_WIDTH' => $row['width'],
+        'FILE_HEIGHT' => $row['height'],
+        'FILE_METADATE' => $row['date_metadata_update'],
+        'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
+                  true:false, /* lack of include/functions_picture.inc.php */
+      );
+
+    if ($user['show_nb_hits'])
+    {
+      $tpl_var['NB_HITS'] = $row['hit'];
+    }
+
+    if ($conf['show_thumbnail_caption'])
+    {// name of the picture
+      if (isset($row['name']) and $row['name'] != '')
+      {
+        $name = $row['name'];
+      }
+      else
+      {
+        $name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
+      }
+
+      $tpl_var['NAME'] = $name;
+    }
+
+    if ( isset($nb_comments_of) )
+    {
+      $tpl_var['NB_COMMENTS'] = (int)@$nb_comments_of[$row['id']];
+    }
+
+    $block['thumbnails'][] = $tpl_var;
+  }
+
+  $block['thumbnails'] = trigger_event('loc_end_index_thumbnails', $block['thumbnails'], $pictures);
+
+  $block['TEMPLATE'] = 'stuffs_thumbnails.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Tags/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Tags/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Tags/config.inc.php	(revision 9736)
@@ -0,0 +1,17 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (empty($datas)) $datas = array('cloud');
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  $datas = array($_POST['tag_display']);
+}
+
+$template->assign($datas[0].'_CHECKED', 'checked="checked"');
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Tags/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Tags/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Tags/config.tpl	(revision 9736)
@@ -0,0 +1,13 @@
+<table>
+  <tr>
+    <td>{'stuffs_tags_default_display'|@translate} :</td>
+    <td>&nbsp;&nbsp;<input type="radio" name="tag_display" value="cloud" {$cloud_CHECKED}>&nbsp;&nbsp;<i>{'stuffs_tags_cloud'|@translate}</i></td>
+  </tr>
+  <tr><td></td>
+    <td>&nbsp;&nbsp;<input type="radio" name="tag_display" value="letters" {$letters_CHECKED}>&nbsp;&nbsp;<i>{'stuffs_tags_letters'|@translate}</i></td>
+  </tr>
+  <tr><td></td>
+    <td>&nbsp;&nbsp;<input type="radio" name="tag_display" value="cumulus" {$cumulus_CHECKED}>&nbsp;&nbsp;<i>{'stuffs_tags_cumulus'|@translate}</i></td>
+  </tr>
+  <tr><td colspan="2"><br></td></tr>
+</table>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Tags/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Tags/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Tags/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/Tags/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/Tags/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/Tags/main.inc.php	(revision 9736)
@@ -0,0 +1,152 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $conf, $template;
+
+function counter_compare($a, $b)
+{
+  if ($a['counter'] == $b['counter'])
+  {
+    return id_compare($a, $b);
+  }
+
+  return ($a['counter'] < $b['counter']) ? +1 : -1;
+}
+
+function id_compare($a, $b)
+{
+  return ($a['id'] < $b['id']) ? -1 : 1;
+}
+
+$pwgCumulus_installed = get_db_plugins('active','pwgCumulus');
+
+$block['TITLE_URL'] = 'tags.php';
+
+$tags = get_available_tags();
+
+if ((!$pwgCumulus_installed and $datas[0] == 'cumulus') or empty($datas[0]))
+{
+  $datas[0] = 'cloud';
+}
+
+if ($datas[0] == 'letters')
+{
+  // we want tags diplayed in alphabetic order
+  usort($tags, 'tag_alpha_compare');
+
+  $current_letter = null;
+  $nb_tags = count($tags);
+  $current_column = 1;
+  $current_tag_idx = 0;
+
+  $letter = array(
+    'tags' => array()
+    );
+
+  foreach ($tags as $tag)
+  {
+    $tag_letter = strtoupper(substr($tag['url_name'], 0, 1));
+
+    if ($current_tag_idx==0) {
+      $current_letter = $tag_letter;
+      $letter['TITLE'] = $tag_letter;
+    }
+
+    //lettre precedente differente de la lettre suivante
+    if ($tag_letter !== $current_letter)
+    {
+      if ($current_column<$conf['tag_letters_column_number']
+          and $current_tag_idx > $current_column*$nb_tags/$conf['tag_letters_column_number'] )
+      {
+        $letter['CHANGE_COLUMN'] = true;
+        $current_column++;
+      }
+
+      $letter['TITLE'] = $current_letter;
+
+      $template->append(
+        'letters',
+        $letter
+        );
+
+      $current_letter = $tag_letter;
+      $letter = array(
+        'tags' => array()
+        );
+    }
+
+    array_push(
+      $letter['tags'],
+      array_merge(
+        $tag,
+        array(
+          'URL' => make_index_url(
+            array(
+              'tags' => array($tag),
+              )
+            ),
+          )
+        )
+      );
+
+    $current_tag_idx++;
+  }
+
+  // flush last letter
+  if (count($letter['tags']) > 0)
+  {
+    unset($letter['CHANGE_COLUMN']);
+    $letter['TITLE'] = $current_letter;
+    $template->append(
+      'letters',
+      $letter
+      );
+  }
+}
+else
+{
+  usort($tags, 'counter_compare');
+  $tags = array_slice($tags, 0, $conf['full_tag_cloud_items_number']);
+
+  // depending on its counter and the other tags counter, each tag has a level
+  $tags = add_level_to_tags($tags);
+
+  // we want tags diplayed in alphabetic order
+  usort($tags, 'tag_alpha_compare');
+
+  // display sorted tags
+  foreach ($tags as $tag)
+  {
+    $template->append(
+      'tags',
+      array_merge(
+        $tag,
+        array(
+          'URL' => make_index_url(
+            array(
+              'tags' => array($tag),
+              )
+            ),
+          )
+        )
+      );
+  }
+  if ($datas[0] == 'cumulus')
+  {
+    include_once PWG_CUMULUS_PLUGIN_ROOT . "/include/pwgCumulusContent.class.php";
+    $cumulus = new pwgCumulusContent(get_plugin_data('pwgCumulus'));
+    $cumulus->loc_begin_page_header();
+  }
+}
+
+$template->assign('display_mode', $datas[0]);
+
+if (get_db_plugins('active','typetags'))
+{
+  include(typetags_PATH . 'typetags.php');
+}
+
+$block['TEMPLATE'] = 'stuffs_tags.tpl';
+
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/modules/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/modules/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/modules/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/theme/index.php
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/theme/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/theme/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/branch/2.1/theme/stuffs_index.css
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/theme/stuffs_index.css	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/theme/stuffs_index.css	(revision 9736)
@@ -0,0 +1,64 @@
+.content {
+  min-height: 0;
+}
+
+.stuffs_block {
+  background-color: transparent;
+  background-image: none;
+  border: none;
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+.stuffs {
+  margin: 0 0 1em;
+  overflow: hidden;
+}
+
+.right_block {
+  float: right;
+  margin: 0 0 0 1em;
+}
+
+.left_block {
+  float: left;
+  margin: 0 1em 0 0;
+}
+
+.middle_block {
+  overflow: hidden;
+  margin: auto;
+}
+
+.personal_block {
+  padding: 15px;
+}
+
+.quote_block {
+  padding: 15px;
+  text-align: center;
+}
+
+.one_comment {
+  width: 99% !important;
+}
+
+.two_comment {
+  width: 49.5% !important;
+}
+
+.three_comment {
+  width: 33% !important;
+}
+
+#comments div.thumbnailCategory div.illustration {
+  width: auto !important;
+  padding-right: 15px;
+}
+
+#comments div.thumbnailCategory blockquote {
+  margin-left: 10px;
+}
+
+/* Hack IE6 */
+* html  .stuffs, * html .middle_block { overflow-y: visible; }
Index: /extensions/PWG_Stuffs/branch/2.1/theme/stuffs_picture.css
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/theme/stuffs_picture.css	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/theme/stuffs_picture.css	(revision 9736)
@@ -0,0 +1,58 @@
+.content {
+  min-height: 0;
+}
+
+.stuffs_block {
+  background-color: transparent;
+  background-image: none;
+  border: none;
+  margin: 0;
+}
+
+.stuffs {
+  margin: 1em 0;
+  overflow: hidden;
+}
+
+.right_block {
+  float: right;
+  margin: 0 0 0 1em;
+}
+
+.left_block {
+  float: left;
+  margin: 0 1em 0 0;
+}
+
+.middle_block {
+  overflow: hidden;
+  margin: auto;
+}
+
+.personal_block {
+  padding: 15px;
+}
+
+.one_comment {
+  width: 99% !important;
+}
+
+.two_comment {
+  width: 49.5% !important;
+}
+
+.three_comment {
+  width: 33% !important;
+}
+
+#comments div.thumbnailCategory div.illustration {
+  width: auto !important;
+  padding-right: 15px;
+}
+
+#comments div.thumbnailCategory blockquote {
+  margin-left: 10px;
+}
+
+/* Hack IE6 */
+* html  .stuffs, * html .middle_block { overflow-y: visible; }
Index: /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_blocks.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_blocks.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_blocks.tpl	(revision 9736)
@@ -0,0 +1,27 @@
+<div class="content stuffs_block">
+{foreach from=$blocks item=block key=key}
+  {if $block.new_line}
+  <div class="content stuffs_block stuffs">
+  {/if}
+    <div id="stuffs_block_{$block.ID}" class="content {$block.CLASS}" {if !empty($block.WIDTH)}style="width: {$block.WIDTH}%;"{/if}>
+    {if isset($block.TITLE)}
+      <div class="titrePage">
+        {if !empty($block.U_EDIT)}
+        <ul class="categoryActions">
+          <li><a href="{$block.U_EDIT}" title="{'edit'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_edit.png" class="button" alt="{'edit'|@translate}"/></a></li>
+        </ul>
+        {/if}
+      {if isset($block.TITLE_URL)}
+      <h2><a href="{$block.TITLE_URL}">{$block.TITLE}</a></h2>
+      {else}
+      <h2>{$block.TITLE}</h2>
+      {/if}
+      </div>
+    {/if}
+    {include file=$block.TEMPLATE}
+    </div>
+  {if $block.end_line}
+  </div>
+  {/if}
+{/foreach}
+</div>
Index: /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_lastcoms.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_lastcoms.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_lastcoms.tpl	(revision 9736)
@@ -0,0 +1,44 @@
+<div id="comments">
+<ul class="thumbnailCategories">
+{foreach from=$block.comments item=comment}
+<li {if isset($comment.CLASS)}class="{$comment.CLASS}"{/if}>
+	<div class="thumbnailCategory">
+    {if isset($comment.TN_SRC)}
+    <div class="illustration">
+      <a href="{$comment.U_PICTURE}">
+        <img src="{$comment.TN_SRC}" alt="{$comment.ALT}"
+          style="{if !empty($comment.WIDTH)}max-width: {$comment.WIDTH}px; {/if}{if !empty($comment.HEIGHT)}max-height: {$comment.HEIGHT}px; {/if}"/>
+      </a>
+    </div>
+    {/if}
+    <div class="description">
+      {if isset($comment.U_DELETE) or isset($comment.U_VALIDATE) }
+      <ul class="actions" style="float:right">
+        {if !empty($comment.U_DELETE)}
+        <li>
+          <a href="{$comment.U_DELETE}" title="{'delete this comment'|@translate}">
+            <img src="{$ROOT_URL}{$themeconf.icon_dir}/delete.png" class="button" alt="[delete]" />
+          </a>
+        </li>
+        {/if}
+        {if !empty($comment.U_VALIDATE)}
+        <li>
+          <a href="{$comment.U_VALIDATE}" title="validate this comment">
+            <img src="{$ROOT_URL}{$themeconf.icon_dir}/validate_s.png" class="button" alt="[validate]" />
+          </a>
+        </li>
+        {/if}
+      </ul>
+      {/if}
+      <span class="author">{$comment.AUTHOR}</span> - <span class="date">{$comment.DATE}</span>
+      {if !empty($comment.U_EDIT)}- <a href="{$comment.U_EDIT}">{'ce_edit_tool'|@translate}</a>{/if}
+      <blockquote>{$comment.CONTENT}</blockquote>
+    </div>
+  </div>
+</li>
+{if isset($comment_separator)}
+<hr/>
+{/if}
+{/foreach}
+</ul>
+</div>
Index: /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_logon.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_logon.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_logon.tpl	(revision 9736)
@@ -0,0 +1,42 @@
+<div class="logon_block">
+<form action="{$block.F_LOGIN_ACTION}" method="post" name="login_form" class="properties">
+  <fieldset>
+    <legend>{'Connection settings'|@translate}</legend>
+
+    <ul>
+      <li>
+        <span class="property">
+          <label for="username">{'Username'|@translate}</label>
+        </span>
+        <input tabindex="1" class="login" type="text" name="username" id="username" size="25" maxlength="40" />
+      </li>
+
+      <li>
+        <span class="property">
+          <label for="password">{'Password'|@translate}</label>
+        </span>
+        <input tabindex="2" class="login" type="password" name="password" id="password" size="25" maxlength="25" />
+      </li>
+
+      {if $block.authorize_remembering }
+      <li>
+        <span class="property">
+          <label for="remember_me">{'Auto login'|@translate}</label>
+        </span>
+        <input tabindex="3" type="checkbox" name="remember_me" id="remember_me" value="1">
+      </li>
+      {/if}
+    </ul>
+  </fieldset>
+
+  <p><input class="submit" tabindex="4" type="submit" name="login" value="{'Submit'|@translate}"></p>
+
+  <p>
+    {if isset($block.U_REGISTER) }
+    <a href="{$block.U_REGISTER}" title="{'Create a new account'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/register.png" class="button" alt="{'Register'|@translate}"> {'Register'|@translate}</a>
+    {/if}
+    <a href="{$block.U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/lost_password.png" class="button" alt="{'Forgot your password?'|@translate}"> {'Forgot your password?'|@translate}</a>
+  </p>
+
+</form>
+</div>
Index: /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_personal.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_personal.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_personal.tpl	(revision 9736)
@@ -0,0 +1,3 @@
+<div class="personal_block">
+{$block.CONTENT}
+</div>
Index: /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_tags.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_tags.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_tags.tpl	(revision 9736)
@@ -0,0 +1,49 @@
+{if $display_mode == 'cloud'}
+<div id="fullTagCloud">
+	{foreach from=$tags item=tag}
+	<span><a href="{$tag.URL}" class="tagLevel{$tag.level}" title="{$tag.counter}">{$tag.name}</a></span>
+	{/foreach}
+</div>
+
+{elseif $display_mode == 'letters'}
+<table>
+  <tr>
+    <td valign="top">
+  {foreach from=$letters item=letter}
+<fieldset class="tagLetter">
+  <legend class="tagLetterLegend">{$letter.TITLE}</legend>
+  <table class="tagLetterContent">
+    {foreach from=$letter.tags item=tag}
+    <tr class="tagLine">
+      <td><a href="{$tag.URL}">{$tag.name}</a></td>
+      <td class="nbEntries">{$pwg->l10n_dec('%d element', '%d elements', $tag.counter)}</td>
+    </tr>
+    {/foreach}
+  </table>
+</fieldset>
+    {if isset($letter.CHANGE_COLUMN) }
+    </td>
+    <td valign="top">
+    {/if}
+  {/foreach}
+    </td>
+  </tr>
+</table>
+
+{elseif $display_mode == 'cumulus'}
+<div id="flashcontent">This will be shown to users with no Flash or Javascript.</div>
+
+  <script type="text/javascript">
+    var so = new SWFObject("{$PWG_CUMULUS_SWF}/tagcloud.swf", "tagcloud", "100%", "{$PWG_CUMULUS_HEIGHT}", "7", "#FFFFFF");
+    so.addParam("wmode", "transparent");
+    so.addVariable("tcolor", "{$PWG_CUMULUS_COLOR1}");
+    so.addVariable("tcolor2", "{$PWG_CUMULUS_COLOR2}");
+    so.addVariable("hicolor", "{$PWG_CUMULUS_HICOLOR}");
+    so.addVariable("mode", "tags");
+    so.addVariable("distr", "true");
+    so.addVariable("tspeed", "100");
+    so.addVariable("tagcloud", 
+    "<tags>{foreach from=$tags item=tag}<a href='{$tag.URL}' style='{$tag.size}pt'>{$tag.display_name}</a>{/foreach}</tags>");
+    so.write("flashcontent");
+  </script>
+{/if}
Index: /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_thumbnails.tpl
===================================================================
--- /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_thumbnails.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/branch/2.1/theme/template/stuffs_thumbnails.tpl	(revision 9736)
@@ -0,0 +1,2 @@
+{assign var='thumbnails' value=$block.thumbnails}
+{include file='thumbnails.tpl'|@get_extent:'index_thumbnails'}
Index: tensions/PWG_Stuffs/class.inc.php
===================================================================
--- /extensions/PWG_Stuffs/class.inc.php	(revision 9735)
+++ 	(revision )
@@ -1,229 +1,0 @@
-<?php
-
-if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
-
-class stuffs
-{
-  var $user_groups = array();
-  var $modules = array();
-  var $blocks = array();
-  var $pos = 'begin';
-  var $prefixe = 'PLUGIN_INDEX_CONTENT_';
-
-  function stuffs()
-  {
-    global $page, $template;
-
-    if ($page['stuffs_section'] == 'on_picture')
-    {
-      $this->prefixe = 'PLUGIN_PICTURE_';
-      $template->set_prefilter('header', array('stuffs', 'prefilter_picture_css'));
-      pwgs_picture_special_sections();
-    }
-    else
-    {
-      $template->set_prefilter( 'header', array('stuffs', 'prefilter_index_css') );
-    }
-
-    $this->get_user_groups();
-    $this->get_modules();
-    $this->process_modules();
-  }
-
-  /* Retrieve user groups  */
-  function get_user_groups()
-  {
-    global $user;
-
-    $query = 'SELECT group_id FROM ' . USER_GROUP_TABLE . ' WHERE user_id = ' . $user['id'] . ';';
-    $result = pwg_query($query);
-    while ($row = mysql_fetch_assoc($result))
-    {
-      array_push($this->user_groups, $row['group_id']);
-    }
-  }
-
-  /* Retrieve modules from table */
-  function get_modules()
-  {
-    global $page, $user;
-
-    if (!isset($page['stuffs_section'])) return;
-
-    $query = '
-SELECT DISTINCT id, name, path, datas, groups, show_title, id_line, width
-FROM ' . STUFFS_TABLE . '
-LEFT JOIN ' . USER_GROUP_TABLE . '
-  ON user_id = '.$user['id'].'
-WHERE (users IS NULL OR users LIKE "%' . $user['status'] . '%")
-  AND (groups IS NULL OR groups REGEXP CONCAT("(^|,)",group_id,"(,|$)"))
-  AND level <= '.$user['level'].'
-  AND '.$page['stuffs_section'].' = "true"
-ORDER BY pos ASC
-;';
-
-    $result = pwg_query($query);
-
-    while ($row = mysql_fetch_assoc($result))
-    {
-      array_push($this->modules, $row);
-    }
-  }
-
-  /* Process modules */
-  function process_modules()
-  {
-    global $pwg_loaded_plugins;
-
-    foreach ($this->modules as $module)
-    {
-      if ($module['name'] == 'MainBlock')
-      {
-        $this->pos = 'end';
-        $show = unserialize($module['datas']);
-        if (!$show)
-        {
-          add_event_handler('loc_end_index', 'hide_main_block');
-        }
-        continue;
-      }
-
-      preg_match('#^'.preg_quote(PHPWG_PLUGINS_PATH).'([^/]*?)/#', $module['path'], $match);
-      if (!isset($pwg_loaded_plugins[$match[1]]))
-      {
-        continue;
-      }
-
-      $datas = (!empty($module['datas']) ? unserialize($module['datas']) : false);
-      $block = array();
-
-      @include($module['path'].'main.inc.php');
-
-      if (!empty($block['TEMPLATE']))
-      {
-        $block['ID'] = $module['id'];
-        if ($module['show_title'] == 'true')
-        {
-          $block['TITLE'] = trigger_event('render_stuffs_name', $module['name']);
-        }
-        if (is_admin())
-        {
-          $block['U_EDIT'] = PHPWG_ROOT_PATH.'admin.php?page=plugin&amp;section='.STUFFS_DIR.'%2Fadmin%2Fadmin.php&amp;tab=edit_module&amp;edit='.$module['id'].'&amp;redirect='.urlencode(urlencode($_SERVER['REQUEST_URI']));
-        }
-        $this->set_tpl_block($block, $module);
-      }
-    }
-  }
-  /* Set template blocks  */
-  function set_tpl_block($block, $module)
-  {
-    if (!empty($module['id_line']))
-    {
-      $block['id_line'] = $module['id_line'];
-      $block['given_width'] = !empty($module['width']) ? $module['width'] : '';
-
-      if (!empty($this->blocks[$this->pos]))
-      {
-        $last = end($this->blocks[$this->pos]);
-        $key = key($this->blocks[$this->pos]);
-        $penul = prev($this->blocks[$this->pos]);
-
-        if (isset($last['id_line']) and $last['id_line'] == $module['id_line'])
-        {
-          if (isset($penul['id_line']) and $penul['id_line'] == $module['id_line'])
-          {
-            $i = 3;
-            !$block['given_width'] or $i--;
-            !$last['given_width'] or $i--;
-            !$penul['given_width'] or $i--;
-
-            !$i or $default_width = intval((100 - $block['given_width'] - $last['given_width'] - $penul['given_width']) / $i);
-
-            $penul['WIDTH'] = $penul['given_width'] ? $penul['given_width'] : $default_width;
-            $block['WIDTH'] = $block['given_width'] ? $block['given_width'] : $default_width;
-
-            $block['CLASS'] = 'right_block';
-            $block['new_line'] = false;
-            $block['end_line'] = false;
-            $last['end_line'] = true;
-            $this->blocks[$this->pos][$key-1] = $penul;
-            $this->blocks[$this->pos][$key] = $block;
-            $this->blocks[$this->pos][] = $last;
-            return;
-          }
-          else
-          {
-            if (empty($block['given_width']) and empty($last['given_width']))
-            {
-              $last['WIDTH'] = 50;
-            }
-            elseif ($block['given_width']>0)
-            {
-              $last['WIDTH'] = 100 - $block['given_width'];
-            }
-            else
-            {
-              $last['WIDTH'] = $last['given_width'];
-            }
-            $block['CLASS'] = 'middle_block';
-            $last['CLASS'] = 'left_block';
-            $block['new_line'] = false;
-            $block['end_line'] = true;
-            $last['end_line'] = false;
-            $this->blocks[$this->pos][$key] = $last;
-            $this->blocks[$this->pos][] = $block;
-            return;
-          }
-        }
-      }
-    }
-
-    $block['new_line'] = true;
-    $block['end_line'] = true;
-    $block['CLASS'] = 'middle_block';
-    $this->blocks[$this->pos][] = $block;
-  }
-
-  static function prefilter_index_css($source, &$smarty)
-  {
-    $css = array(
-      '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}plugins/'.STUFFS_DIR.'/theme/stuffs_index.css">'
-    );
-
-    foreach ($smarty->get_template_vars('themes') as $theme)
-    {
-      if (file_exists(PHPWG_THEMES_PATH.$theme['id'].'/stuffs_index.css'))
-      {
-        array_push($css, '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/'.$theme['id'].'/stuffs_index.css">');
-      }
-    }
-
-    $source = str_replace("\n</head>", "\n".implode( "\n", $css )."\n</head>", $source);
-
-    return $source;
-  }
-
-  static function prefilter_picture_css($source, &$smarty)
-  {
-    $css = array(
-      '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}plugins/'.STUFFS_DIR.'/theme/stuffs_picture.css">'
-    );
-
-    foreach ($smarty->get_template_vars('themes') as $theme)
-    {
-      if (file_exists(PHPWG_THEMES_DIR.$theme['id'].'/stuffs_picture.css'))
-      {
-        array_push($css, '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/'.$theme['id'].'/stuffs_picture.css">');
-      }
-    }
-
-    if (!empty($css))
-    {
-      $source = str_replace("\n</head>", "\n".implode( "\n", $css )."\n</head>", $source);
-    }
-
-    return $source;
-  }
-}
-
-?>
Index: tensions/PWG_Stuffs/functions.inc.php
===================================================================
--- /extensions/PWG_Stuffs/functions.inc.php	(revision 9735)
+++ 	(revision )
@@ -1,153 +1,0 @@
-<?php
-
-add_event_handler('render_stuffs_name', 'get_user_language_desc');
-
-if (!function_exists('get_user_language_desc'))
-{
-  function get_user_language_desc($desc)
-  {
-    global $user;
-    
-    $user_lang = substr($user['language'], 0, 2);
-
-    if (!substr_count(strtolower($desc), '[lang=' . $user_lang . ']'))
-    {
-      $user_lang = 'default';
-    }
-    
-    if (substr_count(strtolower($desc), '[lang=' . $user_lang . ']'))
-    {
-      // la balise avec la langue de l'utilisateur a été trouvée
-      $patterns[] = '#(^|\[/lang\])(.*?)(\[lang=(' . $user_lang . '|all)\]|$)#is';
-      $replacements[] = '';
-      $patterns[] = '#\[lang=(' . $user_lang . '|all)\](.*?)\[/lang\]#is';
-      $replacements[] = '\\1';
-    }
-    else
-    {
-      // la balise avec la langue de l'utilisateur n'a pas été trouvée
-      // On prend tout ce qui est hors balise
-      $patterns[] = '#\[lang=all\](.*?)\[/lang\]#is';
-      $replacements[] = '\\1';
-      $patterns[] = '#\[lang=.*\].*\[/lang\]#is';
-      $replacements[] = '';
-    }
-    return preg_replace($patterns, $replacements, $desc);
-  }
-}
-
-function get_default_stuffs_modules($modules)
-{
-  $dir = opendir(STUFFS_PATH . 'modules/');
-  while ($file = readdir($dir))
-  {
-    if ($file != '.' and $file != '..' and $file != '.svn' and $file != 'piclenswall')
-    {
-      $path = STUFFS_PATH . 'modules/' . $file;
-      if (is_dir($path) and !is_link($path))
-      {
-        array_push($modules, array(
-          'path' => $path,
-          'name' => l10n('module_name_' . strtolower($file)),
-          'description' => l10n('module_desc_' . strtolower($file)),
-          )
-        );
-      }
-    }
-  }
-  closedir($dir);
-  return $modules;
-}
-
-function pwgs_picture_special_sections()
-{
-  global $page, $conf;
-
-  if (preg_match('#&(pwgs_..)=#', $_SERVER['REQUEST_URI'], $matches))
-  {
-    if (isset($_GET['action']))
-    {
-      if (isset($page['category']))
-      {
-        $page['section'] = 'category/'.$page['category']['id'];
-        unset($page['category']);
-      }
-      $page['section'] .= $matches[0] . $_GET[$matches[1]];
-    }
-    else
-    {
-      unset($page['flat']);
-      $page['PWG_Stuffs_section'] = $matches[1];
-      $page['items'] = explode(',', $_GET[$matches[1]]);
-      $page['rank_of'] = array_flip($page['items']);
-      switch ($matches[1])
-      {
-        case 'pwgs_mv': $title = l10n('Most visited'); break;
-        case 'pwgs_br': $title = l10n('Best rated'); break;
-        case 'pwgs_re': $title = l10n('Recent pictures'); break;
-        case 'pwgs_ra': $title = l10n('Random pictures'); break;
-      }
-      $page['title'] .= $conf['level_separator'] . $title;
-      add_event_handler('loc_end_page_header', 'add_pwgs_url_params');
-    }
-  }
-}
-
-function add_pwgs_url_params()
-{
-  global $page, $template;
-
-  $param = $page['PWG_Stuffs_section'];
-
-  $urls = array(
-    'first.U_IMG',
-    'previous.U_IMG',
-    'next.U_IMG',
-    'last.U_IMG',
-    'slideshow.U_START_PLAY',
-    'slideshow.U_STOP_PLAY',
-    'slideshow.U_START_REPEAT',
-    'slideshow.U_STOP_REPEAT',
-    'slideshow.U_DEC_PERIOD',
-    'slideshow.U_INC_PERIOD',
-    'U_SLIDESHOW_START',
-    'U_SLIDESHOW_STOP',
-    'U_METADATA',
-    'favorite.U_FAVORITE',
-    'U_SET_AS_REPRESENTATIVE',
-    'U_CADDIE',
-    'rating.F_ACTION',
-    'comment_add.F_ACTION',
-    'page_refresh.U_REFRESH',
-  );
-
-  foreach ($urls as $url)
-  {
-    $k = explode('.', $url);
-    if (isset($k[1]) and isset($template->smarty->_tpl_vars[$k[0]][$k[1]]))
-    {
-      $template->smarty->_tpl_vars[$k[0]][$k[1]] = add_url_params($template->smarty->_tpl_vars[$k[0]][$k[1]], array($param => $_GET[$param]));
-    }
-    elseif (!isset($k[1]) and isset($template->smarty->_tpl_vars[$k[0]]))
-    {
-      $template->smarty->_tpl_vars[$k[0]] = add_url_params($template->smarty->_tpl_vars[$k[0]], array($param => $_GET[$param]));
-    }
-  }
-}
-
-function hide_main_block()
-{
-  global $page, $template;
-
-  if ($page['stuffs_section'] == 'on_home')
-  {
-    $template->set_prefilter('index', 'hide_main_block_prefilter');
-  }
-}
-
-function hide_main_block_prefilter($content, $smarty)
-{
-  return preg_replace('#<div id="content" class="content">.*</div> <!-- content -->#s', '', $content);
-}
-
-?>
Index: tensions/PWG_Stuffs/index.php
===================================================================
--- /extensions/PWG_Stuffs/index.php	(revision 9735)
+++ 	(revision )
@@ -1,33 +1,0 @@
-<?php
-// +-----------------------------------------------------------------------+
-// | PhpWebGallery - a PHP based picture gallery                           |
-// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
-// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
-// +-----------------------------------------------------------------------+
-// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
-// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
-// | last modifier : $Author: rub $
-// | revision      : $Revision: 1912 $
-// +-----------------------------------------------------------------------+
-// | This program is free software; you can redistribute it and/or modify  |
-// | it under the terms of the GNU General Public License as published by  |
-// | the Free Software Foundation                                          |
-// |                                                                       |
-// | This program is distributed in the hope that it will be useful, but   |
-// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
-// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
-// | General Public License for more details.                              |
-// |                                                                       |
-// | You should have received a copy of the GNU General Public License     |
-// | along with this program; if not, write to the Free Software           |
-// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
-// | USA.                                                                  |
-// +-----------------------------------------------------------------------+
-
-// Recursive call
-$url = '../';
-header( 'Request-URI: '.$url );
-header( 'Content-Location: '.$url );
-header( 'Location: '.$url );
-exit();
-?>
Index: tensions/PWG_Stuffs/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/main.inc.php	(revision 9735)
+++ 	(revision )
@@ -1,92 +1,0 @@
-<?php
-/*
-Plugin Name: PWG Stuffs
-Version: auto
-Description: Insert modules on your gallery
-Plugin URI: http://piwigo.org/ext/extension_view.php?eid=190
-Author: P@t
-Author URI: http://www.gauchon.com
-*/
-
-if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
-
-global $prefixeTable, $conf;
-
-$conf['Stuffs'] = @unserialize($conf['PWG_Stuffs']);
-
-define('STUFFS_DIR' , basename(dirname(__FILE__)));
-define('STUFFS_PATH' , PHPWG_PLUGINS_PATH . STUFFS_DIR . '/');
-define('STUFFS_TABLE' , $prefixeTable . 'stuffs');
-
-// Need upgrade?
-if ($conf['Stuffs'] === false)
-  include('admin/upgrade.inc.php');
-
-function stuffs_admin_menu($menu)
-{
-  global $conf;
-
-  array_push($menu, array(
-    'NAME' => 'PWG Stuffs',
-    'URL' => get_admin_plugin_menu_link(STUFFS_PATH . 'admin/admin.php')
-    )
-  );
-  return $menu;
-}
-
-function load_stuffs()
-{
-  global $template;
-
-  include(STUFFS_PATH . 'class.inc.php');
-  include(STUFFS_PATH . 'functions.inc.php');
-
-  $template->set_template_dir(STUFFS_PATH.'theme/template/');
-  $template->set_filename('stuffs', 'stuffs_blocks.tpl');
-
-  $stuffs = new stuffs();
-
-  if (!empty($stuffs->blocks['begin']))
-  {
-    $template->assign('blocks', $stuffs->blocks['begin']);
-    $template->concat($stuffs->prefixe.'BEFORE',  $template->parse('stuffs', true));
-  }
-  if (!empty($stuffs->blocks['end']))
-  {
-    $template->assign('blocks', $stuffs->blocks['end']);
-    $template->concat($stuffs->prefixe.'AFTER',  $template->parse('stuffs', true));
-  }
-}
-
-function stuffs_section_init()
-{
-  global $tokens, $page;
-
-  switch (script_basename())
-  {
-    case 'picture':
-      $page['stuffs_section'] = 'on_picture';
-      break;
-
-    case 'index':
-      if (count($tokens) == 1 and empty($tokens[0]))
-      {
-        $page['stuffs_section'] = 'on_home';
-        break;
-      }
-      elseif (isset($page['section']) and $page['section'] == 'categories')
-      {
-        $page['stuffs_section'] = isset($page['category']) ? 'on_cats' : 'on_root';
-        break;
-      }
-
-      default: return;
-  }
-
-  add_event_handler('loc_begin_page_header', 'load_stuffs');
-}
-
-add_event_handler('get_admin_plugin_menu_links', 'stuffs_admin_menu');
-add_event_handler('loc_end_section_init', 'stuffs_section_init', 60);
-
-?>
Index: tensions/PWG_Stuffs/maintain.inc.php
===================================================================
--- /extensions/PWG_Stuffs/maintain.inc.php	(revision 9735)
+++ 	(revision )
@@ -1,67 +1,0 @@
-<?php
-
-if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
-
-function plugin_install()
-{
-  global $prefixeTable, $conf;
-
-  $query = 'SHOW TABLES LIKE "' . $prefixeTable . 'stuffs"';
-  $result = pwg_query($query);
-  if (!mysql_fetch_row($result))
-  {
-    $q = 'CREATE TABLE `' . $prefixeTable . 'stuffs` (
-`id` smallint(5) NOT NULL,
-`pos` smallint(5) NOT NULL,
-`name` text NOT NULL,
-`descr` varchar(255) default NULL,
-`path` varchar(255) default NULL,
-`datas` longtext default NULL,
-`users` varchar(255) default NULL,
-`groups` varchar(255) default NULL,
-`level` TINYINT( 3 ) NOT NULL default "0",
-`show_title` enum(\'true\',\'false\') NOT NULL,
-`on_home` enum(\'true\',\'false\') NOT NULL,
-`on_root` enum(\'true\',\'false\') NOT NULL,
-`on_cats` enum(\'true\',\'false\') NOT NULL,
-`on_picture` enum(\'true\',\'false\') NOT NULL,
-`id_line` varchar(1) default NULL,
-`width` smallint(9) default NULL,
-PRIMARY KEY  (`id`),
-KEY `on_home` (`on_home`),
-KEY `on_cats` (`on_cats`),
-KEY `on_picture` (`on_picture`)
-) DEFAULT CHARSET=utf8;';
-    pwg_query($q);
-  
-    $q = "INSERT INTO `" . $prefixeTable . "stuffs` (`id`, `pos`, `name`, `datas`, `users`, `show_title`, `on_home`, `on_cats`, `on_picture`) 
-VALUES (0, 1, 'MainBlock', '".addslashes(serialize(true))."', 'guest,generic,normal,admin,webmaster', 'true', 'true', 'true', 'true');";
-    pwg_query($q);
-  }
-
-  if (!isset($conf['PWG_Stuffs']))
-  {
-    $config = array(
-      'level_perm' => false,
-      'group_perm' => false,
-      'user_perm' => false,
-    );
-
-    $query = 'INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment)
-VALUES ("PWG_Stuffs" , "'.pwg_db_real_escape_string(serialize($config)).'" , "PWG Stuffs plugin configuration");';
-    pwg_query($query);
-  }
-}
-
-function plugin_uninstall()
-{
-  global $prefixeTable;
-
-  $q = 'DROP TABLE ' . $prefixeTable . 'stuffs;';
-  pwg_query($q);
-
-	$q = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE param="PWG_Stuffs";';
-  pwg_query($q);
-}
-
-?>
Index: /extensions/PWG_Stuffs/trunk/admin/add_module.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/add_module.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/add_module.inc.php	(revision 9736)
@@ -0,0 +1,184 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+if ($page['tab'] == 'add_module')
+{
+  if (!isset($_GET['path']) or !isset($modules[$_GET['path']]))
+  {
+    die('Wrong module path.');
+  }
+  else
+  {
+    $module_path = $_GET['path'];
+  }
+}
+
+// Save module
+if (isset($_POST['submit']) and !is_adviser())
+{
+  @include($module_path.'config.inc.php');
+  if (empty($page['errors']))
+  {
+    if (empty($_POST['module_name']))
+    {
+      array_push($page['errors'], l10n('stuffs_no_name'));
+    }
+    else
+    {
+      $module_name = $_POST['module_name'];
+      $desc = !empty($_POST['module_desc']) ? '"' . $_POST['module_desc'] . '"' : 'NULL';
+      $groups = !empty($_POST['groups']) ? '"' . implode(',', $_POST['groups']) . '"' : 'NULL';
+      $users = 'NULL';
+      if ($conf['Stuffs']['user_perm'])
+      {
+        $users = !empty($_POST['users']) ? '"' . implode(',', $_POST['users']) . '"' : '""';
+      }
+      $level = !empty($_POST['level']) ? $_POST['level'] : 0;
+      $show_title = isset($_POST['show_title']) ? '"true"' : '"false"';
+      $on_home = isset($_POST['on_home'])  ? '"true"' : '"false"';
+      $on_root = isset($_POST['on_root'])  ? '"true"' : '"false"';
+      $on_cats = isset($_POST['on_cats'])  ? '"true"' : '"false"';
+      $on_picture = isset($_POST['on_picture'])  ? '"true"' : '"false"';
+
+      $sav_datas = (!empty($datas) ? '"' . addslashes(serialize($datas)) . '"' : 'NULL');
+
+      if (isset($_GET['edit']))
+      {      
+        pwg_query('
+UPDATE ' . STUFFS_TABLE . '
+SET name ="' . $module_name . '",
+    descr=' . $desc . ',
+    datas=' . $sav_datas . ',
+    users=' . $users . ',
+    groups=' . $groups . ',
+    level=' . $level . ',
+    show_title=' . $show_title .',
+    on_home=' . $on_home .',
+    on_root=' . $on_root .',
+    on_cats=' . $on_cats . ',
+    on_picture='. $on_picture . '
+WHERE id = ' . $_GET['edit'] . ';');
+        if (isset($_GET['redirect']))
+        {
+          redirect(urldecode($_GET['redirect']));
+        }
+      }
+      else
+      {
+        $query = 'SELECT IF(MAX(id)+1 IS NULL, 1, MAX(id)+1) AS next_element_id  FROM ' . STUFFS_TABLE . ' ;';
+        list($next_element_id) = mysql_fetch_array(pwg_query($query));
+
+        $query = 'SELECT MAX(pos)+1 AS next_pos  FROM ' . STUFFS_TABLE . ' ;';
+        list($pos) = mysql_fetch_array(pwg_query($query));
+
+        $query = '
+INSERT INTO ' . STUFFS_TABLE . ' ( id, pos, name, descr, path, datas, users, groups, level, show_title, on_home, on_root, on_cats, on_picture, id_line, width )
+VALUES (' . $next_element_id . ' ,
+  ' . $pos . ',
+  "' . $module_name . '",
+  ' . $desc . ',
+  "' . $module_path . '",
+  ' . $sav_datas . ',
+  ' . $users . ',
+  ' . $groups . ',
+  ' . $level . ',
+  ' . $show_title . ',
+  ' . $on_home . ',
+  ' . $on_root . ',
+  ' . $on_cats . ',
+  ' . $on_picture . ',
+  NULL,
+  NULL);';
+        pwg_query($query);
+      }
+      redirect(PHPWG_ROOT_PATH.'admin.php?page=plugin&section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php');
+    }
+  }
+}
+
+// Default module data
+if ($page['tab'] == 'add_module')
+{
+  $module['users'] = array('guest', 'generic', 'normal', 'admin', 'webmaster');
+  $module['groups'] = array();
+
+  $template->assign(array(
+    'STUFFS_TITLE' => l10n('stuffs_add_mod'),
+    'MODULE_NAME' => $modules[$module_path]['name'],
+    'show_title_CHECKED' => true,
+    )
+  );
+
+  $template->assign('selected_options', array(
+    'on_home' => true,
+    'on_root' => true,
+    'on_cats' => false,
+    'on_picture' => false,
+    )
+  );
+}
+
+// Users perm
+if ($conf['Stuffs']['user_perm'])
+{
+  $users_id = array('guest', 'generic', 'normal', 'admin', 'webmaster');
+  $users = array();
+  foreach ($users_id as $id)
+  {
+    $users[$id] = l10n('user_status_'.$id);
+  }
+  $template->assign(array(
+    'users' => $users,
+    'selected_users' => isset($module['users']) ? $module['users'] : $users_id,
+    )
+  );
+}
+
+// Groups perm
+if ($conf['Stuffs']['group_perm'])
+{
+	$query = 'SELECT id, name FROM '.GROUPS_TABLE.' ORDER BY name ASC;';
+  $result = pwg_query($query);
+  $groups = array();
+  while ($row = pwg_db_fetch_assoc($result))
+  {
+    $groups[$row['id']] = $row['name'];
+  }
+  $template->assign(array(
+    'groups' => $groups,
+    'selected_groups' => isset($module['groups']) ? $module['groups'] : array(),
+    )
+  );
+}
+
+// Level perm
+if ($conf['Stuffs']['level_perm'])
+{
+  foreach ($conf['available_permission_levels'] as $level)
+  {
+    $level_options[$level] = l10n(sprintf('Level %d', $level));
+  }
+  $template->assign(array(
+    'level_perm' => $level_options,
+    'level_selected' => isset($module['level']) ? $module['level'] : 0,
+    )
+  );
+}
+
+// Display options
+$template->assign('display_options', array(
+  'on_home' => true,
+  'on_root' => true,
+  'on_cats' => true,
+  'on_picture' => true,
+  )
+);
+
+// Module configuration
+@include_once($module_path.'config.inc.php');
+
+$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/template/add_module.tpl'));
+$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/admin/admin.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/admin.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/admin.php	(revision 9736)
@@ -0,0 +1,50 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $template, $conf, $user;
+
+load_language('plugin.lang', STUFFS_PATH);
+include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
+include_once(STUFFS_PATH . 'functions.inc.php');
+$my_base_url = get_admin_plugin_menu_link(__FILE__);
+
+// +-----------------------------------------------------------------------+
+// |                            Tabsheet
+// +-----------------------------------------------------------------------+
+$page['tab'] = isset($_GET['tab']) ? $_GET['tab'] : 'manage';
+
+$tabsheet = new tabsheet();
+$tabsheet->add('manage', l10n('stuffs_mods_management'), $my_base_url.'&amp;tab=manage');
+if ($page['tab'] == 'add_module')
+{
+  $tabsheet->add('add_module', l10n('stuffs_add_mod'), $my_base_url.'&amp;tab=add_module&amp;path='.$_GET['path']);
+}
+else
+{
+  $tabsheet->add('new', l10n('stuffs_add_mod'), $my_base_url.'&amp;tab=new');
+}
+if ($page['tab'] == 'edit_module')
+{
+  $tabsheet->add('edit_module', l10n('stuffs_edit_mod'), $my_base_url.'&amp;tab=edit_module&amp;edit='.$_GET['edit']);
+}
+$tabsheet->add('config', l10n('Configuration'), $my_base_url.'&amp;tab=config');
+$tabsheet->select($page['tab']);
+$tabsheet->assign();
+
+//Récupération des modules disponibles
+add_event_handler('get_stuffs_modules', 'get_default_stuffs_modules');
+$disp_modules = trigger_event('get_stuffs_modules', array());
+uasort($disp_modules, 'name_compare');
+
+$modules = array();
+foreach($disp_modules as $module)
+{
+  $module['path'] = PHPWG_ROOT_PATH.trim($module['path'], './').'/';
+  $modules[$module['path']] = $module;
+}
+
+// Include file
+include(STUFFS_PATH.'admin/'.$page['tab'].'.inc.php');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/admin/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/config.inc.php	(revision 9736)
@@ -0,0 +1,48 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+// Save config
+if (isset($_POST['submit']))
+{
+  if (!$conf['Stuffs']['user_perm'] and isset($_POST['user_perm']))
+  {
+    pwg_query('UPDATE '.STUFFS_TABLE.' SET users = "guest,generic,normal,admin,webmaster";');
+  }
+  if ($conf['Stuffs']['user_perm'] and !isset($_POST['user_perm']))
+  {
+    pwg_query('UPDATE '.STUFFS_TABLE.' SET users = NULL;');
+  }
+  if ($conf['Stuffs']['level_perm'] and !isset($_POST['level_perm']))
+  {
+    $default_user = get_default_user_info(true);
+    pwg_query('UPDATE '.STUFFS_TABLE.' SET level = '.$default_user['level'].';');
+  }
+  if ($conf['Stuffs']['group_perm'] and !isset($_POST['group_perm']))
+  {
+    pwg_query('UPDATE '.STUFFS_TABLE.' SET groups = NULL;');
+  }
+  if ($conf['Stuffs']['level_perm'] and !isset($_POST['level_perm']))
+  {
+    pwg_query('UPDATE '.STUFFS_TABLE.' SET level = 0;');
+  }
+
+  $params = array('group_perm', 'user_perm', 'level_perm');
+
+  foreach ($params as $param)
+  {
+    $conf['Stuffs'][$param] = isset($_POST[$param]);
+  }
+
+  conf_update_param('PWG_Stuffs', pwg_db_real_escape_string(serialize($conf['Stuffs'])));
+
+  array_push($page['infos'], l10n('Information data registered in database'));
+}
+
+// Parametrage du template
+$template->assign('stuffs_conf', $conf['Stuffs']);
+
+$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/template/config.tpl'));
+$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/admin/edit_module.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/edit_module.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/edit_module.inc.php	(revision 9736)
@@ -0,0 +1,34 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+// Retrieve module data
+$q = ('SELECT * FROM ' . STUFFS_TABLE . ' WHERE id = ' . $_GET['edit'] . ';');
+$module = mysql_fetch_array(pwg_query($q));
+
+$module['users'] = explode(',', $module['users']);
+$module['groups'] = explode(',', $module['groups']);
+
+$datas = (!empty($module['datas']) ? unserialize($module['datas']) : false);
+
+$template->assign(array(
+  'STUFFS_TITLE' => l10n('stuffs_edit_mod') . ' <i>' . trigger_event('render_stuffs_name', $module['name']) . '</i>',
+  'MODULE_NAME' => $module['name'],
+  'DESC_VALUE' => (isset($module['descr']) ? $module['descr'] : ''),
+  'show_title_CHECKED' => ($module['show_title'] == 'true'),
+  )
+);
+
+$template->assign('selected_options', array(
+  'on_home' => ($module['on_home'] == 'true'),
+  'on_root' => ($module['on_root'] == 'true'),
+  'on_cats' => ($module['on_cats'] == 'true'),
+  'on_picture' => ($module['on_picture'] == 'true'),
+  )
+);
+
+$module_path = $module['path'];
+
+include('add_module.inc.php');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/admin/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/admin/manage.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/manage.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/manage.inc.php	(revision 9736)
@@ -0,0 +1,103 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $pwg_loaded_plugins;
+
+// Delete module
+if (isset($_GET['del']) and !is_adviser())
+{
+  pwg_query('DELETE FROM ' . STUFFS_TABLE . ' WHERE id = ' . $_GET['del'] . ' LIMIT 1;');
+  redirect(PHPWG_ROOT_PATH.'admin.php?page=plugin&section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php');
+}
+
+// Save order
+if (isset($_POST['submitOrder']) and !is_adviser())
+{
+  asort($_POST['position'], SORT_NUMERIC);
+  $pos = 1;
+  foreach($_POST['position'] as $id => $old_pos)
+  {
+    $id_line = !empty($_POST['id_line'][$id]) ? '"'.$_POST['id_line'][$id].'"' : 'NULL';
+    $width = (!empty($_POST['width'][$id]) and is_numeric($_POST['width'][$id])) ? '"'.$_POST['width'][$id].'"' : 'NULL';
+
+    pwg_query('
+UPDATE ' . STUFFS_TABLE . '
+SET pos=' . $pos++ . ' , id_line='.$id_line.', width='.$width.'
+WHERE id=' . $id . ' LIMIT 1');
+  }
+
+    pwg_query('
+UPDATE ' . STUFFS_TABLE . '
+SET datas = "'.addslashes(serialize(!isset($_POST['hidemb']))).'"
+WHERE id=0;');
+
+  array_push($page['infos'], l10n('stuffs_order_saved'));
+}
+
+// Display
+$q = 'SELECT id, name, descr, path, id_line, width, datas
+FROM ' . STUFFS_TABLE . '
+ORDER BY pos ASC;';
+$result = pwg_query($q);
+$num = 0;
+$pos = 1;
+$id_line_options = array(
+    '' => '-',
+    'A' => 'A',
+    'B' => 'B',
+    'C' => 'C',
+    'D' => 'D',
+    'E' => 'E',
+    'F' => 'F',
+    'G' => 'G',
+    'H' => 'H',
+    'I' => 'I',
+    'J' => 'J');
+
+while ($module = mysql_fetch_assoc($result))
+{
+  $module['name'] = !empty($module['path']) ? $module['name'] : l10n('stuffs_main_block');
+
+  $missing_message = '';
+  if ($module['path'] == PHPWG_PLUGINS_PATH.'piclens/stuffs_module/' and !file_exists(PICLENS_PATH.'stuffs_module/main.inc.php'))
+  {
+    $missing_message = l10n('stuffs_piclens_need_upgrade');
+  }
+  if (!empty($module['path']))
+  {
+    preg_match('#^'.preg_quote(PHPWG_PLUGINS_PATH).'([^/]*?)/#', $module['path'], $match);
+    if (!isset($pwg_loaded_plugins[$match[1]]))
+    {
+      $missing_message = l10n('stuffs_parent_plugin_is_missing');
+    }
+  }
+
+  $template->append('modules', array(
+    'ID' => $module['id'],
+    'NAME' => trigger_event('render_stuffs_name', $module['name']),
+    'DESC' => $module['descr'],
+    'PATH' => $module['path'],
+    'TYPE_NAME' => (isset($modules[$module['path']]['name']) ? $modules[$module['path']]['name'] : ''),
+    'POS' => 10 * $pos++,
+    'ID_LINE_OPTIONS' => $id_line_options,
+    'ID_LINE_SELECTED' => $module['id_line'],
+    'WIDTH' => $module['width'],
+    'ID' => $module['id'],
+    'U_EDIT' => PHPWG_ROOT_PATH . 'admin.php?page=plugin&amp;section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php&amp;tab=edit_module&amp;edit='.$module['id'],
+    'U_DELETE' => !is_adviser() ? PHPWG_ROOT_PATH . 'admin.php?page=plugin&amp;section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php&amp;del=' . $module['id'] : '',
+    'MISSING' => $missing_message,
+    )
+  );
+
+  if (empty($module['path']))
+  {
+    $show = unserialize($module['datas']);
+    $template->assign('HIDEMB', !$show); 
+  }
+}
+
+$template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/manage.tpl');
+$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/admin/new.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/new.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/new.inc.php	(revision 9736)
@@ -0,0 +1,31 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+//Ajout d'un module
+if (isset($_POST['addModule']) and !is_adviser())
+{
+  if (!isset($_POST['module']))
+  {
+    array_push($page['errors'], l10n('stuffs_error_no_mod_selected'));
+  }
+  else
+  {
+    redirect(PHPWG_ROOT_PATH.'admin.php?page=plugin&section=' . STUFFS_DIR . '%2Fadmin%2Fadmin.php&tab=add_module&path=' . urlencode($_POST['module']));
+  }
+}
+
+// Affichages des modules à ajouter
+foreach($modules as $module)
+{
+  $template->append('add_module', array(
+    'MODULE_PATH' => $module['path'],
+    'NAME' => $module['name'],
+    'DESC' => $module['description'],
+    )
+  );
+}
+
+$template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/new.tpl');
+$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
+?>
Index: /extensions/PWG_Stuffs/trunk/admin/template/add_module.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/template/add_module.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/template/add_module.tpl	(revision 9736)
@@ -0,0 +1,99 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{include file='include/autosize.inc.tpl'}
+{html_head}{literal}
+<style type="text/css">
+.groups { margin-top:15px; }
+.groups input { margin-right:5px; }
+.groups label { margin-right:10px; display: inline-block; overflow: hidden; white-space: nowrap; line-height:1.3em;}
+.groups div { float:right; width:74%; line-height:1.3em;}
+</style>
+{/literal}{/html_head}
+
+<div class="titrePage">
+  <h2>PWG Stuffs - {$STUFFS_TITLE}</h2>
+</div>
+
+<form method="post" action="" class="properties" ENCTYPE="multipart/form-data">
+<fieldset id="mainConf" >
+  <legend>{'stuffs_module_config'|@translate}</legend>
+	<ul>
+    <li>
+      <span class="property">
+        <label for="module_name">{'stuffs_module_title'|@translate}</label>
+      </span>
+      <textarea rows="2" name="module_name" id="module_name" class="description" style="height:2em; width:500px;">{$MODULE_NAME}</textarea>
+    </li>
+    <li>
+      <span class="property">
+        <label for="module_desc">{'stuffs_desc'|@translate}<br>&nbsp;</label>
+      </span>
+      <input type="text" maxlength="255" value="{$DESC_VALUE}" name="module_desc" id="module_desc" style="width:500px;"/><br><i>{'stuffs_only_for_admin'|@translate}</i>
+    </li>
+    <li>
+      <span class="property">
+        <label for="show_title">{'stuffs_show_title'|@translate}</label>
+      </span>
+      <input type="checkbox" name="show_title" id="show_title" value="1" {if $show_title_CHECKED}checked="checked"{/if}>
+    </li>
+
+    {if isset($level_perm)}
+    <li style="margin-top:15px;">
+      <span class="property">
+        <label for="level">{'Privacy level'|@translate}</label>
+      </span>
+      <select name="level" id="level" size="1">{html_options options=$level_perm selected=$level_selected id=privacy}</select>
+    </li>
+    {/if}
+
+    
+    {if isset($users)}
+    <li class="groups" style="margin-top:15px;">
+      <span class="property">
+        <label for="users">{'stuffs_authorized_users'|@translate}</label>
+      </span>
+      {html_checkboxes options=$users selected=$selected_users name=users}
+    </li>
+    {/if}
+
+    {if isset($groups)}
+    <li class="groups" style="margin-top:15px;">
+      <span class="property">
+        <label for="groups">{'stuffs_authorized_group'|@translate}</label>
+      </span>
+      <div>{html_checkboxes options=$groups selected=$selected_groups name=groups}</div>
+    </li>
+    <li class="groups">
+      <div>
+        <a href="#" onClick="jQuery('input[name^=\'groups\']').attr('checked', 'checked');return false;">{'stuffs_select_all'|@translate}</a> /
+        <a href="#" onClick="jQuery('input[name^=\'groups\']').attr('checked', '');return false;">{'stuffs_unselect_all'|@translate}</a> &nbsp; 
+        <i>{'stuffs_guest'|@translate}</i>
+      </div>
+    </li>
+    {/if}
+  </ul>
+</fieldset>
+
+<fieldset id="indexDisplayConf">
+	<legend>{'stuffs_show_module_on'|@translate}</legend>
+  <ul>
+    {foreach from=$display_options key=option item=value}
+    {if $value}
+    <li>
+      <label>
+        <span class="property">{'stuffs_show_'|@cat:$option|@translate}</span>
+        <input type="checkbox" name="{$option}" value="1" {if $selected_options[$option]}checked="checked"{/if}>
+      </label>
+    </li>
+    {/if}
+    {/foreach}
+  </ul>
+</fieldset>
+
+{if not empty($MODULE_OPTIONS)}
+<fieldset>
+	<legend>{'stuffs_module_options'|@translate}</legend>
+	{$MODULE_OPTIONS}
+</fieldset>
+{/if}
+<p><input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}/></p>
+</form>
Index: /extensions/PWG_Stuffs/trunk/admin/template/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/template/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/template/config.tpl	(revision 9736)
@@ -0,0 +1,33 @@
+<div class="titrePage">
+	<h2>PWG Stuffs - {'Configuration'|@translate}</h2>
+</div>
+
+<form name="stuffsform" method="post" action="" class="properties"  ENCTYPE="multipart/form-data">
+<fieldset id="indexDisplayConf">
+  <legend>{'stuffs_perm'|@translate}</legend>
+  <ul>
+      <li>
+      <label>
+        <span class="property">{'stuffs_level_perm'|@translate}</span>
+        <input type="checkbox" name="level_perm" id="level_perm" value="on" {if $stuffs_conf.level_perm}checked="checked"{/if}/>
+      </label>
+    </li>
+
+    <li>
+      <label>
+        <span class="property">{'stuffs_user_perm'|@translate}</span>
+        <input type="checkbox" name="user_perm" id="user_perm" value="on" {if $stuffs_conf.user_perm}checked="checked"{/if}/>
+      </label>
+    </li>
+
+    <li>
+      <label>
+        <span class="property">{'stuffs_group_perm'|@translate}</span>
+        <input type="checkbox" name="group_perm" id="group_perm" value="on" {if $stuffs_conf.group_perm}checked="checked"{/if}/>
+      </label>
+    </li>
+  </ul>
+</fieldset>
+
+<p><input class="submit" type="submit" value="{'Submit'|@translate}" name="submit"/></p>
+</form>
Index: /extensions/PWG_Stuffs/trunk/admin/template/manage.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/template/manage.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/template/manage.tpl	(revision 9736)
@@ -0,0 +1,102 @@
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js" }
+{known_script id="jquery.ui.sortable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.sortable.packed.js" }
+
+{html_head}
+{literal}
+<style type="text/css">
+#categoryOrdering li {
+  height: 60px;
+}
+#categoryOrdering p {
+  margin-bottom: 0 !important;
+  margin-top: 0.5em !important;
+}
+.stuffs_line {
+  margin: 0 10px;
+}
+.MainBlock {
+  color: #ff3363;
+}
+</style>
+{/literal}
+{/html_head}
+
+<script type="text/javascript">
+  jQuery().ready(function(){ldelim}
+    jQuery(".catPos").hide();
+    jQuery(".drag_button").show();
+    jQuery(".categoryLi").css("cursor","move");
+    jQuery(".categoryUl").sortable({ldelim}
+      axis: "y",
+      opacity: 0.8
+    });
+    jQuery("#categoryOrdering").submit(function(){ldelim}
+      ar = jQuery('.categoryUl').sortable('toArray');
+      for(i=0;i<ar.length;i++) {ldelim}
+        module = ar[i].split('module_');
+        document.getElementsByName('position[' + module[1] + ']')[0].value = i;
+      }
+    });
+  });
+</script>
+
+<div class="titrePage">
+  <h2>PWG Stuffs</h2>
+</div>
+
+<form id="categoryOrdering" method="post" action="">
+
+	<ul class="categoryUl">
+  {foreach from=$modules item=module}
+
+    <li class="categoryLi virtual_cat" id="module_{$module.ID}">
+      {if !empty($module.PATH)}
+      <ul class="categoryActions">
+        <li class="stuffs_line">
+          {'stuffs_id_ligne'|@translate}&nbsp;
+          <select name="id_line[{$module.ID}]">
+          {html_options options=$module.ID_LINE_OPTIONS selected=$module.ID_LINE_SELECTED}
+          </select>
+        </li>
+        <li class="stuffs_line">
+          {'stuffs_width'|@translate}&nbsp;
+          <input type="text" size="2" maxlength="2" value="{$module.WIDTH}" name="width[{$module.ID}]" > %
+        </li>
+        {if empty($module.MISSING)}
+        <li><a href="{$module.U_EDIT}" title="{'stuffs_edit'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_edit.png" class="button" alt="{'stuffs_edit'|@translate}"/></a></li>
+        {/if}
+        {if !empty($module.U_DELETE) }
+        <li><a href="{$module.U_DELETE}" title="{'stuffs_delete'|@translate}" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');"><img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'stuffs_delete'|@translate}" /></a></li>
+        {/if}
+      </ul>
+      {/if}
+
+      <p>
+      <img src="{$themeconf.admin_icon_dir}/cat_move.png" class="button drag_button" style="display:none;" alt="{'Drag to re-order'|@translate}" title="{'Drag to re-order'|@translate}"/>
+      <strong>{if empty($module.PATH)}<span class="MainBlock">{$module.NAME}</span>{else}<a href="{$module.U_EDIT}">{$module.NAME}</a>{/if}</strong>
+      {if !empty($module.TYPE_NAME)}&nbsp;-  &nbsp;{$module.TYPE_NAME}{/if}
+      </p>
+
+      {if !empty($module.MISSING)}
+        <p style="margin-left: 30px;">{$module.MISSING}</p> 
+      {elseif !empty($module.DESC)}
+        <p style="margin-left: 30px;"><i>{$module.DESC}</i></p>
+      {elseif empty($module.PATH)}
+        <p style="margin-left: 30px;"><input name="hidemb" type="checkbox" {if $HIDEMB}checked="checked"{/if}> &nbsp;{'Hide on home page'|@translate}</p>
+      {/if}
+
+      <p class="catPos">
+        <label>
+          {'Position'|@translate}
+          <input type="text" size="4" name="position[{$module.ID}]" maxlength="4" value="{$module.POS}" />
+        </label>
+      </p>
+    </li>
+    {/foreach}
+  </ul>
+
+  <p style="text-align: center;">
+  <br />
+    <input class="submit" name="submitOrder" type="submit" value="{'Save order'|@translate}" {$TAG_INPUT_ENABLED} />
+  </p>
+</form>
Index: /extensions/PWG_Stuffs/trunk/admin/template/new.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/template/new.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/template/new.tpl	(revision 9736)
@@ -0,0 +1,21 @@
+<div class="titrePage">
+  <h2>PWG Stuffs</h2>
+</div>
+
+<form method="post" action="" class="properties">
+
+<fieldset id="indexDisplayConf" style="padding-top:25px;">
+  <legend>{'stuffs_add_mod'|@translate}</legend>
+  <ul>
+    {foreach from=$add_module item=module}
+    <li>
+      <label>
+        <span class="property">{$module.NAME} <span style="font-weight:normal;">: {$module.DESC}</span></span>
+        <input type="radio" value="{$module.MODULE_PATH}" name="module"/>
+      </label>
+    </li>
+    {/foreach}
+  </ul>
+</fieldset>
+<p><input class="submit" name="addModule" type="submit" value="{'stuffs_add_mod'|@translate}"/></p>
+</form>
Index: /extensions/PWG_Stuffs/trunk/admin/upgrade.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/admin/upgrade.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/admin/upgrade.inc.php	(revision 9736)
@@ -0,0 +1,170 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $prefixeTable, $conf;
+
+$query = 'SHOW FULL COLUMNS FROM '.STUFFS_TABLE.';';
+$result = array_from_query($query, 'Field');
+if ($result[5] == 'params')
+{
+  $query = 'ALTER TABLE '.STUFFS_TABLE.'
+MODIFY COLUMN name TEXT CHARACTER SET utf8 NOT NULL,
+MODIFY COLUMN descr VARCHAR(255) CHARACTER SET utf8 default NULL,
+MODIFY COLUMN type VARCHAR(255) CHARACTER SET utf8 NOT NULL,
+MODIFY COLUMN params VARCHAR(255) CHARACTER SET utf8 default NULL,
+MODIFY COLUMN datas LONGTEXT CHARACTER SET utf8 default NULL,
+MODIFY COLUMN users VARCHAR(255) CHARACTER SET utf8 default NULL,
+MODIFY COLUMN groups VARCHAR(255) CHARACTER SET utf8 default NULL,
+DEFAULT CHARACTER SET utf8,
+ADD show_title ENUM(\'true\',\'false\') NOT NULL,
+ADD on_home ENUM(\'true\',\'false\') NOT NULL,
+ADD on_cats ENUM(\'true\',\'false\') NOT NULL,
+ADD on_picture ENUM(\'true\',\'false\') NOT NULL,
+ADD id_line VARCHAR(1) default NULL,
+ADD width SMALLINT(9) default NULL,
+ADD INDEX (on_home),
+ADD INDEX (on_cats),
+ADD INDEX (on_picture);';
+
+  pwg_query($query);
+  
+  $query = 'SELECT id, name, type, params, datas FROM '.STUFFS_TABLE.';';
+  $result = pwg_query($query);
+  
+  $modules = array();
+  while ($row = mysql_fetch_assoc($result))
+  {
+    if ($row['name'] != 'MainBlock')
+    {
+      $array = array();
+      foreach (explode('///', $row['name']) as $name)
+      {
+        $a = explode(':', $name);
+        array_push($array, '[lang='.substr($a[0],0,2).']'.$a[1].'[/lang]');
+      }
+      $new_name = implode("\r\n", $array);
+    }
+    else
+    {
+      $new_name = 'MainBlock';
+    }
+
+    if ($row['type'] == 'LastComs')
+    {
+      $datas = unserialize($row['datas']);
+      $row['datas'] = serialize(array($datas[0], $datas[1], $datas[6], $datas[2], $datas[3]));
+    }
+  
+    $params = explode(',', $row['params']);
+    $params[4] = !empty($params[4]) ? '"'.$params[4].'"' : 'NULL';
+    $params[5] = !empty($params[5]) ? $params[5] : 'NULL';
+
+    $query = 'UPDATE ' . $prefixeTable . 'stuffs
+SET
+  name = "'. $new_name . '",
+  datas = "' . addslashes($row['datas']) . '",
+  show_title = "'. ($params[0] ? 'true' : 'false') .'",
+  on_home = "'. ($params[1] ? 'true' : 'false') .'",
+  on_cats = "'. ($params[2] ? 'true' : 'false') .'",
+  on_picture = "'. ($params[3] ? 'true' : 'false') .'",
+  id_line = '. $params[4] .',
+  width = '. $params[5] .'
+WHERE id = '.$row['id'].';';
+
+    pwg_query($query);
+  }
+
+  $query = 'ALTER TABLE '.STUFFS_TABLE.' DROP params;';
+  pwg_query($query);
+
+  if (isset($conf['Stuffs']))
+  {
+    $q = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE param="Stuffs" LIMIT 1;';
+    pwg_query($q);
+  }
+}
+
+$query = 'SHOW FULL COLUMNS FROM '.STUFFS_TABLE.';';
+$result = array_from_query($query, 'Field');
+if ($result[4] != 'path')
+{
+  $path = $plugin['id'];
+  $conf['Stuffs'] = array();
+
+  $query = 'ALTER TABLE '.STUFFS_TABLE.'
+CHANGE `type` `path` VARCHAR( 255 ) NULL DEFAULT NULL,
+ADD `level` TINYINT( 3 ) NOT NULL default "0" AFTER `groups`,
+ADD `on_root` enum(\'true\',\'false\') NOT NULL AFTER `on_home`
+;';
+  pwg_query($query);
+
+  $query = 'UPDATE '.STUFFS_TABLE.'
+SET on_root = "false"
+WHERE on_cats <> "true"
+;';
+  pwg_query($query);
+
+  $query = 'SELECT * FROM '.STUFFS_TABLE.';';
+  $result = pwg_query($query);
+
+  while ($row = pwg_db_fetch_assoc($result))
+  {
+    if ($row['path'] == 'Personal')
+    {
+      $data = unserialize($row['datas']);
+      $row['datas'] = serialize($data[0]);
+    }
+    if ($row['path'] == 'piclenswall')
+    {
+      $row['path'] = PHPWG_PLUGINS_PATH.'piclens/stuffs_module/';
+    }
+    elseif ($row['path'] != 'MainBlock')
+    {
+      $row['path'] = PHPWG_PLUGINS_PATH.$path.'/modules/'.$row['path'].'/';
+    }
+    else
+    {
+      // Main Block
+      $row['path'] = null;
+      if (!empty($row['datas']))
+      {
+        $data = unserialize($row['datas']);
+        $row['datas'] = serialize(!$data['hide']);
+      }
+      else
+      {
+        $row['datas'] = serialize(true);
+      }
+    }
+
+    $query = 'UPDATE '.STUFFS_TABLE.'
+SET path = '.(is_null($row['path']) ? 'NULL' : '"'.$row['path'].'"').',
+    datas = "'.addslashes($row['datas']).'"
+WHERE id = '.$row['id'].'
+;';
+    pwg_query($query);
+  }
+
+  $conf['Stuffs']['level_perm'] = false;
+
+  $query = 'SELECT id
+FROM '.STUFFS_TABLE.'
+WHERE users <> "guest,generic,normal,admin,webmaster"
+;';
+  $ids = array_from_query($query, 'id');
+  $conf['Stuffs']['user_perm'] = !empty($ids);
+
+  $query = 'SELECT id
+FROM '.STUFFS_TABLE.'
+WHERE groups IS NOT NULL
+;';
+  $ids = array_from_query($query, 'id');
+  $conf['Stuffs']['group_perm'] = !empty($ids);
+
+  $query = 'INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment)
+VALUES ("PWG_Stuffs" , "'.pwg_db_real_escape_string(serialize($conf['Stuffs'])).'" , "PWG Stuffs plugin configuration");';
+  pwg_query($query);
+}
+
+?>
Index: /extensions/PWG_Stuffs/trunk/class.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/class.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/class.inc.php	(revision 9736)
@@ -0,0 +1,229 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+class stuffs
+{
+  var $user_groups = array();
+  var $modules = array();
+  var $blocks = array();
+  var $pos = 'begin';
+  var $prefixe = 'PLUGIN_INDEX_CONTENT_';
+
+  function stuffs()
+  {
+    global $page, $template;
+
+    if ($page['stuffs_section'] == 'on_picture')
+    {
+      $this->prefixe = 'PLUGIN_PICTURE_';
+      $template->set_prefilter('header', array('stuffs', 'prefilter_picture_css'));
+      pwgs_picture_special_sections();
+    }
+    else
+    {
+      $template->set_prefilter( 'header', array('stuffs', 'prefilter_index_css') );
+    }
+
+    $this->get_user_groups();
+    $this->get_modules();
+    $this->process_modules();
+  }
+
+  /* Retrieve user groups  */
+  function get_user_groups()
+  {
+    global $user;
+
+    $query = 'SELECT group_id FROM ' . USER_GROUP_TABLE . ' WHERE user_id = ' . $user['id'] . ';';
+    $result = pwg_query($query);
+    while ($row = mysql_fetch_assoc($result))
+    {
+      array_push($this->user_groups, $row['group_id']);
+    }
+  }
+
+  /* Retrieve modules from table */
+  function get_modules()
+  {
+    global $page, $user;
+
+    if (!isset($page['stuffs_section'])) return;
+
+    $query = '
+SELECT DISTINCT id, name, path, datas, groups, show_title, id_line, width
+FROM ' . STUFFS_TABLE . '
+LEFT JOIN ' . USER_GROUP_TABLE . '
+  ON user_id = '.$user['id'].'
+WHERE (users IS NULL OR users LIKE "%' . $user['status'] . '%")
+  AND (groups IS NULL OR groups REGEXP CONCAT("(^|,)",group_id,"(,|$)"))
+  AND level <= '.$user['level'].'
+  AND '.$page['stuffs_section'].' = "true"
+ORDER BY pos ASC
+;';
+
+    $result = pwg_query($query);
+
+    while ($row = mysql_fetch_assoc($result))
+    {
+      array_push($this->modules, $row);
+    }
+  }
+
+  /* Process modules */
+  function process_modules()
+  {
+    global $pwg_loaded_plugins;
+
+    foreach ($this->modules as $module)
+    {
+      if ($module['name'] == 'MainBlock')
+      {
+        $this->pos = 'end';
+        $show = unserialize($module['datas']);
+        if (!$show)
+        {
+          add_event_handler('loc_end_index', 'hide_main_block');
+        }
+        continue;
+      }
+
+      preg_match('#^'.preg_quote(PHPWG_PLUGINS_PATH).'([^/]*?)/#', $module['path'], $match);
+      if (!isset($pwg_loaded_plugins[$match[1]]))
+      {
+        continue;
+      }
+
+      $datas = (!empty($module['datas']) ? unserialize($module['datas']) : false);
+      $block = array();
+
+      @include($module['path'].'main.inc.php');
+
+      if (!empty($block['TEMPLATE']))
+      {
+        $block['ID'] = $module['id'];
+        if ($module['show_title'] == 'true')
+        {
+          $block['TITLE'] = trigger_event('render_stuffs_name', $module['name']);
+        }
+        if (is_admin())
+        {
+          $block['U_EDIT'] = PHPWG_ROOT_PATH.'admin.php?page=plugin&amp;section='.STUFFS_DIR.'%2Fadmin%2Fadmin.php&amp;tab=edit_module&amp;edit='.$module['id'].'&amp;redirect='.urlencode(urlencode($_SERVER['REQUEST_URI']));
+        }
+        $this->set_tpl_block($block, $module);
+      }
+    }
+  }
+  /* Set template blocks  */
+  function set_tpl_block($block, $module)
+  {
+    if (!empty($module['id_line']))
+    {
+      $block['id_line'] = $module['id_line'];
+      $block['given_width'] = !empty($module['width']) ? $module['width'] : '';
+
+      if (!empty($this->blocks[$this->pos]))
+      {
+        $last = end($this->blocks[$this->pos]);
+        $key = key($this->blocks[$this->pos]);
+        $penul = prev($this->blocks[$this->pos]);
+
+        if (isset($last['id_line']) and $last['id_line'] == $module['id_line'])
+        {
+          if (isset($penul['id_line']) and $penul['id_line'] == $module['id_line'])
+          {
+            $i = 3;
+            !$block['given_width'] or $i--;
+            !$last['given_width'] or $i--;
+            !$penul['given_width'] or $i--;
+
+            !$i or $default_width = intval((100 - $block['given_width'] - $last['given_width'] - $penul['given_width']) / $i);
+
+            $penul['WIDTH'] = $penul['given_width'] ? $penul['given_width'] : $default_width;
+            $block['WIDTH'] = $block['given_width'] ? $block['given_width'] : $default_width;
+
+            $block['CLASS'] = 'right_block';
+            $block['new_line'] = false;
+            $block['end_line'] = false;
+            $last['end_line'] = true;
+            $this->blocks[$this->pos][$key-1] = $penul;
+            $this->blocks[$this->pos][$key] = $block;
+            $this->blocks[$this->pos][] = $last;
+            return;
+          }
+          else
+          {
+            if (empty($block['given_width']) and empty($last['given_width']))
+            {
+              $last['WIDTH'] = 50;
+            }
+            elseif ($block['given_width']>0)
+            {
+              $last['WIDTH'] = 100 - $block['given_width'];
+            }
+            else
+            {
+              $last['WIDTH'] = $last['given_width'];
+            }
+            $block['CLASS'] = 'middle_block';
+            $last['CLASS'] = 'left_block';
+            $block['new_line'] = false;
+            $block['end_line'] = true;
+            $last['end_line'] = false;
+            $this->blocks[$this->pos][$key] = $last;
+            $this->blocks[$this->pos][] = $block;
+            return;
+          }
+        }
+      }
+    }
+
+    $block['new_line'] = true;
+    $block['end_line'] = true;
+    $block['CLASS'] = 'middle_block';
+    $this->blocks[$this->pos][] = $block;
+  }
+
+  static function prefilter_index_css($source, &$smarty)
+  {
+    $css = array(
+      '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}plugins/'.STUFFS_DIR.'/theme/stuffs_index.css">'
+    );
+
+    foreach ($smarty->get_template_vars('themes') as $theme)
+    {
+      if (file_exists(PHPWG_THEMES_PATH.$theme['id'].'/stuffs_index.css'))
+      {
+        array_push($css, '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/'.$theme['id'].'/stuffs_index.css">');
+      }
+    }
+
+    $source = str_replace("\n</head>", "\n".implode( "\n", $css )."\n</head>", $source);
+
+    return $source;
+  }
+
+  static function prefilter_picture_css($source, &$smarty)
+  {
+    $css = array(
+      '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}plugins/'.STUFFS_DIR.'/theme/stuffs_picture.css">'
+    );
+
+    foreach ($smarty->get_template_vars('themes') as $theme)
+    {
+      if (file_exists(PHPWG_THEMES_DIR.$theme['id'].'/stuffs_picture.css'))
+      {
+        array_push($css, '<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/'.$theme['id'].'/stuffs_picture.css">');
+      }
+    }
+
+    if (!empty($css))
+    {
+      $source = str_replace("\n</head>", "\n".implode( "\n", $css )."\n</head>", $source);
+    }
+
+    return $source;
+  }
+}
+
+?>
Index: /extensions/PWG_Stuffs/trunk/functions.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/functions.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/functions.inc.php	(revision 9736)
@@ -0,0 +1,153 @@
+<?php
+
+add_event_handler('render_stuffs_name', 'get_user_language_desc');
+
+if (!function_exists('get_user_language_desc'))
+{
+  function get_user_language_desc($desc)
+  {
+    global $user;
+    
+    $user_lang = substr($user['language'], 0, 2);
+
+    if (!substr_count(strtolower($desc), '[lang=' . $user_lang . ']'))
+    {
+      $user_lang = 'default';
+    }
+    
+    if (substr_count(strtolower($desc), '[lang=' . $user_lang . ']'))
+    {
+      // la balise avec la langue de l'utilisateur a été trouvée
+      $patterns[] = '#(^|\[/lang\])(.*?)(\[lang=(' . $user_lang . '|all)\]|$)#is';
+      $replacements[] = '';
+      $patterns[] = '#\[lang=(' . $user_lang . '|all)\](.*?)\[/lang\]#is';
+      $replacements[] = '\\1';
+    }
+    else
+    {
+      // la balise avec la langue de l'utilisateur n'a pas été trouvée
+      // On prend tout ce qui est hors balise
+      $patterns[] = '#\[lang=all\](.*?)\[/lang\]#is';
+      $replacements[] = '\\1';
+      $patterns[] = '#\[lang=.*\].*\[/lang\]#is';
+      $replacements[] = '';
+    }
+    return preg_replace($patterns, $replacements, $desc);
+  }
+}
+
+function get_default_stuffs_modules($modules)
+{
+  $dir = opendir(STUFFS_PATH . 'modules/');
+  while ($file = readdir($dir))
+  {
+    if ($file != '.' and $file != '..' and $file != '.svn' and $file != 'piclenswall')
+    {
+      $path = STUFFS_PATH . 'modules/' . $file;
+      if (is_dir($path) and !is_link($path))
+      {
+        array_push($modules, array(
+          'path' => $path,
+          'name' => l10n('module_name_' . strtolower($file)),
+          'description' => l10n('module_desc_' . strtolower($file)),
+          )
+        );
+      }
+    }
+  }
+  closedir($dir);
+  return $modules;
+}
+
+function pwgs_picture_special_sections()
+{
+  global $page, $conf;
+
+  if (preg_match('#&(pwgs_..)=#', $_SERVER['REQUEST_URI'], $matches))
+  {
+    if (isset($_GET['action']))
+    {
+      if (isset($page['category']))
+      {
+        $page['section'] = 'category/'.$page['category']['id'];
+        unset($page['category']);
+      }
+      $page['section'] .= $matches[0] . $_GET[$matches[1]];
+    }
+    else
+    {
+      unset($page['flat']);
+      $page['PWG_Stuffs_section'] = $matches[1];
+      $page['items'] = explode(',', $_GET[$matches[1]]);
+      $page['rank_of'] = array_flip($page['items']);
+      switch ($matches[1])
+      {
+        case 'pwgs_mv': $title = l10n('Most visited'); break;
+        case 'pwgs_br': $title = l10n('Best rated'); break;
+        case 'pwgs_re': $title = l10n('Recent pictures'); break;
+        case 'pwgs_ra': $title = l10n('Random pictures'); break;
+      }
+      $page['title'] .= $conf['level_separator'] . $title;
+      add_event_handler('loc_end_page_header', 'add_pwgs_url_params');
+    }
+  }
+}
+
+function add_pwgs_url_params()
+{
+  global $page, $template;
+
+  $param = $page['PWG_Stuffs_section'];
+
+  $urls = array(
+    'first.U_IMG',
+    'previous.U_IMG',
+    'next.U_IMG',
+    'last.U_IMG',
+    'slideshow.U_START_PLAY',
+    'slideshow.U_STOP_PLAY',
+    'slideshow.U_START_REPEAT',
+    'slideshow.U_STOP_REPEAT',
+    'slideshow.U_DEC_PERIOD',
+    'slideshow.U_INC_PERIOD',
+    'U_SLIDESHOW_START',
+    'U_SLIDESHOW_STOP',
+    'U_METADATA',
+    'favorite.U_FAVORITE',
+    'U_SET_AS_REPRESENTATIVE',
+    'U_CADDIE',
+    'rating.F_ACTION',
+    'comment_add.F_ACTION',
+    'page_refresh.U_REFRESH',
+  );
+
+  foreach ($urls as $url)
+  {
+    $k = explode('.', $url);
+    if (isset($k[1]) and isset($template->smarty->_tpl_vars[$k[0]][$k[1]]))
+    {
+      $template->smarty->_tpl_vars[$k[0]][$k[1]] = add_url_params($template->smarty->_tpl_vars[$k[0]][$k[1]], array($param => $_GET[$param]));
+    }
+    elseif (!isset($k[1]) and isset($template->smarty->_tpl_vars[$k[0]]))
+    {
+      $template->smarty->_tpl_vars[$k[0]] = add_url_params($template->smarty->_tpl_vars[$k[0]], array($param => $_GET[$param]));
+    }
+  }
+}
+
+function hide_main_block()
+{
+  global $page, $template;
+
+  if ($page['stuffs_section'] == 'on_home')
+  {
+    $template->set_prefilter('index', 'hide_main_block_prefilter');
+  }
+}
+
+function hide_main_block_prefilter($content, $smarty)
+{
+  return preg_replace('#<div id="content" class="content">.*</div> <!-- content -->#s', '', $content);
+}
+
+?>
Index: /extensions/PWG_Stuffs/trunk/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/ar_SA/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/ar_SA/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/ar_SA/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+ادخل موديول الى معرضك
Index: /extensions/PWG_Stuffs/trunk/language/ar_SA/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/ar_SA/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/ar_SA/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/ar_SA/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/ar_SA/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/ar_SA/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'اخر تعليق';
+$lang['module_desc_lastcoms'] = 'عرض اخل تعليق نشر';
+
+$lang['lastcoms_no_nb_comments'] = 'يجب ان تحدد عدد التعليقات.';
+$lang['lastcoms_config'] = 'الاعدادات';
+$lang['lastcoms_nb_comments'] = 'عدد التعليقات للعرض';
+$lang['lastcoms_show_buttons'] = 'اعرض ازرار المشرف';
+$lang['lastcoms_dim'] = 'حجم الصور المصغرة';
+$lang['lastcoms_width'] = 'أقصى عرض';
+$lang['lastcoms_height'] = 'أقصى ارتفاع';
+$lang['lastcoms_nb_cadres'] = 'عدد الاطارات لكل خط';
+$lang['lastcoms_taille_cadres'] = 'ارتفاع الاطار';
+
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'الدخول';
+$lang['module_desc_logon'] = 'عرض منطقة الدخول';
+
+$lang['logon_remove_menubar_block'] = 'حذف منطقة الاتصال السريع من القوائم';
+
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'المنطقة الشخصية';
+$lang['module_desc_personal'] = 'عرض المنطقة الشخصية (ك محرر)';
+
+$lang['personal_content'] = 'المحتوى';
+
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'الدلائل';
+$lang['module_desc_tags'] = 'عرض دلائل المعرض';
+
+$lang['stuffs_tags_default_display'] = 'عرض الدلائل';
+$lang['stuffs_tags_cloud'] = 'حشد الدلائل';
+$lang['stuffs_tags_letters'] = 'تجميع حسب الاحرف';
+$lang['stuffs_tags_cumulus'] = 'استخدام وضع الركام (اداة <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">ركام الدلائل المحتشدة</a> يجب ان تثبت)';
+
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'الأكثر زيارة';
+$lang['module_desc_mostvisited'] = 'عرض الاكثر زيارة في المعرض او التصنيفات';
+
+$lang['stuffs_mv_nb_images'] = 'اقصى عدد للصور المعروضة';
+$lang['stuffs_mv_category_display'] = 'عرض في صفحات التصنيفات';
+$lang['stuffs_mv_all_cats'] = 'كل التصنيفات';
+$lang['stuffs_mv_w_thumb'] = 'فقط في التصنيفات المحتوية على صور مصغرة';
+$lang['stuffs_mv_wo_thumb'] = 'فقط في التصنيفات التي لا تحتوي على صور مصغرة';
+$lang['stuffs_mv_selected_cats'] = 'فقط التصنيفات المختارة';
+
+$lang['stuffs_mv_cat_selection'] = 'اختيار التصنيفات';
+$lang['stuffs_mv_hold_ctrl'] = 'اضغط CTRL';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'افضل تصويت';
+$lang['module_desc_bestrated'] = 'عرض الأفضل تصويتا في المعرض الو التصنيفات';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'الصور الحيثة';
+$lang['module_desc_recent'] = 'عرض صور حديثة في المعرض الو التصنيف(ان وجدت)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'صور عشوائية';
+$lang['module_desc_random'] = 'عرض صور عشوائية في المعرض او التصنيف';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'اقتباس عشوائي';
+$lang['module_desc_citation'] = 'عرض اقتباش عشوائي';
+$lang['module_Citation_lang'] = 'اللغة';
+$lang['module_Citation_code'] = 'كود له علاقة';
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'صور متميزة';
+$lang['module_desc_featuredphotos'] = 'عرض الصور المفضلة لمشرف الموقع';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/cs_CZ/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/cs_CZ/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/cs_CZ/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Vloží moduly do vaší galerie
Index: /extensions/PWG_Stuffs/trunk/language/cs_CZ/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/cs_CZ/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/cs_CZ/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/cs_CZ/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/cs_CZ/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/cs_CZ/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Správa Bloků';
+$lang['stuffs_add_mod'] = 'Přidat blok';
+$lang['stuffs_edit_mod'] = 'Edituj blok';
+
+$lang['stuffs_module_title'] = 'Nadpis Bloku';
+$lang['stuffs_desc'] = 'Popis';
+$lang['stuffs_only_for_admin'] = '(jen pro administrační panel)';
+$lang['stuffs_type'] = 'Typ Bloku';
+$lang['stuffs_position'] = 'Pozice';
+$lang['stuffs_id_ligne'] = 'ID line';
+$lang['stuffs_width'] = 'Šířka';
+$lang['stuffs_action'] = 'Akce';
+$lang['stuffs_edit'] = 'Uprav blok';
+$lang['stuffs_delete'] = 'Odstraň blok';
+$lang['stuffs_confirm_delete'] = 'Opravdu chcete smazat blok %s?';
+$lang['stuffs_main_block'] = 'Hlavní blok';
+$lang['Hide on home page'] = 'Skrytý pro hlavní stránku';
+
+$lang['stuffs_add_module'] = 'Přidat nový blok';
+$lang['stuffs_module_config'] = 'Konfigurace Bloku';
+$lang['stuffs_visual_config'] = 'Konfigurace zobrazeni';
+$lang['stuffs_module_options'] = 'Možnosti bloku';
+$lang['stuffs_authorized_group'] = 'Povolené skupiny';
+$lang['stuffs_authorized_users'] = 'Povolení uživatelé';
+$lang['stuffs_public_module'] = '(Nechat prázdné pro veřejný blok)';
+$lang['stuffs_show_title'] = 'Ukaž nadpis bloku';
+$lang['stuffs_show_module_on'] = 'Zobraz blok :';
+$lang['stuffs_show_on_home'] = 'Na hlavní stráce';
+$lang['stuffs_show_on_root'] = 'Na stránce kategoríí';
+$lang['stuffs_show_on_cats'] = 'Na všech stránkách kategorií';
+$lang['stuffs_show_on_picture'] = 'Na stránkách obrázků';
+$lang['stuffs_no_options'] = 'Tento blok nemá žádné volby nastavení';
+
+$lang['stuffs_perm'] = 'Aktivuj správu autorizací:';
+$lang['stuffs_group_perm'] = 'podle skupin';
+$lang['stuffs_user_perm'] = 'podle typu uživatele';
+$lang['stuffs_level_perm'] = 'podle úrovně oprávnění';
+
+$lang['stuffs_select_all'] = 'Vybrat vše';
+$lang['stuffs_unselect_all'] = 'Zruš celý výběr';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Výběr uložen.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin byl přejměnován na "Blocks/Bloky".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Není vybrán žádný blok.';
+$lang['stuffs_no_name'] = 'Je potřeba nejprve zadat názvy bloku\ů ';
+$lang['stuffs_parent_plugin_is_missing'] = 'Hlavní PLUGIN není aktivován. odeberte tento blok nebo zapněte hlavní plugin Blok.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN musí být aktualizován. PWG Stuffs/Blok není kompatibilní s touto verzí pluginu Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Poslední komentáře';
+$lang['module_desc_lastcoms'] = 'Zobrazí naposledy vložené komentáře';
+
+$lang['lastcoms_no_nb_comments'] = 'Zadejte počet zobrazených komentářù.';
+$lang['lastcoms_config'] = 'Konfigurace';
+$lang['lastcoms_nb_comments'] = 'Počet komentářù k zobrazení';
+$lang['lastcoms_show_buttons'] = 'Zobraz admin tlačítko';
+$lang['lastcoms_dim'] = 'Velikost náhledu';
+$lang['lastcoms_width'] = 'Šířka max';
+$lang['lastcoms_height'] = 'Výška max';
+$lang['lastcoms_nb_cadres'] = 'Počet rámù na řádek';
+$lang['lastcoms_taille_cadres'] = 'Výška rámu';
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Přihlášení';
+$lang['module_desc_logon'] = 'Zobraz přihlašovací blok';
+
+$lang['logon_remove_menubar_block'] = 'Odstranit "Quick connect" blok z menu';
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Osobní blok';
+$lang['module_desc_personal'] = 'Zobrazí personnal block (něco jako editor)';
+
+$lang['personal_content'] = 'obsah';
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Štítky';
+$lang['module_desc_tags'] = 'Zobraz štítky galerie';
+
+$lang['stuffs_tags_default_display'] = 'Zobrazení štítkù';
+$lang['stuffs_tags_cloud'] = 'Mračno štítkù';
+$lang['stuffs_tags_letters'] = 'Podle písmen';
+$lang['stuffs_tags_cumulus'] = 'Použít mód cumulus (plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> musí být nainstalován)';
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Často navštěvované';
+$lang['module_desc_mostvisited'] = 'Zobrazí X nejvíce zobrazených fotek v galerii nebo kategorii';
+
+$lang['stuffs_mv_nb_images'] = 'Maximální počet fotek k zobrazení';
+$lang['stuffs_mv_category_display'] = 'Zobrazit v kategoriích';
+$lang['stuffs_mv_all_cats'] = 'Všechny kategorie';
+$lang['stuffs_mv_w_thumb'] = 'Jen v kategoriích s náhledy';
+$lang['stuffs_mv_wo_thumb'] = 'Jen v kategoriích bez náhledù';
+$lang['stuffs_mv_selected_cats'] = 'Jen vybraným kategoriím';
+
+$lang['stuffs_mv_cat_selection'] = 'Výběr kategorie';
+$lang['stuffs_mv_hold_ctrl'] = 'podržet CTRL';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Nejlépe hodnocené';
+$lang['module_desc_bestrated'] = 'Zobrazí x nejlépe hodnocených fotek v galerii nebo kategorii';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Nové fotografie';
+$lang['module_desc_recent'] = 'Zobrazí x nových fotek v galerii nebo kategorii(pokud existují)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Náhodné fotografie';
+$lang['module_desc_random'] = 'Zobrazí x náhodných fotek v galerii nebo kategorii';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Náhodná citace';
+$lang['module_desc_citation'] = 'Zobrazí náhodnou citaci';
+$lang['module_Citation_lang'] = 'Jazyk';
+$lang['module_Citation_code'] = 'Související kód';
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Nejlepší Fotky';
+$lang['module_desc_featuredphotos'] = 'Zobrazí favorizované fotky webmastera';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/de_DE/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/de_DE/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/de_DE/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Fügt Module in die Gallery ein
Index: /extensions/PWG_Stuffs/trunk/language/de_DE/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/de_DE/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/de_DE/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/de_DE/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/de_DE/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/de_DE/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Verwaltung der Blöcke';
+$lang['stuffs_add_mod'] = 'Einen Block hinzufügen';
+$lang['stuffs_edit_mod'] = 'Einen Block bearbeiten';
+
+$lang['stuffs_module_title'] = 'Titel des Blockes';
+$lang['stuffs_desc'] = 'Beschreibung';
+$lang['stuffs_only_for_admin'] = '(nur für den Administrations Panel)';
+$lang['stuffs_type'] = 'Block-Typ';
+$lang['stuffs_position'] = 'Position';
+$lang['stuffs_id_ligne'] = 'ID Linie';
+$lang['stuffs_width'] = 'Breite';
+$lang['stuffs_action'] = 'Aktionen';
+$lang['stuffs_edit'] = 'Block bearbeiten';
+$lang['stuffs_delete'] = 'Block löschen';
+$lang['stuffs_confirm_delete'] = 'Sind Sie sicher, dass Sie den Block %s löschen wollen?';
+$lang['stuffs_main_block'] = 'Hauptblock';
+$lang['Hide on home page'] = 'Auf der Startseite verbergen';
+
+$lang['stuffs_add_module'] = 'Einen neuen Block hinzufügen';
+$lang['stuffs_module_config'] = 'Block-Konfiguration';
+$lang['stuffs_visual_config'] = 'Display-Konfiguration';
+$lang['stuffs_module_options'] = 'Block-Optionen';
+$lang['stuffs_authorized_group'] = 'Autorisierte Gruppen';
+$lang['stuffs_authorized_users'] = 'Autorisierte Benutzer';
+$lang['stuffs_public_module'] = '(Leer lassen um den Block öffentlich zu halten.)';
+$lang['stuffs_show_title'] = 'Block Titel anzeigen';
+$lang['stuffs_show_module_on'] = 'Block anzeigen :';
+$lang['stuffs_show_on_home'] = 'Auf der Startseite';
+$lang['stuffs_show_on_root'] = 'Am Stamm der Kategorien.';
+$lang['stuffs_show_on_cats'] = 'Auf allen Kategorie Seiten';
+$lang['stuffs_show_on_picture'] = 'Auf den Bilderseiten';
+$lang['stuffs_no_options'] = 'Keine Optionen für diesen Block';
+
+$lang['stuffs_perm'] = 'Verwaltung der Genehmigungen aktivieren';
+$lang['stuffs_group_perm'] = 'nach Gruppen';
+$lang['stuffs_user_perm'] = 'nach Benutzer Typ';
+$lang['stuffs_level_perm'] = 'nach Privacy Level';
+
+$lang['stuffs_select_all'] = 'Alle auswählen';
+$lang['stuffs_unselect_all'] = 'Alle Auswahlen aufheben';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Reihenfolge erfolgreich gespeichert.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs Plug-In wurde umbenannt. Es heißt nun "Blocks".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Sie haben keinen Block ausgewählt.';
+$lang['stuffs_no_name'] = 'Sie müssen den Namen des Blockes angeben';
+$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IST NICHT AKTIVIERT. Sie sollten diesen Block entfernen oder den übergeordneten Plug-In reaktivieren.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUSS AKTUALISIERT WERDEN. PWG Stuffs ist nicht kompatibel mit dieser Version von Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Die letzten Kommentare';
+$lang['module_desc_lastcoms'] = 'Zeigt die zuletzt eingegebenen Kommentare an';
+
+$lang['lastcoms_no_nb_comments'] = 'Das Feld "Anzahl der angezeigten Kommentare" ist obligatorisch.';
+$lang['lastcoms_config'] = 'Einstellung';
+$lang['lastcoms_nb_comments'] = 'Anzahl der angezeigten Kommentare';
+$lang['lastcoms_show_buttons'] = 'Verwaltungsknöpfe anzeigen';
+$lang['lastcoms_dim'] = 'Dimensionen der Miniaturbilder';
+$lang['lastcoms_width'] = 'Max. Breite';
+$lang['lastcoms_height'] = 'Max. Höhe';
+$lang['lastcoms_nb_cadres'] = 'Anzahl Blöcke pro Linie';
+$lang['lastcoms_taille_cadres'] = 'Höhe der Blöcke';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Anmeldung';
+$lang['module_desc_logon'] = 'Zeigt ein Anmeldefenster in einem Block auf der Indexseite an';
+
+$lang['logon_remove_menubar_block'] = 'Die "Schnellanmeldung" vom Hauptmenü entfernen';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Persönlicher Block';
+$lang['module_desc_personal'] = 'Zeigt einen persönlichen Block an (z. Bsp. ein Editorial)';
+
+$lang['personal_content'] = 'Inhalt';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tags';
+$lang['module_desc_tags'] = 'Zeigt die Tags der Galerien an';
+
+$lang['stuffs_tags_default_display'] = 'Tags-Anzeige';
+$lang['stuffs_tags_cloud'] = 'Tags normal auflisten';
+$lang['stuffs_tags_letters'] = 'Nach Buchstaben gruppieren';
+$lang['stuffs_tags_cumulus'] = 'Den Modus Cumulus benützen(Das Plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> muss dazu installiert werden)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Meist angeschaute Bilder';
+$lang['module_desc_mostvisited'] = 'Zeigt die x meist angeschauten Bilder der Galerie oder Kategorie an';
+
+$lang['stuffs_mv_nb_images'] = 'Max. Anzahl der anzuzeigenden Bilder';
+$lang['stuffs_mv_category_display'] = 'Auf der Kategorieseite anzeigen';
+$lang['stuffs_mv_all_cats'] = 'Alle Kategorien';
+$lang['stuffs_mv_w_thumb'] = 'Nur Kategorien mit Miniaturbildern';
+$lang['stuffs_mv_wo_thumb'] = 'Nur Kategorien ohne Miniaturbilder';
+$lang['stuffs_mv_selected_cats'] = 'Nur ausgewählte Kategorien';
+
+$lang['stuffs_mv_cat_selection'] = 'Auswahl Kategorie';
+$lang['stuffs_mv_hold_ctrl'] = 'CTRL-Taste gedrückt halten';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Beste Noten';
+$lang['module_desc_bestrated'] = 'Zeigt die x bestbenoteten Bilder der Galerie oder Kategorie an';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Neuesten Bilder';
+$lang['module_desc_recent'] = 'Zeigt die neusten hinzugefügten Bilder der Galerie oder Kategorie an (falls vorhanden!)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Zufallsbild';
+$lang['module_desc_random'] = 'Zeigt x Zufallsbilder der Galerie oder Kategorie an';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Zufälliges Zitat';
+$lang['module_desc_citation'] = 'Zeige ein zufälliges Zitat';
+$lang['module_Citation_lang'] = 'Sprache';
+$lang['module_Citation_code'] = 'Dazugehöriger Code';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Ausgewählte Fotos';
+$lang['module_desc_featuredphotos'] = 'Lieblingsbilder des Webmasters anzeigen';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/en_UK/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/en_UK/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/en_UK/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+ Insert modules on your gallery
Index: /extensions/PWG_Stuffs/trunk/language/en_UK/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/en_UK/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/en_UK/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/en_UK/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/en_UK/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/en_UK/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Blocks management';
+$lang['stuffs_add_mod'] = 'Add a block';
+$lang['stuffs_edit_mod'] = 'Edit block';
+
+$lang['stuffs_module_title'] = 'Block title';
+$lang['stuffs_desc'] = 'Description';
+$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+$lang['stuffs_type'] = 'Block type';
+$lang['stuffs_position'] = 'Position';
+$lang['stuffs_id_ligne'] = 'ID line';
+$lang['stuffs_width'] = 'Width';
+$lang['stuffs_action'] = 'Actions';
+$lang['stuffs_edit'] = 'Modify block';
+$lang['stuffs_delete'] = 'Delete block';
+$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+$lang['stuffs_main_block'] = 'Main block';
+$lang['Hide on home page'] = 'Hide on home page';
+
+$lang['stuffs_add_module'] = 'Add new block';
+$lang['stuffs_module_config'] = 'Block configuration';
+$lang['stuffs_visual_config'] = 'Display configuration';
+$lang['stuffs_module_options'] = 'Block options';
+$lang['stuffs_authorized_group'] = 'Authorized groups';
+$lang['stuffs_authorized_users'] = 'Authorized users';
+$lang['stuffs_public_module'] = '(Keep empty for public block)';
+$lang['stuffs_show_title'] = 'Show block title';
+$lang['stuffs_show_module_on'] = 'Show block :';
+$lang['stuffs_show_on_home'] = 'On main page';
+$lang['stuffs_show_on_root'] = 'On categories root page';
+$lang['stuffs_show_on_cats'] = 'On all categories pages';
+$lang['stuffs_show_on_picture'] = 'On picture pages';
+$lang['stuffs_no_options'] = 'No options for this block';
+
+$lang['stuffs_perm'] = 'Activate authorization management:';
+$lang['stuffs_group_perm'] = 'by groups';
+$lang['stuffs_user_perm'] = 'by user type';
+$lang['stuffs_level_perm'] = 'by privacy level';
+
+$lang['stuffs_select_all'] = 'Select all';
+$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Order successfully saved.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+$lang['stuffs_no_name'] = 'You must specify block\'s name';
+$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Last comments';
+$lang['module_desc_lastcoms'] = 'Display last posted comments';
+
+$lang['lastcoms_no_nb_comments'] = 'You must specify numbers of comments.';
+$lang['lastcoms_config'] = 'Configuration';
+$lang['lastcoms_nb_comments'] = 'Number of comments to display';
+$lang['lastcoms_show_buttons'] = 'Show admin buttons';
+$lang['lastcoms_dim'] = 'Thumbnails size';
+$lang['lastcoms_width'] = 'Max width';
+$lang['lastcoms_height'] = 'Max height';
+$lang['lastcoms_nb_cadres'] = 'Numbers of frame by line';
+$lang['lastcoms_taille_cadres'] = 'Frame height';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Login';
+$lang['module_desc_logon'] = 'Display login block';
+
+$lang['logon_remove_menubar_block'] = 'Remove "Quick connect" block from menubar';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Personnal block';
+$lang['module_desc_personal'] = 'Display personnal block (like an edito)';
+
+$lang['personal_content'] = 'content';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tags';
+$lang['module_desc_tags'] = 'Display gallery tags';
+
+$lang['stuffs_tags_default_display'] = 'Tags display';
+$lang['stuffs_tags_cloud'] = 'Tags cloud';
+$lang['stuffs_tags_letters'] = 'Group by lettters';
+$lang['stuffs_tags_cumulus'] = 'Use cumulus mode (plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> must be installed)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Most visited';
+$lang['module_desc_mostvisited'] = 'Display x most visited pictures in the gallery or a category';
+
+$lang['stuffs_mv_nb_images'] = 'Maximum number of pictures to display';
+$lang['stuffs_mv_category_display'] = 'Display on categories pages';
+$lang['stuffs_mv_all_cats'] = 'All categories';
+$lang['stuffs_mv_w_thumb'] = 'Only categories with thumbnails';
+$lang['stuffs_mv_wo_thumb'] = 'Only categories without thumbnails';
+$lang['stuffs_mv_selected_cats'] = 'Only selected categories';
+
+$lang['stuffs_mv_cat_selection'] = 'Categories selection';
+$lang['stuffs_mv_hold_ctrl'] = 'hold CTRL';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Best rated';
+$lang['module_desc_bestrated'] = 'Display x best rated pictures in the gallery or a category';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Recent pictures';
+$lang['module_desc_recent'] = 'Display x recent pictures in the gallery or a category (if exist)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Random pictures';
+$lang['module_desc_random'] = 'Display x random pictures in the gallery or a category';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Random quote';
+$lang['module_desc_citation'] = 'Display a random quote';
+$lang['module_Citation_lang'] = 'Language';
+$lang['module_Citation_code'] = 'Related code';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Featured Photos';
+$lang['module_desc_featuredphotos'] = 'Display favorites photos of the webmaster';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/es_ES/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/es_ES/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/es_ES/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Módulos de encarte sobre su galería
Index: /extensions/PWG_Stuffs/trunk/language/es_ES/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/es_ES/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/es_ES/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/es_ES/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/es_ES/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/es_ES/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Gestión de los bloques';
+$lang['stuffs_add_mod'] = 'Añadir un nuevo bloque';
+$lang['stuffs_edit_mod'] = 'Edición del bloque';
+
+$lang['stuffs_module_title'] = 'Titulo del bloque';
+$lang['stuffs_desc'] = 'Descripcion';
+$lang['stuffs_only_for_admin'] = '(sólo para el panel de la administración)';
+$lang['stuffs_type'] = 'Tipo de bloque';
+$lang['stuffs_position'] = 'Posicion';
+$lang['stuffs_id_ligne'] = 'ID línea';
+$lang['stuffs_width'] = 'Ancho';
+$lang['stuffs_action'] = 'Acciones';
+$lang['stuffs_edit'] = 'Modificar el bloque';
+$lang['stuffs_delete'] = 'Supprimir el bloque';
+$lang['stuffs_confirm_delete'] = 'Está seguro quierer eliminar el bloque %s?';
+$lang['stuffs_main_block'] = 'Bloque principal';
+$lang['Hide on home page'] = 'Ocultar en la página principal';
+
+$lang['stuffs_add_module'] = 'Añadir un nuevo bloque';
+$lang['stuffs_module_config'] = 'Configuracion del bloque';
+$lang['stuffs_visual_config'] = 'Configuración de la visualizacion';
+$lang['stuffs_module_options'] = 'Opción del blosque';
+$lang['stuffs_authorized_group'] = 'Grupos autorizados';
+$lang['stuffs_authorized_users'] = 'Usuarios autorizados';
+$lang['stuffs_public_module'] = '(Deja en blanco para bloque público)';
+$lang['stuffs_show_title'] = 'Mostrar el titulo del bloque';
+$lang['stuffs_show_module_on'] = 'Mostrar el bloque :';
+$lang['stuffs_show_on_home'] = 'En la pagina principal del sitio';
+$lang['stuffs_show_on_root'] = 'En la raíz de las categorías';
+$lang['stuffs_show_on_cats'] = 'En todas las páginas de las categorías';
+$lang['stuffs_show_on_picture'] = 'En las páginas de imágenes';
+$lang['stuffs_no_options'] = 'No hay opciones para este bloque';
+
+$lang['stuffs_perm'] = 'Habilitar la administración de los derechos de acceso a los módulos:';
+$lang['stuffs_group_perm'] = 'por grupos';
+$lang['stuffs_user_perm'] = 'por tipo de usuario';
+$lang['stuffs_level_perm'] = 'por nivel de confidencialidad';
+
+$lang['stuffs_select_all'] = 'Seleccionar todo';
+$lang['stuffs_unselect_all'] = 'Deseleccionar todos';
+
+//Mensajes de información
+$lang['stuffs_order_saved'] = 'El orden se ha guardado.';
+$lang['stuffs_upgrade_message'] = 'El plugin PWG Stuffs a sido renombrado. Ahora se llama "Blocks".';
+
+// Mensajes de error
+$lang['stuffs_error_no_mod_selected'] = 'No ha seleccionado un bloque para agregar.';
+$lang['stuffs_no_name'] = 'Debe introducir un nombre para el bloque';
+$lang['stuffs_parent_plugin_is_missing'] = 'EL PLUGIN PADRE ya no está activo. Por favor, elimine este bloque o activar el plugin padres.';
+$lang['stuffs_piclens_need_upgrade'] = 'EL PLUGIN PicLens debe ser actualizado. PWG Stuffs no es compatible con esta versión de Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Últimos comentarios';
+$lang['module_desc_lastcoms'] = 'Visualiza los últimos comentarios enviados';
+
+$lang['lastcoms_no_nb_comments'] = 'Usted debe informar el campo " Número de comentarios que hay que visualizar ".';
+$lang['lastcoms_config'] = 'Configuración';
+$lang['lastcoms_nb_comments'] = 'Número de comentarios que hay que visualizar';
+$lang['lastcoms_show_buttons'] = 'Visualizar los botones admin';
+$lang['lastcoms_dim'] = 'Dimensión de las miniaturas';
+$lang['lastcoms_width'] = 'Anchura máxima';
+$lang['lastcoms_height'] = 'Altura máxima';
+$lang['lastcoms_nb_cadres'] = 'Número de cuadro por línea';
+$lang['lastcoms_taille_cadres'] = 'Altura del cuadro';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Identificación';
+$lang['module_desc_logon'] = 'Fija un bloque "Identificación" sobre el índice';
+
+$lang['logon_remove_menubar_block'] = 'Retirar el bloque " identificación rápida " del menubar';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Bloque personal';
+$lang['module_desc_personal'] = 'Fija un bloque personal (un editorial por ejemplo)';
+
+$lang['personal_content'] = 'Contenido';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tags';
+$lang['module_desc_tags'] = 'Fija las tags de la galería';
+
+$lang['stuffs_tags_default_display'] = 'Fijación de las tags';
+$lang['stuffs_tags_cloud'] = 'Nube de tags';
+$lang['stuffs_tags_letters'] = 'Reagrupar por letras';
+$lang['stuffs_tags_cumulus'] = '¿ Utilizar el modo Cúmulo (el plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> debe etre instalado)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Más vistas';
+$lang['module_desc_mostvisited'] = 'Anuncio las x imágenes más vistas de la galería o de la categoría';
+
+$lang['stuffs_mv_nb_images'] = 'Número máximo de imágenes que hay que fijar';
+$lang['stuffs_mv_category_display'] = 'Fijación sobre las páginas de las categorías';
+$lang['stuffs_mv_all_cats'] = 'Todas las categorías';
+$lang['stuffs_mv_w_thumb'] = 'Categorías con miniaturas únicamente';
+$lang['stuffs_mv_wo_thumb'] = 'Categorías sin miniaturas únicamente';
+$lang['stuffs_mv_selected_cats'] = 'Categorías seleccionadas únicamente';
+
+$lang['stuffs_mv_cat_selection'] = 'Selección de las categorías';
+$lang['stuffs_mv_hold_ctrl'] = 'Mantener a CTRL insistente';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Mejor anotadas';
+$lang['module_desc_bestrated'] = 'Anuncio x imágenes las mejor anotadas por la galería o por la categoría';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Imágenes recientes';
+$lang['module_desc_recent'] = 'Fija las imágenes recientes de la galería o de la categoría (si él de allí a)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Imágenes al azar';
+$lang['module_desc_random'] = 'Anuncio x llenas de imágenes al azar en la galería o la categoría';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Citación aleatoria del momento';
+$lang['module_desc_citation'] = 'Fija una citación en francés tomada al azar';
+$lang['module_Citation_lang'] = 'Idioma';
+$lang['module_Citation_code'] = 'Código asociado';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Imágenes de día';
+$lang['module_desc_featuredphotos'] = 'Fija las imágenes favoritas del webmaster';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/fr_FR/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/fr_FR/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/fr_FR/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Insérer des modules sur votre galerie.
Index: /extensions/PWG_Stuffs/trunk/language/fr_FR/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/fr_FR/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/fr_FR/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/fr_FR/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/fr_FR/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/fr_FR/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Gestion des blocs';
+$lang['stuffs_add_mod'] = 'Ajouter un nouveau bloc';
+$lang['stuffs_edit_mod'] = 'Edition du bloc';
+
+$lang['stuffs_module_title'] = 'Titre du bloc';
+$lang['stuffs_desc'] = 'Description';
+$lang['stuffs_only_for_admin'] = '(uniquement pour le panneau d\'administration)';
+$lang['stuffs_type'] = 'Type de bloc';
+$lang['stuffs_position'] = 'Position';
+$lang['stuffs_id_ligne'] = 'ID ligne';
+$lang['stuffs_width'] = 'Largeur';
+$lang['stuffs_action'] = 'Actions';
+$lang['stuffs_edit'] = 'Modifier le bloc';
+$lang['stuffs_delete'] = 'Supprimer le bloc';
+$lang['stuffs_confirm_delete'] = 'Etes-vous sur de vouloir supprimer le bloc %s?';
+$lang['stuffs_main_block'] = 'Bloc principal';
+$lang['Hide on home page'] = 'Masquer sur la page d\'accueil';
+
+$lang['stuffs_add_module'] = 'Ajout d\'un nouveau bloc';
+$lang['stuffs_module_config'] = 'Configuration du bloc';
+$lang['stuffs_visual_config'] = 'Configuration de l\'affichage';
+$lang['stuffs_module_options'] = 'Options du bloc';
+$lang['stuffs_authorized_group'] = 'Groupes autorisés';
+$lang['stuffs_authorized_users'] = 'Utilisateurs autorisés';
+$lang['stuffs_public_module'] = '(Laisser vide pour un bloc publique)';
+$lang['stuffs_show_title'] = 'Afficher le titre du bloc';
+$lang['stuffs_show_module_on'] = 'Afficher le bloc :';
+$lang['stuffs_show_on_home'] = 'Sur la page d\'accueil du site';
+$lang['stuffs_show_on_root'] = 'A la racine des catégories';
+$lang['stuffs_show_on_cats'] = 'Sur toutes les pages des catégories';
+$lang['stuffs_show_on_picture'] = 'Sur les pages des images';
+$lang['stuffs_no_options'] = 'Pas d\'options disponibles pour ce bloc';
+
+$lang['stuffs_perm'] = 'Activer la gestion des droits d\'accès aux modules:';
+$lang['stuffs_group_perm'] = 'par groupes';
+$lang['stuffs_user_perm'] = 'par type d\'utilisateurs';
+$lang['stuffs_level_perm'] = 'par niveau de confidentialité';
+
+$lang['stuffs_select_all'] = 'Sélectionner tout';
+$lang['stuffs_unselect_all'] = 'Déselectionner tout';
+
+//Messages d'infos
+$lang['stuffs_order_saved'] = 'L\'ordre a été sauvegardé.';
+$lang['stuffs_upgrade_message'] = 'Le plugin PWG Stuffs a été renommé. Il s\'appelle désormais "Blocks".';
+
+// Messages d'erreurs
+$lang['stuffs_error_no_mod_selected'] = 'Vous n\'avez pas sélectionné de bloc à ajouter.';
+$lang['stuffs_no_name'] = 'Vous devez indiquer un nom pour le bloc';
+$lang['stuffs_parent_plugin_is_missing'] = 'LE PLUGIN PARENT N\'EST PLUS ACTIVÉ. Veuillez supprimer ce bloc ou réactiver le plugin parent.';
+$lang['stuffs_piclens_need_upgrade'] = 'LE PLUGIN PICLENS DOIT ÊTRE MIS À JOUR. PWG Stuffs n\'est pas compatible avec cette version de Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Derniers commentaires';
+$lang['module_desc_lastcoms'] = 'Affiche les derniers commentaires postés';
+
+$lang['lastcoms_no_nb_comments'] = 'Vous devez renseigner le champ "Nombre de commentaires à afficher".';
+$lang['lastcoms_config'] = 'Configuration';
+$lang['lastcoms_nb_comments'] = 'Nombre de commentaires à afficher';
+$lang['lastcoms_show_buttons'] = 'Afficher les boutons admin';
+$lang['lastcoms_dim'] = 'Dimension des miniatures';
+$lang['lastcoms_width'] = 'largeur maxi';
+$lang['lastcoms_height'] = 'hauteur maxi';
+$lang['lastcoms_nb_cadres'] = 'Nombre de cadres par ligne';
+$lang['lastcoms_taille_cadres'] = 'Hauteur des cadres';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Identification';
+$lang['module_desc_logon'] = 'Affiche un bloc "Identification" sur l\'index';
+
+$lang['logon_remove_menubar_block'] = 'Retirer le bloc "identification rapide" du menubar';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Bloc personnel';
+$lang['module_desc_personal'] = 'Affiche un bloc personnel (un édito par exemple)';
+
+$lang['personal_content'] = 'contenu';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tags';
+$lang['module_desc_tags'] = 'Affiche les tags de la galerie';
+
+$lang['stuffs_tags_default_display'] = 'Affichage des tags';
+$lang['stuffs_tags_cloud'] = 'Nuage de tags';
+$lang['stuffs_tags_letters'] = 'Regrouper par lettres';
+$lang['stuffs_tags_cumulus'] = 'Utiliser le mode Cumulus (le plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> doit etre installé)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Plus vues';
+$lang['module_desc_mostvisited'] = 'Affiche les x images les plus vues de la galerie ou de la catégorie';
+
+$lang['stuffs_mv_nb_images'] = 'Nombre maximum d\'images à afficher';
+$lang['stuffs_mv_category_display'] = 'Affichage sur les pages des catégories';
+$lang['stuffs_mv_all_cats'] = 'Toutes les catégories';
+$lang['stuffs_mv_w_thumb'] = 'Catégories avec miniatures uniquement';
+$lang['stuffs_mv_wo_thumb'] = 'Catégories sans miniatures uniquement';
+$lang['stuffs_mv_selected_cats'] = 'Catégories sélectionnées uniquement';
+
+$lang['stuffs_mv_cat_selection'] = 'Sélection des catégories';
+$lang['stuffs_mv_hold_ctrl'] = 'maintenir CTRL appuyé';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Mieux notées';
+$lang['module_desc_bestrated'] = 'Affiche les x images les mieux notées de la galerie ou de la catégorie';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Images récentes';
+$lang['module_desc_recent'] = 'Affiche les images récentes de la galerie ou de la catégorie (s\'il y en a)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Images au hasard';
+$lang['module_desc_random'] = 'Affiche x images au hasard dans la galerie ou la catégorie';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Citation aléatoire du moment';
+$lang['module_desc_citation'] = 'Affiche une citation en français prise au hasard';
+$lang['module_Citation_lang'] = 'Langue';
+$lang['module_Citation_code'] = 'Code associé';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Images du jour';
+$lang['module_desc_featuredphotos'] = 'Affiche les images favorites du webmaster';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/hr_HR/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/hr_HR/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/hr_HR/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Dodavanje modula u galeriju
Index: /extensions/PWG_Stuffs/trunk/language/hr_HR/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/hr_HR/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/hr_HR/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/hr_HR/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/hr_HR/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/hr_HR/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Zadnji komentari';
+$lang['module_desc_lastcoms'] = 'Prikazuje zadnje postavljene komentare';
+
+$lang['lastcoms_no_nb_comments'] = 'Morate navesti broj komentara.';
+$lang['lastcoms_config'] = 'Podešavanja';
+$lang['lastcoms_nb_comments'] = 'Broj komentara za prikaz';
+$lang['lastcoms_show_buttons'] = 'Prikaži administrativne gumbe';
+$lang['lastcoms_dim'] = 'Veličina umanjene sličice';
+$lang['lastcoms_width'] = 'Maksimalna širina';
+$lang['lastcoms_height'] = 'Maksimalna visina';
+$lang['lastcoms_nb_cadres'] = 'Broj okvira po liniji';
+$lang['lastcoms_taille_cadres'] = 'Visina okvira';
+
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Prijava';
+$lang['module_desc_logon'] = 'Prikazuje blok sa prijavom';
+
+$lang['logon_remove_menubar_block'] = 'Ukloni "Quick connect" ("Brzu prijavu") iz izbornika';
+
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Osobni blok';
+$lang['module_desc_personal'] = 'Prikazuje osobno kreirani blok teksta na naslovnici (ili nekoj drugoj stranici)';
+
+$lang['personal_content'] = 'sadržaj';
+
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tagovi';
+$lang['module_desc_tags'] = 'Prikazuje tagove galerije';
+
+$lang['stuffs_tags_default_display'] = 'Prikaz tagova';
+$lang['stuffs_tags_cloud'] = 'Oblak tagova';
+$lang['stuffs_tags_letters'] = 'Grupiraj prema slovima';
+$lang['stuffs_tags_cumulus'] = 'Koristi cumulus mod (<a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> plugin mora biti instaliran)';
+
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Najposjećenije';
+$lang['module_desc_mostvisited'] = 'Prikazuje x najćešće posjećenih slika u galeriji ili kategoriji';
+
+$lang['stuffs_mv_nb_images'] = 'Najveći broj slika za prikaz';
+$lang['stuffs_mv_category_display'] = 'Prikaži na stranicama kategorija';
+$lang['stuffs_mv_all_cats'] = 'Svih kategorija';
+$lang['stuffs_mv_w_thumb'] = 'Samo kategorija sa umanjenim sličicama';
+$lang['stuffs_mv_wo_thumb'] = 'Samo kategorija bez umanjenih sličica';
+$lang['stuffs_mv_selected_cats'] = 'Samo odabranih kategorija';
+
+$lang['stuffs_mv_cat_selection'] = 'Odabir kategorija';
+$lang['stuffs_mv_hold_ctrl'] = 'držite CTRL';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Najbolje ocijenjene';
+$lang['module_desc_bestrated'] = 'Prikazuje x najbolje ocjenjenih slika u galeriji ili kategoriji';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Nedavno objavljene slike';
+$lang['module_desc_recent'] = 'Prikazuje x nedavno objavljenih slika u galeriji ili kategoriji (ako postoje)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Slučajno odabrane slike';
+$lang['module_desc_random'] = 'Prikazuje x slučajno odabranih slika u galeriji ili kategoriji';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Slučajno odabrani citat';
+$lang['module_desc_citation'] = 'Prikazuje slučajno odabrani citat';
+$lang['module_Citation_lang'] = 'Jezik';
+$lang['module_Citation_code'] = 'Povezani kod';
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Istaknute fotografije';
+$lang['module_desc_featuredphotos'] = 'Prikazuje omiljene slike webmastera';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/hu_HU/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/hu_HU/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/hu_HU/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Modulok hozzáadása a galériához.
Index: /extensions/PWG_Stuffs/trunk/language/hu_HU/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/hu_HU/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/hu_HU/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/hu_HU/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/hu_HU/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/hu_HU/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Modulok kezelése';
+$lang['stuffs_add_mod'] = 'Modul hozzáadása';
+$lang['stuffs_edit_mod'] = 'Modul beállítása:';
+
+$lang['stuffs_module_title'] = 'Modul címe';
+$lang['stuffs_desc'] = 'Leírás';
+$lang['stuffs_only_for_admin'] = '(csak az Adminisztrációs panelen)';
+$lang['stuffs_type'] = 'Modul tipusa';
+$lang['stuffs_position'] = 'Elhelyezkedés';
+$lang['stuffs_id_ligne'] = 'ID line';
+$lang['stuffs_width'] = 'Szélesség';
+$lang['stuffs_action'] = 'Végrehajtás';
+$lang['stuffs_edit'] = 'Modul szerkesztése';
+$lang['stuffs_delete'] = 'Modul törlése';
+$lang['stuffs_confirm_delete'] = 'Biztos, hogy törölni akarod ezt a modult: %s?';
+$lang['stuffs_main_block'] = 'Fő blokk';
+$lang['Hide on home page'] = 'Elrejtés a kezdő lapon';
+
+$lang['stuffs_add_module'] = 'Új modul hozzáadva';
+$lang['stuffs_module_config'] = 'Modul beállítások';
+$lang['stuffs_visual_config'] = 'Megjelenítés beállításai';
+$lang['stuffs_module_options'] = 'Egyéb lehetőségek';
+$lang['stuffs_authorized_group'] = 'Mely csoportok láthatják';
+$lang['stuffs_authorized_users'] = 'Mely felhasználók láthatják';
+$lang['stuffs_public_module'] = '(A publikus modulok legyenek üresek)';
+$lang['stuffs_show_title'] = 'Mutassa a modul címét';
+$lang['stuffs_show_module_on'] = 'Modul megjelenés :';
+$lang['stuffs_show_on_home'] = 'Fő oldalon';
+$lang['stuffs_show_on_root'] = 'Gyökér ketegóriákban';
+$lang['stuffs_show_on_cats'] = 'Minden kategória oldalon';
+$lang['stuffs_show_on_picture'] = 'Kép oldalakon';
+$lang['stuffs_no_options'] = 'A modulhoz nincs egyéb beállítási lehetőség';
+
+$lang['stuffs_perm'] = 'Modul hozzáférési jog engedély kezelése:';
+$lang['stuffs_group_perm'] = 'Csoportok';
+$lang['stuffs_user_perm'] = 'Felhasználói státusz';
+$lang['stuffs_level_perm'] = 'Hozzáférési szint';
+
+$lang['stuffs_select_all'] = 'Összes kijelölése';
+$lang['stuffs_unselect_all'] = 'Összes kijelölés törlése';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Beállítások mentése sikeres.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs bővítmény át lett nevezve. Itt az új neve "Blokkok".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Nincs modul kiválasztva.';
+$lang['stuffs_no_name'] = 'Meg kell adni a modul címét';
+$lang['stuffs_parent_plugin_is_missing'] = 'A SZÜLŐ BŐVÍTMÉNY NINCS AKTIVÁLVA. El kell távolítanod a blokkot, vagy aktiválnod kell a szülő bővítményt.';
+$lang['stuffs_piclens_need_upgrade'] = 'FRISSÍTENED KELL A PICLENS BŐVÍTMÉNYT. PWG Stuffs nem kompatibilis a jelenleg futó Piclens verzióval.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Friss hozzászólások';
+$lang['module_desc_lastcoms'] = 'Jelenjenek meg az utolsó hozzászólások';
+
+$lang['lastcoms_no_nb_comments'] = 'Meg kell adnia a hozzászólások számát.';
+$lang['lastcoms_config'] = 'Beállítások';
+$lang['lastcoms_nb_comments'] = 'Megjelenő hozzászólások száma';
+$lang['lastcoms_show_buttons'] = 'Jelenjen meg az admin gomb';
+$lang['lastcoms_dim'] = 'Bélyegkép mérete';
+$lang['lastcoms_width'] = 'Legnagyobb szélesség';
+$lang['lastcoms_height'] = 'Legnagyobb magasság';
+$lang['lastcoms_nb_cadres'] = 'Keret száma a sorra';
+$lang['lastcoms_taille_cadres'] = 'Keret magassága';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Azonosító';
+$lang['module_desc_logon'] = 'Jelenjen meg az Azonosító blokk';
+
+$lang['logon_remove_menubar_block'] = 'Azonosító blokk eltávolítása a menüből';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Személyes blokk';
+$lang['module_desc_personal'] = 'Jelenjen meg a személyes blokk (like an edito)';
+
+$lang['personal_content'] = 'tartalom';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Cimkefelhő';
+$lang['module_desc_tags'] = 'Jelenjenek meg a Galéria cimkék';
+
+$lang['stuffs_tags_default_display'] = 'Cimkék megjelenítése';
+$lang['stuffs_tags_cloud'] = 'Cimkefelhő';
+$lang['stuffs_tags_letters'] = 'Csoportosítás betűrendben';
+$lang['stuffs_tags_cumulus'] = 'Használja a gomolyfelhő módot (telepíteni kell a <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> bővítményt)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Legtöbbször nézett';
+$lang['module_desc_mostvisited'] = 'Jelenjenek meg a legtöbbször nézett kategóriák vagy képek';
+
+$lang['stuffs_mv_nb_images'] = 'Legfeljebb ennyi kép';
+$lang['stuffs_mv_category_display'] = 'Jelenjen meg a kategóriák oldalain';
+$lang['stuffs_mv_all_cats'] = 'Minden kategória';
+$lang['stuffs_mv_w_thumb'] = 'Csak kategóriák bélyegképpel';
+$lang['stuffs_mv_wo_thumb'] = 'Csak kategóriák bélyegkép nélkül';
+$lang['stuffs_mv_selected_cats'] = 'Csak a kiválasztott kategóriák';
+
+$lang['stuffs_mv_cat_selection'] = 'Kategóriák kiválasztása';
+$lang['stuffs_mv_hold_ctrl'] = 'tartsa lenyomva a CTRL-t';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Legjobbra értékelt';
+$lang['module_desc_bestrated'] = 'Jelenjenek meg a legjobbra értékelt kategóriák vagy képek';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Legfrissebb képek';
+$lang['module_desc_recent'] = 'Jelenjenek meg a legfrissebb kategóriák vagy képek (ha vannak)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Véletlenszerű képek';
+$lang['module_desc_random'] = 'Jelenjenek meg a véletlenszerű kategóriák vagy képek';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Véletlenszerű idézet';
+$lang['module_desc_citation'] = 'Jelenjen meg véletlenszerű idézet';
+$lang['module_Citation_lang'] = 'Nyelv';
+$lang['module_Citation_code'] = 'Kapcsolódó kód';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Aktuális képek';
+$lang['module_desc_featuredphotos'] = 'Jelenjenek meg a webmester kedvenc képei';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/it_IT/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/it_IT/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/it_IT/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Inserisce dei moduli nella vostra galleria.
Index: /extensions/PWG_Stuffs/trunk/language/it_IT/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/it_IT/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/it_IT/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/it_IT/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/it_IT/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/it_IT/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Gestione dei blocchi';
+$lang['stuffs_add_mod'] = 'Aggiungere un blocco';
+$lang['stuffs_edit_mod'] = 'Modificare il blocco';
+
+$lang['stuffs_module_title'] = 'Titolo del blocco';
+$lang['stuffs_desc'] = 'Descrizione';
+$lang['stuffs_only_for_admin'] = '(solo per il pannello dell\'amministrazione)';
+$lang['stuffs_type'] = 'Tipo di blocco';
+$lang['stuffs_position'] = 'Posizione';
+$lang['stuffs_id_ligne'] = 'ID line';
+$lang['stuffs_width'] = 'Larghezza';
+$lang['stuffs_action'] = 'Azioni';
+$lang['stuffs_edit'] = 'Modifica del blocco';
+$lang['stuffs_delete'] = 'Eliminare il blocco';
+$lang['stuffs_confirm_delete'] = 'È sicuro di voler eliminare il blocco %s?';
+$lang['stuffs_main_block'] = 'Blocco principale';
+$lang['Hide on home page'] = 'Nascondi sulla pagina iniziale';
+
+$lang['stuffs_add_module'] = 'Aggiungere un nuovo blocco';
+$lang['stuffs_module_config'] = 'Configurazione del blocco';
+$lang['stuffs_visual_config'] = 'Configurazione della visualizzazione';
+$lang['stuffs_module_options'] = 'Opzioni del blocco';
+$lang['stuffs_authorized_group'] = 'Gruppi autorizzati';
+$lang['stuffs_authorized_users'] = 'utenti autorizzati';
+$lang['stuffs_public_module'] = '(Mantenere vuoto per un blocco pubblico)';
+$lang['stuffs_show_title'] = 'Mostrare il titolo del blocco';
+$lang['stuffs_show_module_on'] = 'Mostrare il blocco :';
+$lang['stuffs_show_on_home'] = 'Sulla pagina principale';
+$lang['stuffs_show_on_root'] = 'Alla radice delle categorie';
+$lang['stuffs_show_on_cats'] = 'Su tutte le pagine delle categorie';
+$lang['stuffs_show_on_picture'] = 'Sulle pagine delle foto';
+$lang['stuffs_no_options'] = 'Nessuna opzione per questo blocco';
+
+$lang['stuffs_perm'] = 'Attivare la gestione di autorizzazione:';
+$lang['stuffs_group_perm'] = 'per gruppi';
+$lang['stuffs_user_perm'] = 'per tipo d\'utente';
+$lang['stuffs_level_perm'] = 'per livello privacy';
+
+$lang['stuffs_select_all'] = 'Selezionare tutto';
+$lang['stuffs_unselect_all'] = 'Deselezionare tutto';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Ordine salvato con successo.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs plug-in è stato rinominato. Ora si chiama "Blocks".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Non ha scelto nessun blocco.';
+$lang['stuffs_no_name'] = 'Deve specificare il nome del blocco';
+$lang['stuffs_parent_plugin_is_missing'] = 'IL PLUG-IN PARENTE NON È ATTIVO. Dovrebbe rimuovere il blocco o riattivare il plug-in parente.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUG-IN DEVE ESSERE AGGIORNATO. PWG Stuffs non è compatibile con la versione di Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Ultimi commenti';
+$lang['module_desc_lastcoms'] = 'Visualizzare gli ultimi commenti inseriti';
+
+$lang['lastcoms_no_nb_comments'] = 'Dovete inserire un valore nel campo "Numero di commenti da visualizzare".';
+$lang['lastcoms_config'] = 'Configurazione';
+$lang['lastcoms_nb_comments'] = 'Numero di commenti da visualizzare';
+$lang['lastcoms_show_buttons'] = 'Visualizzare i pulsanti d\'amministrazione';
+$lang['lastcoms_dim'] = 'Dimensioni delle miniature';
+$lang['lastcoms_width'] = 'larghezza massima';
+$lang['lastcoms_height'] = 'altezza massima';
+$lang['lastcoms_nb_cadres'] = 'Numero di quadri per riga';
+$lang['lastcoms_taille_cadres'] = 'Altezza dei quadri';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Identificazione';
+$lang['module_desc_logon'] = 'Visualizzare un blocco "Identificazione" sull\'indice';
+
+$lang['logon_remove_menubar_block'] = 'Rimuovere il blocco "identificazione rapida" dalla barra dei menu';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Blocco personale';
+$lang['module_desc_personal'] = 'Visualizzare blocco personale (una nota per esempio)';
+
+$lang['personal_content'] = 'Contenuto';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tags';
+$lang['module_desc_tags'] = 'Visualizzare i tags della galleria';
+
+$lang['stuffs_tags_default_display'] = 'Visualizzazione dei tag';
+$lang['stuffs_tags_cloud'] = 'Nuvola di tag';
+$lang['stuffs_tags_letters'] = 'Ragruppare per lettera';
+$lang['stuffs_tags_cumulus'] = 'Usare cumulus (il plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> deve essere installato)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'I più visti';
+$lang['module_desc_mostvisited'] = 'Visualizza le x immagini le più viste della galleria o della categoria';
+
+$lang['stuffs_mv_nb_images'] = 'Numero massimo d\'immagini da visualizzare';
+$lang['stuffs_mv_category_display'] = 'Visualizzazione sulle pagine delle categorie';
+$lang['stuffs_mv_all_cats'] = 'Tutte le categorie';
+$lang['stuffs_mv_w_thumb'] = 'Solo categorie con miniature';
+$lang['stuffs_mv_wo_thumb'] = 'Solo categorie senza miniature';
+$lang['stuffs_mv_selected_cats'] = 'Solo categorie selezionate';
+
+$lang['stuffs_mv_cat_selection'] = 'Selezione delle categorie';
+$lang['stuffs_mv_hold_ctrl'] = 'tenere premuto CTRL';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Le più votate';
+$lang['module_desc_bestrated'] = 'Visualizza le x immagini le più votate della galleria o della categoria';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Immagini recenti';
+$lang['module_desc_recent'] = 'Visualizza le x immagini le più recenti della galleria o della categoria (se esistono)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Immagini a caso';
+$lang['module_desc_random'] = 'Visualizza x immagini a caso della galleria o della categoria';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Citazione a caso del momento';
+$lang['module_desc_citation'] = 'Vizualizza una citazione a caso';
+$lang['module_Citation_lang'] = 'Lingua';
+$lang['module_Citation_code'] = 'Codice associato';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Immagine del giorno';
+$lang['module_desc_featuredphotos'] = 'Visualizza le immagini preferite del webmaster';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/ja_JP/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/ja_JP/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/ja_JP/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/ja_JP/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/ja_JP/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/ja_JP/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = '最新コメント';
+$lang['module_desc_lastcoms'] = '最新コメントを表示する';
+
+$lang['lastcoms_no_nb_comments'] = 'あなたは、コメント数を指定する必要があります。';
+$lang['lastcoms_config'] = '設定';
+$lang['lastcoms_nb_comments'] = '表示コメント数';
+$lang['lastcoms_show_buttons'] = '管理ボタンを表示する';
+$lang['lastcoms_dim'] = 'サムネイルサイズ';
+$lang['lastcoms_width'] = '最大幅';
+$lang['lastcoms_height'] = '最大高';
+$lang['lastcoms_nb_cadres'] = '1行あたりのフレーム数';
+$lang['lastcoms_taille_cadres'] = 'フレーム高';
+
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'ログイン';
+$lang['module_desc_logon'] = 'ログインブロックを表示する';
+
+$lang['logon_remove_menubar_block'] = 'メニューバーより「クイック接続」ブロックを削除する';
+
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'パーソナルブロック';
+$lang['module_desc_personal'] = 'パーソナルブロックを表示する';
+
+$lang['personal_content'] = 'コンテンツ';
+
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'タグ';
+$lang['module_desc_tags'] = 'ギャラリータグを表示する';
+
+$lang['stuffs_tags_default_display'] = 'タグ表示';
+$lang['stuffs_tags_cloud'] = 'タグクラウド';
+$lang['stuffs_tags_letters'] = '文字でグルーピングする';
+$lang['stuffs_tags_cumulus'] = 'カミュラスモードを使用する (プラグイン <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">カミュラス・タグクラウド</a>をインストールする必要があります)';
+
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = '最大アクセス';
+$lang['module_desc_mostvisited'] = 'ギャラリまたはカテゴリで最もアクセスされた写真 x件を表示する';
+
+$lang['stuffs_mv_nb_images'] = '表示する写真の最大数';
+$lang['stuffs_mv_category_display'] = 'カテゴリページに表示する';
+$lang['stuffs_mv_all_cats'] = 'すべてのカテゴリ';
+$lang['stuffs_mv_w_thumb'] = 'サムネイル付きカテゴリのみ';
+$lang['stuffs_mv_wo_thumb'] = 'カテゴリなしサムネイルのみ';
+$lang['stuffs_mv_selected_cats'] = '選択したカテゴリのみ';
+
+$lang['stuffs_mv_cat_selection'] = 'カテゴリ選択';
+$lang['stuffs_mv_hold_ctrl'] = 'CTRLを保持';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = '最高評価';
+$lang['module_desc_bestrated'] = 'ギャラリまたはカテゴリで最高評価された写真 x件を表示する';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = '最近の写真';
+$lang['module_desc_recent'] = '存在する場合、ギャラリまたはカテゴリ内の最近の写真 x 件を表示する';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'ランダム写真';
+$lang['module_desc_random'] = 'ギャラリまたはカテゴリ内にランダム写真 x件を表示する';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'ランダムクオート';
+$lang['module_desc_citation'] = 'ランダムクオートを表示する';
+$lang['module_Citation_lang'] = '言語';
+$lang['module_Citation_code'] = '関連コード';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = '特集写真';
+$lang['module_desc_featuredphotos'] = 'ウェブマスタのお気に入り写真を表示する';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/lv_LV/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/lv_LV/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/lv_LV/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Pievieno moduļus Jūsu galerijai
Index: /extensions/PWG_Stuffs/trunk/language/lv_LV/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/lv_LV/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/lv_LV/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/lv_LV/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/lv_LV/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/lv_LV/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Bloku pārvaldība';
+$lang['stuffs_add_mod'] = 'Pievienot bloku';
+$lang['stuffs_edit_mod'] = 'Rediģēt bloku';
+
+$lang['stuffs_module_title'] = 'Bloka virsraksts';
+$lang['stuffs_desc'] = 'Apraksts';
+$lang['stuffs_only_for_admin'] = '(tikai administrēšanas panelim)';
+$lang['stuffs_type'] = 'Bloka tips';
+$lang['stuffs_position'] = 'Pozīcija';
+$lang['stuffs_id_ligne'] = 'ID rinda';
+$lang['stuffs_width'] = 'Platums';
+$lang['stuffs_action'] = 'Darbības';
+$lang['stuffs_edit'] = 'Modificēt bloku';
+$lang['stuffs_delete'] = 'Dzēst bloku';
+$lang['stuffs_confirm_delete'] = 'Vai esat pārliecināts, ka gribat dzēst bloku %s?';
+$lang['stuffs_main_block'] = 'Galvenais bloks';
+$lang['Hide on home page'] = 'paslēpt mājas lapā';
+
+$lang['stuffs_add_module'] = 'Pievienot jaunu bloku';
+$lang['stuffs_module_config'] = 'Bloka konfigurācija';
+$lang['stuffs_visual_config'] = 'Vizuālā konfigurācija';
+$lang['stuffs_module_options'] = 'Bloka opcijas';
+$lang['stuffs_authorized_group'] = 'Autorizētās grupas';
+$lang['stuffs_authorized_users'] = 'Autorizētie lietotāji';
+$lang['stuffs_public_module'] = '(Atstāt tukšu priekš publiskā bloka)';
+$lang['stuffs_show_title'] = 'Rādīt bloka virsrakstu';
+$lang['stuffs_show_module_on'] = 'Rādīt bloku :';
+$lang['stuffs_show_on_home'] = 'Galvenajā lapā';
+$lang['stuffs_show_on_root'] = 'Kategoriju saknes lapā';
+$lang['stuffs_show_on_cats'] = 'Visās kategorijas lapās';
+$lang['stuffs_show_on_picture'] = 'Attēlu lapās';
+$lang['stuffs_no_options'] = 'Šim blokam nav opciju';
+
+$lang['stuffs_perm'] = 'Aktivizēt autorizācijas pārvaldību:';
+$lang['stuffs_group_perm'] = 'pēc grupām';
+$lang['stuffs_user_perm'] = 'pēc lietotāja tipa';
+$lang['stuffs_level_perm'] = 'pēc konfidencialitātes līmeņa';
+
+$lang['stuffs_select_all'] = 'Atlasīt visu';
+$lang['stuffs_unselect_all'] = 'Atcelt atlasīšanu';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Kārtība sekmīgi saglabāta.';
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs spraudnis ticis pārsaukts. Tagad tas saucas "Blocks".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Jūs neesat izvēlējies nevienu bloku.';
+$lang['stuffs_no_name'] = 'Jums jānorāda bloka nosaukums';
+$lang['stuffs_parent_plugin_is_missing'] = 'MĀTES PRAUDNIS (PARENT PLUGIN) NAV AKTIVIZĒTS. Jums jāizdzēš šis bloks vai jāreaktivē mātes spraudnis.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS SPRAUDNI IR NEPIECIEŠAMS ATJAUNINĀT. PWG Stuffs nav savietojams ar šo Piclens versiju.';
+
+//------------------------------------------------------------------------------
+//                            Jaunāko komentāru modulis
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Jaunākie komentāri';
+$lang['module_desc_lastcoms'] = 'Parādīt jaunākos atsūtītos komentārus';
+
+$lang['lastcoms_no_nb_comments'] = 'Jums jāizvēlas komentāru skaits.';
+$lang['lastcoms_config'] = 'Konfigurācija';
+$lang['lastcoms_nb_comments'] = 'Parādāmo komentāru skaits';
+$lang['lastcoms_show_buttons'] = 'Rādīt administratora pogas';
+$lang['lastcoms_dim'] = 'Sīkbildes izmērs';
+$lang['lastcoms_width'] = 'Max platums';
+$lang['lastcoms_height'] = 'Max augstums';
+$lang['lastcoms_nb_cadres'] = 'Attēla rāmju skaits rindā';
+$lang['lastcoms_taille_cadres'] = 'Rāmja augstums';
+
+
+//------------------------------------------------------------------------------
+//                            Ielogošanās modulis
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Logins';
+$lang['module_desc_logon'] = 'Rādīt ielogošanās bloku';
+
+$lang['logon_remove_menubar_block'] = 'Izņemt "Ātrais savienojums" bloku no izvēlnes';
+
+
+//------------------------------------------------------------------------------
+//                               Personāla Modulis
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Personālais bloks';
+$lang['module_desc_personal'] = 'Rādīt personālo bloku (kā edito)';
+
+$lang['personal_content'] = 'saturs';
+
+
+//------------------------------------------------------------------------------
+//                            Modulis Iezīmes
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Iezīmes';
+$lang['module_desc_tags'] = 'Rādīt galerijas iezīmes';
+
+$lang['stuffs_tags_default_display'] = 'Iezīmes atainojums';
+$lang['stuffs_tags_cloud'] = 'Iezīmes aizsegs';
+$lang['stuffs_tags_letters'] = 'Burtu grupa';
+$lang['stuffs_tags_cumulus'] = ' Lietot ~cumulus~ režīmu (spraudnis <a
+href=http://piwigo.org/ext/extension_view.php?eid=263
+target="_blank">Cumulus Aizsega Iezīmei </a> jābūt instalētai)';
+
+
+//------------------------------------------------------------------------------
+//                            Modulis Visvairāk Apmeklēts
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Visvairāk apmeklēts';
+$lang['module_desc_mostvisited'] = 'Parādīt x visvairāk apmeklētos attēlus galerijā vai kategorijā';
+$lang['stuffs_mv_nb_images'] = 'Parādāmo attēlu maksimālais skaits';
+$lang['stuffs_mv_category_display'] = 'Rādīt kategoriju lapās';
+$lang['stuffs_mv_all_cats'] = ' Visas kategorijas';
+$lang['stuffs_mv_w_thumb'] = 'Tikai kategorijas ar piktogrammām';
+$lang['stuffs_mv_wo_thumb'] = 'Tikai kategorijas bez piktogrammām';
+$lang['stuffs_mv_selected_cats'] = 'Tikai izvēlētās kategorijas';
+$lang['stuffs_mv_cat_selection'] = 'Categories selection';
+$lang['stuffs_mv_hold_ctrl'] = 'hold CTRL';
+
+//------------------------------------------------------------------------------
+//                            Modulis  Visaugstāk novērtēts
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Visaugstāk novērtēts';
+$lang['module_desc_bestrated'] = 'Rādīt x visaugstāk novērtētos attēlus galerijā vai kategorijā';
+
+//------------------------------------------------------------------------------
+//                            Modulis  Jaunākais
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Jaunākie attēli';
+$lang['module_desc_recent'] = 'Rādīt x jaunākos attēlus galerijā vai kategorijā (ja ir)';
+
+//------------------------------------------------------------------------------
+//                            Modulis Gadījuma
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Gadījuma attēli';
+$lang['module_desc_random'] = 'Rādīt x gadījuma attējus galerijā vai kategorijā';
+
+//------------------------------------------------------------------------------
+//                            Modulis Atsauce
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Gadījuma citāts';
+$lang['module_desc_citation'] = 'Rādīt gadījuma citātu';
+$lang['module_Citation_lang'] = 'Valoda';
+$lang['module_Citation_code'] = 'Saistītais kods';
+
+//------------------------------------------------------------------------------
+//                            Module Raksturīgie attēli
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Raksturīgie attēli';
+$lang['module_desc_featuredphotos'] = 'Rādīt webmāstera mīļākos attēlus';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/no_NO/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/no_NO/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/no_NO/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/no_NO/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/no_NO/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/no_NO/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Modul LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Siste kommentarer';
+$lang['module_desc_lastcoms'] = 'Vis siste postede kommentar';
+
+$lang['lastcoms_no_nb_comments'] = 'Du må spesifisere antall kommentarer.';
+$lang['lastcoms_config'] = 'Konfigurasjon';
+$lang['lastcoms_nb_comments'] = 'Antall kommentarer å vise';
+$lang['lastcoms_show_buttons'] = 'Vis admin knapper';
+$lang['lastcoms_dim'] = 'Miniatyr bilde størrelse';
+$lang['lastcoms_width'] = 'Maks bredde';
+$lang['lastcoms_height'] = 'Maks høyde';
+$lang['lastcoms_nb_cadres'] = 'Antall rammer per linje';
+$lang['lastcoms_taille_cadres'] = 'Ramme høyde';
+
+
+//------------------------------------------------------------------------------
+//                            Modul Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Logg inn';
+$lang['module_desc_logon'] = 'Vis logg inn blokk';
+
+$lang['logon_remove_menubar_block'] = 'Fjern "Hurtig tilkobling" blokken fra menylinjen';
+
+
+//------------------------------------------------------------------------------
+//                            Modul Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Personlig blokk';
+$lang['module_desc_personal'] = 'Vis personlig blokk (Som redigerings bilde)';
+
+$lang['personal_content'] = 'innhold';
+
+
+//------------------------------------------------------------------------------
+//                            Modul Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tagger';
+$lang['module_desc_tags'] = 'Vis galleri tagger';
+
+$lang['stuffs_tags_default_display'] = 'Tagg visning';
+$lang['stuffs_tags_cloud'] = 'Tagg sky';
+$lang['stuffs_tags_letters'] = 'Gruper alfabetisk';
+$lang['stuffs_tags_cumulus'] = 'Bruk cumulus modus (plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tagger Cloud</a> må være installert)';
+
+
+//------------------------------------------------------------------------------
+//                            Modul Mest Besøkte
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Mest besøkte';
+$lang['module_desc_mostvisited'] = 'Vis x mest besøkte bilder i galleri eller album';
+
+$lang['stuffs_mv_nb_images'] = 'Maksimum antall bilderå vise';
+$lang['stuffs_mv_category_display'] = 'Vis album sider';
+$lang['stuffs_mv_all_cats'] = 'Alle album';
+$lang['stuffs_mv_w_thumb'] = 'Kun album med miniatyr bilder';
+$lang['stuffs_mv_wo_thumb'] = 'Kun album uten miniatyr bilder';
+$lang['stuffs_mv_selected_cats'] = 'Kun utvalgte album';
+
+$lang['stuffs_mv_cat_selection'] = 'Album valg';
+$lang['stuffs_mv_hold_ctrl'] = 'hold CTRL';
+
+//------------------------------------------------------------------------------
+//                            Modul Best Rangert
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Best rangerte';
+$lang['module_desc_bestrated'] = 'Vis x best rangerte bilder i galleriet eller et album';
+
+//------------------------------------------------------------------------------
+//                            Modul Siste
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Siste bilder';
+$lang['module_desc_recent'] = 'Vis x siste bilder i galleriet eller album (om det eksisterer)';
+
+//------------------------------------------------------------------------------
+//                            Modul Tilfeldig
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Tilfeldige bilder';
+$lang['module_desc_random'] = 'Vis x tilfeldige bilder i galleriet eller i album';
+
+//------------------------------------------------------------------------------
+//                            Modul Sitater
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Tilfeldig sitat';
+$lang['module_desc_citation'] = 'Vis et tilfeldig sitat';
+$lang['module_Citation_lang'] = 'Språk';
+$lang['module_Citation_code'] = 'Relatert kode';
+
+//------------------------------------------------------------------------------
+//                            Modul fremtidige bilder
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Kommende bilder';
+$lang['module_desc_featuredphotos'] = 'Vis favoritt bildene til webmasteren';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/pl_PL/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/pl_PL/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/pl_PL/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Dodaj moduły do Twojej galerii
Index: /extensions/PWG_Stuffs/trunk/language/pl_PL/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/pl_PL/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/pl_PL/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/pl_PL/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/pl_PL/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/pl_PL/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Najnowsze komentarze';
+$lang['module_desc_lastcoms'] = 'Wyświetl najnowsze komentarze';
+
+$lang['lastcoms_no_nb_comments'] = 'Musisz wprowadzić liczbę komentarzy.';
+$lang['lastcoms_config'] = 'Konfiguracja';
+$lang['lastcoms_nb_comments'] = 'Ilość komentarzy do wyświetlenia';
+$lang['lastcoms_show_buttons'] = 'Pokaż opcje administracyjne';
+$lang['lastcoms_dim'] = 'Wielkość miniaturek';
+$lang['lastcoms_width'] = 'Max szerokość';
+$lang['lastcoms_height'] = 'Maksymalna wysokość';
+$lang['lastcoms_nb_cadres'] = 'Ilość ramek przez linię'; //* to fix *//
+$lang['lastcoms_taille_cadres'] = 'Wysokość ramki';
+
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Login';
+$lang['module_desc_logon'] = 'Wyświetl blok logowania';
+
+$lang['logon_remove_menubar_block'] = 'Usuń blok "Szybkie połączenie" z menu';
+
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Osobisty blok';
+$lang['module_desc_personal'] = 'Wyświetl osobisty blok (like an edito)'; //* to fix *//
+
+$lang['personal_content'] = 'zawartość';
+
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Tagi';
+$lang['module_desc_tags'] = 'Wyświetl tagi galerii';
+
+$lang['stuffs_tags_default_display'] = 'Wyświetlanie tagów'; //* to fix *//
+$lang['stuffs_tags_cloud'] = 'Chmura tagów';
+$lang['stuffs_tags_letters'] = 'Grupuj literami';
+$lang['stuffs_tags_cumulus'] = 'Użyj trybu cumulus (dodatek <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> musi być zainstalowany)';
+
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Najczęsciej odwiedzane';
+$lang['module_desc_mostvisited'] = 'Wyświetl x najczęściej odwiedzanych obrazów w galerii lub kategorii';
+
+$lang['stuffs_mv_nb_images'] = 'Maksymalna ilość obrazów do wyświetlenia';
+$lang['stuffs_mv_category_display'] = 'Wyświetl na stronach kategorii';
+$lang['stuffs_mv_all_cats'] = 'Wszystkie kategorie';
+$lang['stuffs_mv_w_thumb'] = 'Tylko kategorie z miniaturkami';
+$lang['stuffs_mv_wo_thumb'] = 'Tylko kategorie bez miniaturkami';
+$lang['stuffs_mv_selected_cats'] = 'Tylko wybrane kategorie';
+
+$lang['stuffs_mv_cat_selection'] = 'Wybór kategorii';
+$lang['stuffs_mv_hold_ctrl'] = 'przytrzymaj CTRL';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Najwyżej oceniane';
+$lang['module_desc_bestrated'] = 'Wyświetl x najwyżej ocenianych obrazów w galerii lub kategorii';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Najnowsze obrazy';
+$lang['module_desc_recent'] = 'Wyświetl x najnowszych obrazów w galerii lub w kategorii (jeśli istnieje)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Losowy obrazek';
+$lang['module_desc_random'] = 'Wyświetl x losowych obrazów w galerii lub kategorii';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Losowy cytat';
+$lang['module_desc_citation'] = 'Wyświetl losowy cytat';
+$lang['module_Citation_lang'] = 'Język';
+$lang['module_Citation_code'] = 'Powiązany kod'; //* to fix *//
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Doskonałe obrazy'; //* to fix *//
+$lang['module_desc_featuredphotos'] = 'Wyświetl ulubione obrazki administratora strony';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/pt_PT/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/pt_PT/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/pt_PT/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Insira módulos na sua galeria
Index: /extensions/PWG_Stuffs/trunk/language/pt_PT/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/pt_PT/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/pt_PT/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/pt_PT/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/pt_PT/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/pt_PT/plugin.lang.php	(revision 9736)
@@ -0,0 +1,160 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Últimos Comentários';
+$lang['module_desc_lastcoms'] = 'Mostrar comentários mais recentes';
+
+$lang['lastcoms_no_nb_comments'] = 'Deverá especificar o número de comentários.';
+$lang['lastcoms_config'] = 'Configuração';
+$lang['lastcoms_nb_comments'] = 'Número de comentários a mostrar';
+$lang['lastcoms_show_buttons'] = 'Mostrar Botões de Administração';
+$lang['lastcoms_dim'] = 'Tamanho das miniaturas';
+$lang['lastcoms_width'] = 'Largura máxima';
+$lang['lastcoms_height'] = 'Altura máxima';
+$lang['lastcoms_nb_cadres'] = 'Número de molduras por linha';
+$lang['lastcoms_taille_cadres'] = 'Altura da moldura';
+
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Iniciar Sessão';
+$lang['module_desc_logon'] = 'Mostrar bloco de Início de Sessão';
+
+$lang['logon_remove_menubar_block'] = 'Remover bloco de "Ligação Rápida" da barra de menú';
+
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Bloco Pessoal';
+$lang['module_desc_personal'] = 'Mostrar bloco Pessoal (como um editor)';
+
+$lang['personal_content'] = 'Conteúdo';
+
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Etiquetas';
+$lang['module_desc_tags'] = 'Mostrar Etiquetas da galeria';
+
+$lang['stuffs_tags_default_display'] = 'Mostrar Etiquetas como';
+$lang['stuffs_tags_cloud'] = 'Núvem de Etiquetas';
+$lang['stuffs_tags_letters'] = 'Agrupar por letras';
+$lang['stuffs_tags_cumulus'] = 'Usar modo cumulus (o plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> deverá estar instalado)';
+
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Mais Vistas';
+$lang['module_desc_mostvisited'] = 'Mostrar as x fotos mais vistas na galeria ou numa categoria';
+
+$lang['stuffs_mv_nb_images'] = 'Número máximo de fotos a mostrar';
+$lang['stuffs_mv_category_display'] = 'Mostrar nas páginas de categoria';
+$lang['stuffs_mv_all_cats'] = 'Em todoas as categorias';
+$lang['stuffs_mv_w_thumb'] = 'Apenas em categorias com miniaturas';
+$lang['stuffs_mv_wo_thumb'] = 'Apenas em categorias com miniaturas';
+$lang['stuffs_mv_selected_cats'] = 'Apenas nas categorias seleccionadas';
+
+$lang['stuffs_mv_cat_selection'] = 'Seleccionar categorias';
+$lang['stuffs_mv_hold_ctrl'] = 'Pressione CTRL sem largar enquanto clica nas categorias para seleccionar várias';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Mais Votadas';
+$lang['module_desc_bestrated'] = 'Mostrar as x fotos mais votadas na galeria ou numa categoria';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Fotos Recentes';
+$lang['module_desc_recent'] = 'Mostrar as x fotos mais recentes na galeria ou numa categoria (se existirem)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Fotos Aleatórias';
+$lang['module_desc_random'] = 'Mostrar x fotos aleatórias na galeria ou numa categoria';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Citação Aleatória';
+$lang['module_desc_citation'] = 'Mostrar uma citação aleatória';
+$lang['module_Citation_lang'] = 'Linguagem';
+$lang['module_Citation_code'] = 'Código Relacionado';
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Fotos em Destaque';
+$lang['module_desc_featuredphotos'] = 'Mostrar as fotos favoritas do webmaster';
+
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/ru_RU/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/ru_RU/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/ru_RU/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/ru_RU/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/ru_RU/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/ru_RU/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Управление модулями';
+$lang['stuffs_add_mod'] = 'Добавить модуль';
+$lang['stuffs_edit_mod'] = 'Редактировать модуль';
+
+$lang['stuffs_module_title'] = 'Название модуля';
+$lang['stuffs_desc'] = 'Описание';
+$lang['stuffs_only_for_admin'] = '(только для панели администрирования)';
+$lang['stuffs_type'] = 'Тип модуля';
+$lang['stuffs_position'] = 'Позиция';
+$lang['stuffs_id_ligne'] = 'ID строки';
+$lang['stuffs_width'] = 'ширина';
+$lang['stuffs_action'] = 'Действие';
+$lang['stuffs_edit'] = 'Изменить модуль';
+$lang['stuffs_delete'] = 'Удалить модуль';
+$lang['stuffs_confirm_delete'] = 'Вы уверены, что хотите удалить модуль %s?';
+$lang['stuffs_main_block'] = 'Основной блок';
+$lang['Hide on home page'] = 'Скрыть на главной странице';
+
+$lang['stuffs_add_module'] = 'Добавить новый модуль';
+$lang['stuffs_module_config'] = 'Настройки модуля';
+$lang['stuffs_visual_config'] = 'Отображение модуля';
+$lang['stuffs_module_options'] = 'Опции модуля';
+$lang['stuffs_authorized_group'] = 'Авторизованная группа';
+$lang['stuffs_authorized_users'] = 'Авторизованные пользователи';
+$lang['stuffs_public_module'] = '(Оставьте пустым для открытых модулей)';
+$lang['stuffs_show_title'] = 'Показывать название модуля';
+$lang['stuffs_show_module_on'] = 'Показывать блок :';
+$lang['stuffs_show_on_home'] = 'На главной странице';
+$lang['stuffs_show_on_root'] = 'На странице категории';
+$lang['stuffs_show_on_cats'] = 'На всех страницах этой категории';
+$lang['stuffs_show_on_picture'] = 'На страницах изображения';
+$lang['stuffs_no_options'] = 'Для этого модуля нет настроек';
+
+$lang['stuffs_perm'] = 'Активировать управление авторизацией:';
+$lang['stuffs_group_perm'] = 'по группам';
+$lang['stuffs_user_perm'] = 'по типу пользователя';
+$lang['stuffs_level_perm'] = 'по уровню доступа';
+
+$lang['stuffs_select_all'] = 'Выбрать все';
+$lang['stuffs_unselect_all'] = 'Инверсия';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Порядок успешно сохранен.';
+$lang['stuffs_upgrade_message'] = 'Плагин PWG Stuffs был переименован. Теперь он называется "Модули".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Вы не выбрали ни один модуль.';
+$lang['stuffs_no_name'] = 'Вы должны определить название модуля';
+$lang['stuffs_parent_plugin_is_missing'] = 'Основной плагин не активирован. Вы должны удалить этот модуль и реактивировать основной плагин.';
+$lang['stuffs_piclens_need_upgrade'] = 'Плагин PICLENS нужно актуализировать. Плагин PWG Stuffs не работает с этой версией Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Последние комментарии';
+$lang['module_desc_lastcoms'] = 'Список последних комментариев';
+
+$lang['lastcoms_no_nb_comments'] = 'Вам необходимо заполнить поле "Количество отображаемых комментариев".';
+$lang['lastcoms_config'] = 'Конфигурация';
+$lang['lastcoms_nb_comments'] = 'Количество отображаемых комментариев';
+$lang['lastcoms_show_buttons'] = 'Показывать кнопки администрирования';
+$lang['lastcoms_dim'] = 'Размер миниатюры';
+$lang['lastcoms_width'] = 'максимальная ширина';
+$lang['lastcoms_height'] = 'максимальная высота';
+$lang['lastcoms_nb_cadres'] = 'Количество кадров в каждой строке';
+$lang['lastcoms_taille_cadres'] = 'Высота кадра';
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Идентификация';
+$lang['module_desc_logon'] = 'Отобразить блок "Идентификация" на главной странице';
+
+$lang['logon_remove_menubar_block'] = 'Убрать блок "идентификации" в меню';
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Личный блок';
+$lang['module_desc_personal'] = 'Отобразить Личный блок (например, для редактирования)';
+
+$lang['personal_content'] = 'содержание';
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Теги';
+$lang['module_desc_tags'] = 'Отобразить теги в галерее';
+
+$lang['stuffs_tags_default_display'] = 'Отображение меток';
+$lang['stuffs_tags_cloud'] = 'Облако меток';
+$lang['stuffs_tags_letters'] = 'Группировка по алфавиту';
+$lang['stuffs_tags_cumulus'] = 'Используйте опцию cumulus (плагин <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> должен быть установлен)';
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Самые посещаемые';
+$lang['module_desc_mostvisited'] = 'Показать x самых посещаемых фотографий в галерее или категории';
+
+$lang['stuffs_mv_nb_images'] = 'Максимальное число фотографий, которые показываются';
+$lang['stuffs_mv_category_display'] = 'Показывать на страницах категорий';
+$lang['stuffs_mv_all_cats'] = 'Все категории';
+$lang['stuffs_mv_w_thumb'] = 'Только категории с миниатюрами';
+$lang['stuffs_mv_wo_thumb'] = 'Только категории без миниатюр';
+$lang['stuffs_mv_selected_cats'] = 'Только выбранные категории';
+
+$lang['stuffs_mv_cat_selection'] = 'Выбор категорий';
+$lang['stuffs_mv_hold_ctrl'] = 'удерживайте CTRL';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Самые высокооцененные';
+$lang['module_desc_bestrated'] = 'Показать x самых высокооцененных фотографий в галерее или категорииDisplay x best rated';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Недавно добавленные фотографии';
+$lang['module_desc_recent'] = 'Показать x последних фотографий в галерее или категории (если есть)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Случайная фотография';
+$lang['module_desc_random'] = 'Показать x случайных фотографий в галерее или категории';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Случайная цитата';
+$lang['module_desc_citation'] = 'Показать случайную цитату';
+$lang['module_Citation_lang'] = 'Язык';
+$lang['module_Citation_code'] = 'Код';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Избранные фотографии';
+$lang['module_desc_featuredphotos'] = 'Показать любимые фотографии вебмастера';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/sk_SK/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/sk_SK/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/sk_SK/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Vloženie modulov do Vašej galérie
Index: /extensions/PWG_Stuffs/trunk/language/sk_SK/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/sk_SK/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/sk_SK/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/sk_SK/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/sk_SK/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/sk_SK/plugin.lang.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+$lang['stuffs_mods_management'] = 'Ovládnie blokov'; 
+$lang['stuffs_add_mod'] = 'Pridať blok'; 
+$lang['stuffs_edit_mod'] = 'Upraviť blok';
+
+$lang['stuffs_module_title'] = 'Názov bloku'; 
+$lang['stuffs_desc'] = 'Popis'; 
+$lang['stuffs_only_for_admin'] = '(len pre administrátorský panel)';
+$lang['stuffs_type'] = 'Typ bloku'; 
+$lang['stuffs_position'] = 'Umiestnenie'; 
+$lang['stuffs_id_ligne'] = 'ID linka'; 
+$lang['stuffs_width'] = 'Šírka'; 
+$lang['stuffs_action'] = 'Akcie'; 
+$lang['stuffs_edit'] = 'Upraviť blok'; 
+$lang['stuffs_delete'] = 'Vymazať blok'; 
+$lang['stuffs_confirm_delete'] = 'Ste si istý, že chcete vymazať blok %s?'; 
+$lang['stuffs_main_block'] = 'Hlavný blok'; 
+$lang['Hide on home page'] = 'Schovať na domovskej stránke';
+
+$lang['stuffs_add_module'] = 'Pridať nový blok'; 
+$lang['stuffs_module_config'] = 'Konfigurácia bloku'; 
+$lang['stuffs_visual_config'] = 'Zobrazenie konfigurácie'; 
+$lang['stuffs_module_options'] = 'Voľby bloku'; 
+$lang['stuffs_authorized_group'] = 'Autorizované skupiny'; 
+$lang['stuffs_authorized_users'] = 'Autorizovaní používatelia';
+$lang['stuffs_public_module'] = '(Ponechať prázdne pre verejný blok)'; 
+$lang['stuffs_show_title'] = 'Zobraziť názov bloku';
+$lang['stuffs_show_module_on'] = 'Zobraziť blok:'; 
+$lang['stuffs_show_on_home'] = 'Na hlavnej stránke'; 
+$lang['stuffs_show_on_root'] = 'Na hlavnej stránke kategórií'; 
+$lang['stuffs_show_on_cats'] = 'Na všetkých stránkach kategórií'; 
+$lang['stuffs_show_on_picture'] = 'Na stránkach fotografií'; 
+$lang['stuffs_no_options'] = 'Žiadne voľby pre tento blok';
+
+$lang['stuffs_perm'] = 'Aktivovať autorizované ovládanie:'; 
+$lang['stuffs_group_perm'] = 'po skupinách'; 
+$lang['stuffs_user_perm'] = 'po type užívateľa'; 
+$lang['stuffs_level_perm'] = 'po súkromnej úrovni';
+
+$lang['stuffs_select_all'] = 'Označiť všetko'; 
+$lang['stuffs_unselect_all'] = 'Odznačiť všetko';
+
+// Infos messages
+$lang['stuffs_order_saved'] = 'Zoradenie úspešne uložené.'; 
+$lang['stuffs_upgrade_message'] = 'PWG Stuffs doplnok bol premenovaný. Teraz sa nazýva "Bloky".';
+
+// Errors messages
+$lang['stuffs_error_no_mod_selected'] = 'Nemáte označený žiaden blok.'; 
+$lang['stuffs_no_name'] = 'Musíte zadať názov bloku'; 
+$lang['stuffs_parent_plugin_is_missing'] = 'RODIČOVSKÝ DOPLNOK NIE JE AKTIVOVANÝ. Mali by ste vymazať tento blok alebo reaktivovať rodičovský doplnok.';
+$lang['stuffs_piclens_need_upgrade'] = 'PICLENS DOPLNOK MUSÍ BYŤ AKTUALIZOVANÝ. PWG Stuffs nie je kompatibilný s touto verziou Piclens.';
+
+//------------------------------------------------------------------------------
+//                            Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Posledné komentáre';
+$lang['module_desc_lastcoms'] = 'Zobraziť posledné poslané komentáre';
+
+$lang['lastcoms_no_nb_comments'] = 'Musíte určiť počet komentárov.';
+$lang['lastcoms_config'] = 'Konfigurácia';
+$lang['lastcoms_nb_comments'] = 'Počet zobrazených komentárov';
+$lang['lastcoms_show_buttons'] = 'Ukázať administrátorské tlačidlá';
+$lang['lastcoms_dim'] = 'Veľkosť náhľadov';
+$lang['lastcoms_width'] = 'Max výška';
+$lang['lastcoms_height'] = 'Max šírka';
+$lang['lastcoms_nb_cadres'] = 'Počet stĺpcov';
+$lang['lastcoms_taille_cadres'] = 'Výška stĺpca';
+
+//------------------------------------------------------------------------------
+//                            Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Prihlasovacie meno';
+$lang['module_desc_logon'] = 'Zobraziť prihlasovací blok';
+
+$lang['logon_remove_menubar_block'] = 'Odstrániť blok "Rýchle pripojenie" z menu';
+
+//------------------------------------------------------------------------------
+//                            Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Osobný blok';
+$lang['module_desc_personal'] = 'Zobraziť osobný blok (osožný na editáciu)';
+
+$lang['personal_content'] = 'obsah';
+
+//------------------------------------------------------------------------------
+//                            Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Kľúčové slová';
+$lang['module_desc_tags'] = 'Zobraziť kľúčové slová galérie';
+
+$lang['stuffs_tags_default_display'] = 'Zobraziť kľúčové slová';
+$lang['stuffs_tags_cloud'] = 'Mračno kľúčových slov';
+$lang['stuffs_tags_letters'] = 'Zoskupiť podľa písmen';
+$lang['stuffs_tags_cumulus'] = 'Použiť kumulus mód (plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> musí byť nainštalovaný)';
+
+//------------------------------------------------------------------------------
+//                            Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Najviac navštevované';
+$lang['module_desc_mostvisited'] = 'Zobraziť x najviac navštívených fotiek v galérii alebo kategórii';
+
+$lang['stuffs_mv_nb_images'] = 'Maximálny počet zobrazených fotiek';
+$lang['stuffs_mv_category_display'] = 'Zobraziť na stránke kategórií';
+$lang['stuffs_mv_all_cats'] = 'Všetky kategórie';
+$lang['stuffs_mv_w_thumb'] = 'Len kategórie s náhľadmi';
+$lang['stuffs_mv_wo_thumb'] = 'Len kategórie bez náhľadov';
+$lang['stuffs_mv_selected_cats'] = 'Len vybrané kategórie';
+
+$lang['stuffs_mv_cat_selection'] = 'Výber kategórií';
+$lang['stuffs_mv_hold_ctrl'] = 'držte CTRL';
+
+//------------------------------------------------------------------------------
+//                            Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Najlepšie hodnotené';
+$lang['module_desc_bestrated'] = 'Zobraziť x najlepšie hodnotených fotografií v galérii alebo kategórii';
+
+//------------------------------------------------------------------------------
+//                            Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Nedávno pridané fotografie';
+$lang['module_desc_recent'] = 'Zobraziť x nedávno pridaných fotografií v galérii alebo kategórii (ak existujú)';
+
+//------------------------------------------------------------------------------
+//                            Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Náhodné fotografie';
+$lang['module_desc_random'] = 'Zobraziť x náhodných fotografií v galérii alebo kategórii';
+
+//------------------------------------------------------------------------------
+//                            Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Náhodné citácie';
+$lang['module_desc_citation'] = 'Zobraziť náhodné citácie';
+$lang['module_Citation_lang'] = 'Jazyk';
+$lang['module_Citation_code'] = 'Súvisiaci kód';
+
+//------------------------------------------------------------------------------
+//                            Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Hlavné fotografie';
+$lang['module_desc_featuredphotos'] = 'Zobraziť obľúbené fotografie webmastera';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/sv_SE/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/sv_SE/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/sv_SE/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Lägg till moduler i ditt galleri
Index: /extensions/PWG_Stuffs/trunk/language/sv_SE/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/sv_SE/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/sv_SE/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/sv_SE/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/sv_SE/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/sv_SE/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//              Module LastComs
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Senaste kommentarer';
+$lang['module_desc_lastcoms'] = 'Visa senast tillagda kommentarer';
+
+$lang['lastcoms_no_nb_comments'] = 'Du måste specifiera antal kommentarer.';
+$lang['lastcoms_config'] = 'Konfiguration';
+$lang['lastcoms_nb_comments'] = 'Antal kommentarer att visa';
+$lang['lastcoms_show_buttons'] = 'Visa admin knappar';
+$lang['lastcoms_dim'] = 'Storlek på miniatyrbilder';
+$lang['lastcoms_width'] = 'Max bredd';
+$lang['lastcoms_height'] = 'Max höjd';
+$lang['lastcoms_nb_cadres'] = 'Antal ramar i linje';
+$lang['lastcoms_taille_cadres'] = 'Ram höjd';
+
+
+//------------------------------------------------------------------------------
+//              Module Logon
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Logga in';
+$lang['module_desc_logon'] = 'Visa "logga in" block';
+
+$lang['logon_remove_menubar_block'] = 'Ta bort "Snabb anslutning" block från menyn';
+
+
+//------------------------------------------------------------------------------
+//              Module Personal
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Personligt block';
+$lang['module_desc_personal'] = 'Visa personligt block (som en edito)';
+
+$lang['personal_content'] = 'innehåll';
+
+
+//------------------------------------------------------------------------------
+//              Module Tags
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Taggar';
+$lang['module_desc_tags'] = 'Visa taggar i galleriet';
+
+$lang['stuffs_tags_default_display'] = 'Visning av taggar';
+$lang['stuffs_tags_cloud'] = 'Taggmoln';
+$lang['stuffs_tags_letters'] = 'Sortera efter bokstäver';
+$lang['stuffs_tags_cumulus'] = 'Använd cumulus läge (plugin <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> måste vara installerat)';
+
+
+//------------------------------------------------------------------------------
+//              Module Most Visited
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'Mest visad';
+$lang['module_desc_mostvisited'] = 'Visa x mest visade bilder i galleriet eller i en kategori';
+
+$lang['stuffs_mv_nb_images'] = 'Maximalt antal bilder att visa';
+$lang['stuffs_mv_category_display'] = 'Visa på kategori sidorna';
+$lang['stuffs_mv_all_cats'] = 'Alla kategorier';
+$lang['stuffs_mv_w_thumb'] = 'Enbart kategorier med miniatyrbilder';
+$lang['stuffs_mv_wo_thumb'] = 'Enbart kategorier utan miniatyrbilder';
+$lang['stuffs_mv_selected_cats'] = 'Enbart markerade kategorier';
+
+$lang['stuffs_mv_cat_selection'] = 'Kategoriernas markering';
+$lang['stuffs_mv_hold_ctrl'] = 'håll in CTRL';
+
+//------------------------------------------------------------------------------
+//              Module Best Rated
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'Högst betygsatt';
+$lang['module_desc_bestrated'] = 'Visa x högst betygsatta bilder i galleriet eller i en kategori';
+
+//------------------------------------------------------------------------------
+//              Module Recent
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'Senastee bilder';
+$lang['module_desc_recent'] = 'Visa x senaste bilder i galleriet eller i en kategori (om det finns)';
+
+//------------------------------------------------------------------------------
+//              Module Random
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Slumpade bilder';
+$lang['module_desc_random'] = 'Visa x slumpade bilder i galleriet eller i en kategori';
+
+//------------------------------------------------------------------------------
+//              Module Citation
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Slumpa citat';
+$lang['module_desc_citation'] = 'Visa ett slumpad citat';
+$lang['module_Citation_lang'] = 'Språk';
+$lang['module_Citation_code'] = 'Relaterad kod';
+
+//------------------------------------------------------------------------------
+//              Module Featured Photos
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Bilder i rampljuset';
+$lang['module_desc_featuredphotos'] = 'Visa webmasterns favorit bilder';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/language/tr_TR/description.txt
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/tr_TR/description.txt	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/tr_TR/description.txt	(revision 9736)
@@ -0,0 +1,1 @@
+Galerinize modül ekleyiniz
Index: /extensions/PWG_Stuffs/trunk/language/tr_TR/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/tr_TR/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/tr_TR/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id$
+// | last update   : $Date$
+// | last modifier : $Author$
+// | revision      : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/language/tr_TR/plugin.lang.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/language/tr_TR/plugin.lang.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/language/tr_TR/plugin.lang.php	(revision 9736)
@@ -0,0 +1,159 @@
+<?php
+
+/*TODO*/$lang['stuffs_mods_management'] = 'Blocks management';
+/*TODO*/$lang['stuffs_add_mod'] = 'Add a block';
+/*TODO*/$lang['stuffs_edit_mod'] = 'Edit block';
+
+/*TODO*/$lang['stuffs_module_title'] = 'Block title';
+/*TODO*/$lang['stuffs_desc'] = 'Description';
+/*TODO*/$lang['stuffs_only_for_admin'] = '(only for administration pannel)';
+/*TODO*/$lang['stuffs_type'] = 'Block type';
+/*TODO*/$lang['stuffs_position'] = 'Position';
+/*TODO*/$lang['stuffs_id_ligne'] = 'ID line';
+/*TODO*/$lang['stuffs_width'] = 'Width';
+/*TODO*/$lang['stuffs_action'] = 'Actions';
+/*TODO*/$lang['stuffs_edit'] = 'Modify block';
+/*TODO*/$lang['stuffs_delete'] = 'Delete block';
+/*TODO*/$lang['stuffs_confirm_delete'] = 'Are you sure you want to delete block %s?';
+/*TODO*/$lang['stuffs_main_block'] = 'Main block';
+/*TODO*/$lang['Hide on home page'] = 'Hide on home page';
+
+/*TODO*/$lang['stuffs_add_module'] = 'Add new block';
+/*TODO*/$lang['stuffs_module_config'] = 'Block configuration';
+/*TODO*/$lang['stuffs_visual_config'] = 'Display configuration';
+/*TODO*/$lang['stuffs_module_options'] = 'Block options';
+/*TODO*/$lang['stuffs_authorized_group'] = 'Authorized groups';
+/*TODO*/$lang['stuffs_authorized_users'] = 'Authorized users';
+/*TODO*/$lang['stuffs_public_module'] = '(Keep empty for public block)';
+/*TODO*/$lang['stuffs_show_title'] = 'Show block title';
+/*TODO*/$lang['stuffs_show_module_on'] = 'Show block :';
+/*TODO*/$lang['stuffs_show_on_home'] = 'On main page';
+/*TODO*/$lang['stuffs_show_on_root'] = 'On categories root page';
+/*TODO*/$lang['stuffs_show_on_cats'] = 'On all categories pages';
+/*TODO*/$lang['stuffs_show_on_picture'] = 'On picture pages';
+/*TODO*/$lang['stuffs_no_options'] = 'No options for this block';
+
+/*TODO*/$lang['stuffs_perm'] = 'Activate authorization management:';
+/*TODO*/$lang['stuffs_group_perm'] = 'by groups';
+/*TODO*/$lang['stuffs_user_perm'] = 'by user type';
+/*TODO*/$lang['stuffs_level_perm'] = 'by privacy level';
+
+/*TODO*/$lang['stuffs_select_all'] = 'Select all';
+/*TODO*/$lang['stuffs_unselect_all'] = 'Unselect all';
+
+// Infos messages
+/*TODO*/$lang['stuffs_order_saved'] = 'Order successfully saved.';
+/*TODO*/$lang['stuffs_upgrade_message'] = 'PWG Stuffs plugin as been renamed. It is now called "Blocks".';
+
+// Errors messages
+/*TODO*/$lang['stuffs_error_no_mod_selected'] = 'You didn\'t select any block.';
+/*TODO*/$lang['stuffs_no_name'] = 'You must specify block\'s name';
+/*TODO*/$lang['stuffs_parent_plugin_is_missing'] = 'PARENT PLUGIN IS NOT ACTIVATED. You should remove this block or re-activate parent plugin.';
+/*TODO*/$lang['stuffs_piclens_need_upgrade'] = 'PICLENS PLUGIN MUST BE UPDATED. PWG Stuffs is not compatible with this version of Piclens.';
+
+//------------------------------------------------------------------------------
+//                           Son Yorumlar Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_lastcoms'] = 'Son yorumlar';
+$lang['module_desc_lastcoms'] = 'Son yorumları göster';
+
+$lang['lastcoms_no_nb_comments'] = 'Yorum sayısı belirtmelisiniz.';
+$lang['lastcoms_config'] = 'Konfigürasyon';
+$lang['lastcoms_nb_comments'] = 'Gösterilecek yorum sayısı';
+$lang['lastcoms_show_buttons'] = 'Admin buttonlarını göster';
+$lang['lastcoms_dim'] = 'Küçük resim boyutu';
+$lang['lastcoms_width'] = 'Azami genişlik';
+$lang['lastcoms_height'] = 'Azami yükseklik';
+$lang['lastcoms_nb_cadres'] = 'Çizgi ile çerçeve sayısı';
+$lang['lastcoms_taille_cadres'] = 'Çerçeve yüksekliği';
+
+
+//------------------------------------------------------------------------------
+//                            Oturum Açma Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_logon'] = 'Giriş';
+$lang['module_desc_logon'] = 'Giriş bloğunu göster';
+
+$lang['logon_remove_menubar_block'] = '"Hızlı Bağlan" bloğunu menüden sil';
+
+
+//------------------------------------------------------------------------------
+//                           Kişisel Modül
+//------------------------------------------------------------------------------
+
+$lang['module_name_personal'] = 'Kişisel blok';
+$lang['module_desc_personal'] = 'Kişisel bloğu (like an edito) göster';
+
+$lang['personal_content'] = 'içerik';
+
+
+//------------------------------------------------------------------------------
+//                            Etiket Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_tags'] = 'Etiketler';
+$lang['module_desc_tags'] = 'Galeri etiketlerini göster';
+
+$lang['stuffs_tags_default_display'] = 'Etiketleri göster';
+$lang['stuffs_tags_cloud'] = 'Bulut etiketleri';
+$lang['stuffs_tags_letters'] = 'Gruplar harf sıralaması';
+$lang['stuffs_tags_cumulus'] = 'Cumulus modunu kullan (eklenti <a href=http://piwigo.org/ext/extension_view.php?eid=263 target="_blank">Cumulus Tags Cloud</a> kurulmus olmalıdır)';
+
+
+//------------------------------------------------------------------------------
+//                            En çok ziyaret edilen Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_mostvisited'] = 'En çok ziyaret edilen';
+$lang['module_desc_mostvisited'] = 'Galeride veya bir kategoride gösterilecek olan en çok ziyaret edilen resim sayısı x';
+
+$lang['stuffs_mv_nb_images'] = 'Maximum number of pictures to display';
+$lang['stuffs_mv_category_display'] = 'Display on categories pages';
+$lang['stuffs_mv_all_cats'] = 'Tüm kategoriler';
+$lang['stuffs_mv_w_thumb'] = 'Küçük resimler ile sadece kategoriler';
+$lang['stuffs_mv_wo_thumb'] = 'Küçük resimler hariç sadece kategoriler';
+$lang['stuffs_mv_selected_cats'] = 'Sadece seçilen kategoriler';
+
+$lang['stuffs_mv_cat_selection'] = 'Kategori seçimi';
+$lang['stuffs_mv_hold_ctrl'] = 'CTRL\'ye basılı tutunuz';
+
+//------------------------------------------------------------------------------
+//                            En çok derecelendirilen Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_bestrated'] = 'En çok derecelendirilen';
+$lang['module_desc_bestrated'] = 'Galeride veya bir kategoride gösterilecek olan en iyi derecelendirilen resim sayısı x';
+
+//------------------------------------------------------------------------------
+//                            En son resimler Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_recent'] = 'En son resimler';
+$lang['module_desc_recent'] = 'Galeride veya bir kategoride gösterilecek olan en son eklenen resim sayısı x (eğer varsa)';
+
+//------------------------------------------------------------------------------
+//                            Rastgele resimler Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_random'] = 'Rastgele resimler';
+$lang['module_desc_random'] = 'Galeride veya bir kategoride gösterilecek olan rastgele seçilen resim sayısı x';
+
+//------------------------------------------------------------------------------
+//                            Alıntı Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_citation'] = 'Rastgele alıntı';
+$lang['module_desc_citation'] = 'Rastgele bir alıntı göster';
+$lang['module_Citation_lang'] = 'Dil';
+$lang['module_Citation_code'] = 'İlgili Kod';
+
+//------------------------------------------------------------------------------
+//                            Öne Çıkan Resimler Modülü
+//------------------------------------------------------------------------------
+
+$lang['module_name_featuredphotos'] = 'Öne çıkan resimler';
+$lang['module_desc_featuredphotos'] = 'Site yöneticisinin favori resimlerini göster';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/main.inc.php	(revision 9736)
@@ -0,0 +1,92 @@
+<?php
+/*
+Plugin Name: PWG Stuffs
+Version: auto
+Description: Insert modules on your gallery
+Plugin URI: http://piwigo.org/ext/extension_view.php?eid=190
+Author: P@t
+Author URI: http://www.gauchon.com
+*/
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $prefixeTable, $conf;
+
+$conf['Stuffs'] = @unserialize($conf['PWG_Stuffs']);
+
+define('STUFFS_DIR' , basename(dirname(__FILE__)));
+define('STUFFS_PATH' , PHPWG_PLUGINS_PATH . STUFFS_DIR . '/');
+define('STUFFS_TABLE' , $prefixeTable . 'stuffs');
+
+// Need upgrade?
+if ($conf['Stuffs'] === false)
+  include('admin/upgrade.inc.php');
+
+function stuffs_admin_menu($menu)
+{
+  global $conf;
+
+  array_push($menu, array(
+    'NAME' => 'PWG Stuffs',
+    'URL' => get_admin_plugin_menu_link(STUFFS_PATH . 'admin/admin.php')
+    )
+  );
+  return $menu;
+}
+
+function load_stuffs()
+{
+  global $template;
+
+  include(STUFFS_PATH . 'class.inc.php');
+  include(STUFFS_PATH . 'functions.inc.php');
+
+  $template->set_template_dir(STUFFS_PATH.'theme/template/');
+  $template->set_filename('stuffs', 'stuffs_blocks.tpl');
+
+  $stuffs = new stuffs();
+
+  if (!empty($stuffs->blocks['begin']))
+  {
+    $template->assign('blocks', $stuffs->blocks['begin']);
+    $template->concat($stuffs->prefixe.'BEFORE',  $template->parse('stuffs', true));
+  }
+  if (!empty($stuffs->blocks['end']))
+  {
+    $template->assign('blocks', $stuffs->blocks['end']);
+    $template->concat($stuffs->prefixe.'AFTER',  $template->parse('stuffs', true));
+  }
+}
+
+function stuffs_section_init()
+{
+  global $tokens, $page;
+
+  switch (script_basename())
+  {
+    case 'picture':
+      $page['stuffs_section'] = 'on_picture';
+      break;
+
+    case 'index':
+      if (count($tokens) == 1 and empty($tokens[0]))
+      {
+        $page['stuffs_section'] = 'on_home';
+        break;
+      }
+      elseif (isset($page['section']) and $page['section'] == 'categories')
+      {
+        $page['stuffs_section'] = isset($page['category']) ? 'on_cats' : 'on_root';
+        break;
+      }
+
+      default: return;
+  }
+
+  add_event_handler('loc_begin_page_header', 'load_stuffs');
+}
+
+add_event_handler('get_admin_plugin_menu_links', 'stuffs_admin_menu');
+add_event_handler('loc_end_section_init', 'stuffs_section_init', 60);
+
+?>
Index: /extensions/PWG_Stuffs/trunk/maintain.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/maintain.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/maintain.inc.php	(revision 9736)
@@ -0,0 +1,67 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+function plugin_install()
+{
+  global $prefixeTable, $conf;
+
+  $query = 'SHOW TABLES LIKE "' . $prefixeTable . 'stuffs"';
+  $result = pwg_query($query);
+  if (!mysql_fetch_row($result))
+  {
+    $q = 'CREATE TABLE `' . $prefixeTable . 'stuffs` (
+`id` smallint(5) NOT NULL,
+`pos` smallint(5) NOT NULL,
+`name` text NOT NULL,
+`descr` varchar(255) default NULL,
+`path` varchar(255) default NULL,
+`datas` longtext default NULL,
+`users` varchar(255) default NULL,
+`groups` varchar(255) default NULL,
+`level` TINYINT( 3 ) NOT NULL default "0",
+`show_title` enum(\'true\',\'false\') NOT NULL,
+`on_home` enum(\'true\',\'false\') NOT NULL,
+`on_root` enum(\'true\',\'false\') NOT NULL,
+`on_cats` enum(\'true\',\'false\') NOT NULL,
+`on_picture` enum(\'true\',\'false\') NOT NULL,
+`id_line` varchar(1) default NULL,
+`width` smallint(9) default NULL,
+PRIMARY KEY  (`id`),
+KEY `on_home` (`on_home`),
+KEY `on_cats` (`on_cats`),
+KEY `on_picture` (`on_picture`)
+) DEFAULT CHARSET=utf8;';
+    pwg_query($q);
+  
+    $q = "INSERT INTO `" . $prefixeTable . "stuffs` (`id`, `pos`, `name`, `datas`, `users`, `show_title`, `on_home`, `on_cats`, `on_picture`) 
+VALUES (0, 1, 'MainBlock', '".addslashes(serialize(true))."', 'guest,generic,normal,admin,webmaster', 'true', 'true', 'true', 'true');";
+    pwg_query($q);
+  }
+
+  if (!isset($conf['PWG_Stuffs']))
+  {
+    $config = array(
+      'level_perm' => false,
+      'group_perm' => false,
+      'user_perm' => false,
+    );
+
+    $query = 'INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment)
+VALUES ("PWG_Stuffs" , "'.pwg_db_real_escape_string(serialize($config)).'" , "PWG Stuffs plugin configuration");';
+    pwg_query($query);
+  }
+}
+
+function plugin_uninstall()
+{
+  global $prefixeTable;
+
+  $q = 'DROP TABLE ' . $prefixeTable . 'stuffs;';
+  pwg_query($q);
+
+	$q = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE param="PWG_Stuffs";';
+  pwg_query($q);
+}
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/BestRated/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/BestRated/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/BestRated/config.inc.php	(revision 9736)
@@ -0,0 +1,41 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (!isset($datas))
+{
+  $datas = array(
+    'nb_images'     => 10,
+    'cat_display'   => 'all',
+    'cat_selection' => array(),
+  );
+}
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  $datas = array(
+    'nb_images' => intval($_POST['nb_images']),
+    'cat_display' => $_POST['cat_display'],
+    'cat_selection' => @$_POST['cat_selection'],
+    );
+  unset($_POST['on_picture']);
+}
+
+// Parametrage du template
+$query = 'SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE.';';
+display_select_cat_wrapper($query,array(),'category_selection');
+
+$template->assign(array(
+  'NB_IMAGES' => $datas['nb_images'],
+  'cat_display' => $datas['cat_display'],
+  'category_selected' => $datas['cat_selection'],
+  )
+);
+
+$display_options = & $template->get_template_vars('display_options');
+$display_options['on_picture'] = false;
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/BestRated/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/BestRated/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/BestRated/config.tpl	(revision 9736)
@@ -0,0 +1,86 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
+{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+
+<table>
+	<tr>
+		<td align="right"><br>{'stuffs_mv_nb_images'|@translate} &nbsp;&nbsp;</td>
+		<td><br><input type="text" name="nb_images" size="3" maxlength="2" value="{$NB_IMAGES}"></td>
+	</tr>
+	<tr class="cat_options" style="display: none;">
+		<td align="right"><br>{'stuffs_mv_category_display'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+      <select name="cat_display">
+        <option label="{'stuffs_mv_all_cats'|@translate}" value="all" {if $cat_display == 'all'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_all_cats'|@translate}</option>
+        <option label="{'stuffs_mv_wo_thumb'|@translate}" value="wo_thumb" {if $cat_display == 'wo_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_wo_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_w_thumb'|@translate}" value="w_thumb" {if $cat_display == 'w_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_w_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_selected_cats'|@translate}" value="selected_cats" {if $cat_display == 'selected_cats'}selected="selected"{/if} onClick="javascript: show_cat_list();">{'stuffs_mv_selected_cats'|@translate}</option>
+      </select>
+    </td>
+	</tr>
+	<tr class="cat_selection" style="display: none;">
+		<td align="right">
+      <br>{'stuffs_mv_cat_selection'|@translate} &nbsp;&nbsp;
+      <br>({'stuffs_mv_hold_ctrl'|@translate}) &nbsp;&nbsp;</td>
+		<td><br>
+		  <select class="categoryList" name="cat_selection[]" multiple="multiple" size="30">
+        {html_options options=$category_selection selected=$category_selected}
+      </select></td>
+	</tr>
+</table>
+<br>
+
+{literal}
+<script type="text/javascript">
+resize = false;
+function show_cat_list()
+{
+  jQuery('.cat_selection').show();
+  if (!resize)
+  {
+    resize = true;
+    jQuery('.categoryList').resizable({
+      handles: "all",
+      animate: true,
+      animateDuration: "slow",
+      animateEasing: "swing",
+      preventDefault: true,
+      preserveCursor: true,
+      autoHide: true,
+      ghost: true
+    });
+  }
+}
+
+function hide_cat_list()
+{
+  jQuery('.cat_selection').hide();
+}
+
+jQuery().ready( function () {
+  jQuery("input[name='on_cats']").click( function() {
+    if (this.checked)
+    {
+      jQuery('.cat_options').show();
+      if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+        show_cat_list();
+    }
+    else
+    {
+      jQuery('.cat_options').hide();
+      hide_cat_list();
+    }
+  });
+});
+
+if (document.getElementsByName("on_cats")[0].checked)
+{
+  jQuery('.cat_options').show();
+  if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+  {
+    show_cat_list();
+  }
+}
+</script>
+{/literal}
+
Index: /extensions/PWG_Stuffs/trunk/modules/BestRated/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/BestRated/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/BestRated/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/BestRated/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/BestRated/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/BestRated/main.inc.php	(revision 9736)
@@ -0,0 +1,156 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $page, $user, $conf, $template;
+
+if (script_basename() == 'picture'
+  or ($datas['cat_display'] == 'wo_thumb' and !empty($page['items']))
+  or ($datas['cat_display'] == 'w_thumb' and empty($page['items']) and isset($page['category']))
+  or ($datas['cat_display'] == 'selected_cats' and isset($page['category']) and !in_array($page['category']['id'], $datas['cat_selection'])))
+{
+  return false;
+}
+
+$forbidden = get_sql_condition_FandF
+  (
+    array
+      (
+        'forbidden_categories' => 'ic.category_id',
+        'visible_categories' => 'ic.category_id',
+        'visible_images' => 'i.id'
+      ),
+    'AND'
+  );
+
+$query ='
+SELECT DISTINCT(i.id)
+  FROM '.IMAGES_TABLE.' AS i
+    INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id = ic.image_id
+    INNER JOIN '.CATEGORIES_TABLE.' AS c ON ic.category_id = c.id
+  WHERE i.average_rate IS NOT NULL';
+
+if (isset($page['category']))
+{
+  $query .= '
+        AND ( c.uppercats LIKE \''.$page['category']['uppercats'].',%\' OR c.id = '.$page['category']['id'].' )
+  ';
+}
+
+$query .= '
+      '.$forbidden.'
+      ORDER BY i.average_rate DESC, i.id ASC
+    LIMIT 0, '.$datas['nb_images'].'
+  ;';
+
+$pictures = array();
+$selection = array_from_query($query, 'id');
+ 
+if (count($selection) > 0)
+{
+  $rank_of = array_flip($selection);
+
+  $query = '
+SELECT *
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $selection).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $row['rank'] = $rank_of[ $row['id'] ];
+
+    array_push($pictures, $row);
+  }
+
+  usort($pictures, 'rank_compare');
+  unset($rank_of);
+}
+
+if (count($pictures) > 0)
+{
+  if ($user['show_nb_comments'])
+  {
+    $query = '
+SELECT image_id, COUNT(*) AS nb_comments
+  FROM '.COMMENTS_TABLE.'
+  WHERE validated = \'true\'
+    AND image_id IN ('.implode(',', $selection).')
+  GROUP BY image_id
+;';
+    $nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
+  }
+
+  // template thumbnail initialization
+  trigger_action('loc_begin_index_thumbnails', $pictures);
+  $block['thumbnails'] = array();
+
+  foreach ($pictures as $row)
+  {
+    // link on picture.php page
+    $url = duplicate_picture_url(
+          array(
+            'image_id' => $row['id'],
+            'image_file' => $row['file']
+          ),
+          array('start')
+        );
+    $url = add_url_params($url, array('pwgs_br' => implode(',',$selection)));
+
+    $tpl_var =
+      array(
+        'ID'        => $row['id'],
+        'TN_SRC'    => get_thumbnail_url($row),
+        'TN_ALT'    => $row['file'],
+        'TN_TITLE'  => get_thumbnail_title($row),
+        'ICON_TS'   => get_icon($row['date_available']),
+        'URL'       => $url,
+
+     /* Fields for template-extension usage */
+        'FILE_PATH' => $row['path'],
+        'FILE_POSTED' => $row['date_available'],
+        'FILE_CREATED' => $row['date_creation'],
+        'FILE_DESC' => $row['comment'],
+        'FILE_AUTHOR' => $row['author'],
+        'FILE_HIT' => $row['hit'],
+        'FILE_SIZE' => $row['filesize'],
+        'FILE_WIDTH' => $row['width'],
+        'FILE_HEIGHT' => $row['height'],
+        'FILE_METADATE' => $row['date_metadata_update'],
+        'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
+                  true:false, /* lack of include/functions_picture.inc.php */
+      );
+
+    if ($user['show_nb_hits'])
+    {
+      $tpl_var['NB_HITS'] = $row['hit'];
+    }
+
+    if ($conf['show_thumbnail_caption'])
+    {// name of the picture
+      if (isset($row['name']) and $row['name'] != '')
+      {
+        $name = $row['name'];
+      }
+      else
+      {
+        $name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
+      }
+
+      $tpl_var['NAME'] = '('.$row['average_rate'].') '.$name;
+    }
+
+    if ( isset($nb_comments_of) )
+    {
+      $tpl_var['NB_COMMENTS'] = (int)@$nb_comments_of[$row['id']];
+    }
+
+    $block['thumbnails'][] = $tpl_var;
+  }
+
+  $block['thumbnails'] = trigger_event('loc_end_index_thumbnails', $block['thumbnails'], $pictures);
+
+  $block['TEMPLATE'] = 'stuffs_thumbnails.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Citation/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Citation/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Citation/config.inc.php	(revision 9736)
@@ -0,0 +1,39 @@
+<?php
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+if (!isset($datas)) {
+  $default_fr_value  = '<script type="text/javascript" ';
+  $default_fr_value .= 'src="http://citations.hasarddujour.com/'; 
+  $default_fr_value .= 'citation-hasard-du-jour.php?random"></script>';
+  $datas = array(
+      'quote_lang'    => array(
+          "fr_FR" => $default_fr_value
+        ),
+    );
+}
+$available_languages = get_languages();
+// Save configuration
+if (isset($_POST['submit']) and !is_adviser()) {
+  $new_data = array();
+  foreach (array_keys($available_languages) as $current_lang) {
+    $quote_value_key = 'quote_config_' . $current_lang;
+    if ((isset($_POST[$quote_value_key])) and
+        ("" != $_POST[$quote_value_key])) {
+      $new_data = array_merge(
+          $new_data,
+          array($current_lang => stripslashes($_POST[$quote_value_key]))
+        );
+    }
+  }
+  $datas = array(
+      'quote_lang'  => $new_data
+    );
+}
+global $user;
+$template->assign('MODULE_QUOTE_DATA', $datas['quote_lang']);
+$template->assign('MODULE_QUOTE_LANGUAGES', $available_languages);
+$template->set_filenames(array(
+    'module_options' => dirname(__FILE__) . '/config.tpl')
+  );
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Citation/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Citation/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Citation/config.tpl	(revision 9736)
@@ -0,0 +1,17 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
+{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+<table>
+    <tr>
+        <td align="center" colspan="2"><b>{'module_Citation_lang'|@translate}</b></td>
+        <td align="center"><b>{'module_Citation_code'|@translate}</b></td>
+    </tr>
+{foreach from=$MODULE_QUOTE_LANGUAGES item=language key=language_key}
+    <tr>
+        <td align="right">{$language}</td>
+        <td>&nbsp;</td>
+        <td><textarea cols="50" rows="2" name="quote_config_{$language_key}" id="quote_config_{$language_key}" class="description" style="height: 2em">{$MODULE_QUOTE_DATA[$language_key]}</textarea></td>
+    </tr>
+{/foreach}
+</table>
+<br>
Index: /extensions/PWG_Stuffs/trunk/modules/Citation/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Citation/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Citation/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php,v 1.2 2009/07/07 10:02:11 Criss Exp $
+// | last update   : $Date: 2009/07/07 10:02:11 $
+// | last modifier : $Author: Criss $
+// | revision      : $Revision: 1.2 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Citation/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Citation/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Citation/main.inc.php	(revision 9736)
@@ -0,0 +1,12 @@
+<?php
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $user;
+
+if ((isset($datas['quote_lang'][$user['language']])) and
+  ("" != $datas['quote_lang'][$user['language']]))
+{
+  $block['CONTENT'] = $datas['quote_lang'][$user['language']];
+  $block['TEMPLATE'] = 'stuffs_citation.tpl';
+}
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/FeaturedPhotos/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/FeaturedPhotos/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/FeaturedPhotos/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/FeaturedPhotos/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/FeaturedPhotos/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/FeaturedPhotos/main.inc.php	(revision 9736)
@@ -0,0 +1,137 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $page, $user, $conf, $template;
+
+$forbidden = get_sql_condition_FandF
+  (
+    array
+      (
+        'forbidden_categories' => 'ic.category_id',
+        'visible_categories' => 'ic.category_id',
+        'visible_images' => 'i.id'
+      ),
+    'AND'
+  );
+  
+$query ='
+SELECT DISTINCT(i.id)
+  FROM '.IMAGES_TABLE.' AS i
+    INNER JOIN '.FAVORITES_TABLE.' AS f       ON f.image_id = i.id
+    INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id = ic.image_id
+    INNER JOIN '.CATEGORIES_TABLE.' AS c      ON ic.category_id = c.id
+      WHERE f.user_id = '.$conf['webmaster_id'].'
+       '.$forbidden.';';
+
+$pictures = array();
+$selection = array_from_query($query, 'id');
+
+if (count($selection) > 0)
+{
+  $rank_of = array_flip($selection);
+
+  $query = '
+SELECT *
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $selection).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $row['rank'] = $rank_of[ $row['id'] ];
+
+    array_push($pictures, $row);
+  }
+
+  usort($pictures, 'rank_compare');
+  unset($rank_of);
+}
+
+if (count($pictures) > 0)
+{
+  if ($user['show_nb_comments'])
+  {
+    $query = '
+SELECT image_id, COUNT(*) AS nb_comments
+  FROM '.COMMENTS_TABLE.'
+  WHERE validated = \'true\'
+    AND image_id IN ('.implode(',', $selection).')
+  GROUP BY image_id
+;';
+    $nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
+  }
+
+  // template thumbnail initialization
+  trigger_action('loc_begin_index_thumbnails', $pictures);
+  $block['thumbnails'] = array();
+
+  foreach ($pictures as $row)
+  {
+    // link on picture.php page
+    $url = duplicate_picture_url(
+          array(
+            'image_id' => $row['id'],
+            'image_file' => $row['file']
+          ),
+          array('start')
+        );
+    $url = add_url_params($url, array('pwgs_ra' => implode(',',$selection)));
+
+    $tpl_var =
+      array(
+        'ID'        => $row['id'],
+        'TN_SRC'    => get_thumbnail_url($row),
+        'TN_ALT'    => $row['file'],
+        'TN_TITLE'  => get_thumbnail_title($row),
+        'ICON_TS'   => get_icon($row['date_available']),
+        'URL'       => $url,
+
+     /* Fields for template-extension usage */
+        'FILE_PATH' => $row['path'],
+        'FILE_POSTED' => $row['date_available'],
+        'FILE_CREATED' => $row['date_creation'],
+        'FILE_DESC' => $row['comment'],
+        'FILE_AUTHOR' => $row['author'],
+        'FILE_HIT' => $row['hit'],
+        'FILE_SIZE' => $row['filesize'],
+        'FILE_WIDTH' => $row['width'],
+        'FILE_HEIGHT' => $row['height'],
+        'FILE_METADATE' => $row['date_metadata_update'],
+        'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
+                  true:false, /* lack of include/functions_picture.inc.php */
+      );
+
+    if ($user['show_nb_hits'])
+    {
+      $tpl_var['NB_HITS'] = $row['hit'];
+    }
+
+    if ($conf['show_thumbnail_caption'])
+    {// name of the picture
+      if (isset($row['name']) and $row['name'] != '')
+      {
+        $name = $row['name'];
+      }
+      else
+      {
+        $name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
+      }
+
+      $tpl_var['NAME'] = $name;
+    }
+
+    if ( isset($nb_comments_of) )
+    {
+      $tpl_var['NB_COMMENTS'] = (int)@$nb_comments_of[$row['id']];
+    }
+
+    $block['thumbnails'][] = $tpl_var;
+  }
+
+  $block['thumbnails'] = trigger_event('loc_end_index_thumbnails', $block['thumbnails'], $pictures);
+
+  $block['TEMPLATE'] = 'stuffs_thumbnails.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/LastComs/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/LastComs/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/LastComs/config.inc.php	(revision 9736)
@@ -0,0 +1,47 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (!isset($datas)) $datas = array(5, 'on', 'default', '', '');
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  if (empty($_POST['nb_comments']))
+  {
+    array_push($page['errors'], l10n('lastcoms_no_nb_comments'));
+  }
+  else
+  {
+    if (!isset($_POST['show_admin_buttons']))
+    {
+      $_POST['show_admin_buttons'] = 'off';
+    }
+    $datas = array(
+      $_POST['nb_comments'],
+      $_POST['show_admin_buttons'],
+      $_POST['nb_cadres'],
+      $_POST['width'],
+      $_POST['height']
+      );
+  }
+}
+
+// Parametrage du template
+$template->assign('nb_cadres', array(
+  'OPTIONS' => array('default' => 'default', 1 => 1, 2 => 2, 3 => 3),
+  'SELECTED' => $datas[2]));
+
+$template->assign(array(
+  'NB_COMMENTS' => $datas[0],
+  'WIDTH'       => $datas[3],
+  'HEIGHT'      => $datas[4]
+));
+if ($datas[1] == 'on')
+{
+  $template->assign(array('SHOW_ADMIN_BUTTONS' => 'checked="checked"'));
+}
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/LastComs/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/LastComs/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/LastComs/config.tpl	(revision 9736)
@@ -0,0 +1,29 @@
+<table>
+	<tr>
+		<td align="right"><br>{'lastcoms_nb_comments'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+		<input type="text" size="3" maxlength="2" value="{$NB_COMMENTS}" name="nb_comments"/></td>
+	</tr>
+	<tr>
+		<td align="right"><br>{'lastcoms_show_buttons'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+		<input type="checkbox" name="show_admin_buttons" value="on" {$SHOW_ADMIN_BUTTONS}/></td>
+	</tr>
+  <tr>
+		<td align="right"><br>{'lastcoms_nb_cadres'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+    {html_options name=nb_cadres options=$nb_cadres.OPTIONS selected=$nb_cadres.SELECTED}
+    </td>
+	</tr>
+  <tr>
+		<td align="right"><br>{'lastcoms_dim'|@translate} : &nbsp;&nbsp; {'lastcoms_width'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+		<input type="text" size="3" maxlength="3" value="{$WIDTH}" name="width"/>&nbsp;px</td>
+	</tr>
+	<tr>
+		<td align="right">{'lastcoms_height'|@translate} &nbsp;&nbsp;</td>
+		<td>
+		<input type="text" size="3" maxlength="3" value="{$HEIGHT}" name="height"/>&nbsp;px</td>
+	</tr>
+</table>
+<br>
Index: /extensions/PWG_Stuffs/trunk/modules/LastComs/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/LastComs/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/LastComs/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/LastComs/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/LastComs/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/LastComs/main.inc.php	(revision 9736)
@@ -0,0 +1,184 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+global $user, $conf;
+
+// +-----------------------------------------------------------------------+
+// |                         comments management                           |
+// +-----------------------------------------------------------------------+
+// comments deletion
+if (isset($_GET['delete']) and is_numeric($_GET['delete']) and is_admin() and !is_adviser())
+{
+    check_status(ACCESS_ADMINISTRATOR);
+    check_pwg_token();
+    $query = '
+DELETE FROM ' . COMMENTS_TABLE . '
+  WHERE id=' . $_GET['delete'] . '
+;';
+    pwg_query($query);
+}
+
+// comments validation
+if (isset($_GET['validate']) and is_numeric($_GET['validate']) and is_admin() and !is_adviser())
+{
+    check_status(ACCESS_ADMINISTRATOR);
+    check_pwg_token();
+    $query = '
+UPDATE ' . COMMENTS_TABLE . '
+  SET validated = \'true\'
+  , validation_date = NOW()
+  WHERE id=' . $_GET['validate'] . '
+;';
+    pwg_query($query);
+}
+
+// +-----------------------------------------------------------------------+
+// |                        last comments display                          |
+// +-----------------------------------------------------------------------+
+$comments = array();
+$element_ids = array();
+$category_ids = array();
+$max_width = 0;
+if (!is_admin())
+{
+  $clauses[] = 'validated="true"';
+}
+$clauses[] = get_sql_condition_FandF (
+    array ('forbidden_categories' => 'category_id',
+        'visible_categories' => 'category_id',
+        'visible_images' => 'ic.image_id'), '', true);
+
+$query = 'SELECT com.id AS comment_id
+   , com.image_id
+   , ic.category_id
+   , com.author
+   , com.date
+   , com.content
+   , com.id AS comment_id
+   , com.validated
+   FROM ' . IMAGE_CATEGORY_TABLE . ' AS ic
+   INNER JOIN ' . COMMENTS_TABLE . ' AS com
+   ON ic.image_id = com.image_id
+   WHERE ' . implode(' AND ', $clauses) . '
+    GROUP BY comment_id
+    ORDER BY date DESC
+    LIMIT 0, ' . $datas[0] . ';';
+
+$result = pwg_query($query);
+while ($row = mysql_fetch_assoc($result))
+{
+  array_push($comments, $row);
+  array_push($element_ids, $row['image_id']);
+  array_push($category_ids, $row['category_id']);
+}
+
+if (count($comments) > 0)
+{
+  $block['TITLE_URL'] = 'comments.php';
+  $block['comments'] = array();
+
+  // retrieving element informations
+  $elements = array();
+  $query = '
+SELECT id, name, file, path, tn_ext
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $element_ids).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $elements[$row['id']] = $row;
+  }
+
+  // retrieving category informations
+  $query = '
+SELECT id, name, permalink, uppercats
+  FROM '.CATEGORIES_TABLE.'
+  WHERE id IN ('.implode(',', $category_ids).')
+;';
+  $categories = hash_from_query($query, 'id');
+
+  foreach ($comments as $comment)
+  {
+    if (!empty($elements[$comment['image_id']]['name']))
+    {
+      $name=$elements[$comment['image_id']]['name'];
+    }
+    else
+    {
+      $name=get_name_from_file($elements[$comment['image_id']]['file']);
+    }
+
+    // source of the thumbnail picture
+    $thumbnail_src = get_thumbnail_url( $elements[$comment['image_id']] );
+
+    // link to the full size picture
+    $url = make_picture_url(
+            array(
+              'category' => $categories[ $comment['category_id'] ],
+              'image_id' => $comment['image_id'],
+              'image_file' => $elements[$comment['image_id']]['file'],
+            )
+          );
+
+    $author = $comment['author'];
+    if (empty($comment['author']))
+    {
+      $author = l10n('guest');
+    }
+
+    $tpl_comment =
+      array(
+        'U_PICTURE' => $url,
+        'TN_SRC' => $thumbnail_src,
+        'ALT' => $name,
+        'AUTHOR' => trigger_event('render_comment_author', $author),
+        'DATE' => format_date($comment['date'],'mysql_datetime',true),
+        'CONTENT' => trigger_event('render_comment_content',$comment['content']),
+        'WIDTH' => $datas[3],
+        'HEIGHT' => $datas[4],
+        );
+
+    switch ($datas[2])
+    {
+      case 1 :
+        $tpl_comment['CLASS'] = 'one_comment';
+        break;
+      case 2 :
+        $tpl_comment['CLASS'] = 'two_comment';
+        break;
+      case 3 :
+        $tpl_comment['CLASS'] = 'three_comment';
+        break;
+    }
+
+    if ( is_admin() )
+    {
+      $url = get_root_url().'index.php'.get_query_string_diff(array('delete','validate'));
+      $tpl_comment['U_DELETE'] = add_url_params($url, array(
+            'delete' => $comment['comment_id'],
+            'pwg_token' => get_pwg_token()));
+
+            if ($comment['validated'] != 'true')
+      {
+        $tpl_comment['U_VALIDATE'] = add_url_params($url, array(
+            'validate' => $comment['comment_id'],
+            'pwg_token' => get_pwg_token()));
+      }
+    }
+
+    // Show comment editor link
+    if (defined('CE_PATH') and ((!is_a_guest() and ($user[$conf['user_fields']['username']] == $author)) or is_admin()))
+    {
+      load_language('plugin.lang', CE_PATH);
+      $tpl_comment['U_EDIT'] = add_url_params(get_root_url() . 'index.php', array(
+            CE_ACTION => CE_ACTION_EDIT,
+            CE_ID => $comment['comment_id'],
+            'pwg_token' => get_pwg_token()));
+    }
+    array_push($block['comments'], $tpl_comment);
+  }
+  $block['TEMPLATE'] = 'stuffs_lastcoms.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Logon/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Logon/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Logon/config.inc.php	(revision 9736)
@@ -0,0 +1,23 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+unset($template->_tpldata['user_perm.'], $template->_tpldata['group_perm.']);
+$_POST['users'] = array('guest');
+
+if (!isset($datas)) $datas = array('0');
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser()) {
+  if (!isset($_POST['remove_menubar_block'])) $_POST['remove_menubar_block']  = '0';
+    $datas = array($_POST['remove_menubar_block']);
+}
+
+// Parametrage du template
+if ($datas[0] == '1') $template->assign(array('REMOVE_MENUBAR_BLOCK' => 'checked="checked"'));
+
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Logon/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Logon/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Logon/config.tpl	(revision 9736)
@@ -0,0 +1,1 @@
+<p><input type="checkbox" name="remove_menubar_block" value="1" {$REMOVE_MENUBAR_BLOCK}/> &nbsp; {'logon_remove_menubar_block'|@translate}</p><br>
Index: /extensions/PWG_Stuffs/trunk/modules/Logon/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Logon/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Logon/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Logon/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Logon/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Logon/main.inc.php	(revision 9736)
@@ -0,0 +1,35 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+if (!is_a_guest()) return;
+
+global $conf;
+
+// template initialization
+$block = array_merge($block, 
+  array(
+    'U_LOST_PASSWORD' => get_root_url().'password.php',
+    'F_LOGIN_ACTION' => get_root_url().'identification.php',
+    'authorize_remembering' => $conf['authorize_remembering'],
+    ));
+
+if ($conf['allow_user_registration'])
+{
+  $block['U_REGISTER'] = get_root_url().'register.php';
+}
+
+// Retirer le bloc identification rapide du menubar
+if ($datas[0] == '1')
+{
+  add_event_handler('blockmanager_apply', 'stuffs_hide_identification');
+  function stuffs_hide_identification($menu_ref_arr)
+  {
+    $menu = & $menu_ref_arr[0];
+    $menu->hide_block('mbIdentification');
+  }
+}
+
+$block['TEMPLATE'] = 'stuffs_logon.tpl';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/MostVisited/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/MostVisited/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/MostVisited/config.inc.php	(revision 9736)
@@ -0,0 +1,41 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (!isset($datas))
+{
+  $datas = array(
+    'nb_images'     => 5,
+    'cat_display'   => 'all',
+    'cat_selection' => array(),
+  );
+}
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  $datas = array(
+    'nb_images' => intval($_POST['nb_images']),
+    'cat_display' => $_POST['cat_display'],
+    'cat_selection' => @$_POST['cat_selection'],
+    );
+  unset($_POST['on_picture']);
+}
+
+// Parametrage du template
+$query = 'SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE.';';
+display_select_cat_wrapper($query,array(),'category_selection');
+
+$template->assign(array(
+  'NB_IMAGES' => $datas['nb_images'],
+  'cat_display' => $datas['cat_display'],
+  'category_selected' => $datas['cat_selection'],
+  )
+);
+
+$display_options = & $template->get_template_vars('display_options');
+$display_options['on_picture'] = false;
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/MostVisited/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/MostVisited/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/MostVisited/config.tpl	(revision 9736)
@@ -0,0 +1,86 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
+{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+
+<table>
+	<tr>
+		<td align="right"><br>{'stuffs_mv_nb_images'|@translate} &nbsp;&nbsp;</td>
+		<td><br><input type="text" name="nb_images" size="3" maxlength="2" value="{$NB_IMAGES}"></td>
+	</tr>
+	<tr class="cat_options" style="display: none;">
+		<td align="right"><br>{'stuffs_mv_category_display'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+      <select name="cat_display">
+        <option label="{'stuffs_mv_all_cats'|@translate}" value="all" {if $cat_display == 'all'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_all_cats'|@translate}</option>
+        <option label="{'stuffs_mv_wo_thumb'|@translate}" value="wo_thumb" {if $cat_display == 'wo_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_wo_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_w_thumb'|@translate}" value="w_thumb" {if $cat_display == 'w_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_w_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_selected_cats'|@translate}" value="selected_cats" {if $cat_display == 'selected_cats'}selected="selected"{/if} onClick="javascript: show_cat_list();">{'stuffs_mv_selected_cats'|@translate}</option>
+      </select>
+    </td>
+	</tr>
+	<tr class="cat_selection" style="display: none;">
+		<td align="right">
+      <br>{'stuffs_mv_cat_selection'|@translate} &nbsp;&nbsp;
+      <br>({'stuffs_mv_hold_ctrl'|@translate}) &nbsp;&nbsp;</td>
+		<td><br>
+		  <select class="categoryList" name="cat_selection[]" multiple="multiple" size="30">
+        {html_options options=$category_selection selected=$category_selected}
+      </select></td>
+	</tr>
+</table>
+<br>
+
+{literal}
+<script type="text/javascript">
+resize = false;
+function show_cat_list()
+{
+  jQuery('.cat_selection').show();
+  if (!resize)
+  {
+    resize = true;
+    jQuery('.categoryList').resizable({
+      handles: "all",
+      animate: true,
+      animateDuration: "slow",
+      animateEasing: "swing",
+      preventDefault: true,
+      preserveCursor: true,
+      autoHide: true,
+      ghost: true
+    });
+  }
+}
+
+function hide_cat_list()
+{
+  jQuery('.cat_selection').hide();
+}
+
+jQuery().ready( function () {
+  jQuery("input[name='on_cats']").click( function() {
+    if (this.checked)
+    {
+      jQuery('.cat_options').show();
+      if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+        show_cat_list();
+    }
+    else
+    {
+      jQuery('.cat_options').hide();
+      hide_cat_list();
+    }
+  });
+});
+
+if (document.getElementsByName("on_cats")[0].checked)
+{
+  jQuery('.cat_options').show();
+  if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+  {
+    show_cat_list();
+  }
+}
+</script>
+{/literal}
+
Index: /extensions/PWG_Stuffs/trunk/modules/MostVisited/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/MostVisited/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/MostVisited/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/MostVisited/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/MostVisited/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/MostVisited/main.inc.php	(revision 9736)
@@ -0,0 +1,161 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $page, $user, $conf, $template, $pwg_event_handlers, $yop;
+
+if (script_basename() == 'picture'
+  or ($datas['cat_display'] == 'wo_thumb' and !empty($page['items']))
+  or ($datas['cat_display'] == 'w_thumb' and empty($page['items']) and isset($page['category']))
+  or ($datas['cat_display'] == 'selected_cats' and isset($page['category']) and !in_array($page['category']['id'], $datas['cat_selection'])))
+{
+  return false;
+}
+
+$forbidden = get_sql_condition_FandF
+  (
+    array
+      (
+        'forbidden_categories' => 'ic.category_id',
+        'visible_categories' => 'ic.category_id',
+        'visible_images' => 'i.id'
+      ),
+    'AND'
+  );
+
+$query = '
+  SELECT DISTINCT (i.id)
+    FROM '.IMAGES_TABLE.' as i
+      INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id = ic.image_id
+      INNER JOIN '.CATEGORIES_TABLE.' AS c ON ic.category_id = c.id
+    WHERE i.hit > 0';
+
+if (isset($page['category']))
+{
+  $query .= '
+        AND ( c.uppercats LIKE \''.$page['category']['uppercats'].',%\' OR c.id = '.$page['category']['id'].' )
+  ';
+}
+
+$query .= '
+      '.$forbidden.'
+      ORDER BY i.hit DESC, i.file ASC
+    LIMIT 0, '.$datas['nb_images'].'
+  ;';
+
+$pictures = array();
+$selection = array_from_query($query, 'id');
+ 
+if (count($selection) > 0)
+{
+  $rank_of = array_flip($selection);
+
+  $query = '
+SELECT *
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $selection).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $row['rank'] = $rank_of[ $row['id'] ];
+
+    array_push($pictures, $row);
+  }
+
+  usort($pictures, 'rank_compare');
+  unset($rank_of);
+}
+
+if (count($pictures) > 0)
+{
+  if ($user['show_nb_comments'])
+  {
+    $query = '
+SELECT image_id, COUNT(*) AS nb_comments
+  FROM '.COMMENTS_TABLE.'
+  WHERE validated = \'true\'
+    AND image_id IN ('.implode(',', $selection).')
+  GROUP BY image_id
+;';
+    $nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
+  }
+
+  // template thumbnail initialization
+  trigger_action('loc_begin_index_thumbnails', $pictures);
+  $block['thumbnails'] = array();
+
+  foreach ($pictures as $row)
+  {
+    // link on picture.php page
+    $url = duplicate_picture_url(
+          array(
+            'image_id' => $row['id'],
+            'image_file' => $row['file']
+          ),
+          array('start')
+        );
+    $url = add_url_params($url, array('pwgs_mv' => implode(',',$selection)));
+
+    $tpl_var =
+      array(
+        'ID'        => $row['id'],
+        'TN_SRC'    => get_thumbnail_url($row),
+        'TN_ALT'    => $row['file'],
+        'TN_TITLE'  => get_thumbnail_title($row),
+        'ICON_TS'   => get_icon($row['date_available']),
+        'URL'       => $url,
+
+     /* Fields for template-extension usage */
+        'FILE_PATH' => $row['path'],
+        'FILE_POSTED' => $row['date_available'],
+        'FILE_CREATED' => $row['date_creation'],
+        'FILE_DESC' => $row['comment'],
+        'FILE_AUTHOR' => $row['author'],
+        'FILE_HIT' => $row['hit'],
+        'FILE_SIZE' => $row['filesize'],
+        'FILE_WIDTH' => $row['width'],
+        'FILE_HEIGHT' => $row['height'],
+        'FILE_METADATE' => $row['date_metadata_update'],
+        'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
+                  true:false, /* lack of include/functions_picture.inc.php */
+      );
+
+    if ($user['show_nb_hits'])
+    {
+      $tpl_var['NB_HITS'] = $row['hit'];
+    }
+
+    if ($conf['show_thumbnail_caption'])
+    {// name of the picture
+      if (isset($row['name']) and $row['name'] != '')
+      {
+        $name = $row['name'];
+      }
+      else
+      {
+        $name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
+      }
+
+      if ( !$user['show_nb_hits'])
+      {
+        $name = '('.$row['hit'].') '.$name;
+      }
+
+      $tpl_var['NAME'] = $name;
+    }
+
+    if ( isset($nb_comments_of) )
+    {
+      $tpl_var['NB_COMMENTS'] = (int)@$nb_comments_of[$row['id']];
+    }
+
+    $block['thumbnails'][] = $tpl_var;
+  }
+
+  $block['thumbnails'] = trigger_event('loc_end_index_thumbnails', $block['thumbnails'], $pictures);
+
+  $block['TEMPLATE'] = 'stuffs_thumbnails.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Personal/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Personal/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Personal/config.inc.php	(revision 9736)
@@ -0,0 +1,19 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+if (!isset($datas)) $datas = '';
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser()) {
+  $datas = stripslashes($_POST['personal_content']);
+}
+
+// Parametrage du template
+$template->assign('cat_style', array());
+$template->assign(array('PERSONAL_CONTENT' => $datas));
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Personal/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Personal/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Personal/config.tpl	(revision 9736)
@@ -0,0 +1,7 @@
+<div style="text-align:center;">
+<br>
+<b>{'personal_content'|@translate}</b>
+<br>
+<textarea name="personal_content" id ="textarea" rows="10" cols="50" style="width:90%;">{$PERSONAL_CONTENT}</textarea>
+</div>
+<br>
Index: /extensions/PWG_Stuffs/trunk/modules/Personal/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Personal/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Personal/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Personal/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Personal/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Personal/main.inc.php	(revision 9736)
@@ -0,0 +1,19 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+$block['CONTENT'] = $datas;
+
+// Extended description
+if (function_exists('get_extended_desc'))
+{
+  $block['CONTENT'] = get_extended_desc($block['CONTENT']);
+}
+else
+{
+  $block['CONTENT'] = get_user_language_desc($block['CONTENT']);
+}
+
+$block['TEMPLATE'] = 'stuffs_personal.tpl';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Random/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Random/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Random/config.inc.php	(revision 9736)
@@ -0,0 +1,41 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (!isset($datas))
+{
+  $datas = array(
+    'nb_images'     => 10,
+    'cat_display'   => 'all',
+    'cat_selection' => array(),
+  );
+}
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  $datas = array(
+    'nb_images' => intval($_POST['nb_images']),
+    'cat_display' => $_POST['cat_display'],
+    'cat_selection' => @$_POST['cat_selection'],
+    );
+  unset($_POST['on_picture']);
+}
+
+// Parametrage du template
+$query = 'SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE.';';
+display_select_cat_wrapper($query,array(),'category_selection');
+
+$template->assign(array(
+  'NB_IMAGES' => $datas['nb_images'],
+  'cat_display' => $datas['cat_display'],
+  'category_selected' => $datas['cat_selection'],
+  )
+);
+
+$display_options = & $template->get_template_vars('display_options');
+$display_options['on_picture'] = false;
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Random/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Random/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Random/config.tpl	(revision 9736)
@@ -0,0 +1,86 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
+{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+
+<table>
+	<tr>
+		<td align="right"><br>{'stuffs_mv_nb_images'|@translate} &nbsp;&nbsp;</td>
+		<td><br><input type="text" name="nb_images" size="3" maxlength="2" value="{$NB_IMAGES}"></td>
+	</tr>
+	<tr class="cat_options" style="display: none;">
+		<td align="right"><br>{'stuffs_mv_category_display'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+      <select name="cat_display">
+        <option label="{'stuffs_mv_all_cats'|@translate}" value="all" {if $cat_display == 'all'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_all_cats'|@translate}</option>
+        <option label="{'stuffs_mv_wo_thumb'|@translate}" value="wo_thumb" {if $cat_display == 'wo_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_wo_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_w_thumb'|@translate}" value="w_thumb" {if $cat_display == 'w_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_w_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_selected_cats'|@translate}" value="selected_cats" {if $cat_display == 'selected_cats'}selected="selected"{/if} onClick="javascript: show_cat_list();">{'stuffs_mv_selected_cats'|@translate}</option>
+      </select>
+    </td>
+	</tr>
+	<tr class="cat_selection" style="display: none;">
+		<td align="right">
+      <br>{'stuffs_mv_cat_selection'|@translate} &nbsp;&nbsp;
+      <br>({'stuffs_mv_hold_ctrl'|@translate}) &nbsp;&nbsp;</td>
+		<td><br>
+		  <select class="categoryList" name="cat_selection[]" multiple="multiple" size="30">
+        {html_options options=$category_selection selected=$category_selected}
+      </select></td>
+	</tr>
+</table>
+<br>
+
+{literal}
+<script type="text/javascript">
+resize = false;
+function show_cat_list()
+{
+  jQuery('.cat_selection').show();
+  if (!resize)
+  {
+    resize = true;
+    jQuery('.categoryList').resizable({
+      handles: "all",
+      animate: true,
+      animateDuration: "slow",
+      animateEasing: "swing",
+      preventDefault: true,
+      preserveCursor: true,
+      autoHide: true,
+      ghost: true
+    });
+  }
+}
+
+function hide_cat_list()
+{
+  jQuery('.cat_selection').hide();
+}
+
+jQuery().ready( function () {
+  jQuery("input[name='on_cats']").click( function() {
+    if (this.checked)
+    {
+      jQuery('.cat_options').show();
+      if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+        show_cat_list();
+    }
+    else
+    {
+      jQuery('.cat_options').hide();
+      hide_cat_list();
+    }
+  });
+});
+
+if (document.getElementsByName("on_cats")[0].checked)
+{
+  jQuery('.cat_options').show();
+  if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+  {
+    show_cat_list();
+  }
+}
+</script>
+{/literal}
+
Index: /extensions/PWG_Stuffs/trunk/modules/Random/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Random/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Random/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Random/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Random/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Random/main.inc.php	(revision 9736)
@@ -0,0 +1,155 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $page, $user, $conf, $template;
+
+if (script_basename() == 'picture'
+  or ($datas['cat_display'] == 'wo_thumb' and !empty($page['items']))
+  or ($datas['cat_display'] == 'w_thumb' and empty($page['items']) and isset($page['category']))
+  or ($datas['cat_display'] == 'selected_cats' and isset($page['category']) and !in_array($page['category']['id'], $datas['cat_selection'])))
+{
+  return false;
+}
+
+$forbidden = get_sql_condition_FandF
+  (
+    array
+      (
+        'forbidden_categories' => 'ic.category_id',
+        'visible_categories' => 'ic.category_id',
+        'visible_images' => 'i.id'
+      ),
+    'WHERE'
+  );
+
+$query ='
+SELECT DISTINCT(i.id)
+  FROM '.IMAGES_TABLE.' AS i
+    INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id = ic.image_id
+    INNER JOIN '.CATEGORIES_TABLE.' AS c ON ic.category_id = c.id
+    '.$forbidden;
+
+if (isset($page['category']))
+{
+  $query .= '
+        AND ( c.uppercats LIKE \''.$page['category']['uppercats'].',%\' OR c.id = '.$page['category']['id'].' )
+  ';
+}
+
+$query .= '
+    ORDER BY RAND(NOW())
+    LIMIT 0, '.$datas['nb_images'].'
+  ;';
+
+$pictures = array();
+$selection = array_from_query($query, 'id');
+ 
+if (count($selection) > 0)
+{
+  $rank_of = array_flip($selection);
+
+  $query = '
+SELECT *
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $selection).')
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    $row['rank'] = $rank_of[ $row['id'] ];
+
+    array_push($pictures, $row);
+  }
+
+  usort($pictures, 'rank_compare');
+  unset($rank_of);
+}
+
+if (count($pictures) > 0)
+{
+  if ($user['show_nb_comments'])
+  {
+    $query = '
+SELECT image_id, COUNT(*) AS nb_comments
+  FROM '.COMMENTS_TABLE.'
+  WHERE validated = \'true\'
+    AND image_id IN ('.implode(',', $selection).')
+  GROUP BY image_id
+;';
+    $nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
+  }
+
+  // template thumbnail initialization
+  trigger_action('loc_begin_index_thumbnails', $pictures);
+  $block['thumbnails'] = array();
+
+  foreach ($pictures as $row)
+  {
+    // link on picture.php page
+    $url = duplicate_picture_url(
+          array(
+            'image_id' => $row['id'],
+            'image_file' => $row['file']
+          ),
+          array('start')
+        );
+    $url = add_url_params($url, array('pwgs_ra' => implode(',',$selection)));
+
+    $tpl_var =
+      array(
+        'ID'        => $row['id'],
+        'TN_SRC'    => get_thumbnail_url($row),
+        'TN_ALT'    => $row['file'],
+        'TN_TITLE'  => get_thumbnail_title($row),
+        'ICON_TS'   => get_icon($row['date_available']),
+        'URL'       => $url,
+
+     /* Fields for template-extension usage */
+        'FILE_PATH' => $row['path'],
+        'FILE_POSTED' => $row['date_available'],
+        'FILE_CREATED' => $row['date_creation'],
+        'FILE_DESC' => $row['comment'],
+        'FILE_AUTHOR' => $row['author'],
+        'FILE_HIT' => $row['hit'],
+        'FILE_SIZE' => $row['filesize'],
+        'FILE_WIDTH' => $row['width'],
+        'FILE_HEIGHT' => $row['height'],
+        'FILE_METADATE' => $row['date_metadata_update'],
+        'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
+                  true:false, /* lack of include/functions_picture.inc.php */
+      );
+
+    if ($user['show_nb_hits'])
+    {
+      $tpl_var['NB_HITS'] = $row['hit'];
+    }
+
+    if ($conf['show_thumbnail_caption'])
+    {// name of the picture
+      if (isset($row['name']) and $row['name'] != '')
+      {
+        $name = $row['name'];
+      }
+      else
+      {
+        $name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
+      }
+
+      $tpl_var['NAME'] = $name;
+    }
+
+    if ( isset($nb_comments_of) )
+    {
+      $tpl_var['NB_COMMENTS'] = (int)@$nb_comments_of[$row['id']];
+    }
+
+    $block['thumbnails'][] = $tpl_var;
+  }
+
+  $block['thumbnails'] = trigger_event('loc_end_index_thumbnails', $block['thumbnails'], $pictures);
+
+  $block['TEMPLATE'] = 'stuffs_thumbnails.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Recent/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Recent/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Recent/config.inc.php	(revision 9736)
@@ -0,0 +1,41 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (!isset($datas))
+{
+  $datas = array(
+    'nb_images'     => 10,
+    'cat_display'   => 'all',
+    'cat_selection' => array(),
+  );
+}
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  $datas = array(
+    'nb_images' => intval($_POST['nb_images']),
+    'cat_display' => $_POST['cat_display'],
+    'cat_selection' => @$_POST['cat_selection'],
+    );
+  unset($_POST['on_picture']);
+}
+
+// Parametrage du template
+$query = 'SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE.';';
+display_select_cat_wrapper($query,array(),'category_selection');
+
+$template->assign(array(
+  'NB_IMAGES' => $datas['nb_images'],
+  'cat_display' => $datas['cat_display'],
+  'category_selected' => $datas['cat_selection'],
+  )
+);
+
+$display_options = & $template->get_template_vars('display_options');
+$display_options['on_picture'] = false;
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Recent/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Recent/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Recent/config.tpl	(revision 9736)
@@ -0,0 +1,86 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
+{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+
+<table>
+	<tr>
+		<td align="right"><br>{'stuffs_mv_nb_images'|@translate} &nbsp;&nbsp;</td>
+		<td><br><input type="text" name="nb_images" size="3" maxlength="2" value="{$NB_IMAGES}"></td>
+	</tr>
+	<tr class="cat_options" style="display: none;">
+		<td align="right"><br>{'stuffs_mv_category_display'|@translate} &nbsp;&nbsp;</td>
+		<td><br>
+      <select name="cat_display">
+        <option label="{'stuffs_mv_all_cats'|@translate}" value="all" {if $cat_display == 'all'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_all_cats'|@translate}</option>
+        <option label="{'stuffs_mv_wo_thumb'|@translate}" value="wo_thumb" {if $cat_display == 'wo_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_wo_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_w_thumb'|@translate}" value="w_thumb" {if $cat_display == 'w_thumb'}selected="selected"{/if} onClick="javascript: hide_cat_list();">{'stuffs_mv_w_thumb'|@translate}</option>
+        <option label="{'stuffs_mv_selected_cats'|@translate}" value="selected_cats" {if $cat_display == 'selected_cats'}selected="selected"{/if} onClick="javascript: show_cat_list();">{'stuffs_mv_selected_cats'|@translate}</option>
+      </select>
+    </td>
+	</tr>
+	<tr class="cat_selection" style="display: none;">
+		<td align="right">
+      <br>{'stuffs_mv_cat_selection'|@translate} &nbsp;&nbsp;
+      <br>({'stuffs_mv_hold_ctrl'|@translate}) &nbsp;&nbsp;</td>
+		<td><br>
+		  <select class="categoryList" name="cat_selection[]" multiple="multiple" size="30">
+        {html_options options=$category_selection selected=$category_selected}
+      </select></td>
+	</tr>
+</table>
+<br>
+
+{literal}
+<script type="text/javascript">
+resize = false;
+function show_cat_list()
+{
+  jQuery('.cat_selection').show();
+  if (!resize)
+  {
+    resize = true;
+    jQuery('.categoryList').resizable({
+      handles: "all",
+      animate: true,
+      animateDuration: "slow",
+      animateEasing: "swing",
+      preventDefault: true,
+      preserveCursor: true,
+      autoHide: true,
+      ghost: true
+    });
+  }
+}
+
+function hide_cat_list()
+{
+  jQuery('.cat_selection').hide();
+}
+
+jQuery().ready( function () {
+  jQuery("input[name='on_cats']").click( function() {
+    if (this.checked)
+    {
+      jQuery('.cat_options').show();
+      if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+        show_cat_list();
+    }
+    else
+    {
+      jQuery('.cat_options').hide();
+      hide_cat_list();
+    }
+  });
+});
+
+if (document.getElementsByName("on_cats")[0].checked)
+{
+  jQuery('.cat_options').show();
+  if (jQuery("select[name='cat_display']").val() == 'selected_cats')
+  {
+    show_cat_list();
+  }
+}
+</script>
+{/literal}
+
Index: /extensions/PWG_Stuffs/trunk/modules/Recent/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Recent/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Recent/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Recent/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Recent/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Recent/main.inc.php	(revision 9736)
@@ -0,0 +1,151 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $page, $user, $conf, $template;
+
+if (script_basename() == 'picture'
+  or ($datas['cat_display'] == 'wo_thumb' and !empty($page['items']))
+  or ($datas['cat_display'] == 'w_thumb' and empty($page['items']) and isset($page['category']))
+  or ($datas['cat_display'] == 'selected_cats' and isset($page['category']) and !in_array($page['category']['id'], $datas['cat_selection'])))
+{
+  return false;
+}
+
+$forbidden = get_sql_condition_FandF
+  (
+    array
+      (
+        'forbidden_categories' => 'ic.category_id',
+        'visible_categories' => 'ic.category_id',
+        'visible_images' => 'i.id'
+      ),
+    'AND'
+  );
+
+$query ='
+SELECT DISTINCT(i.id)
+  FROM '.IMAGES_TABLE.' AS i
+    INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id = ic.image_id
+    INNER JOIN '.CATEGORIES_TABLE.' AS c ON ic.category_id = c.id
+  WHERE i.date_available >= SUBDATE(
+      CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY)';
+
+if (isset($page['category']))
+{
+  $query .= '
+        AND ( c.uppercats LIKE \''.$page['category']['uppercats'].',%\' OR c.id = '.$page['category']['id'].' )
+  ';
+}
+
+$query .= '
+    '.$forbidden.'
+    ORDER BY i.id DESC
+    LIMIT 0, '.$datas['nb_images'].'
+  ;';
+
+$pictures = array();
+$selection = array_from_query($query, 'id');
+ 
+if (count($selection) > 0)
+{
+  $query = '
+SELECT *
+  FROM '.IMAGES_TABLE.'
+  WHERE id IN ('.implode(',', $selection).')
+  ORDER BY id DESC
+;';
+  $result = pwg_query($query);
+  while ($row = mysql_fetch_assoc($result))
+  {
+    array_push($pictures, $row);
+  }
+}
+
+if (count($pictures) > 0)
+{
+  if ($user['show_nb_comments'])
+  {
+    $query = '
+SELECT image_id, COUNT(*) AS nb_comments
+  FROM '.COMMENTS_TABLE.'
+  WHERE validated = \'true\'
+    AND image_id IN ('.implode(',', $selection).')
+  GROUP BY image_id
+;';
+    $nb_comments_of = simple_hash_from_query($query, 'image_id', 'nb_comments');
+  }
+
+  // template thumbnail initialization
+  trigger_action('loc_begin_index_thumbnails', $pictures);
+  $block['thumbnails'] = array();
+
+  foreach ($pictures as $row)
+  {
+    // link on picture.php page
+    $url = duplicate_picture_url(
+          array(
+            'image_id' => $row['id'],
+            'image_file' => $row['file']
+          ),
+          array('start')
+        );
+    $url = add_url_params($url, array('pwgs_re' => implode(',',$selection)));
+
+    $tpl_var =
+      array(
+        'ID'        => $row['id'],
+        'TN_SRC'    => get_thumbnail_url($row),
+        'TN_ALT'    => $row['file'],
+        'TN_TITLE'  => get_thumbnail_title($row),
+        'ICON_TS'   => get_icon($row['date_available']),
+        'URL'       => $url,
+
+     /* Fields for template-extension usage */
+        'FILE_PATH' => $row['path'],
+        'FILE_POSTED' => $row['date_available'],
+        'FILE_CREATED' => $row['date_creation'],
+        'FILE_DESC' => $row['comment'],
+        'FILE_AUTHOR' => $row['author'],
+        'FILE_HIT' => $row['hit'],
+        'FILE_SIZE' => $row['filesize'],
+        'FILE_WIDTH' => $row['width'],
+        'FILE_HEIGHT' => $row['height'],
+        'FILE_METADATE' => $row['date_metadata_update'],
+        'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
+                  true:false, /* lack of include/functions_picture.inc.php */
+      );
+
+    if ($user['show_nb_hits'])
+    {
+      $tpl_var['NB_HITS'] = $row['hit'];
+    }
+
+    if ($conf['show_thumbnail_caption'])
+    {// name of the picture
+      if (isset($row['name']) and $row['name'] != '')
+      {
+        $name = $row['name'];
+      }
+      else
+      {
+        $name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
+      }
+
+      $tpl_var['NAME'] = $name;
+    }
+
+    if ( isset($nb_comments_of) )
+    {
+      $tpl_var['NB_COMMENTS'] = (int)@$nb_comments_of[$row['id']];
+    }
+
+    $block['thumbnails'][] = $tpl_var;
+  }
+
+  $block['thumbnails'] = trigger_event('loc_end_index_thumbnails', $block['thumbnails'], $pictures);
+
+  $block['TEMPLATE'] = 'stuffs_thumbnails.tpl';
+}
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Tags/config.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Tags/config.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Tags/config.inc.php	(revision 9736)
@@ -0,0 +1,17 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+if (empty($datas)) $datas = array('cloud');
+
+// Enregistrement de la configuration
+if (isset($_POST['submit']) and !is_adviser())
+{
+  $datas = array($_POST['tag_display']);
+}
+
+$template->assign($datas[0].'_CHECKED', 'checked="checked"');
+
+$template->set_filenames(array('module_options' => dirname(__FILE__) . '/config.tpl'));
+$template->assign_var_from_handle('MODULE_OPTIONS', 'module_options');
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Tags/config.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Tags/config.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Tags/config.tpl	(revision 9736)
@@ -0,0 +1,13 @@
+<table>
+  <tr>
+    <td>{'stuffs_tags_default_display'|@translate} :</td>
+    <td>&nbsp;&nbsp;<input type="radio" name="tag_display" value="cloud" {$cloud_CHECKED}>&nbsp;&nbsp;<i>{'stuffs_tags_cloud'|@translate}</i></td>
+  </tr>
+  <tr><td></td>
+    <td>&nbsp;&nbsp;<input type="radio" name="tag_display" value="letters" {$letters_CHECKED}>&nbsp;&nbsp;<i>{'stuffs_tags_letters'|@translate}</i></td>
+  </tr>
+  <tr><td></td>
+    <td>&nbsp;&nbsp;<input type="radio" name="tag_display" value="cumulus" {$cumulus_CHECKED}>&nbsp;&nbsp;<i>{'stuffs_tags_cumulus'|@translate}</i></td>
+  </tr>
+  <tr><td colspan="2"><br></td></tr>
+</table>
Index: /extensions/PWG_Stuffs/trunk/modules/Tags/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Tags/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Tags/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/Tags/main.inc.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/Tags/main.inc.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/Tags/main.inc.php	(revision 9736)
@@ -0,0 +1,152 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $conf, $template;
+
+function counter_compare($a, $b)
+{
+  if ($a['counter'] == $b['counter'])
+  {
+    return id_compare($a, $b);
+  }
+
+  return ($a['counter'] < $b['counter']) ? +1 : -1;
+}
+
+function id_compare($a, $b)
+{
+  return ($a['id'] < $b['id']) ? -1 : 1;
+}
+
+$pwgCumulus_installed = get_db_plugins('active','pwgCumulus');
+
+$block['TITLE_URL'] = 'tags.php';
+
+$tags = get_available_tags();
+
+if ((!$pwgCumulus_installed and $datas[0] == 'cumulus') or empty($datas[0]))
+{
+  $datas[0] = 'cloud';
+}
+
+if ($datas[0] == 'letters')
+{
+  // we want tags diplayed in alphabetic order
+  usort($tags, 'tag_alpha_compare');
+
+  $current_letter = null;
+  $nb_tags = count($tags);
+  $current_column = 1;
+  $current_tag_idx = 0;
+
+  $letter = array(
+    'tags' => array()
+    );
+
+  foreach ($tags as $tag)
+  {
+    $tag_letter = strtoupper(substr($tag['url_name'], 0, 1));
+
+    if ($current_tag_idx==0) {
+      $current_letter = $tag_letter;
+      $letter['TITLE'] = $tag_letter;
+    }
+
+    //lettre precedente differente de la lettre suivante
+    if ($tag_letter !== $current_letter)
+    {
+      if ($current_column<$conf['tag_letters_column_number']
+          and $current_tag_idx > $current_column*$nb_tags/$conf['tag_letters_column_number'] )
+      {
+        $letter['CHANGE_COLUMN'] = true;
+        $current_column++;
+      }
+
+      $letter['TITLE'] = $current_letter;
+
+      $template->append(
+        'letters',
+        $letter
+        );
+
+      $current_letter = $tag_letter;
+      $letter = array(
+        'tags' => array()
+        );
+    }
+
+    array_push(
+      $letter['tags'],
+      array_merge(
+        $tag,
+        array(
+          'URL' => make_index_url(
+            array(
+              'tags' => array($tag),
+              )
+            ),
+          )
+        )
+      );
+
+    $current_tag_idx++;
+  }
+
+  // flush last letter
+  if (count($letter['tags']) > 0)
+  {
+    unset($letter['CHANGE_COLUMN']);
+    $letter['TITLE'] = $current_letter;
+    $template->append(
+      'letters',
+      $letter
+      );
+  }
+}
+else
+{
+  usort($tags, 'counter_compare');
+  $tags = array_slice($tags, 0, $conf['full_tag_cloud_items_number']);
+
+  // depending on its counter and the other tags counter, each tag has a level
+  $tags = add_level_to_tags($tags);
+
+  // we want tags diplayed in alphabetic order
+  usort($tags, 'tag_alpha_compare');
+
+  // display sorted tags
+  foreach ($tags as $tag)
+  {
+    $template->append(
+      'tags',
+      array_merge(
+        $tag,
+        array(
+          'URL' => make_index_url(
+            array(
+              'tags' => array($tag),
+              )
+            ),
+          )
+        )
+      );
+  }
+  if ($datas[0] == 'cumulus')
+  {
+    include_once PWG_CUMULUS_PLUGIN_ROOT . "/include/pwgCumulusContent.class.php";
+    $cumulus = new pwgCumulusContent(get_plugin_data('pwgCumulus'));
+    $cumulus->loc_begin_page_header();
+  }
+}
+
+$template->assign('display_mode', $datas[0]);
+
+if (get_db_plugins('active','typetags'))
+{
+  include(typetags_PATH . 'typetags.php');
+}
+
+$block['TEMPLATE'] = 'stuffs_tags.tpl';
+
+?>
Index: /extensions/PWG_Stuffs/trunk/modules/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/modules/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/modules/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/theme/index.php
===================================================================
--- /extensions/PWG_Stuffs/trunk/theme/index.php	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/theme/index.php	(revision 9736)
@@ -0,0 +1,33 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery                           |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | file          : $Id: index.php 1912 2007-03-16 06:30:07Z rub $
+// | last update   : $Date: 2007-03-16 07:30:07 +0100 (ven, 16 mar 2007) $
+// | last modifier : $Author: rub $
+// | revision      : $Revision: 1912 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/PWG_Stuffs/trunk/theme/stuffs_index.css
===================================================================
--- /extensions/PWG_Stuffs/trunk/theme/stuffs_index.css	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/theme/stuffs_index.css	(revision 9736)
@@ -0,0 +1,64 @@
+.content {
+  min-height: 0;
+}
+
+.stuffs_block {
+  background-color: transparent;
+  background-image: none;
+  border: none;
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+.stuffs {
+  margin: 0 0 1em;
+  overflow: hidden;
+}
+
+.right_block {
+  float: right;
+  margin: 0 0 0 1em;
+}
+
+.left_block {
+  float: left;
+  margin: 0 1em 0 0;
+}
+
+.middle_block {
+  overflow: hidden;
+  margin: auto;
+}
+
+.personal_block {
+  padding: 15px;
+}
+
+.quote_block {
+  padding: 15px;
+  text-align: center;
+}
+
+.one_comment {
+  width: 99% !important;
+}
+
+.two_comment {
+  width: 49.5% !important;
+}
+
+.three_comment {
+  width: 33% !important;
+}
+
+#comments div.thumbnailCategory div.illustration {
+  width: auto !important;
+  padding-right: 15px;
+}
+
+#comments div.thumbnailCategory blockquote {
+  margin-left: 10px;
+}
+
+/* Hack IE6 */
+* html  .stuffs, * html .middle_block { overflow-y: visible; }
Index: /extensions/PWG_Stuffs/trunk/theme/stuffs_picture.css
===================================================================
--- /extensions/PWG_Stuffs/trunk/theme/stuffs_picture.css	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/theme/stuffs_picture.css	(revision 9736)
@@ -0,0 +1,58 @@
+.content {
+  min-height: 0;
+}
+
+.stuffs_block {
+  background-color: transparent;
+  background-image: none;
+  border: none;
+  margin: 0;
+}
+
+.stuffs {
+  margin: 1em 0;
+  overflow: hidden;
+}
+
+.right_block {
+  float: right;
+  margin: 0 0 0 1em;
+}
+
+.left_block {
+  float: left;
+  margin: 0 1em 0 0;
+}
+
+.middle_block {
+  overflow: hidden;
+  margin: auto;
+}
+
+.personal_block {
+  padding: 15px;
+}
+
+.one_comment {
+  width: 99% !important;
+}
+
+.two_comment {
+  width: 49.5% !important;
+}
+
+.three_comment {
+  width: 33% !important;
+}
+
+#comments div.thumbnailCategory div.illustration {
+  width: auto !important;
+  padding-right: 15px;
+}
+
+#comments div.thumbnailCategory blockquote {
+  margin-left: 10px;
+}
+
+/* Hack IE6 */
+* html  .stuffs, * html .middle_block { overflow-y: visible; }
Index: /extensions/PWG_Stuffs/trunk/theme/template/stuffs_blocks.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/theme/template/stuffs_blocks.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/theme/template/stuffs_blocks.tpl	(revision 9736)
@@ -0,0 +1,27 @@
+<div class="content stuffs_block">
+{foreach from=$blocks item=block key=key}
+  {if $block.new_line}
+  <div class="content stuffs_block stuffs">
+  {/if}
+    <div id="stuffs_block_{$block.ID}" class="content {$block.CLASS}" {if !empty($block.WIDTH)}style="width: {$block.WIDTH}%;"{/if}>
+    {if isset($block.TITLE)}
+      <div class="titrePage">
+        {if !empty($block.U_EDIT)}
+        <ul class="categoryActions">
+          <li><a href="{$block.U_EDIT}" title="{'edit'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_edit.png" class="button" alt="{'edit'|@translate}"/></a></li>
+        </ul>
+        {/if}
+      {if isset($block.TITLE_URL)}
+      <h2><a href="{$block.TITLE_URL}">{$block.TITLE}</a></h2>
+      {else}
+      <h2>{$block.TITLE}</h2>
+      {/if}
+      </div>
+    {/if}
+    {include file=$block.TEMPLATE}
+    </div>
+  {if $block.end_line}
+  </div>
+  {/if}
+{/foreach}
+</div>
Index: /extensions/PWG_Stuffs/trunk/theme/template/stuffs_lastcoms.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/theme/template/stuffs_lastcoms.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/theme/template/stuffs_lastcoms.tpl	(revision 9736)
@@ -0,0 +1,44 @@
+<div id="comments">
+<ul class="thumbnailCategories">
+{foreach from=$block.comments item=comment}
+<li {if isset($comment.CLASS)}class="{$comment.CLASS}"{/if}>
+	<div class="thumbnailCategory">
+    {if isset($comment.TN_SRC)}
+    <div class="illustration">
+      <a href="{$comment.U_PICTURE}">
+        <img src="{$comment.TN_SRC}" alt="{$comment.ALT}"
+          style="{if !empty($comment.WIDTH)}max-width: {$comment.WIDTH}px; {/if}{if !empty($comment.HEIGHT)}max-height: {$comment.HEIGHT}px; {/if}"/>
+      </a>
+    </div>
+    {/if}
+    <div class="description">
+      {if isset($comment.U_DELETE) or isset($comment.U_VALIDATE) }
+      <ul class="actions" style="float:right">
+        {if !empty($comment.U_DELETE)}
+        <li>
+          <a href="{$comment.U_DELETE}" title="{'delete this comment'|@translate}">
+            <img src="{$ROOT_URL}{$themeconf.icon_dir}/delete.png" class="button" alt="[delete]" />
+          </a>
+        </li>
+        {/if}
+        {if !empty($comment.U_VALIDATE)}
+        <li>
+          <a href="{$comment.U_VALIDATE}" title="validate this comment">
+            <img src="{$ROOT_URL}{$themeconf.icon_dir}/validate_s.png" class="button" alt="[validate]" />
+          </a>
+        </li>
+        {/if}
+      </ul>
+      {/if}
+      <span class="author">{$comment.AUTHOR}</span> - <span class="date">{$comment.DATE}</span>
+      {if !empty($comment.U_EDIT)}- <a href="{$comment.U_EDIT}">{'ce_edit_tool'|@translate}</a>{/if}
+      <blockquote>{$comment.CONTENT}</blockquote>
+    </div>
+  </div>
+</li>
+{if isset($comment_separator)}
+<hr/>
+{/if}
+{/foreach}
+</ul>
+</div>
Index: /extensions/PWG_Stuffs/trunk/theme/template/stuffs_logon.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/theme/template/stuffs_logon.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/theme/template/stuffs_logon.tpl	(revision 9736)
@@ -0,0 +1,42 @@
+<div class="logon_block">
+<form action="{$block.F_LOGIN_ACTION}" method="post" name="login_form" class="properties">
+  <fieldset>
+    <legend>{'Connection settings'|@translate}</legend>
+
+    <ul>
+      <li>
+        <span class="property">
+          <label for="username">{'Username'|@translate}</label>
+        </span>
+        <input tabindex="1" class="login" type="text" name="username" id="username" size="25" maxlength="40" />
+      </li>
+
+      <li>
+        <span class="property">
+          <label for="password">{'Password'|@translate}</label>
+        </span>
+        <input tabindex="2" class="login" type="password" name="password" id="password" size="25" maxlength="25" />
+      </li>
+
+      {if $block.authorize_remembering }
+      <li>
+        <span class="property">
+          <label for="remember_me">{'Auto login'|@translate}</label>
+        </span>
+        <input tabindex="3" type="checkbox" name="remember_me" id="remember_me" value="1">
+      </li>
+      {/if}
+    </ul>
+  </fieldset>
+
+  <p><input class="submit" tabindex="4" type="submit" name="login" value="{'Submit'|@translate}"></p>
+
+  <p>
+    {if isset($block.U_REGISTER) }
+    <a href="{$block.U_REGISTER}" title="{'Create a new account'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/register.png" class="button" alt="{'Register'|@translate}"> {'Register'|@translate}</a>
+    {/if}
+    <a href="{$block.U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/lost_password.png" class="button" alt="{'Forgot your password?'|@translate}"> {'Forgot your password?'|@translate}</a>
+  </p>
+
+</form>
+</div>
Index: /extensions/PWG_Stuffs/trunk/theme/template/stuffs_personal.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/theme/template/stuffs_personal.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/theme/template/stuffs_personal.tpl	(revision 9736)
@@ -0,0 +1,3 @@
+<div class="personal_block">
+{$block.CONTENT}
+</div>
Index: /extensions/PWG_Stuffs/trunk/theme/template/stuffs_tags.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/theme/template/stuffs_tags.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/theme/template/stuffs_tags.tpl	(revision 9736)
@@ -0,0 +1,49 @@
+{if $display_mode == 'cloud'}
+<div id="fullTagCloud">
+	{foreach from=$tags item=tag}
+	<span><a href="{$tag.URL}" class="tagLevel{$tag.level}" title="{$tag.counter}">{$tag.name}</a></span>
+	{/foreach}
+</div>
+
+{elseif $display_mode == 'letters'}
+<table>
+  <tr>
+    <td valign="top">
+  {foreach from=$letters item=letter}
+<fieldset class="tagLetter">
+  <legend class="tagLetterLegend">{$letter.TITLE}</legend>
+  <table class="tagLetterContent">
+    {foreach from=$letter.tags item=tag}
+    <tr class="tagLine">
+      <td><a href="{$tag.URL}">{$tag.name}</a></td>
+      <td class="nbEntries">{$pwg->l10n_dec('%d element', '%d elements', $tag.counter)}</td>
+    </tr>
+    {/foreach}
+  </table>
+</fieldset>
+    {if isset($letter.CHANGE_COLUMN) }
+    </td>
+    <td valign="top">
+    {/if}
+  {/foreach}
+    </td>
+  </tr>
+</table>
+
+{elseif $display_mode == 'cumulus'}
+<div id="flashcontent">This will be shown to users with no Flash or Javascript.</div>
+
+  <script type="text/javascript">
+    var so = new SWFObject("{$PWG_CUMULUS_SWF}/tagcloud.swf", "tagcloud", "100%", "{$PWG_CUMULUS_HEIGHT}", "7", "#FFFFFF");
+    so.addParam("wmode", "transparent");
+    so.addVariable("tcolor", "{$PWG_CUMULUS_COLOR1}");
+    so.addVariable("tcolor2", "{$PWG_CUMULUS_COLOR2}");
+    so.addVariable("hicolor", "{$PWG_CUMULUS_HICOLOR}");
+    so.addVariable("mode", "tags");
+    so.addVariable("distr", "true");
+    so.addVariable("tspeed", "100");
+    so.addVariable("tagcloud", 
+    "<tags>{foreach from=$tags item=tag}<a href='{$tag.URL}' style='{$tag.size}pt'>{$tag.display_name}</a>{/foreach}</tags>");
+    so.write("flashcontent");
+  </script>
+{/if}
Index: /extensions/PWG_Stuffs/trunk/theme/template/stuffs_thumbnails.tpl
===================================================================
--- /extensions/PWG_Stuffs/trunk/theme/template/stuffs_thumbnails.tpl	(revision 9736)
+++ /extensions/PWG_Stuffs/trunk/theme/template/stuffs_thumbnails.tpl	(revision 9736)
@@ -0,0 +1,2 @@
+{assign var='thumbnails' value=$block.thumbnails}
+{include file='thumbnails.tpl'|@get_extent:'index_thumbnails'}
