aboutsummaryrefslogtreecommitdiffstats
path: root/admin/themes
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2010-03-13 00:00:52 +0000
committerplegall <plg@piwigo.org>2010-03-13 00:00:52 +0000
commit14778ce673277f2df41f963aa70df1cbed427294 (patch)
tree8c723d4d9827876dbf19d2bd581405fc50910860 /admin/themes
parentc396f08708d431c6f7e8656eaca4fd8e440fdd39 (diff)
feature 1502: based on Dotclear model, P@t has reorganized the way Piwigo
manages template/theme in a simpler "theme only level" architecture. It supports multiple level inheritance. git-svn-id: http://piwigo.org/svn/trunk@5123 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'admin/themes')
-rw-r--r--admin/themes/clear/icon/cat_move.pngbin0 -> 515 bytes
-rw-r--r--admin/themes/clear/icon/category_children.pngbin0 -> 1554 bytes
-rw-r--r--admin/themes/clear/icon/category_delete.pngbin0 -> 1752 bytes
-rw-r--r--admin/themes/clear/icon/category_edit.pngbin0 -> 1606 bytes
-rw-r--r--admin/themes/clear/icon/category_elements.pngbin0 -> 1681 bytes
-rw-r--r--admin/themes/clear/icon/category_jump-to.pngbin0 -> 1604 bytes
-rw-r--r--admin/themes/clear/icon/category_permissions.pngbin0 -> 1839 bytes
-rw-r--r--admin/themes/clear/icon/category_representant_random.pngbin0 -> 3171 bytes
-rw-r--r--admin/themes/clear/icon/check.pngbin0 -> 367 bytes
-rw-r--r--admin/themes/clear/icon/collapse.gifbin0 -> 878 bytes
-rw-r--r--admin/themes/clear/icon/datepicker.pngbin0 -> 475 bytes
-rw-r--r--admin/themes/clear/icon/delete.pngbin0 -> 778 bytes
-rw-r--r--admin/themes/clear/icon/edit_s.pngbin0 -> 585 bytes
-rw-r--r--admin/themes/clear/icon/errors.pngbin0 -> 3249 bytes
-rw-r--r--admin/themes/clear/icon/exit.pngbin0 -> 1432 bytes
-rw-r--r--admin/themes/clear/icon/expand.gifbin0 -> 900 bytes
-rw-r--r--admin/themes/clear/icon/help.pngbin0 -> 1994 bytes
-rw-r--r--admin/themes/clear/icon/index.php30
-rw-r--r--admin/themes/clear/icon/infos.pngbin0 -> 2250 bytes
-rw-r--r--admin/themes/clear/icon/note.pngbin0 -> 1862 bytes
-rw-r--r--admin/themes/clear/icon/page_end.pngbin0 -> 536 bytes
-rw-r--r--admin/themes/clear/icon/page_top.pngbin0 -> 555 bytes
-rw-r--r--admin/themes/clear/icon/permissions.pngbin0 -> 373 bytes
-rw-r--r--admin/themes/clear/icon/plug_activate.pngbin0 -> 410 bytes
-rw-r--r--admin/themes/clear/icon/plug_activate_grey.pngbin0 -> 364 bytes
-rw-r--r--admin/themes/clear/icon/plug_deactivate.pngbin0 -> 441 bytes
-rw-r--r--admin/themes/clear/icon/plug_deactivate_grey.pngbin0 -> 371 bytes
-rw-r--r--admin/themes/clear/icon/plug_delete.pngbin0 -> 386 bytes
-rw-r--r--admin/themes/clear/icon/plug_delete_grey.pngbin0 -> 386 bytes
-rw-r--r--admin/themes/clear/icon/plug_install.pngbin0 -> 386 bytes
-rw-r--r--admin/themes/clear/icon/plug_install_grey.pngbin0 -> 344 bytes
-rw-r--r--admin/themes/clear/icon/plug_uninstall.pngbin0 -> 406 bytes
-rw-r--r--admin/themes/clear/icon/plug_uninstall_grey.pngbin0 -> 363 bytes
-rw-r--r--admin/themes/clear/icon/plugin_active.gifbin0 -> 135 bytes
-rw-r--r--admin/themes/clear/icon/plugin_inactive.gifbin0 -> 134 bytes
-rw-r--r--admin/themes/clear/icon/preferences.pngbin0 -> 714 bytes
-rw-r--r--admin/themes/clear/icon/ranks.pngbin0 -> 423 bytes
-rw-r--r--admin/themes/clear/icon/ranks_grey.pngbin0 -> 421 bytes
-rw-r--r--admin/themes/clear/icon/sync_metadata.pngbin0 -> 1530 bytes
-rw-r--r--admin/themes/clear/icon/sync_metadata_pink.pngbin0 -> 1639 bytes
-rw-r--r--admin/themes/clear/icon/toggle_is_default_group.pngbin0 -> 624 bytes
-rw-r--r--admin/themes/clear/icon/uncheck.pngbin0 -> 213 bytes
-rw-r--r--admin/themes/clear/icon/validate_s.pngbin0 -> 315 bytes
-rw-r--r--admin/themes/clear/icon/virt_category.pngbin0 -> 796 bytes
-rw-r--r--admin/themes/clear/images/external_active.pngbin0 -> 571 bytes
-rw-r--r--admin/themes/clear/images/external_inactive.pngbin0 -> 578 bytes
-rw-r--r--admin/themes/clear/images/piwigo_logo_214x100.pngbin0 -> 12154 bytes
-rw-r--r--admin/themes/clear/images/quickLocalSync.pngbin0 -> 8084 bytes
-rw-r--r--admin/themes/clear/images/resizable-e.gifbin0 -> 928 bytes
-rw-r--r--admin/themes/clear/images/resizable-n.gifbin0 -> 905 bytes
-rw-r--r--admin/themes/clear/images/resizable-ne.gifbin0 -> 871 bytes
-rw-r--r--admin/themes/clear/images/resizable-nw.gifbin0 -> 869 bytes
-rw-r--r--admin/themes/clear/images/resizable-s.gifbin0 -> 902 bytes
-rw-r--r--admin/themes/clear/images/resizable-se.gifbin0 -> 869 bytes
-rw-r--r--admin/themes/clear/images/resizable-sw.gifbin0 -> 870 bytes
-rw-r--r--admin/themes/clear/images/resizable-w.gifbin0 -> 912 bytes
-rw-r--r--admin/themes/clear/images/transparent.gifbin0 -> 43 bytes
-rw-r--r--admin/themes/clear/index.php54
-rw-r--r--admin/themes/clear/mail-css.tpl19
-rw-r--r--admin/themes/clear/theme.css196
-rw-r--r--admin/themes/clear/themeconf.inc.php12
-rw-r--r--admin/themes/default/content.css26
-rw-r--r--admin/themes/default/default-colors.css85
-rw-r--r--admin/themes/default/default-layout.css738
-rw-r--r--admin/themes/default/fix-ie5-ie6.css35
-rw-r--r--admin/themes/default/icon/cat_move.pngbin0 -> 581 bytes
-rw-r--r--admin/themes/default/icon/category_children.pngbin0 -> 962 bytes
-rw-r--r--admin/themes/default/icon/category_delete.pngbin0 -> 960 bytes
-rw-r--r--admin/themes/default/icon/category_edit.pngbin0 -> 1312 bytes
-rw-r--r--admin/themes/default/icon/category_elements.pngbin0 -> 1044 bytes
-rw-r--r--admin/themes/default/icon/category_jump-to.pngbin0 -> 942 bytes
-rw-r--r--admin/themes/default/icon/category_permissions.pngbin0 -> 960 bytes
-rw-r--r--admin/themes/default/icon/category_representant_random.pngbin0 -> 1575 bytes
-rw-r--r--admin/themes/default/icon/check.pngbin0 -> 510 bytes
-rw-r--r--admin/themes/default/icon/datepicker.pngbin0 -> 517 bytes
-rw-r--r--admin/themes/default/icon/delete.pngbin0 -> 425 bytes
-rw-r--r--admin/themes/default/icon/edit_s.pngbin0 -> 817 bytes
-rw-r--r--admin/themes/default/icon/errors.pngbin0 -> 1224 bytes
-rw-r--r--admin/themes/default/icon/exit.pngbin0 -> 816 bytes
-rw-r--r--admin/themes/default/icon/fcbkcomplete_close.gifbin0 -> 90 bytes
-rw-r--r--admin/themes/default/icon/help.pngbin0 -> 774 bytes
-rw-r--r--admin/themes/default/icon/home.pngbin0 -> 726 bytes
-rw-r--r--admin/themes/default/icon/index.php30
-rw-r--r--admin/themes/default/icon/infos.pngbin0 -> 701 bytes
-rw-r--r--admin/themes/default/icon/note.pngbin0 -> 1332 bytes
-rw-r--r--admin/themes/default/icon/page_end.pngbin0 -> 777 bytes
-rw-r--r--admin/themes/default/icon/page_top.pngbin0 -> 482 bytes
-rw-r--r--admin/themes/default/icon/permissions.pngbin0 -> 421 bytes
-rw-r--r--admin/themes/default/icon/plug_activate.pngbin0 -> 432 bytes
-rw-r--r--admin/themes/default/icon/plug_activate_grey.pngbin0 -> 388 bytes
-rw-r--r--admin/themes/default/icon/plug_deactivate.pngbin0 -> 475 bytes
-rw-r--r--admin/themes/default/icon/plug_deactivate_grey.pngbin0 -> 399 bytes
-rw-r--r--admin/themes/default/icon/plug_delete.pngbin0 -> 425 bytes
-rw-r--r--admin/themes/default/icon/plug_delete_grey.pngbin0 -> 436 bytes
-rw-r--r--admin/themes/default/icon/plug_install.pngbin0 -> 417 bytes
-rw-r--r--admin/themes/default/icon/plug_install_grey.pngbin0 -> 376 bytes
-rw-r--r--admin/themes/default/icon/plug_uninstall.pngbin0 -> 429 bytes
-rw-r--r--admin/themes/default/icon/plug_uninstall_grey.pngbin0 -> 387 bytes
-rw-r--r--admin/themes/default/icon/plugin_active.gifbin0 -> 108 bytes
-rw-r--r--admin/themes/default/icon/plugin_inactive.gifbin0 -> 107 bytes
-rw-r--r--admin/themes/default/icon/preferences.pngbin0 -> 768 bytes
-rw-r--r--admin/themes/default/icon/ranks.pngbin0 -> 772 bytes
-rw-r--r--admin/themes/default/icon/ranks_grey.pngbin0 -> 762 bytes
-rw-r--r--admin/themes/default/icon/sync_metadata.pngbin0 -> 1877 bytes
-rw-r--r--admin/themes/default/icon/sync_metadata_pink.pngbin0 -> 1949 bytes
-rw-r--r--admin/themes/default/icon/toggle_is_default_group.pngbin0 -> 664 bytes
-rw-r--r--admin/themes/default/icon/uncheck.pngbin0 -> 303 bytes
-rw-r--r--admin/themes/default/icon/validate_s.pngbin0 -> 492 bytes
-rw-r--r--admin/themes/default/icon/virt_category.pngbin0 -> 1094 bytes
-rw-r--r--admin/themes/default/index.php30
-rw-r--r--admin/themes/default/layout.css12
-rw-r--r--admin/themes/default/local-layout.css1
-rw-r--r--admin/themes/default/local_head.tpl3
-rw-r--r--admin/themes/default/menubar.css1
-rw-r--r--admin/themes/default/picture.css122
-rw-r--r--admin/themes/default/print.css14
-rw-r--r--admin/themes/default/template/admin.tpl118
-rw-r--r--admin/themes/default/template/advanced_feature.tpl9
-rw-r--r--admin/themes/default/template/cat_list.tpl93
-rw-r--r--admin/themes/default/template/cat_modify.tpl232
-rw-r--r--admin/themes/default/template/cat_move.tpl36
-rw-r--r--admin/themes/default/template/cat_options.tpl11
-rw-r--r--admin/themes/default/template/cat_perm.tpl64
-rw-r--r--admin/themes/default/template/check_integrity.tpl83
-rw-r--r--admin/themes/default/template/comments.tpl31
-rw-r--r--admin/themes/default/template/configuration.tpl209
-rw-r--r--admin/themes/default/template/double_select.tpl22
-rw-r--r--admin/themes/default/template/element_set_global.tpl211
-rw-r--r--admin/themes/default/template/element_set_ranks.tpl50
-rw-r--r--admin/themes/default/template/element_set_unit.tpl109
-rw-r--r--admin/themes/default/template/extend_for_templates.tpl37
-rw-r--r--admin/themes/default/template/footer.tpl58
-rw-r--r--admin/themes/default/template/group_list.tpl42
-rw-r--r--admin/themes/default/template/group_perm.tpl8
-rw-r--r--admin/themes/default/template/header.tpl77
-rw-r--r--admin/themes/default/template/history.tpl135
-rw-r--r--admin/themes/default/template/include/autosize.inc.tpl13
-rw-r--r--admin/themes/default/template/include/datepicker.inc.tpl24
-rw-r--r--admin/themes/default/template/include/dbselect.inc.tpl22
-rw-r--r--admin/themes/default/template/include/install.inc.tpl19
-rw-r--r--admin/themes/default/template/include/resize.inc.tpl22
-rw-r--r--admin/themes/default/template/install.tpl211
-rw-r--r--admin/themes/default/template/intro.tpl79
-rw-r--r--admin/themes/default/template/maintenance.tpl22
-rw-r--r--admin/themes/default/template/menubar.tpl53
-rw-r--r--admin/themes/default/template/navigation_bar.tpl28
-rw-r--r--admin/themes/default/template/notification_by_mail.tpl121
-rw-r--r--admin/themes/default/template/permalinks.tpl66
-rw-r--r--admin/themes/default/template/photos_add_direct.tpl185
-rw-r--r--admin/themes/default/template/photos_add_settings.tpl74
-rw-r--r--admin/themes/default/template/picture_modify.tpl226
-rw-r--r--admin/themes/default/template/plugins_list.tpl88
-rw-r--r--admin/themes/default/template/plugins_new.tpl47
-rw-r--r--admin/themes/default/template/plugins_update.tpl79
-rw-r--r--admin/themes/default/template/popuphelp.tpl12
-rw-r--r--admin/themes/default/template/profile.tpl5
-rw-r--r--admin/themes/default/template/profile_content.tpl108
-rw-r--r--admin/themes/default/template/rating.tpl67
-rw-r--r--admin/themes/default/template/site_manager.tpl73
-rw-r--r--admin/themes/default/template/site_update.tpl116
-rw-r--r--admin/themes/default/template/stats.tpl25
-rw-r--r--admin/themes/default/template/tabsheet.tpl9
-rw-r--r--admin/themes/default/template/tags.tpl53
-rw-r--r--admin/themes/default/template/thumbnail.tpl119
-rw-r--r--admin/themes/default/template/upgrade.tpl120
-rw-r--r--admin/themes/default/template/upload.tpl51
-rw-r--r--admin/themes/default/template/user_list.tpl334
-rw-r--r--admin/themes/default/template/user_perm.tpl22
-rw-r--r--admin/themes/default/theme.css10
-rw-r--r--admin/themes/default/themeconf.inc.php8
-rw-r--r--admin/themes/default/thumbnails.css61
-rw-r--r--admin/themes/roma/images/active_tab.pngbin0 -> 2696 bytes
-rw-r--r--admin/themes/roma/images/active_tab2.pngbin0 -> 658 bytes
-rw-r--r--admin/themes/roma/images/active_tab3.pngbin0 -> 106 bytes
-rw-r--r--admin/themes/roma/images/bottom-left-bg.jpgbin0 -> 9014 bytes
-rw-r--r--admin/themes/roma/images/external_active.pngbin0 -> 598 bytes
-rw-r--r--admin/themes/roma/images/external_inactive.pngbin0 -> 578 bytes
-rw-r--r--admin/themes/roma/images/fillet.pngbin0 -> 153 bytes
-rw-r--r--admin/themes/roma/images/header_msgs-bg.gifbin0 -> 44 bytes
-rw-r--r--admin/themes/roma/images/inactive_tab.pngbin0 -> 2248 bytes
-rw-r--r--admin/themes/roma/images/inactive_tab2.pngbin0 -> 589 bytes
-rw-r--r--admin/themes/roma/images/inactive_tab3.pngbin0 -> 109 bytes
-rw-r--r--admin/themes/roma/images/menuBoxBottom_new.pngbin0 -> 1310 bytes
-rw-r--r--admin/themes/roma/images/menuBoxTop_new.pngbin0 -> 1653 bytes
-rw-r--r--admin/themes/roma/images/menubar-detail.pngbin0 -> 226 bytes
-rw-r--r--admin/themes/roma/images/menubar-top.pngbin0 -> 1532 bytes
-rw-r--r--admin/themes/roma/images/piwigo_logo_sombre_214x100.pngbin0 -> 12154 bytes
-rw-r--r--admin/themes/roma/images/quickLocalSync_hover.pngbin0 -> 34102 bytes
-rw-r--r--admin/themes/roma/images/quickLocalSync_inactiv.pngbin0 -> 17397 bytes
-rw-r--r--admin/themes/roma/images/resizable-e.gifbin0 -> 218 bytes
-rw-r--r--admin/themes/roma/images/resizable-n.gifbin0 -> 198 bytes
-rw-r--r--admin/themes/roma/images/resizable-ne.gifbin0 -> 280 bytes
-rw-r--r--admin/themes/roma/images/resizable-nw.gifbin0 -> 278 bytes
-rw-r--r--admin/themes/roma/images/resizable-s.gifbin0 -> 196 bytes
-rw-r--r--admin/themes/roma/images/resizable-se.gifbin0 -> 278 bytes
-rw-r--r--admin/themes/roma/images/resizable-sw.gifbin0 -> 279 bytes
-rw-r--r--admin/themes/roma/images/resizable-w.gifbin0 -> 211 bytes
-rw-r--r--admin/themes/roma/images/top-left-bg.jpgbin0 -> 17092 bytes
-rw-r--r--admin/themes/roma/images/transparent.gifbin0 -> 43 bytes
-rw-r--r--admin/themes/roma/index.php30
-rw-r--r--admin/themes/roma/mail-css.tpl18
-rw-r--r--admin/themes/roma/theme.css219
-rw-r--r--admin/themes/roma/themeconf.inc.php11
203 files changed, 5893 insertions, 0 deletions
diff --git a/admin/themes/clear/icon/cat_move.png b/admin/themes/clear/icon/cat_move.png
new file mode 100644
index 000000000..5788ab439
--- /dev/null
+++ b/admin/themes/clear/icon/cat_move.png
Binary files differ
diff --git a/admin/themes/clear/icon/category_children.png b/admin/themes/clear/icon/category_children.png
new file mode 100644
index 000000000..7205c3f61
--- /dev/null
+++ b/admin/themes/clear/icon/category_children.png
Binary files differ
diff --git a/admin/themes/clear/icon/category_delete.png b/admin/themes/clear/icon/category_delete.png
new file mode 100644
index 000000000..da796da11
--- /dev/null
+++ b/admin/themes/clear/icon/category_delete.png
Binary files differ
diff --git a/admin/themes/clear/icon/category_edit.png b/admin/themes/clear/icon/category_edit.png
new file mode 100644
index 000000000..0f3b619ed
--- /dev/null
+++ b/admin/themes/clear/icon/category_edit.png
Binary files differ
diff --git a/admin/themes/clear/icon/category_elements.png b/admin/themes/clear/icon/category_elements.png
new file mode 100644
index 000000000..1d367b38f
--- /dev/null
+++ b/admin/themes/clear/icon/category_elements.png
Binary files differ
diff --git a/admin/themes/clear/icon/category_jump-to.png b/admin/themes/clear/icon/category_jump-to.png
new file mode 100644
index 000000000..62db1f4ee
--- /dev/null
+++ b/admin/themes/clear/icon/category_jump-to.png
Binary files differ
diff --git a/admin/themes/clear/icon/category_permissions.png b/admin/themes/clear/icon/category_permissions.png
new file mode 100644
index 000000000..4780841ae
--- /dev/null
+++ b/admin/themes/clear/icon/category_permissions.png
Binary files differ
diff --git a/admin/themes/clear/icon/category_representant_random.png b/admin/themes/clear/icon/category_representant_random.png
new file mode 100644
index 000000000..dfa69846f
--- /dev/null
+++ b/admin/themes/clear/icon/category_representant_random.png
Binary files differ
diff --git a/admin/themes/clear/icon/check.png b/admin/themes/clear/icon/check.png
new file mode 100644
index 000000000..d9abf2763
--- /dev/null
+++ b/admin/themes/clear/icon/check.png
Binary files differ
diff --git a/admin/themes/clear/icon/collapse.gif b/admin/themes/clear/icon/collapse.gif
new file mode 100644
index 000000000..6bf0b0657
--- /dev/null
+++ b/admin/themes/clear/icon/collapse.gif
Binary files differ
diff --git a/admin/themes/clear/icon/datepicker.png b/admin/themes/clear/icon/datepicker.png
new file mode 100644
index 000000000..45a6b4874
--- /dev/null
+++ b/admin/themes/clear/icon/datepicker.png
Binary files differ
diff --git a/admin/themes/clear/icon/delete.png b/admin/themes/clear/icon/delete.png
new file mode 100644
index 000000000..af10be03e
--- /dev/null
+++ b/admin/themes/clear/icon/delete.png
Binary files differ
diff --git a/admin/themes/clear/icon/edit_s.png b/admin/themes/clear/icon/edit_s.png
new file mode 100644
index 000000000..e4951d22f
--- /dev/null
+++ b/admin/themes/clear/icon/edit_s.png
Binary files differ
diff --git a/admin/themes/clear/icon/errors.png b/admin/themes/clear/icon/errors.png
new file mode 100644
index 000000000..3c8a37df5
--- /dev/null
+++ b/admin/themes/clear/icon/errors.png
Binary files differ
diff --git a/admin/themes/clear/icon/exit.png b/admin/themes/clear/icon/exit.png
new file mode 100644
index 000000000..2aafbb4cb
--- /dev/null
+++ b/admin/themes/clear/icon/exit.png
Binary files differ
diff --git a/admin/themes/clear/icon/expand.gif b/admin/themes/clear/icon/expand.gif
new file mode 100644
index 000000000..96261b426
--- /dev/null
+++ b/admin/themes/clear/icon/expand.gif
Binary files differ
diff --git a/admin/themes/clear/icon/help.png b/admin/themes/clear/icon/help.png
new file mode 100644
index 000000000..c76f68292
--- /dev/null
+++ b/admin/themes/clear/icon/help.png
Binary files differ
diff --git a/admin/themes/clear/icon/index.php b/admin/themes/clear/icon/index.php
new file mode 100644
index 000000000..b54047f4e
--- /dev/null
+++ b/admin/themes/clear/icon/index.php
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based picture gallery |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2009 Piwigo Team http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | 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();
+?>
diff --git a/admin/themes/clear/icon/infos.png b/admin/themes/clear/icon/infos.png
new file mode 100644
index 000000000..dc8c8a457
--- /dev/null
+++ b/admin/themes/clear/icon/infos.png
Binary files differ
diff --git a/admin/themes/clear/icon/note.png b/admin/themes/clear/icon/note.png
new file mode 100644
index 000000000..5849f791b
--- /dev/null
+++ b/admin/themes/clear/icon/note.png
Binary files differ
diff --git a/admin/themes/clear/icon/page_end.png b/admin/themes/clear/icon/page_end.png
new file mode 100644
index 000000000..c8f54fb91
--- /dev/null
+++ b/admin/themes/clear/icon/page_end.png
Binary files differ
diff --git a/admin/themes/clear/icon/page_top.png b/admin/themes/clear/icon/page_top.png
new file mode 100644
index 000000000..8b18f13c3
--- /dev/null
+++ b/admin/themes/clear/icon/page_top.png
Binary files differ
diff --git a/admin/themes/clear/icon/permissions.png b/admin/themes/clear/icon/permissions.png
new file mode 100644
index 000000000..9109a851b
--- /dev/null
+++ b/admin/themes/clear/icon/permissions.png
Binary files differ
diff --git a/admin/themes/clear/icon/plug_activate.png b/admin/themes/clear/icon/plug_activate.png
new file mode 100644
index 000000000..4505e0f48
--- /dev/null
+++ b/admin/themes/clear/icon/plug_activate.png
Binary files differ
diff --git a/admin/themes/clear/icon/plug_activate_grey.png b/admin/themes/clear/icon/plug_activate_grey.png
new file mode 100644
index 000000000..05a2d4e45
--- /dev/null
+++ b/admin/themes/clear/icon/plug_activate_grey.png
Binary files differ
diff --git a/admin/themes/clear/icon/plug_deactivate.png b/admin/themes/clear/icon/plug_deactivate.png
new file mode 100644
index 000000000..579b87355
--- /dev/null
+++ b/admin/themes/clear/icon/plug_deactivate.png
Binary files differ
diff --git a/admin/themes/clear/icon/plug_deactivate_grey.png b/admin/themes/clear/icon/plug_deactivate_grey.png
new file mode 100644
index 000000000..87d5f6b14
--- /dev/null
+++ b/admin/themes/clear/icon/plug_deactivate_grey.png
Binary files differ
diff --git a/admin/themes/clear/icon/plug_delete.png b/admin/themes/clear/icon/plug_delete.png
new file mode 100644
index 000000000..dd9bb1b4a
--- /dev/null
+++ b/admin/themes/clear/icon/plug_delete.png
Binary files differ
diff --git a/admin/themes/clear/icon/plug_delete_grey.png b/admin/themes/clear/icon/plug_delete_grey.png
new file mode 100644
index 000000000..3706aadc5
--- /dev/null
+++ b/admin/themes/clear/icon/plug_delete_grey.png
Binary files differ
diff --git a/admin/themes/clear/icon/plug_install.png b/admin/themes/clear/icon/plug_install.png
new file mode 100644
index 000000000..e5fb66000
--- /dev/null
+++ b/admin/themes/clear/icon/plug_install.png
Binary files differ
diff --git a/admin/themes/clear/icon/plug_install_grey.png b/admin/themes/clear/icon/plug_install_grey.png
new file mode 100644
index 000000000..d0fd9565d
--- /dev/null
+++ b/admin/themes/clear/icon/plug_install_grey.png
Binary files differ
diff --git a/admin/themes/clear/icon/plug_uninstall.png b/admin/themes/clear/icon/plug_uninstall.png
new file mode 100644
index 000000000..37a45feb0
--- /dev/null
+++ b/admin/themes/clear/icon/plug_uninstall.png
Binary files differ
diff --git a/admin/themes/clear/icon/plug_uninstall_grey.png b/admin/themes/clear/icon/plug_uninstall_grey.png
new file mode 100644
index 000000000..c51cb754b
--- /dev/null
+++ b/admin/themes/clear/icon/plug_uninstall_grey.png
Binary files differ
diff --git a/admin/themes/clear/icon/plugin_active.gif b/admin/themes/clear/icon/plugin_active.gif
new file mode 100644
index 000000000..5134d95a7
--- /dev/null
+++ b/admin/themes/clear/icon/plugin_active.gif
Binary files differ
diff --git a/admin/themes/clear/icon/plugin_inactive.gif b/admin/themes/clear/icon/plugin_inactive.gif
new file mode 100644
index 000000000..9a3c80617
--- /dev/null
+++ b/admin/themes/clear/icon/plugin_inactive.gif
Binary files differ
diff --git a/admin/themes/clear/icon/preferences.png b/admin/themes/clear/icon/preferences.png
new file mode 100644
index 000000000..30393347b
--- /dev/null
+++ b/admin/themes/clear/icon/preferences.png
Binary files differ
diff --git a/admin/themes/clear/icon/ranks.png b/admin/themes/clear/icon/ranks.png
new file mode 100644
index 000000000..f48b394aa
--- /dev/null
+++ b/admin/themes/clear/icon/ranks.png
Binary files differ
diff --git a/admin/themes/clear/icon/ranks_grey.png b/admin/themes/clear/icon/ranks_grey.png
new file mode 100644
index 000000000..18478fc1f
--- /dev/null
+++ b/admin/themes/clear/icon/ranks_grey.png
Binary files differ
diff --git a/admin/themes/clear/icon/sync_metadata.png b/admin/themes/clear/icon/sync_metadata.png
new file mode 100644
index 000000000..cb62824a3
--- /dev/null
+++ b/admin/themes/clear/icon/sync_metadata.png
Binary files differ
diff --git a/admin/themes/clear/icon/sync_metadata_pink.png b/admin/themes/clear/icon/sync_metadata_pink.png
new file mode 100644
index 000000000..6597ef254
--- /dev/null
+++ b/admin/themes/clear/icon/sync_metadata_pink.png
Binary files differ
diff --git a/admin/themes/clear/icon/toggle_is_default_group.png b/admin/themes/clear/icon/toggle_is_default_group.png
new file mode 100644
index 000000000..0d58e79e7
--- /dev/null
+++ b/admin/themes/clear/icon/toggle_is_default_group.png
Binary files differ
diff --git a/admin/themes/clear/icon/uncheck.png b/admin/themes/clear/icon/uncheck.png
new file mode 100644
index 000000000..2f7df3503
--- /dev/null
+++ b/admin/themes/clear/icon/uncheck.png
Binary files differ
diff --git a/admin/themes/clear/icon/validate_s.png b/admin/themes/clear/icon/validate_s.png
new file mode 100644
index 000000000..400bf8a24
--- /dev/null
+++ b/admin/themes/clear/icon/validate_s.png
Binary files differ
diff --git a/admin/themes/clear/icon/virt_category.png b/admin/themes/clear/icon/virt_category.png
new file mode 100644
index 000000000..15f4f2267
--- /dev/null
+++ b/admin/themes/clear/icon/virt_category.png
Binary files differ
diff --git a/admin/themes/clear/images/external_active.png b/admin/themes/clear/images/external_active.png
new file mode 100644
index 000000000..9bbccfa96
--- /dev/null
+++ b/admin/themes/clear/images/external_active.png
Binary files differ
diff --git a/admin/themes/clear/images/external_inactive.png b/admin/themes/clear/images/external_inactive.png
new file mode 100644
index 000000000..5ed8db208
--- /dev/null
+++ b/admin/themes/clear/images/external_inactive.png
Binary files differ
diff --git a/admin/themes/clear/images/piwigo_logo_214x100.png b/admin/themes/clear/images/piwigo_logo_214x100.png
new file mode 100644
index 000000000..92770a0d8
--- /dev/null
+++ b/admin/themes/clear/images/piwigo_logo_214x100.png
Binary files differ
diff --git a/admin/themes/clear/images/quickLocalSync.png b/admin/themes/clear/images/quickLocalSync.png
new file mode 100644
index 000000000..daf75e696
--- /dev/null
+++ b/admin/themes/clear/images/quickLocalSync.png
Binary files differ
diff --git a/admin/themes/clear/images/resizable-e.gif b/admin/themes/clear/images/resizable-e.gif
new file mode 100644
index 000000000..32d05b9ca
--- /dev/null
+++ b/admin/themes/clear/images/resizable-e.gif
Binary files differ
diff --git a/admin/themes/clear/images/resizable-n.gif b/admin/themes/clear/images/resizable-n.gif
new file mode 100644
index 000000000..6a62dc8e2
--- /dev/null
+++ b/admin/themes/clear/images/resizable-n.gif
Binary files differ
diff --git a/admin/themes/clear/images/resizable-ne.gif b/admin/themes/clear/images/resizable-ne.gif
new file mode 100644
index 000000000..09ad9fc81
--- /dev/null
+++ b/admin/themes/clear/images/resizable-ne.gif
Binary files differ
diff --git a/admin/themes/clear/images/resizable-nw.gif b/admin/themes/clear/images/resizable-nw.gif
new file mode 100644
index 000000000..c33bd0fcc
--- /dev/null
+++ b/admin/themes/clear/images/resizable-nw.gif
Binary files differ
diff --git a/admin/themes/clear/images/resizable-s.gif b/admin/themes/clear/images/resizable-s.gif
new file mode 100644
index 000000000..b1d72c5ce
--- /dev/null
+++ b/admin/themes/clear/images/resizable-s.gif
Binary files differ
diff --git a/admin/themes/clear/images/resizable-se.gif b/admin/themes/clear/images/resizable-se.gif
new file mode 100644
index 000000000..ad6bd1fbc
--- /dev/null
+++ b/admin/themes/clear/images/resizable-se.gif
Binary files differ
diff --git a/admin/themes/clear/images/resizable-sw.gif b/admin/themes/clear/images/resizable-sw.gif
new file mode 100644
index 000000000..5bf25ce07
--- /dev/null
+++ b/admin/themes/clear/images/resizable-sw.gif
Binary files differ
diff --git a/admin/themes/clear/images/resizable-w.gif b/admin/themes/clear/images/resizable-w.gif
new file mode 100644
index 000000000..e4ed876e7
--- /dev/null
+++ b/admin/themes/clear/images/resizable-w.gif
Binary files differ
diff --git a/admin/themes/clear/images/transparent.gif b/admin/themes/clear/images/transparent.gif
new file mode 100644
index 000000000..f419cd417
--- /dev/null
+++ b/admin/themes/clear/images/transparent.gif
Binary files differ
diff --git a/admin/themes/clear/index.php b/admin/themes/clear/index.php
new file mode 100644
index 000000000..e8cc580ab
--- /dev/null
+++ b/admin/themes/clear/index.php
@@ -0,0 +1,54 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based picture gallery |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2009 Piwigo Team http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | 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. |
+// +-----------------------------------------------------------------------+
+// +-----------------------------------------------------------------------+
+// | 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 3049 2009-01-04 23:28:36Z plg $
+// | last update : $Date: 2009-01-05 00:28:36 +0100 (lun. 05 janv. 2009) $
+// | last modifier : $Author: plg $
+// | revision : $Revision: 3049 $
+// +-----------------------------------------------------------------------+
+// | 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();
+?>
diff --git a/admin/themes/clear/mail-css.tpl b/admin/themes/clear/mail-css.tpl
new file mode 100644
index 000000000..cfe148b39
--- /dev/null
+++ b/admin/themes/clear/mail-css.tpl
@@ -0,0 +1,19 @@
+{* $Id: mail-css.tpl 2526 2008-09-14 00:33:53Z vdigital $ *}
+/* Theme wipi mail css */
+
+body {ldelim} background-color:#111; color:#69c;}
+#the_page {ldelim} background: #111 url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/mailbody-bg.png) repeat-y scroll left top;}
+#content {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/header-bg.png) no-repeat scroll left top;}
+#copyright {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/footer-bg.png) no-repeat scroll left bottom;
+color: #69c;}
+h2 {ldelim} background-color: #222;color:#eee;background-image: url({$ROOT_URL}template/{$themeconf.template}/themes/{$themeconf.theme}/images/tableh1_bg.png);}
+img {ldelim} margin: 16px; padding:15px;border:1px solid #eee; -moz-border-radius: 4px; border-radius: 4px 4px; }
+img:hover {ldelim} border:1px solid #69c; -moz-border-radius: 4px; border-radius: 4px 4px; }
+a {ldelim} color: #69c; background: transparent; }
+a:hover {ldelim} color: #f92; }
+a.PWG {ldelim} border: 0px; }
+a.PWG .P {ldelim} color : #f92; }
+a.PWG .W {ldelim} color : #aaa; }
+a.PWG .G {ldelim} color : #69c; }
+a.PWG:hover .P {ldelim} color : #69c; }
+a.PWG:hover .G {ldelim} color : #f92; }
diff --git a/admin/themes/clear/theme.css b/admin/themes/clear/theme.css
new file mode 100644
index 000000000..ed9a57a6e
--- /dev/null
+++ b/admin/themes/clear/theme.css
@@ -0,0 +1,196 @@
+/* text color */
+.theme_title { left: 15px; color: #000; text-align: left;}
+body, h3, dt, h2, .throw, .content, label,
+input.rateButtonSelected /* <= why IE doesn't inherit this ? */ { color:#777; }
+th { color: #888; }
+INPUT, select, textarea { color:#666; background-color: #ccc; }
+input[type="radio"], input[type="checkbox"] { background-color: transparent; }
+INPUT[type="submit"], INPUT[type="reset"] { color:#666; border: 1px solid #777; background-color: #bbb; padding: 1px 15px; }
+input.rateButton, legend, h3 { color: #777; }
+#theAdminPage h2 { color: #ccc; }
+.content .infos { color: #0a0; border:0; background: transparent url(icon/infos.png) no-repeat left bottom;
+padding:5px 70px 0pt 30px; min-height: 48px; text-align:left; }
+.content .infos .submit {margin-left:30px;}
+.content .infos li, .content .errors li { list-style-type:none; }
+.content .errors { color: #f22; border:0; background: transparent url(icon/errors.png) no-repeat left top;
+padding:5px 60px 0pt 30px; min-height: 48px; text-align:left; font-weight:bold; background-position:left top; }
+#copyright { color:#777; margin:5px auto 0px 240px; text-align:center;
+padding-bottom: 15px; }
+.header_notes { background: transparent url(icon/note.png) no-repeat right top;
+border:0; font-weight:bold; min-height: 48px;
+padding:15px 60px 0 0; position:absolute; right:0;
+text-align:right; top:30px; width:550px; }
+html, body { min-height: 100%; }
+body { margin: 0; padding: 0; background:#eeeeee }
+/* #the_page { margin: 0; padding: 0; z-index: 1; top:0px; */
+/* padding-top: 0; min-height: 100%; width:100%; position:absolute; left:0px; } */
+#headbranch { width: 233px; height: 240px; margin: 0; padding: 0;
+position:absolute; left:0px; top:0px; z-index: 0;
+background:transparent }
+#theHeader { height:40px; margin: 0; padding: 0;
+background:transparent }
+h3, #imageToolBar a:hover, .row2, .content { background-color: #ddd; }
+.throw, .row1 { background-color:#eee; }
+.throw em { font-style: normal; color: #0cc9c; }
+#content { background: #ddd; min-height: 467px; border: 1px solid}
+.content { padding:5px 5px 5px 5px; margin: 0 10px 0 252px; z-index:99; }
+.content h3 { font-size:20px; letter-spacing:-0.4px; margin:0 20px 12px 0;
+ text-align:center; background:none; border: 0; }
+.content h3 ~ h3{ margin-top: 40px; }
+.content h4 { color: #aaa; font-size:14px; text-align:center; padding:3px; margin-top: 0; margin-bottom: 10px;}
+/*.content h2:before, .content h2:after, */
+.content h2 {
+letter-spacing:2px; margin-right:30px; text-align:left; color: #999;
+text-transform:none; font-weight:bold; padding-left:20px; width:54%; }
+.content h2:lang(en) { text-transform:capitalize; }
+
+.content dl, dd { margin:5px; }
+.content div.titrePage { height:40px; }
+
+.instructions { text-align:left; padding-top:5px;}
+.instructions LI { margin-bottom:5px; }
+.instructionBlock {border: 1px solid #999; margin: 5px; overflow: hidden;}
+.instructionBlockHeaderCollapsed, .instructionBlockHeaderExpanded {background-color:#eee; background-position:15px center;
+background-repeat:no-repeat; color:#999; cursor:pointer; font-size:110%; overflow:hidden; padding:8px 41px;}
+.instructionBlockHeaderCollapsed span, .instructionBlockHeaderExpanded span {border-bottom: none; }
+
+.instructionBlockHeaderCollapsed { background-image: url(icon/expand.gif);}
+.instructionBlockHeaderExpanded { background-image: url(icon/collapse.gif);}
+.instructionBlockContent { padding:0 15px 15px;}
+SPAN.pwgScreen { font-style:italic; border-bottom:1px dotted #666}
+
+.content ul.thumbnails span.wrap2:hover { background-color:#eee; border:1px solid #0cc9c; color:#999; }
+.content ul.thumbnails span.wrap2 { border:1px solid #999; padding: 4px; }
+.content ul.thumbnails span.wrap2 { -moz-border-radius-bottomleft:4px; -moz-border-radius-bottomright:4px; -moz-border-radius-topleft:4px; -moz-border-radius-topright:4px; }
+.content ul.thumbnails span.wrap1 { margin:0 12px 5px; }
+
+/* borders */
+fieldset { border: 1px solid #999; }
+INPUT, SELECT, TEXTAREA { border: 1px solid #999; }
+input:focus, select:focus, textarea:focus, input.focus, form .focus { background-color:#bbb;color: #666; }
+TEXTAREA { cursor:text; font-size: 13px; }
+.content UL.thumbnails SPAN.wrap2 {
+ border: 1px solid #555555; /* thumbnails border color and style */
+ border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */
+}
+.tagSelection label { padding-right:12px; }
+.content ul.categoryActions a img { margin-left: 10px; }
+ul.thumbnails input { border:3px double #666; color:#666; font-size:10px; margin:0; background-color:#bbb; text-align: center;}
+INPUT[type="submit"]:hover , INPUT[type="reset"]:hover { cursor: pointer; }
+INPUT.bigbutton:hover { background-color: #ddd; color:#0cc; border: 0; }
+.throw { font-size: 120%; line-height: 26px; padding-top: 10px; font-weight: bold; color: #0cc9c; }
+label { cursor:pointer }
+.categoryLi { background: #ddd }
+.virtual_cat { background: #ccc !important; }
+a.Piwigo {
+ font-family: verdana, arial, helvetica, sans-serif !important;
+ font-size: 11px; font-weight: normal; letter-spacing: 0;
+ color : #0cc; text-decoration: none; border: 0; }
+a.Piwigo:hover span.Piwigo {
+ border-bottom: 1px solid #0cc9c;
+}
+TABLE.table2 { border: 2px solid #eee; }
+
+*, *:focus, *:active, input:active, a:active, input:focus, a:focus { outline: none; -moz-outline-width: 0px; }
+a { color:#04f; border-width: 0; }
+a:hover, a:active { color: #0aa; border-bottom: 0 none; cursor: pointer; }
+.content .navigationBar {color:#999;}
+ul.actions, .content form#waiting {text-align:center;}
+h2 { font-size:28px; letter-spacing:-1px;padding:0; text-align:left;}
+.header_msgs { background:transparent url(images/header_msgs-bg.gif) repeat scroll right top;
+border:0; color:#ccc; font-size:24px; height:30px; left:0; margin:0; padding:10px 0 0; position:absolute;
+text-align:center; top:0; width:100%; z-index:99; }
+.HelpActions a { border:0; margin:-14px 14px 0 0; position:absolute; right:0; }
+.HelpActions li {list-style-image:none; list-style-position:outside;
+list-style-type:none; text-align:center; text-indent:0pt; }
+#content.content div.comment a.illustration{ margin-right: 30px;}
+/* tabsheets are often used in admin pages => No specific css files */
+.tabsheet {
+background-color:transparent; border:0; display:table; float:right;
+font-family:verdana,arial,helvetica,sans-serif; font-size:8px; line-height:14px;
+list-style-image:none; padding: 0; position:relative; text-decoration:none;
+top:-2px; white-space:nowrap; margin: 0 25px 0 0;}
+.tabsheet li { background:transparent;
+float:left; margin:0 2px 0 0; overflow:hidden; text-align:right; }
+.tabsheet a {
+color:#999; display:block; font-size:11px; border:0;
+font-weight: bold; height:18px; overflow:hidden; padding:8px 7px 5px 15px; line-height: 18px;
+text-align: right; text-decoration:none; margin: 0; }
+.tabsheet a:first-letter { text-transform: capitalize; }
+.tabsheet a:hover, .tabsheet li.selected_tab a { color: #0a7; }
+.tabsheet a span { display:block; font-size:10px; padding:0 3px 0 1px; }
+
+.sort { clear: none; }
+#214ug { margin-left:248px; font-size:12px; }
+/* menubar is on all admin pages => No specific css file */
+#menubar { background-color: #ddd;
+border: 1px solid; display:inline; float:left; left:0; margin: 0 0 0 35px; min-height:475px; height:475px; /* should be 477 */
+padding:0; width:207px; z-index:99; text-align: left; }
+#menubar ul.scroll { height:163px; margin-right:10px; overflow-y:auto;
+ /* Only IE family supports colored scrollbar */
+ scrollbar-face-color: #ddd; scrollbar-shadow-color: #bbb; scrollbar-highlight-color: #fff;
+ scrollbar-3dlight-color: #d6d6d6; scrollbar-darkshadow-color: #ccc; scrollbar-track-color: #eee;
+ scrollbar-arrow-color: #0cccc; }
+
+#menubar dd { margin: 10px 0 0 0; padding: 0; height:232px; }
+#menubar dl { width: 207px; border:0; margin: 0; padding: 0; display: block; min-height:35px; }
+#menubar dt { margin: 0; display: block; background-color: #eee; font-weight:bold;
+position:relative; padding: 5px 1px 4px 5px; font-size: 13px; color: #999; }
+#menubar dt span { background-color: #eee; cursor:pointer; }
+#menubar li { margin: 0 0 0 6px; }
+#menubar li.external { list-style-image:url(images/external_inactive.png); padding:10px 0px 0pt 10px; }
+#menubar li.external:hover { list-style-image:url(images/external_active.png); }
+#menubar ul { color: #ccc; margin:0 0 0 9px; line-height: 16px;
+ list-style-type: square; list-style-position: inside; padding: 0; }
+/* jQuery tooltips */
+.cluetip-default #cluetip-outer { border-color: #999; color: #999; background-color: #ddd; }
+.cluetip-default h3#cluetip-title { color: #0cc9c; background-color: #eee; }
+/* jQuery ui resizable */
+.ui-resizable { position: relative; }
+.ui-wrapper { border: 0; }
+.ui-wrapper input, .ui-wrapper textarea { border: 0; }
+
+/* Global handle styles */
+.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; }
+.ui-resizable .ui-resizable-handle { display: block; }
+body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
+body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
+.ui-resizable-n { cursor: n-resize; height: 6px; width: 100%; top: 0px; left: 0px; background: transparent url(images/resizable-n.gif) no-repeat scroll center top; }
+.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px; background: transparent url(images/resizable-s.gif) no-repeat scroll center top; }
+.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-e.gif) no-repeat scroll right center; }
+.ui-resizable-w { cursor: w-resize; width: 6px; left: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-w.gif) no-repeat scroll right center; }
+.ui-resizable-se { cursor: se-resize; width: 9px; height: 9px; right: 0px; bottom: 0px; background: transparent url(images/resizable-se.gif); }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: 0px; bottom: 0px; background: transparent url(images/resizable-sw.gif); }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: 0px; top: 0px; background: transparent url(images/resizable-nw.gif); }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: 0px; top: 0px; background: transparent url(images/resizable-ne.gif); }
+#ui-datepicker-div .ui-datepicker-control, #ui-datepicker-div a { background-color: #eee; color: #08f !important;}
+#ui-datepicker-div .ui-datepicker-days-row { background-color: #bbb;}
+#ui-datepicker-div .ui-datepicker-week-end-cell, #ui-datepicker-div .ui-datepicker-week-end-cell a { background-color: #ddd; color: #0cc; border-color: #bbb; border-top-color: #ddd; border-left-color: #ddd;}
+#ui-datepicker-div .ui-datepicker-title-row { background-color: #eee;}
+#ui-datepicker-div .ui-datepicker-title-row .ui-datepicker-week-end-cell a { color: #0cc;}
+#ui-datepicker-div a:hover { color: #0cccc !important; border: 0; background-color: #eee !important;}
+#ui-datepicker-div .ui-datepicker-header select { background-color:#bbb; color:#666; font-weight:normal;}
+#ui-datepicker-div .ui-datepicker-links { background-color:#ddd;}
+#ui-datepicker-div .ui-datepicker-header { background-color:#bbb;}
+#ui-datepicker-div .ui-datepicker-current-day { background-color: #eee !important; border-color: #bbb; border-top-color: #eee; border-left-color: #eee;}
+#ui-datepicker-div .ui-datepicker-days-cell { background-color:#bbb; border:1px solid #ddd; border-top-color: #bbb; border-left-color: #bbb;}
+td img.ui-datepicker-trigger { margin:-3px 5px 2px; }
+INPUT[type="text"].large { width: 317px; }
+input[type="button"], input[type="submit"], input[type="reset"] {
+color:#0cc9c; background-color:#ddd; border-color: #0cc9c; }
+input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover {
+color:#666; border-color: #999; }
+.bigbutton { background:transparent url(images/quickLocalSync.png) no-repeat scroll left top; display: block;
+color:#eee; font-size:28px; height:161px; margin: 0 20px 0 auto; padding:0 18px 0; text-align:center; width:625px;
+position:relative; z-index: 50;}
+.bigtext { display:block; font-weight:bold; left:225px; position:relative; top:35px; width:320px; z-index: 55; cursor:pointer; }
+.bigbutton:hover { color: #fff; }
+.bigbutton input { background:transparent url(images/transparent.gif) repeat scroll left top; border:0;
+display:block; height:85px; left:225px; position:relative; top:-42px; width:313px; z-index:99; padding:0;}
+.bigbutton input:hover { cursor:pointer; background:transparent url(images/transparent.gif) repeat scroll left top; border:0; padding:0;}
+/* hacks */
+html>body #menubar {min-height:477px; height:477px;} /* IE 7 and modern browsers */
+* html[lang="en"] body .content h2 , *+html[lang="en"] body .content h2 { text-transform:capitalize; } /* IE */
+*+html .bigtext { left: 70px; }
+*+html .bigbutton input, * html .bigbutton input { left:0px; position:relative; top:-40px; }
+* html .bigtext { margin-right: 300px; }
diff --git a/admin/themes/clear/themeconf.inc.php b/admin/themes/clear/themeconf.inc.php
new file mode 100644
index 000000000..de1d34209
--- /dev/null
+++ b/admin/themes/clear/themeconf.inc.php
@@ -0,0 +1,12 @@
+<?php
+if (!function_exists('selected_admin_menu'))
+{
+ include_once(PHPWG_ROOT_PATH.'admin/include/functions_themes.inc.php');
+}
+$themeconf = array(
+ 'theme' => 'clear',
+ 'parent' => 'default',
+ 'admin_icon_dir' => 'admin/themes/clear/icon',
+ 'selected_admin_menu' => selected_admin_menu(),
+);
+?>
diff --git a/admin/themes/default/content.css b/admin/themes/default/content.css
new file mode 100644
index 000000000..61ab73b83
--- /dev/null
+++ b/admin/themes/default/content.css
@@ -0,0 +1,26 @@
+/* .Content is on every pages so it is common and it will no longer be a specific css */
+.content { margin-right: 1em; margin-bottom: 1em; }
+.content h2 {margin: 0; padding: 5px 0.5em 5px 0.5em; text-align: right; font-size: 120%;}
+.content .navigationBar { margin: 10px 0; text-align: center; }
+.content form { text-align: left; }
+.content dt { margin-bottom: 5px; font-style: italic;
+ font-size: 110%; }
+.content ul.categoryActions a img, ul.categoryActions a {
+border:0; margin-bottom:-5px; }
+ul.categoryActions { margin: 0 2px; width: auto; list-style-position:outside;
+ padding: 0; text-indent: 0; list-style: none; text-align: center; }
+.content div.titrePage ul.categoryActions { float: right; }
+.content div.titrePage { padding: 0 0 3px; }
+.content ul.categoryActions li { display: inline; }
+.content div.comment { margin: 0 0 0.5em 0; padding: 0;
+ overflow: hidden; width: 100%; /* don't ask why. It's a very usefull trick */ }
+.content div.comment a.illustration {
+ display: block; float: left; margin: 0.5em 0 0 0.5em; }
+.content div.comment p.commentHeader {
+ text-align: right; margin: 0.5em 0.5em 0 0; }
+.content div.comment ul.actions { text-align: center; margin: 0.2em; }
+.content div.comment blockquote {
+ margin-right: 0.5em; overflow: visible; /*avoid a very strange margin behaviour (all browsers) */ }
+
+ /* not used but should be */
+body#thePopuphelpPage .content { margin: 1em; } \ No newline at end of file
diff --git a/admin/themes/default/default-colors.css b/admin/themes/default/default-colors.css
new file mode 100644
index 000000000..e45863bd3
--- /dev/null
+++ b/admin/themes/default/default-colors.css
@@ -0,0 +1,85 @@
+
+
+/* So that non-links are slightly greyed out */
+.content .navigationBar {
+ color: #999;
+}
+
+/* Tables & forms */
+
+INPUT.text, INPUT.password, INPUT.button,
+INPUT.submit, INPUT.reset, INPUT.file,
+SELECT, TEXTAREA {
+ color:#999;
+ background-color: #666;
+}
+
+INPUT:focus, SELECT:focus, TEXTAREA:focus, INPUT.focus, FORM .focus {
+ background-color: #444; /* whitesmoke */
+}
+
+/* some theme set a border on INPUT which is not pretty for radio/checkbox */
+INPUT[type="radio"], INPUT[type="checkbox"] {
+ border: none; /* <= Opera needs this */
+}
+
+INPUT.radio, INPUT.checkbox {
+ border: none; /* <= IE6 needs this */
+}
+
+.errors { /* Errors display */
+ color: #f33;
+ background-color: transparent;
+ font-weight: bold;
+ text-align: left;
+ margin: 5px;
+ border: 1px solid #666;
+ background-image: url(icon/errors.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+ padding: 10px 50px 10px 10px;
+}
+
+/**
+ * Informations box in administration
+ */
+.infos {
+ text-align: left;
+ color: #f70;
+ background-color: transparent;
+ background-image: url(icon/infos.png);
+ background-repeat: no-repeat;
+ background-position: top right;
+ margin: 5px;
+ padding: 10px 50px 10px 10px;
+}
+
+/**
+ * Header message like upgrade or adviser mode
+ */
+.header_msgs {
+ text-align:center;
+ font-weight: bold;
+ color:#333;
+ background-color: transparent;
+ margin: 1px;
+ padding: 1px;
+}
+
+/**
+ * Header notes box in public/administration
+ */
+.header_notes {
+ border: 1px solid #666;
+ text-align: center;
+ background-image: url(icon/note.png);
+ background-repeat: no-repeat;
+ background-position: top left;
+ font-weight: bold;
+ margin: 14px;
+ padding: 5px 00px 0px 0px;
+}
+
+LEGEND {
+ font-style: italic;
+} \ No newline at end of file
diff --git a/admin/themes/default/default-layout.css b/admin/themes/default/default-layout.css
new file mode 100644
index 000000000..a14f6632b
--- /dev/null
+++ b/admin/themes/default/default-layout.css
@@ -0,0 +1,738 @@
+
+/* History tables */
+TABLE.table2 {
+ border: 1px solid #111;
+ margin: 1em auto;
+ padding: 0;
+}
+
+TABLE.table2 TD, TABLE.table2 TH {
+ padding: 0 5px;
+}
+
+TABLE.table2 TR {
+ text-align: left;
+}
+
+TABLE.table2 THEAD TD { padding:7px 10px 3px 10px; }
+TABLE.table2 TR.throw { text-align: center; }
+TABLE.table2 { margin:0pt auto; }
+.sort { display:block; padding:8px 5px 0px 1px; clear: right; text-align:left; }
+
+
+.hour {
+ white-space: pre;
+}
+
+.number {
+ text-align: right;
+}
+
+TABLE#dailyStats {
+ width: 60%;
+}
+
+TABLE#detailedStats {
+ width: 99%;
+}
+
+/* Plugins tables */
+TABLE.plugins { min-width: 400px; }
+TABLE.plugins A { border: 0; }
+TABLE.plugins TR TD { padding: 4px 10px; }
+TABLE.plugins TR TD.pluginState { padding: 4px 16px; }
+
+TABLE.plugins TR TD.active {
+ background: url(icon/plugin_active.gif) no-repeat center left;
+ background-color: inherit; /* IE need it */
+}
+
+TABLE.plugins TR TD.inactive {
+ background: url(icon/plugin_inactive.gif) no-repeat center left;
+ background-color: inherit; /* IE need it */
+}
+
+TABLE.plugins ul.pluginsActions {
+ float: left;
+ padding: 0;
+ margin: 0;
+ width: 60px;
+ list-style: none;
+ text-align: center;
+}
+
+TABLE.plugins ul.pluginsActions li { display: inline; }
+
+/* categoryOrdering */
+SELECT.categoryList {
+ width: 100%;
+}
+
+FORM#categoryOrdering {
+ padding-left: 1em; /* same as FIELDSET margin (there is no fieldset in this form) */
+ padding-right: 1em; /* same as FIELDSET margin (there is no fieldset in this form) */
+}
+FORM#categoryOrdering p {
+ text-align: left;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+UL.categoryUl {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+LI.categoryLi {
+ width: 100%;
+ border: 1px solid #666;
+ padding: 0px 5px;
+ margin-bottom: 5px;
+}
+
+FORM#categoryOrdering UL.categoryActions {
+ float: right;
+ margin-top: 5px;
+}
+/* */
+
+FORM#catModify TABLE { width: auto; }
+
+FIELDSET.elementEdit A {
+ display: block;
+ float: right;
+}
+
+TABLE.doubleSelect {
+ text-align: center;
+ margin: 0 auto;
+ width: 100%;
+}
+
+TABLE.doubleSelect TD {
+ padding: 0 3px;
+ width: 50%;
+}
+
+TABLE.doubleSelect SELECT.categoryList {
+ width: 100%; max-width: 100%; overflow-x: auto;
+}
+
+FORM#categoryPermissions LI {
+ display:inline;
+ white-space: nowrap;
+}
+
+FIELDSET#mainConfCheck SPAN.property,
+FIELDSET#historyConf SPAN.property,
+FIELDSET#commentsConf SPAN.property,
+FIELDSET#uploadConf SPAN.property {
+ float: right;
+ text-align: left;
+}
+FIELDSET#mainConfCheck INPUT,
+FIELDSET#historyConf INPUT,
+FIELDSET#commentsConf INPUT,
+FIELDSET#uploadConf INPUT {
+ float: none;
+}
+
+FIELDSET#mainConf SPAN.property {
+ width: 25%;
+}
+FIELDSET#mainConf TEXTAREA.description {
+ width: 70%;
+}
+
+FIELDSET#mainConfCheck SPAN.property,
+FIELDSET#historyConf SPAN.property {
+ width: 90%;
+}
+FIELDSET#mainConfCheck INPUT,
+FIELDSET#historyConf INPUT,
+FIELDSET#commentsConf INPUT {
+ margin-left: 5%;
+}
+FIELDSET#uploadConf SELECT {
+ float: right;
+ margin: 2px 10px 0px;
+}
+FIELDSET#uploadConf INPUT {
+ float: right;
+ margin: 5px 10px 0px;
+}
+FIELDSET#uploadConf SPAN.property {
+ width: 65%;
+}
+FIELDSET#commentsConf SPAN.property {
+ width: 85%;
+}
+
+.statBar {
+ height: 10px;
+ background-color: #ff7700;
+ border: 1px solid #666;
+}
+
+.over{
+position: relative;
+z-index: 0;
+}
+
+.over:hover{
+background-color: transparent;
+z-index: 50;
+}
+
+.over SPAN{ /*CSS for enlarged image*/
+position: absolute;
+background-color: #222;
+padding: 5px;
+left: -1000px;
+border: 1px solid #ff3363;
+visibility: hidden;
+color: black;
+text-decoration: none;
+}
+
+.over SPAN IMG{ /*CSS for enlarged image*/
+border-width: 0;
+padding: 2px;
+}
+
+.over:hover SPAN{ /*CSS for enlarged image on hover*/
+visibility: visible;
+top: 0;
+left: 60px; /*position where enlarged image should offset horizontally */
+}
+
+BODY {
+ margin: 5px;
+ padding: 0;
+ font-size: 0.8em;
+ font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;
+ text-align: center; /* be nice to IE5 */
+}
+
+H1 {
+color:#eee;
+letter-spacing:1px;
+text-align: left;
+font-size: 150%;
+font-weight: normal;
+font-style:italic;
+padding: 8px 0 0 10px;
+margin: 0;
+float:left;
+}
+
+#pwgHead {color:#aaa;}
+#pwgHead A {color:#ccc;}
+#pwgHead A:hover {color:#fff;border-bottom:1px solid #fff}
+#pwgHead A#instructions:hover {border:none;}
+
+#headActions {float:right; height:46px; line-height:46px; margin-right:10px;}
+
+A {
+ text-decoration:none;
+ border-bottom: 0;
+}
+A:hover {
+ border-bottom: 1px solid #FF3363;
+}
+A.button, A.button:hover {
+ border: 0;
+}
+IMG {
+ border: none;
+}
+
+HR.separation {
+ visibility: hidden;
+ clear: both;
+}
+
+/** General defaults **/
+INPUT, SELECT {
+ margin: 0;
+ font-size: 1em; /* <= some browsers don't set it correctly */
+}
+UL, DL, OL { text-align: left;}
+TABLE { /* horizontaly centered */
+ margin-left: auto;
+ margin-right: auto;
+}
+/* for debugging purpose */
+PRE { text-align:left; }
+
+/** forms **/
+
+FORM { padding: 0em; }
+
+FORM P {
+ text-align: center;
+ margin-top: 2em;
+ margin-bottom: 2em;
+}
+
+FORM FIELDSET P {
+ margin-top: 1em;
+ margin-bottom: 0;
+}
+
+.small {
+ font-size: 80%;
+}
+
+TEXTAREA.description {
+ height: 6em;
+ width: 40em;
+ overflow: auto;
+}
+
+SELECT.categoryList {
+ height: 20em;
+ width: auto;
+}
+
+DIV.comment BLOCKQUOTE {
+ padding: 0.5em;
+ overflow: auto; /* no solution for IE6 */
+ min-height: 2.75em; /* fix a Gecko bug whith scrollbar and 1 line only */
+}
+
+
+/**
+ * Filter forms are displayed label by label with the input (or select...)
+ * below the label. Use an UL to make a group (radiobox for instance).
+ * Use a SPAN to group objects in line
+ */
+FIELDSET {
+ padding: 1em;
+ margin: 1em;
+ overflow: hidden; /* <- makes Opera happy */
+}
+
+FORM.filter FIELDSET UL {
+ margin: 0;
+}
+FORM.filter FIELDSET UL,
+FORM.filter FIELDSET LABEL {
+ display: block;
+ float: left;
+ margin-right: 1em;
+ padding: 0;
+}
+
+FORM.filter FIELDSET LI {
+ list-style: none;
+ margin-bottom: 0.5em;
+}
+
+FORM.filter FIELDSET LI LABEL {
+ display: inline;
+ float: none;
+}
+
+FORM.filter FIELDSET UL.tagSelection LABEL {
+ display: inline;
+ float: none;
+ margin-right:0.5em;/*reduce from above*/
+}
+
+/* cannot use FIELDSET>LABEL because of IE<=6 */
+FORM.filter FIELDSET LABEL INPUT,
+FORM.filter FIELDSET LABEL SELECT,
+FORM.filter FIELDSET LABEL SPAN,
+FORM.filter FIELDSET LABEL TEXTAREA {
+ display: block;
+ margin: 0.5em 0;
+}
+FORM.filter FIELDSET * LABEL INPUT,
+FORM.filter FIELDSET * LABEL SELECT,
+FORM.filter FIELDSET * LABEL TEXTAREA,
+FORM.filter FIELDSET LABEL SPAN INPUT,
+FORM.filter FIELDSET LABEL SPAN SELECT,
+FORM.filter FIELDSET LABEL SPAN TEXTAREA {
+ display: inline;
+ vertical-align: top;
+ margin: 0 0.5em 0 0;
+}
+
+FORM.filter FIELDSET UL.tagSelection LI LABEL INPUT {
+ margin-right:0;
+}
+
+/* following declaration is important to avoid strange FF behaviour */
+FORM.filter FIELDSET LABEL SPAN SELECT {
+ margin: 0;
+}
+
+FORM.filter FIELDSET P
+{
+ clear: left;
+ display: block;
+}
+
+FORM.filter INPUT[type="submit"] {
+ margin-top: 1.8em;
+}
+
+FORM.properties UL, FORM#update UL {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+
+FORM.properties LI, FORM#update UL {
+ margin-bottom: 0.5em;
+ padding: 0;
+ line-height: 1.8em;
+ clear: left;
+}
+
+FORM.properties SPAN.property {
+ font-weight: bold;
+ float: left;
+ width: 50%;
+ text-align: right;
+ margin: 0;
+ padding: 0 0.5em 0 0;
+}
+
+#theHeader H1 {
+ margin-bottom: 0.5em;
+}
+
+/* button tools */
+UL.actions {
+ text-indent: 0;
+ list-style: none;
+}
+UL.actions LI {
+ display: inline;
+}
+UL.actions A {
+ border: none;
+}
+
+UL.tagSelection {
+ width: 99%;
+ margin: 1em 0 1em 0;
+ padding: 0;
+}
+
+UL.tagSelection LI {
+ display: inline;
+ white-space: nowrap;
+}
+
+
+/* jQuery tooltips */
+.cluetip-default #cluetip-outer {
+ position: relative;
+ border: 1px solid #111111;
+ color: #dddddd;
+ background-color: #222222;
+ text-align: left;
+}
+.cluetip-default h3#cluetip-title {
+ margin: 0 0 5px;
+ padding: 8px;
+ color: #666666;
+ background-color: #d3d3d3;
+ font-size: 1.1em;
+ font-weight: bold;
+}
+.cluetip-default #cluetip-inner {
+ padding: 10px;
+}
+
+/* jQuery datepicker */
+img.ui-datepicker-trigger {
+ cursor : pointer;
+}
+
+/* jQuery FCBKcomplete */
+/* TextboxList sample CSS */
+ul.holder { margin: 0; border: 1px solid #999; overflow: hidden; height: auto !important; height: 1%; padding: 4px 5px 0; }
+*:first-child+html ul.holder { padding-bottom: 2px; } * html ul.holder { padding-bottom: 2px; } /* ie7 and below */
+ul.holder li { float: left; list-style-type: none; margin: 0 5px 4px 0; white-space:nowrap;}
+ul.holder li.bit-box, ul.holder li.bit-input input { font: 11px "Lucida Grande", "Verdana"; }
+ul.holder li.bit-box { -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; border: 1px solid #CAD8F3; background: #DEE7F8; padding: 1px 5px 2px; }
+ul.holder li.bit-box-focus { border-color: #598BEC; background: #598BEC; color: #fff; }
+ul.holder li.bit-input input { width: auto; overflow:visible; margin: 0; border: 0px; outline: 0; padding: 3px 0px 2px; } /* no left/right padding here please */
+ul.holder li.bit-input input.smallinput { width: 20px; }
+
+/* Facebook demo CSS */
+#add { border: 1px solid #999; width: 550px; margin: 50px; padding: 20px 30px 10px; }
+form ol li { list-style-type: none; }
+form ol { font: 11px "Lucida Grande", "Verdana"; margin: 0; padding: 0; }
+form ol li.input-text { margin-bottom: 10px; list-style-type: none; padding-bottom: 10px; }
+form ol li.input-text label { font-weight: bold; cursor: pointer; display: block; font-size: 13px; margin-bottom: 10px; }
+form ol li.input-text input { width: 500px; padding: 5px 5px 6px; font: 11px "Lucida Grande", "Verdana"; border: 1px solid #999; }
+form ul.holder { width: 500px; }
+form ul { margin: 0 !important }
+ul.holder li.bit-box, #apple-list ul.holder li.bit-box { padding-right: 15px; position: relative; z-index:1000;}
+#apple-list ul.holder li.bit-input { margin: 0; }
+#apple-list ul.holder li.bit-input input.smallinput { width: 5px; }
+ul.holder li.bit-hover { background: #BBCEF1; border: 1px solid #6D95E0; }
+ul.holder li.bit-box-focus { border-color: #598BEC; background: #598BEC; color: #fff; }
+ul.holder li.bit-box a.closebutton { position: absolute; right: 4px; top: 5px; display: block; width: 7px; height: 7px; font-size: 1px; background: url(icon/fcbkcomplete_close.gif); }
+ul.holder li.bit-box a.closebutton:hover { background-position: 7px; }
+ul.holder li.bit-box-focus a.closebutton, ul.holder li.bit-box-focus a.closebutton:hover { background-position: bottom; }
+
+/* Autocompleter */
+
+.facebook-auto { display: none; position: absolute; width: 512px; background: #eee; }
+.facebook-auto .default { padding: 5px 7px; border: 1px solid #ccc; border-width: 0 1px 1px;font-family:"Lucida Grande","Verdana"; font-size:11px; }
+.facebook-auto ul { display: none; margin: 0; padding: 0; overflow: auto; position:absolute; z-index:9999}
+.facebook-auto ul li { padding: 5px 12px; z-index: 1000; cursor: pointer; margin: 0; list-style-type: none; border: 1px solid #ccc; border-width: 0 1px 1px; font: 11px "Lucida Grande", "Verdana"; background-color: #eee }
+.facebook-auto ul li em { font-weight: bold; font-style: normal; background: #ccc; }
+.facebook-auto ul li.auto-focus { background: #4173CC; color: #fff; }
+.facebook-auto ul li.auto-focus em { background: none; }
+.deleted { background-color:#4173CC !important; color:#ffffff !important;}
+.hidden { display:none;}
+
+#demo ul.holder li.bit-input input { padding: 2px 0 1px; border: 1px solid #999; }
+.ie6fix {height:1px;width:1px; position:absolute;top:0px;left:0px;z-index:1;}
+
+/* Add photos, direct mode */
+#uploadBoxes P {
+ margin:0;
+ margin-bottom:2px;
+ padding:0;
+}
+
+#batchLink {
+ text-align:center;
+}
+
+.category_selection {
+ min-height:65px;
+ margin-top:5px;
+}
+
+.category_selection TABLE {
+ margin:0;
+}
+
+.formField {
+ width:650px;
+ margin:0 auto 20px auto;
+ padding:10px;
+ border: 2px solid #292929;
+}
+
+.formFieldTitle {
+ font-weight:bold;
+ margin-bottom:10px;
+}
+
+.formField P {
+ margin:0;
+}
+
+.formField TH {
+ text-align:right;
+ padding-right: 5px;
+}
+
+#uploadFormSettings input[type="text"] {
+ text-align:right;
+}
+
+#uploadFormSettings TH {
+ width:50%;
+}
+
+#pwgHead {
+ background-color:#464646;
+ height:46px;
+}
+
+html, body {height:100%; margin:0; padding:0;}
+#the_page {min-height:100%; position:relative; padding:0;margin:0;}
+#pwgMain {padding:10px;padding-bottom:60px;}
+
+#footer {
+ position:absolute;
+ bottom:0;
+ width:100%;
+ height:46px;
+ background-color:#464646;
+ color:#aaa;
+ line-height:46px;
+}
+
+#footer A {color:#ccc;}
+#footer A:hover {color:#fff;border-bottom:1px solid #fff;}
+
+#adminHome {
+ text-align:center;
+ margin-bottom:15px;
+ line-height:30px;
+ width:200px;
+ margin-left:5px;
+ -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;
+}
+
+#adminHome A {display:block; font-size:1.1em; font-weight:bold;}
+#adminHome A {border:none;}
+
+#piwigoInfos {float:left; margin-left:10px;}
+#pageInfos {float:right; margin-right:10px;}
+
+/* TipTip CSS - Version 1.2 */
+
+#tiptip_holder {
+ display: none;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 99999;
+}
+
+#tiptip_holder.tip_top {
+ padding-bottom: 5px;
+}
+
+#tiptip_holder.tip_bottom {
+ padding-top: 5px;
+}
+
+#tiptip_holder.tip_right {
+ padding-left: 5px;
+}
+
+#tiptip_holder.tip_left {
+ padding-right: 5px;
+}
+
+#tiptip_content {
+ font-size: 11px;
+ color: #fff;
+ text-shadow: 0 0 2px #000;
+ padding: 4px 8px;
+ border: 1px solid rgba(255,255,255,0.25);
+ background-color: rgb(25,25,25);
+ background-color: rgba(25,25,25,0.92);
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(transparent), to(#000));
+ border-radius: 3px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ box-shadow: 0 0 3px #555;
+ -webkit-box-shadow: 0 0 3px #555;
+ -moz-box-shadow: 0 0 3px #555;
+}
+
+#tiptip_arrow, #tiptip_arrow_inner {
+ position: absolute;
+ border-color: transparent;
+ border-style: solid;
+ border-width: 6px;
+ height: 0;
+ width: 0;
+}
+
+#tiptip_holder.tip_top #tiptip_arrow {
+ border-top-color: #fff;
+ border-top-color: rgba(255,255,255,0.35);
+}
+
+#tiptip_holder.tip_bottom #tiptip_arrow {
+ border-bottom-color: #fff;
+ border-bottom-color: rgba(255,255,255,0.35);
+}
+
+#tiptip_holder.tip_right #tiptip_arrow {
+ border-right-color: #fff;
+ border-right-color: rgba(255,255,255,0.35);
+}
+
+#tiptip_holder.tip_left #tiptip_arrow {
+ border-left-color: #fff;
+ border-left-color: rgba(255,255,255,0.35);
+}
+
+#tiptip_holder.tip_top #tiptip_arrow_inner {
+ margin-top: -7px;
+ margin-left: -6px;
+ border-top-color: rgb(25,25,25);
+ border-top-color: rgba(25,25,25,0.92);
+}
+
+#tiptip_holder.tip_bottom #tiptip_arrow_inner {
+ margin-top: -5px;
+ margin-left: -6px;
+ border-bottom-color: rgb(25,25,25);
+ border-bottom-color: rgba(25,25,25,0.92);
+}
+
+#tiptip_holder.tip_right #tiptip_arrow_inner {
+ margin-top: -6px;
+ margin-left: -5px;
+ border-right-color: rgb(25,25,25);
+ border-right-color: rgba(25,25,25,0.92);
+}
+
+#tiptip_holder.tip_left #tiptip_arrow_inner {
+ margin-top: -6px;
+ margin-left: -7px;
+ border-left-color: rgb(25,25,25);
+ border-left-color: rgba(25,25,25,0.92);
+}
+
+/* Webkit Hacks */
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+ #tiptip_content {
+ padding: 4px 8px 5px 8px;
+ background-color: rgba(45,45,45,0.88);
+ }
+ #tiptip_holder.tip_bottom #tiptip_arrow_inner {
+ border-bottom-color: rgba(45,45,45,0.88);
+ }
+ #tiptip_holder.tip_top #tiptip_arrow_inner {
+ border-top-color: rgba(20,20,20,0.92);
+ }
+}
+
+/* Set the width of the menubar for the galery */
+#menubar {
+ width: 18em;
+}
+.content {
+ margin-left: 20em; /* = #menubar width + 2em */
+}
+/* Set minimum width of the page before getting a scrollbar */
+/* IE5 and IE6 don't get that */
+BODY {
+ min-width: 60em; /* ~ 3* #menubar width */
+}
+BODY#thePopuphelpPage {
+ min-width: 0;
+}
+
+/* Set some sizes according to your maximum thumbnail width and height */
+.content UL.thumbnails SPAN,
+.content UL.thumbnails SPAN.wrap2 A,
+.content UL.thumbnails LABEL,
+.content DIV.thumbnailCategory DIV.illustration {
+ width: 140px; /* max thumbnail width + 2px */
+}
+.content UL.thumbnails SPAN.wrap2,
+.content DIV.thumbnailCategory DIV.description {
+ height: 140px; /* max thumbnail height + 2px */
+}
+
+
+/* Category thumbnails on main page */
+.content UL.thumbnailCategories LI {
+ width: 49.7%; /* 49.7% for 2 per line, 33.2% for 3 per line*/
+}
+
+/* Set defaults for thumbnails legend */
+.content UL.thumbnails SPAN.thumbLegend {
+ display: block; /* display: none; if you don't want legend */
+ height: 4em; /* legend height (don't set auto to be Gecko friendly)*/
+} \ No newline at end of file
diff --git a/admin/themes/default/fix-ie5-ie6.css b/admin/themes/default/fix-ie5-ie6.css
new file mode 100644
index 000000000..078206d1d
--- /dev/null
+++ b/admin/themes/default/fix-ie5-ie6.css
@@ -0,0 +1,35 @@
+/* Issues in IE from 5 to 6 only not to be used with IE7 */
+
+
+/* to avoid vanishing objects in IE6 */
+H1, #theHeader {
+ width: 100%; /* <- useless but seems to make IE6 happy */
+}
+.content {
+ height: 1em; /* for IE6 it's like min-height */
+}
+
+/* fix quickconnect layout */
+FORM#quickconnect FIELDSET {
+ width: 99%; /* correct an ugly 1 or 2 px misalignement with IE */
+}
+
+/* fix IE with another layout for thumbnails */
+.content UL.thumbnails SPAN.wrap2 {
+ display: block;
+ position: relative;
+ text-align: left;
+}
+
+.content UL.thumbnails IMG.thumbnail {
+ position: relative;
+ top: -50%; /* Is this following hacking technic required ? */
+ /*\*//*/
+ margin-top: -40%;
+ /**/
+}
+.content UL.thumbnails INPUT {
+ position: absolute;
+ left: 2px;
+ top: 2px; /* same as other browsers but not so pretty */
+}
diff --git a/admin/themes/default/icon/cat_move.png b/admin/themes/default/icon/cat_move.png
new file mode 100644
index 000000000..9d6939cfc
--- /dev/null
+++ b/admin/themes/default/icon/cat_move.png
Binary files differ
diff --git a/admin/themes/default/icon/category_children.png b/admin/themes/default/icon/category_children.png
new file mode 100644
index 000000000..d2c4edd1f
--- /dev/null
+++ b/admin/themes/default/icon/category_children.png
Binary files differ
diff --git a/admin/themes/default/icon/category_delete.png b/admin/themes/default/icon/category_delete.png
new file mode 100644
index 000000000..b27ef62d3
--- /dev/null
+++ b/admin/themes/default/icon/category_delete.png
Binary files differ
diff --git a/admin/themes/default/icon/category_edit.png b/admin/themes/default/icon/category_edit.png
new file mode 100644
index 000000000..3ace19daf
--- /dev/null
+++ b/admin/themes/default/icon/category_edit.png
Binary files differ
diff --git a/admin/themes/default/icon/category_elements.png b/admin/themes/default/icon/category_elements.png
new file mode 100644
index 000000000..c5e3f9292
--- /dev/null
+++ b/admin/themes/default/icon/category_elements.png
Binary files differ
diff --git a/admin/themes/default/icon/category_jump-to.png b/admin/themes/default/icon/category_jump-to.png
new file mode 100644
index 000000000..765bc119f
--- /dev/null
+++ b/admin/themes/default/icon/category_jump-to.png
Binary files differ
diff --git a/admin/themes/default/icon/category_permissions.png b/admin/themes/default/icon/category_permissions.png
new file mode 100644
index 000000000..055d9e58d
--- /dev/null
+++ b/admin/themes/default/icon/category_permissions.png
Binary files differ
diff --git a/admin/themes/default/icon/category_representant_random.png b/admin/themes/default/icon/category_representant_random.png
new file mode 100644
index 000000000..26fe7016a
--- /dev/null
+++ b/admin/themes/default/icon/category_representant_random.png
Binary files differ
diff --git a/admin/themes/default/icon/check.png b/admin/themes/default/icon/check.png
new file mode 100644
index 000000000..708003a2b
--- /dev/null
+++ b/admin/themes/default/icon/check.png
Binary files differ
diff --git a/admin/themes/default/icon/datepicker.png b/admin/themes/default/icon/datepicker.png
new file mode 100644
index 000000000..72e836b93
--- /dev/null
+++ b/admin/themes/default/icon/datepicker.png
Binary files differ
diff --git a/admin/themes/default/icon/delete.png b/admin/themes/default/icon/delete.png
new file mode 100644
index 000000000..285e53e19
--- /dev/null
+++ b/admin/themes/default/icon/delete.png
Binary files differ
diff --git a/admin/themes/default/icon/edit_s.png b/admin/themes/default/icon/edit_s.png
new file mode 100644
index 000000000..efb639947
--- /dev/null
+++ b/admin/themes/default/icon/edit_s.png
Binary files differ
diff --git a/admin/themes/default/icon/errors.png b/admin/themes/default/icon/errors.png
new file mode 100644
index 000000000..e26d8c6e5
--- /dev/null
+++ b/admin/themes/default/icon/errors.png
Binary files differ
diff --git a/admin/themes/default/icon/exit.png b/admin/themes/default/icon/exit.png
new file mode 100644
index 000000000..685cc44b5
--- /dev/null
+++ b/admin/themes/default/icon/exit.png
Binary files differ
diff --git a/admin/themes/default/icon/fcbkcomplete_close.gif b/admin/themes/default/icon/fcbkcomplete_close.gif
new file mode 100644
index 000000000..cc2199248
--- /dev/null
+++ b/admin/themes/default/icon/fcbkcomplete_close.gif
Binary files differ
diff --git a/admin/themes/default/icon/help.png b/admin/themes/default/icon/help.png
new file mode 100644
index 000000000..cd1d20919
--- /dev/null
+++ b/admin/themes/default/icon/help.png
Binary files differ
diff --git a/admin/themes/default/icon/home.png b/admin/themes/default/icon/home.png
new file mode 100644
index 000000000..81b6bddb7
--- /dev/null
+++ b/admin/themes/default/icon/home.png
Binary files differ
diff --git a/admin/themes/default/icon/index.php b/admin/themes/default/icon/index.php
new file mode 100644
index 000000000..871b52b6a
--- /dev/null
+++ b/admin/themes/default/icon/index.php
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based picture gallery |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2009 Piwigo Team http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | 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();
+?>
diff --git a/admin/themes/default/icon/infos.png b/admin/themes/default/icon/infos.png
new file mode 100644
index 000000000..d98031df4
--- /dev/null
+++ b/admin/themes/default/icon/infos.png
Binary files differ
diff --git a/admin/themes/default/icon/note.png b/admin/themes/default/icon/note.png
new file mode 100644
index 000000000..9ef1af537
--- /dev/null
+++ b/admin/themes/default/icon/note.png
Binary files differ
diff --git a/admin/themes/default/icon/page_end.png b/admin/themes/default/icon/page_end.png
new file mode 100644
index 000000000..ac7b25ab8
--- /dev/null
+++ b/admin/themes/default/icon/page_end.png
Binary files differ
diff --git a/admin/themes/default/icon/page_top.png b/admin/themes/default/icon/page_top.png
new file mode 100644
index 000000000..30c58edd7
--- /dev/null
+++ b/admin/themes/default/icon/page_top.png
Binary files differ
diff --git a/admin/themes/default/icon/permissions.png b/admin/themes/default/icon/permissions.png
new file mode 100644
index 000000000..370ddddeb
--- /dev/null
+++ b/admin/themes/default/icon/permissions.png
Binary files differ
diff --git a/admin/themes/default/icon/plug_activate.png b/admin/themes/default/icon/plug_activate.png
new file mode 100644
index 000000000..feb97a1c9
--- /dev/null
+++ b/admin/themes/default/icon/plug_activate.png
Binary files differ
diff --git a/admin/themes/default/icon/plug_activate_grey.png b/admin/themes/default/icon/plug_activate_grey.png
new file mode 100644
index 000000000..bf2a9be53
--- /dev/null
+++ b/admin/themes/default/icon/plug_activate_grey.png
Binary files differ
diff --git a/admin/themes/default/icon/plug_deactivate.png b/admin/themes/default/icon/plug_deactivate.png
new file mode 100644
index 000000000..8401ad8b9
--- /dev/null
+++ b/admin/themes/default/icon/plug_deactivate.png
Binary files differ
diff --git a/admin/themes/default/icon/plug_deactivate_grey.png b/admin/themes/default/icon/plug_deactivate_grey.png
new file mode 100644
index 000000000..a7e55e669
--- /dev/null
+++ b/admin/themes/default/icon/plug_deactivate_grey.png
Binary files differ
diff --git a/admin/themes/default/icon/plug_delete.png b/admin/themes/default/icon/plug_delete.png
new file mode 100644
index 000000000..285e53e19
--- /dev/null
+++ b/admin/themes/default/icon/plug_delete.png
Binary files differ
diff --git a/admin/themes/default/icon/plug_delete_grey.png b/admin/themes/default/icon/plug_delete_grey.png
new file mode 100644
index 000000000..d3d070bfc
--- /dev/null
+++ b/admin/themes/default/icon/plug_delete_grey.png
Binary files differ
diff --git a/admin/themes/default/icon/plug_install.png b/admin/themes/default/icon/plug_install.png
new file mode 100644
index 000000000..bef78e171
--- /dev/null
+++ b/admin/themes/default/icon/plug_install.png
Binary files differ
diff --git a/admin/themes/default/icon/plug_install_grey.png b/admin/themes/default/icon/plug_install_grey.png
new file mode 100644
index 000000000..3bd56be3c
--- /dev/null
+++ b/admin/themes/default/icon/plug_install_grey.png
Binary files differ
diff --git a/admin/themes/default/icon/plug_uninstall.png b/admin/themes/default/icon/plug_uninstall.png
new file mode 100644
index 000000000..9fd420ad7
--- /dev/null
+++ b/admin/themes/default/icon/plug_uninstall.png
Binary files differ
diff --git a/admin/themes/default/icon/plug_uninstall_grey.png b/admin/themes/default/icon/plug_uninstall_grey.png
new file mode 100644
index 000000000..4d6291cee
--- /dev/null
+++ b/admin/themes/default/icon/plug_uninstall_grey.png
Binary files differ
diff --git a/admin/themes/default/icon/plugin_active.gif b/admin/themes/default/icon/plugin_active.gif
new file mode 100644
index 000000000..fe49227da
--- /dev/null
+++ b/admin/themes/default/icon/plugin_active.gif
Binary files differ
diff --git a/admin/themes/default/icon/plugin_inactive.gif b/admin/themes/default/icon/plugin_inactive.gif
new file mode 100644
index 000000000..19d551865
--- /dev/null
+++ b/admin/themes/default/icon/plugin_inactive.gif
Binary files differ
diff --git a/admin/themes/default/icon/preferences.png b/admin/themes/default/icon/preferences.png
new file mode 100644
index 000000000..8634b5159
--- /dev/null
+++ b/admin/themes/default/icon/preferences.png
Binary files differ
diff --git a/admin/themes/default/icon/ranks.png b/admin/themes/default/icon/ranks.png
new file mode 100644
index 000000000..47710e87f
--- /dev/null
+++ b/admin/themes/default/icon/ranks.png
Binary files differ
diff --git a/admin/themes/default/icon/ranks_grey.png b/admin/themes/default/icon/ranks_grey.png
new file mode 100644
index 000000000..f9757b998
--- /dev/null
+++ b/admin/themes/default/icon/ranks_grey.png
Binary files differ
diff --git a/admin/themes/default/icon/sync_metadata.png b/admin/themes/default/icon/sync_metadata.png
new file mode 100644
index 000000000..c527e2b04
--- /dev/null
+++ b/admin/themes/default/icon/sync_metadata.png
Binary files differ
diff --git a/admin/themes/default/icon/sync_metadata_pink.png b/admin/themes/default/icon/sync_metadata_pink.png
new file mode 100644
index 000000000..954c69612
--- /dev/null
+++ b/admin/themes/default/icon/sync_metadata_pink.png
Binary files differ
diff --git a/admin/themes/default/icon/toggle_is_default_group.png b/admin/themes/default/icon/toggle_is_default_group.png
new file mode 100644
index 000000000..7ddce0076
--- /dev/null
+++ b/admin/themes/default/icon/toggle_is_default_group.png
Binary files differ
diff --git a/admin/themes/default/icon/uncheck.png b/admin/themes/default/icon/uncheck.png
new file mode 100644
index 000000000..df08cb8fe
--- /dev/null
+++ b/admin/themes/default/icon/uncheck.png
Binary files differ
diff --git a/admin/themes/default/icon/validate_s.png b/admin/themes/default/icon/validate_s.png
new file mode 100644
index 000000000..adea3d580
--- /dev/null
+++ b/admin/themes/default/icon/validate_s.png
Binary files differ
diff --git a/admin/themes/default/icon/virt_category.png b/admin/themes/default/icon/virt_category.png
new file mode 100644
index 000000000..7957ec77c
--- /dev/null
+++ b/admin/themes/default/icon/virt_category.png
Binary files differ
diff --git a/admin/themes/default/index.php b/admin/themes/default/index.php
new file mode 100644
index 000000000..871b52b6a
--- /dev/null
+++ b/admin/themes/default/index.php
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based picture gallery |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2009 Piwigo Team http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | 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();
+?>
diff --git a/admin/themes/default/layout.css b/admin/themes/default/layout.css
new file mode 100644
index 000000000..5a7d5c4df
--- /dev/null
+++ b/admin/themes/default/layout.css
@@ -0,0 +1,12 @@
+
+/* template css */
+/*@import "menubar.css";*/
+@import "content.css";
+@import "thumbnails.css";
+@import "default-layout.css";
+/* Override properties with import local file */
+@import "local-layout.css";
+/* common css */
+@import "../../../template-common/default-layout.css";
+/* Override properties with import local file */
+@import "../../../template-common/local-layout.css"; \ No newline at end of file
diff --git a/admin/themes/default/local-layout.css b/admin/themes/default/local-layout.css
new file mode 100644
index 000000000..e8136ac6d
--- /dev/null
+++ b/admin/themes/default/local-layout.css
@@ -0,0 +1 @@
+/* You can modify this file */ \ No newline at end of file
diff --git a/admin/themes/default/local_head.tpl b/admin/themes/default/local_head.tpl
new file mode 100644
index 000000000..dd2ebc552
--- /dev/null
+++ b/admin/themes/default/local_head.tpl
@@ -0,0 +1,3 @@
+<!--[if lt IE 7]>
+ <link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/default/fix-ie5-ie6.css">
+<![endif]-->
diff --git a/admin/themes/default/menubar.css b/admin/themes/default/menubar.css
new file mode 100644
index 000000000..c0c51db29
--- /dev/null
+++ b/admin/themes/default/menubar.css
@@ -0,0 +1 @@
+/* menubar.css is no longer used in admin because menubar is always active in admin so it is layout */ \ No newline at end of file
diff --git a/admin/themes/default/picture.css b/admin/themes/default/picture.css
new file mode 100644
index 000000000..13b0ca6ef
--- /dev/null
+++ b/admin/themes/default/picture.css
@@ -0,0 +1,122 @@
+
+/* Maybe some cleanup has to be done there TODO */
+#imageHeaderBar {
+ padding-top: 2px;
+ padding-bottom: 2px;
+ margin-top: 4px;
+ overflow: hidden;
+ width: 100%;
+}
+
+#imageHeaderBar .browsePath {
+ float: left;
+ margin-left: 10px;
+}
+
+#imageHeaderBar .imageNumber {
+ float: right;
+ margin-right: 10px;
+}
+
+#imageHeaderBar H2 {
+ text-align: center;
+ padding: 0;
+ clear: both;
+}
+
+#imageToolBar {
+ text-align: center;
+ position: relative;
+ clear: both;
+ margin-bottom: 4px;
+ padding: 0;
+}
+
+#imageToolBar {
+ height: 28px;
+}
+#imageToolBar A, #imageToolBar IMG {
+ display: block;
+ border: none;
+ margin: 0; padding: 0;
+}
+#imageToolBar A { width: 48px; }
+#imageToolBar IMG { margin: 2px auto; }
+#imageToolBar .randomButtons A { float: left; }
+#imageToolBar .navButtons A { float: right; }
+
+#theImage {
+ clear: left;
+}
+
+#theImage>IMG {
+ display: block;
+ margin: 0 auto;
+}
+
+#theImage IMG {
+ border-width: 3px;
+ border-style: solid;
+}
+
+.navThumb {
+ margin-top: 2px;
+}
+#thumbPrev {
+ float: left;
+}
+
+#thumbNext {
+ float: right;
+}
+
+#linkPrev {
+ margin-right: 10px;
+ margin-left: 5px;
+}
+
+#linkNext {
+ margin-right: 5px;
+ margin-left: 10px;
+}
+
+TABLE.infoTable .value {
+ text-align: left;
+}
+
+TABLE.infoTable .label {
+ font-weight: bold;
+ text-align: right;
+ padding-right: 0.5em;
+}
+
+TABLE.infoTable TD.value UL {
+ margin: 0;
+ padding: 0 0 0 1.5em;
+ list-style-type: square;
+}
+
+#comments {
+ text-align: left;
+}
+
+#comments .comment {
+ margin: 1em 0;
+}
+
+#comments P {
+ margin: 0 0.5em 0 1em;
+}
+
+#comments .author {
+ font-weight: bold;
+}
+
+#thePicturePage #comments BLOCKQUOTE {
+ margin: 0.5em 1em 1em 4em;
+}
+
+#comments P.userCommentDelete {
+ float: right;
+ margin: 0 0.5em 0 0;
+}
diff --git a/admin/themes/default/print.css b/admin/themes/default/print.css
new file mode 100644
index 000000000..88c9ef4a1
--- /dev/null
+++ b/admin/themes/default/print.css
@@ -0,0 +1,14 @@
+#menubar, .content .navigationBar, UL.categoryActions,
+#imageToolBar, .navThumb, #addComment {
+ display: none;
+}
+
+BODY {
+ margin: 0;
+ color: #000000;
+ background: #ffffff;
+}
+
+.content {
+ margin: 0;
+}
diff --git a/admin/themes/default/template/admin.tpl b/admin/themes/default/template/admin.tpl
new file mode 100644
index 000000000..8de4f69ea
--- /dev/null
+++ b/admin/themes/default/template/admin.tpl
@@ -0,0 +1,118 @@
+{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js" }
+{known_script id="jquery.ui.accordion" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.accordion.packed.js" }
+{known_script id="jquery.tipTip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.tipTip.minified.js" }
+
+<script type="text/javascript">
+jQuery().ready(function(){ldelim}
+ jQuery('#menubar').accordion({ldelim}
+ header: "dt.rdion",
+ event: "click",
+ active: {$U_ACTIVE_MENU|default:$themeconf.selected_admin_menu}
+ });
+});
+</script>
+
+<div id="menubar">
+ <div id="adminHome"><a href="{$U_ADMIN}">Administration Home</a></div>
+ <dl class="first">
+ <dt class="rdion"><span>{'Configuration'|@translate}&nbsp;</span></dt>
+ <dd>
+ <ul>
+ <li><a href="{$U_CONFIG_GENERAL}">{'General'|@translate}</a></li>
+ <li><a href="{$U_CONFIG_DISPLAY}">{'Default display'|@translate}</a></li>
+ <li><a href="{$U_CONFIG_MENUBAR}">{'Menu'|@translate}</a></li>
+ <li><a href="{$U_CONFIG_EXTENTS}">{'Templates'|@translate}</a></li>
+ </ul>
+ </dd>
+ </dl>
+ <dl>
+ <dt class="rdion"><span>{'Categories'|@translate}&nbsp;</span></dt>
+ <dd>
+ <ul>
+ <li><a href="{$U_SITE_MANAGER}">{'Site manager'|@translate}</a></li>
+ <li><a href="{$U_CAT_UPDATE}">{'Synchronize'|@translate}</a></li>
+ <li><a href="{$U_CATEGORIES}">{'Manage'|@translate}</a></li>
+ <li><a href="{$U_MOVE}">{'Move'|@translate}</a></li>
+ <li><a href="{$U_CAT_OPTIONS}">{'Properties'|@translate}</a></li>
+ <li><a href="{$U_PERMALINKS}">{'Permalinks'|@translate}</a></li>
+ </ul>
+ </dd>
+ </dl>
+ <dl>
+ <dt class="rdion"><span>{'Pictures'|@translate}&nbsp;</span></dt>
+ <dd>
+ <ul>
+ <li><a href="{$U_ADD_PHOTOS}">{'Add'|@translate}</a></li>
+ <li><a href="{$U_WAITING}">{'Waiting'|@translate}</a></li>
+ <li><a href="{$U_THUMBNAILS}">{'Thumbnails'|@translate}</a></li>
+ <li><a href="{$U_RATING}">{'Rating'|@translate}</a></li>
+ <li><a href="{$U_TAGS}">{'Tags'|@translate}</a></li>
+ <li><a href="{$U_CADDIE}">{'Caddie'|@translate}</a></li>
+ <li><a href="{$U_RECENT_SET}">{'Recent pictures'|@translate}</a></li>
+ </ul>
+ </dd>
+ </dl>
+ <dl>
+ <dt class="rdion"><span>{'Identification'|@translate}&nbsp;</span></dt>
+ <dd>
+ <ul>
+ <li><a href="{$U_USERS}">{'Users'|@translate}</a></li>
+ <li><a href="{$U_GROUPS}">{'Groups'|@translate}</a></li>
+ <li><a href="{$U_NOTIFICATION_BY_MAIL}">{'Notification'|@translate}</a></li>
+ </ul>
+ </dd>
+ </dl>
+ <dl>
+ <dt class="rdion"><span>{'Specials'|@translate}&nbsp;</span></dt>
+ <dd>
+ <ul>
+ <li><a href="{$U_HISTORY_STAT}">{'History'|@translate}</a></li>
+ <li><a href="{$U_MAINTENANCE}">{'Maintenance'|@translate}</a></li>
+ <li><a href="{$U_ADVANCED_FEATURE}">{'Advanced features'|@translate}</a></li>
+ <li><a href="{$U_PLUGINS}">{'Plugins'|@translate}</a>
+ {if !empty($plugin_menu_items)}
+ <ul class="scroll">
+ {foreach from=$plugin_menu_items item=menu_item}
+ <li><a href="{$menu_item.URL}">{$menu_item.NAME}</a></li>
+ {/foreach}
+ </ul>
+ {/if}
+ </li>
+ </ul>
+ </dd>
+ </dl>
+</div> <!-- menubar -->
+
+<div id="content" class="content">
+
+ {if isset($TABSHEET)}
+ {$TABSHEET}
+ {/if}
+ {if isset($U_HELP)}
+ <ul class="HelpActions">
+ <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/help.png" class="button" alt="(?)"></a></li>
+ </ul>
+ {/if}
+
+ {if isset($errors)}
+ <div class="errors">
+ <ul>
+ {foreach from=$errors item=error}
+ <li>{$error}</li>
+ {/foreach}
+ </ul>
+ </div>
+ {/if}
+
+ {if isset($infos)}
+ <div class="infos">
+ <ul>
+ {foreach from=$infos item=info}
+ <li>{$info}</li>
+ {/foreach}
+ </ul>
+ </div>
+ {/if}
+
+ {$ADMIN_CONTENT}
+</div>
diff --git a/admin/themes/default/template/advanced_feature.tpl b/admin/themes/default/template/advanced_feature.tpl
new file mode 100644
index 000000000..76209387c
--- /dev/null
+++ b/admin/themes/default/template/advanced_feature.tpl
@@ -0,0 +1,9 @@
+<div class="titrePage">
+ <h2>{'Advanced features'|@translate}</h2>
+</div>
+
+<ul>
+ {foreach from=$advanced_features item=feature}
+ <li><a href="{$feature.URL}" {$TAG_INPUT_ENABLED}>{$feature.CAPTION}</a></li>
+ {/foreach}
+</ul>
diff --git a/admin/themes/default/template/cat_list.tpl b/admin/themes/default/template/cat_list.tpl
new file mode 100644
index 000000000..30b517a7b
--- /dev/null
+++ b/admin/themes/default/template/cat_list.tpl
@@ -0,0 +1,93 @@
+{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.sortable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.sortable.packed.js" }
+
+<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}
+ cat = ar[i].split('cat_');
+ document.getElementsByName('catOrd[' + cat[1] + ']')[0].value = i;
+ }
+ });
+ });
+</script>
+
+<h2>{'Categories management'|@translate}</h2>
+
+<h3>{$CATEGORIES_NAV}</h3>
+
+<form id="addVirtual" action="{$F_ACTION}" method="post">
+ <p>
+ {'Add a virtual category'|@translate} : <input type="text" name="virtual_name">
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="submitAdd" {$TAG_INPUT_ENABLED}>
+ {if count($categories)>9 }
+ <a href="#EoP" class="button" style="border:0;">
+ <img src="{$themeconf.admin_icon_dir}/page_end.png" title="{'Page end'|@translate}" class="button" alt="page_end" style="margin-bottom:-0.6em;"></a>
+ {/if}
+ </p>
+</form>
+
+{if count($categories) }
+<form id="categoryOrdering" action="{$F_ACTION}" method="post">
+ <p>
+ <input class="submit" name="submitOrder" type="submit" value="{'Save order'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" name="submitOrderAlphaNum" type="submit" value="{'Order alphanumerically'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" name="submitOrderAlphaNumReverse" type="submit" value="{'Order alphanumerically reverse'|@translate}" {$TAG_INPUT_ENABLED}>
+ </p>
+ <ul class="categoryUl">
+
+ {foreach from=$categories item=category}
+ <li class="categoryLi{if $category.IS_VIRTUAL} virtual_cat{/if}" id="cat_{$category.ID}">
+ <!-- category {$category.ID} -->
+ <ul class="categoryActions">
+ {if cat_admin_access($category.ID)}
+ <li><a href="{$category.U_JUMPTO}" title="{'jump to category'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_jump-to.png" class="button" alt="{'jump to category'|@translate}"></a></li>
+ {/if}
+ <li><a href="{$category.U_EDIT}" title="{'edit'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_edit.png" class="button" alt="{'edit'|@translate}"></a></li>
+ {if isset($category.U_MANAGE_ELEMENTS) }
+ <li><a href="{$category.U_MANAGE_ELEMENTS}" title="{'elements'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_elements.png" class="button" alt="{'elements'|@translate}"></a></li>
+ {/if}
+ <li><a href="{$category.U_CHILDREN}" title="{'sub-categories'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_children.png" class="button" alt="{'sub-categories'|@translate}"></a></li>
+ {if isset($category.U_MANAGE_PERMISSIONS) }
+ <li><a href="{$category.U_MANAGE_PERMISSIONS}" title="{'Permissions'|@translate}" ><img src="{$themeconf.admin_icon_dir}/category_Permissions.png" class="button" alt="{'Permissions'|@translate}"></a></li>
+ {/if}
+ {if isset($category.U_DELETE) }
+ <li><a href="{$category.U_DELETE}" title="{'Are you sure?'|@translate|@escape:javascript}');"><img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'delete'|@translate}" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');"><img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'delete'|@translate}"></a></li>
+ {/if}
+ </ul>
+
+ <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><a href="{$category.U_CHILDREN}" title="{'manage sub-categories'|@translate}">{$category.NAME}</a></strong>
+ {if $category.IS_VIRTUAL}
+ <img src="{$themeconf.admin_icon_dir}/virt_category.png" class="button" alt="{'Virtual category'|@translate}">
+ {/if}
+ </p>
+
+ <p class="catPos">
+ <label>
+ {'Position'|@translate} :
+ <input type="text" size="4" name="catOrd[{$category.ID}]" maxlength="4" value="{$category.RANK}">
+ </label>
+ </p>
+
+ </li>
+ {/foreach}
+ </ul>
+ <p>
+ <input class="submit" name="submitOrder" type="submit" value="{'Save order'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" name="submitOrderAlphaNum" type="submit" value="{'Order alphanumerically'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" name="submitOrderAlphaNumReverse" type="submit" value="{'Order alphanumerically reverse'|@translate}" {$TAG_INPUT_ENABLED}>
+ </p>
+
+</form>
+{/if}
diff --git a/admin/themes/default/template/cat_modify.tpl b/admin/themes/default/template/cat_modify.tpl
new file mode 100644
index 000000000..1878da75c
--- /dev/null
+++ b/admin/themes/default/template/cat_modify.tpl
@@ -0,0 +1,232 @@
+
+{include file='include/autosize.inc.tpl'}
+{include file='include/resize.inc.tpl'}
+
+<div class="titrePage">
+ <h2>{'Edit a category'|@translate}</h2>
+</div>
+
+<h3>{$CATEGORIES_NAV}</h3>
+
+<ul class="categoryActions">
+ {if cat_admin_access($CAT_ID)}
+ <li><a href="{$U_JUMPTO}" title="{'jump to category'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_jump-to.png" class="button" alt="{'jump to category'|@translate}"></a></li>
+ {/if}
+ {if isset($U_MANAGE_ELEMENTS) }
+ <li><a href="{$U_MANAGE_ELEMENTS}" title="{'elements'|@translate}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/category_elements.png" class="button" alt="{'elements'|@translate}"></a></li>
+ <li><a href="{$U_MANAGE_RANKS}" title="{'ranks'|@translate}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/ranks.png" class="button" alt="{'ranks'|@translate}"></a></li>
+ {/if}
+ <li><a href="{$U_CHILDREN}" title="{'sub-categories'|@translate}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/category_children.png" class="button" alt="{'sub-categories'|@translate}"></a></li>
+ {if isset($U_MANAGE_PERMISSIONS) }
+ <li><a href="{$U_MANAGE_PERMISSIONS}" title="{'Permissions'|@translate}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/category_Permissions.png" class="button" alt="{'Permissions'|@translate}"></a></li>
+ {/if}
+ {if isset($U_DELETE) }
+ <li><a href="{$U_DELETE}" title="{'Are you sure?'|@translate|@escape:'javascript'}');"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'delete'|@translate}" onclick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'delete'|@translate}"></a></li>
+ {/if}
+</ul>
+
+<form action="{$F_ACTION}" method="POST" id="catModify">
+
+<fieldset>
+ <legend>{'Informations'|@translate}</legend>
+ <table>
+
+ {if isset($CAT_FULL_DIR) }
+ <tr>
+ <td><strong>{'Directory'|@translate}</strong></td>
+ <td class="row1">{$CAT_FULL_DIR}</td>
+ </tr>
+ {/if}
+
+ <tr>
+ <td><strong>{'Name'|@translate}</strong></td>
+ <td>
+ <input type="text" class="large" name="name" value="{$CAT_NAME}" maxlength="60">
+ </td>
+ </tr>
+ <tr>
+ <td><strong>{'Description'|@translate}</strong></td>
+ <td>
+ <textarea cols="50" rows="5" name="comment" id="comment" class="description">{$CAT_COMMENT}</textarea>
+ </td>
+ </tr>
+ </table>
+</fieldset>
+
+{if isset($move_cat_options) }
+<fieldset id="move">
+ <legend>{'Move'|@translate}</legend>
+ {'Parent category'|@translate}
+ <select class="categoryDropDown" name="parent">
+ <option value="0">------------</option>
+ {html_options options=$move_cat_options selected=$move_cat_options_selected }
+ </select>
+</fieldset>
+{/if}
+
+<fieldset id="options">
+ <legend>{'Options'|@translate}</legend>
+ <table>
+ <tr>
+ <td><strong>{'Access type'|@translate}</strong>
+ <td>
+ {html_radios name='status' values=$status_values output=$status_values|translate selected=$CAT_STATUS}
+ </td>
+ </tr>
+ <tr>
+ <td><strong>{'Lock'|@translate}</strong>
+ <td>
+ {html_radios name='visible' values='true,false'|@explode output='No,Yes'|@explode|translate selected=$CAT_VISIBLE}
+ </td>
+ </tr>
+ <tr>
+ <td><strong>{'Comments'|@translate}</strong>
+ <td>
+ {html_radios name='commentable' values='false,true'|@explode output='No,Yes'|@explode|translate selected=$CAT_COMMENTABLE}
+ </td>
+ </tr>
+ {if isset($SHOW_UPLOADABLE) }
+ <tr>
+ <td><strong>{'Authorize upload'|@translate}</strong>
+ <td>
+ {html_radios name='uploadable' values='false,true'|@explode output='No,Yes'|@explode|translate selected=$CAT_UPLOADABLE}
+ </td>
+ </tr>
+ {/if}
+ </table>
+</fieldset>
+
+<fieldset id="image_order">
+ <legend>{'Sort order'|@translate}</legend>
+ <input type="checkbox" name="image_order_default" id="image_order_default" {$IMG_ORDER_DEFAULT}>
+ <label for="image_order_default">{'Use the default image sort order (defined in the configuration file)'|@translate}</label>
+ <br>
+ <input type="checkbox" name="image_order_subcats" id="image_order_subcats">
+ <label for="image_order_subcats">{'Apply to subcategories'|@translate}</label>
+ <br>
+
+ {foreach from=$image_orders item=order}
+ <select name="order_field_{$order.ID}">
+ {html_options options=$image_order_field_options selected=$order.FIELD }
+ </select>
+ <select name="order_direction_{$order.ID}">
+ {html_options options=$image_order_direction_options selected=$order.DIRECTION }
+ </select><br>
+ {/foreach}
+
+</fieldset>
+
+<p style="text-align:center;">
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset">
+</p>
+
+{if isset($representant) }
+<fieldset id="representant">
+ <legend>{'Representant'|@translate}</legend>
+ <table>
+ <tr>
+ <td align="center">
+ {if isset($representant.picture) }
+ <a href="{$representant.picture.URL}"><img src="{$representant.picture.SRC}" alt="" class="miniature"></a>
+ {else}
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/category_representant_random.png" class="button" alt="{'Random picture'|@translate}" class="miniature">
+ {/if}
+ </td>
+ <td>
+ {if $representant.ALLOW_SET_RANDOM }
+ <p><input class="submit" type="submit" name="set_random_representant" value="{'Find a new representant by random'|@translate}" {$TAG_INPUT_ENABLED}></p>
+ {/if}
+
+ {if isset($representant.ALLOW_DELETE) }
+ <p><input class="submit" type="submit" name="delete_representant" value="{'Delete Representant'|@translate}"></p>
+ {/if}
+ </td>
+ </tr>
+ </table>
+</fieldset>
+{/if}
+
+</form>
+
+<form action="{$F_ACTION}" method="POST" id="links">
+
+<fieldset id="linkAllNew">
+ <legend>{'Link all category elements to a new category'|@translate}</legend>
+
+ <table>
+ <tr>
+ <td>{'Virtual category name'|@translate}</td>
+ <td><input type="text" class="large" name="virtual_name"></td>
+ </tr>
+
+ <tr>
+ <td>{'Parent category'|@translate}</td>
+ <td>
+ <select class="categoryDropDown" name="parent">
+ <option value="0">------------</option>
+ {html_options options=$create_new_parent_options }
+ </select>
+ </td>
+ </tr>
+ </table>
+
+ <p>
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="submitAdd" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset">
+ </p>
+
+</fieldset>
+
+<fieldset id="linkAllExist">
+ <legend>{'Link all category elements to some existing categories'|@translate}</legend>
+
+ <table>
+ <tr>
+ <td>{'Categories'|@translate}</td>
+ <td>
+ <select class="categoryList" name="destinations[]" multiple="multiple" size="5">
+ {html_options options=$category_destination_options }
+ </select>
+ </td>
+ </tr>
+ </table>
+
+ <p>
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="submitDestinations" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset">
+ </p>
+
+</fieldset>
+
+{if isset($group_mail_options)}
+<fieldset id="emailCatInfo">
+ <legend>{'Send an information email to group members'|@translate}</legend>
+
+ <table>
+ <tr>
+ <td><strong>{'Group'|@translate}</strong></td>
+ <td>
+ <select name="group">
+ {html_options options=$group_mail_options}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td><strong>{'Mail content'|@translate}</strong></td>
+ <td>
+ <textarea cols="50" rows="5" name="mail_content" id="mail_content" class="description">{$MAIL_CONTENT}</textarea>
+ </td>
+ </tr>
+
+ </table>
+
+ <p>
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="submitEmail" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset">
+ </p>
+
+</fieldset>
+{/if}
+
+</form>
diff --git a/admin/themes/default/template/cat_move.tpl b/admin/themes/default/template/cat_move.tpl
new file mode 100644
index 000000000..f8a83c584
--- /dev/null
+++ b/admin/themes/default/template/cat_move.tpl
@@ -0,0 +1,36 @@
+
+{include file='include/resize.inc.tpl'}
+
+<div class="titrePage">
+ <h2>{'Move categories'|@translate}</h2>
+</div>
+
+<form method="post" action="{$F_ACTION}" class="filter" id="catMove">
+ <fieldset>
+ <legend>{'Virtual categories movement'|@translate}</legend>
+
+ <label>
+ {'Virtual categories to move'|@translate}
+
+ <select class="categoryList" name="selection[]" multiple="multiple">
+ {html_options options=$category_to_move_options}
+ </select>
+ </label>
+
+ <label>
+ {'New parent category'|@translate}
+
+ <select class="categoryDropDown" name="parent">
+ <option value="0">------------</option>
+ {html_options options=$category_parent_options}
+ </select>
+ </label>
+
+ </fieldset>
+
+ <p>
+ <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" name="reset" value="{'Reset'|@translate}">
+ </p>
+
+</form>
diff --git a/admin/themes/default/template/cat_options.tpl b/admin/themes/default/template/cat_options.tpl
new file mode 100644
index 000000000..9c25c1ef0
--- /dev/null
+++ b/admin/themes/default/template/cat_options.tpl
@@ -0,0 +1,11 @@
+<div class="titrePage">
+ <h2>{'Properties'|@translate} {$TABSHEET_TITLE}</h2>
+</div>
+
+<form method="post" action="{$F_ACTION}" id="cat_options">
+ <fieldset>
+ <legend>{$L_SECTION}</legend>
+ {$DOUBLE_SELECT}
+ </fieldset>
+</form>
+
diff --git a/admin/themes/default/template/cat_perm.tpl b/admin/themes/default/template/cat_perm.tpl
new file mode 100644
index 000000000..fb239e79f
--- /dev/null
+++ b/admin/themes/default/template/cat_perm.tpl
@@ -0,0 +1,64 @@
+<div class="titrePage">
+ <h2>{'Manage permissions for a category'|@translate}</h2>
+</div>
+
+<h3>{$CATEGORIES_NAV}</h3>
+
+<form action="{$F_ACTION}" method="post" id="categoryPermissions">
+
+ <h4>{'Groups'|@translate}</h4>
+
+ <fieldset>
+ <legend>{'Permission granted'|@translate}</legend>
+ <ul>
+ {foreach from=$group_granted_ids item=id}
+ <li><label><input type="checkbox" name="deny_groups[]" value="{$id}"> {$all_groups[$id]}</label></li>
+ {/foreach}
+ </ul>
+ <input class="submit" type="submit" name="deny_groups_submit" value="{'Deny selected groups'|@translate}" {$TAG_INPUT_ENABLED}>
+ </fieldset>
+
+ <fieldset>
+ <legend>{'Permission denied'|@translate}</legend>
+ <ul>
+ {foreach from=$group_denied_ids item=id}
+ <li><label><input type="checkbox" name="grant_groups[]" value="{$id}"> {$all_groups[$id]}</label></li>
+ {/foreach}
+ </ul>
+ <input class="submit" type="submit" name="grant_groups_submit" value="{'Grant selected groups'|@translate}" {$TAG_INPUT_ENABLED}>
+ </fieldset>
+
+ <h4>{'Users'|@translate}</h4>
+
+ <fieldset>
+ <legend>{'Permission granted'|@translate}</legend>
+ <ul>
+ {foreach from=$user_granted_direct_ids item=id}
+ <li><label><input type="checkbox" name="deny_users[]" value="{$id}"> {$all_users[$id]}</label></li>
+ {/foreach}
+ </ul>
+ <input class="submit" type="submit" name="deny_users_submit" value="{'Deny selected users'|@translate}" {$TAG_INPUT_ENABLED}>
+ </fieldset>
+
+ <fieldset>
+ <legend>{'Permission granted thanks to a group'|@translate}</legend>
+ {if isset($user_granted_indirects) }
+ <ul>
+ {foreach from=$user_granted_indirects item=user_group}
+ <li>{$user_group.USER} ({$user_group.GROUP})</li>
+ {/foreach}
+ </ul>
+ {/if}
+ </fieldset>
+
+ <fieldset>
+ <legend>{'Permission denied'|@translate}</legend>
+ <ul>
+ {foreach from=$user_denied_ids item=id}
+ <li><label><input type="checkbox" name="grant_users[]" value="{$id}"> {$all_users[$id]}</label></li>
+ {/foreach}
+ </ul>
+ <input class="submit" type="submit" name="grant_users_submit" value="{'Grant selected users'|@translate}" {$TAG_INPUT_ENABLED}>
+ </fieldset>
+
+</form>
diff --git a/admin/themes/default/template/check_integrity.tpl b/admin/themes/default/template/check_integrity.tpl
new file mode 100644
index 000000000..7cf566123
--- /dev/null
+++ b/admin/themes/default/template/check_integrity.tpl
@@ -0,0 +1,83 @@
+<dl>
+ <dt>{'Check integrity'|@translate}</dt>
+ <dd>
+ <ul>
+ <form method="post" name="c13y" id="c13y" action="">
+ <fieldset>
+ <table class="table2">
+ <tr class="throw">
+ <th></th>
+ <th>{'Anomaly'|@translate}</th>
+ <th>{'Correction'|@translate}</th>
+ </tr>
+ {if isset($c13y_list)}
+ {foreach from=$c13y_list item=c13y name=c13y_loop}
+ <tr class="{if $smarty.foreach.c13y_loop.index is odd}row1{else}row2{/if}">
+ <td>
+ {if $c13y.can_select}
+ <input type="checkbox" name="c13y_selection[]" value="{$c13y.id}" id="c13y_selection-{$c13y.id}"><label for="c13y_selection-{$c13y.id}"></label>
+ {/if}
+ </td>
+ <td><label for="c13y_selection-{$c13y.id}">{$c13y.anomaly}</label></td>
+ <td>
+ <label for="c13y_selection-{$c13y.id}">
+ {if $c13y.show_ignore_msg}
+ {'The anomaly will be ignored until next application version'|@translate}
+ <br>
+ {'Correction the anomaly will cancel the fact that it\'s ignored'|@translate}
+ {/if}
+ {if $c13y.show_correction_fct}
+ {'Automatic correction'|@translate}
+ {/if}
+ {if $c13y.show_correction_bad_fct}
+ {'Impossible automatic correction'|@translate}
+ {/if}
+ {if $c13y.show_correction_success_fct}
+ {'Correction applied with success'|@translate}
+ {/if}
+ {if !empty($c13y.correction_error_fct)}
+ {'Correction applied with error'|@translate}
+ <br>
+ {$c13y.c13y.correction_error_fct}
+ {/if}
+ {if !empty($c13y.correction_msg)}
+ {if $c13y.show_correction_success_fct or !empty($c13y.correction_error_fct) or $c13y.show_correction_fct or $c13y.show_correction_bad_fct }
+ <br>
+ {/if}
+ {$c13y.correction_msg|@nl2br}
+ {/if}
+ </label>
+ </td>
+ </tr>
+ {/foreach}
+ {/if}
+ </table>
+
+ <p>
+ {if $c13y_show_submit_ignore}
+ <a href="#" onclick="SelectAll(document.getElementById('c13y')); return false;">{'Check all'|@translate}</a>
+ / <a href="#" onclick="DeselectAll(document.getElementById('c13y')); return false;">{'Uncheck all'|@translate}</a>
+ {/if}
+ {if isset($c13y_do_check)}
+ / <a href="#" onclick="DeselectAll(document.getElementById('c13y'));
+ {foreach from=$c13y_do_check item=ID}
+ document.getElementById('c13y_selection-{$ID}').checked = true;
+ {/foreach}
+ return false;">{'Check automatic corrections'|@translate}</a>
+ {/if}
+ </p>
+
+ <p>
+ {if $c13y_show_submit_automatic_correction}
+ <input class="submit" type="submit" value="{'Apply selected corrections'|@translate}" name="Apply selected corrections" {$TAG_INPUT_ENABLED}>
+ {/if}
+ {if $c13y_show_submit_ignore}
+ <input class="submit" type="submit" value="{'Ignore selected anomalies'|@translate}" name="Ignore selected anomalies" {$TAG_INPUT_ENABLED}>
+ {/if}
+ <input class="submit" type="submit" value="{'Refresh'|@translate}" name="Refresh">
+ </p>
+
+ </fieldset>
+ </form>
+ </ul>
+ </dd>
diff --git a/admin/themes/default/template/comments.tpl b/admin/themes/default/template/comments.tpl
new file mode 100644
index 000000000..b7ac21ba4
--- /dev/null
+++ b/admin/themes/default/template/comments.tpl
@@ -0,0 +1,31 @@
+<div class="titrePage">
+ <h2>{'Waiting'|@translate} {$TABSHEET_TITLE}</h2>
+</div>
+
+<h3>{'User comments validation'|@translate}</h3>
+
+{if !empty($comments) }
+<form method="post" action="{$F_ACTION}">
+
+ {foreach from=$comments item=comment}
+ <div class="comment">
+ <a class="illustration" href="{$comment.U_PICTURE}"><img src="{$comment.TN_SRC}"></a>
+ <p class="commentHeader"><strong>{$comment.AUTHOR}</strong> - <em>{$comment.DATE}</em></p>
+ <blockquote>{$comment.CONTENT}</blockquote>
+ </div>
+ <ul class="actions">
+ <li><label><input type="radio" name="action-{$comment.ID}" value="reject">{'Reject'|@translate}</label></li>
+ <li><label><input type="radio" name="action-{$comment.ID}" value="validate">{'Validate'|@translate}</label></li>
+ </ul>
+ {/foreach}
+
+ <p class="bottomButtons">
+ <input type="hidden" name="list" value="{$LIST}">
+ <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="submit" name="validate-all" value="{'Validate All'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="submit" name="reject-all" value="{'Reject All'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}">
+ </p>
+
+</form>
+{/if}
diff --git a/admin/themes/default/template/configuration.tpl b/admin/themes/default/template/configuration.tpl
new file mode 100644
index 000000000..065a2ad76
--- /dev/null
+++ b/admin/themes/default/template/configuration.tpl
@@ -0,0 +1,209 @@
+
+{include file='include/autosize.inc.tpl'}
+
+<div class="titrePage">
+ <h2>{'Piwigo configuration'|@translate} {$TABSHEET_TITLE}</h2>
+</div>
+
+{if !isset($default)}
+<form method="post" action="{$F_ACTION}" class="properties">
+{/if}
+
+{if isset($main)}
+<fieldset id="mainConf">
+ <legend></legend>
+ <ul>
+ <li>
+ <span class="property">
+ <label for="gallery_title">{'Gallery title'|@translate}</label>
+ </span>
+ <input type="text" maxlength="255" size="50" name="gallery_title" id="gallery_title" value="{$main.CONF_GALLERY_TITLE}">
+ </li>
+
+ <li>
+ <span class="property">
+ <label for="page_banner">{'Page banner'|@translate}</label>
+ </span>
+ <textarea rows="5" cols="50" class="description" name="page_banner" id="page_banner">{$main.CONF_PAGE_BANNER}</textarea>
+ </li>
+
+ <li>
+ <span class="property">
+ <label for="gallery_url">{'Gallery URL'|@translate}</label>
+ </span>
+ <input type="text" maxlength="255" size="50" name="gallery_url" id="gallery_url" value="{$main.CONF_GALLERY_URL}">
+ </li>
+ </ul>
+</fieldset>
+
+<fieldset id="mainConfCheck">
+ <legend></legend>
+ <ul>
+ <li>
+ <label>
+ <span class="property">{'Lock gallery'|@translate}</span>
+ <input type="checkbox" name="gallery_locked" {if ($main.gallery_locked)}checked="checked"{/if}>
+ </label>
+ </li>
+
+ <li>
+ <label>
+ <span class="property">{'Rating'|@translate}</span>
+ <input type="checkbox" name="rate" {if ($main.rate)}checked="checked"{/if}>
+ </label>
+ </li>
+
+ <li>
+ <label>
+ <span class="property">{'Rating by guests'|@translate}</span>
+ <input type="checkbox" name="rate_anonymous" {if ($main.rate_anonymous)}checked="checked"{/if}>
+ </label>
+ </li>
+
+ <li>
+ <label>
+ <span class="property">{'Allow user registration'|@translate}</span>
+ <input type="checkbox" name="allow_user_registration" {if ($main.allow_user_registration)}checked="checked"{/if}>
+ </label>
+ </li>
+
+ <li>
+ <label>
+ <span class="property">{'Mail address is obligatory for all users'|@translate}</span>
+ <input type="checkbox" name="obligatory_user_mail_address" {if ($main.obligatory_user_mail_address)}checked="checked"{/if}>
+ </label>
+ </li>
+
+ <li>
+ <label>
+ <span class="property">{'Email admins when a new user registers'|@translate}</span>
+ <input type="checkbox" name="email_admin_on_new_user" {if ($main.email_admin_on_new_user)}checked="checked"{/if}>
+ </label>
+ </li>
+ </ul>
+</fieldset>
+{/if}
+
+{if isset($history)}
+<fieldset id="historyConf">
+ <legend></legend>
+ <ul>
+ <li>
+ <label><span class="property">{'Save page visits by guests'|@translate}</span><input type="checkbox" name="history_guest" {if ($history.history_guest)}checked="checked"{/if}></label>
+ </li>
+
+ <li>
+ <label><span class="property">{'Save page visits by users'|@translate}</span><input type="checkbox" name="log" {if ($history.log)}checked="checked"{/if}></label>
+ </li>
+
+ <li>
+ <label><span class="property">{'Save page visits by administrators'|@translate}</span><input type="checkbox" name="history_admin" {if ($history.history_admin)}checked="checked"{/if}></label>
+ </li>
+ </ul>
+</fieldset>
+{/if}
+
+
+{if isset($comments)}
+<fieldset id="commentsConf">
+ <legend></legend>
+ <ul>
+ <li>
+ <label>
+ <span class="property">{'Comments for all'|@translate}</span>
+ <input type="checkbox" name="comments_forall" {if ($comments.comments_forall)}checked="checked"{/if}>
+ </label>
+ </li>
+
+ <li>
+ <span class="property">
+ <label for="nb_comment_page">{'Number of comments per page'|@translate}</label>
+ </span>
+ <input type="text" size="3" maxlength="4" name="nb_comment_page" id="nb_comment_page" value="{$comments.NB_COMMENTS_PAGE}">
+ </li>
+
+ <li>
+ <label>
+ <span class="property">{'Validation'|@translate}</span>
+ <input type="checkbox" name="comments_validation" {if ($comments.comments_validation)}checked="checked"{/if}>
+ </label>
+ </li>
+
+
+ <li>
+ <label>
+ <span class="property">{'Email admins when a valid comment is entered'|@translate}</span>
+ <input type="checkbox" name="email_admin_on_comment" {if ($comments.email_admin_on_comment)}checked="checked"{/if}>
+ </label>
+ </li>
+
+ <li>
+ <label>
+ <span class="property">{'Email admins when a comment requires validation'|@translate}</span>
+ <input type="checkbox" name="email_admin_on_comment_validation" {if ($comments.email_admin_on_comment_validation)}checked="checked"{/if}>
+ </label>
+ </li>
+
+ <li>
+ <label>
+ <span class="property">{'Allow users to edit theirs owns comments'|@translate}</span>
+ <input type="checkbox" name="user_can_edit_comment" {if ($comments.user_can_edit_comment)}checked="checked"{/if}>
+ </label>
+ </li>
+ <li>
+ <label>
+ <span class="property">{'Allow users to delete theirs owns comments'|@translate}</span>
+ <input type="checkbox" name="user_can_delete_comment" {if ($comments.user_can_delete_comment)}checked="checked"{/if}>
+ </label>
+ </li>
+ <li>
+ <label>
+ <span class="property">{'Email administrators when a comment is modified'|@translate}</span>
+ <input type="checkbox" name="email_admin_on_comment_edition" {if ($comments.email_admin_on_comment_edition)}checked="checked"{/if}>
+ </label>
+ </li>
+ <li>
+ <label>
+ <span class="property">{'Email administrators when a comment is deleted'|@translate}</span>
+ <input type="checkbox" name="email_admin_on_comment_deletion" {if ($comments.email_admin_on_comment_deletion)}checked="checked"{/if}>
+ </label>
+ </li>
+
+ </ul>
+</fieldset>
+{/if}
+
+{if isset($upload)}
+<fieldset id="uploadConf">
+ <legend></legend>
+ <ul>
+ <li>
+ <label><span class="property">{'Show upload link every time'|@translate}</span>
+ <input type="checkbox" name="upload_link_everytime" {if ($upload.upload_link_everytime)}checked="checked"{/if}></label>
+ </li>
+ <li>
+ <label><span class="property">{'User access level to upload'|@translate}</span>
+ {html_options name="upload_user_access" options=$upload.upload_user_access_options selected=$upload.upload_user_access_options_selected}
+ </label>
+ </li>
+ <li>
+ <label>
+ <span class="property">{'Email admins when a picture is uploaded'|@translate}</span>
+ <input type="checkbox" name="email_admin_on_picture_uploaded" {if ($upload.email_admin_on_picture_uploaded)}checked="checked"{/if}>
+ </label>
+ </li>
+ </ul>
+</fieldset>
+{/if}
+
+{if isset($default)}
+{$PROFILE_CONTENT}
+{/if}
+
+{if !isset($default)}
+ <p>
+ <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" name="reset" value="{'Reset'|@translate}">
+ </p>
+</form>
+{/if}
diff --git a/admin/themes/default/template/double_select.tpl b/admin/themes/default/template/double_select.tpl
new file mode 100644
index 000000000..ee9704419
--- /dev/null
+++ b/admin/themes/default/template/double_select.tpl
@@ -0,0 +1,22 @@
+
+{include file='include/dbselect.inc.tpl'}
+
+<table class="doubleSelect">
+ <tr>
+ <td>
+ <h3>{$L_CAT_OPTIONS_TRUE}</h3>
+ <select class="categoryList" name="cat_true[]" multiple="multiple" size="30">
+ {html_options options=$category_option_true selected=$category_option_true_selected}
+ </select>
+ <p><input class="submit" type="submit" value="&raquo;" name="falsify" style="font-size:15px;" {$TAG_INPUT_ENABLED}></p>
+ </td>
+
+ <td>
+ <h3>{$L_CAT_OPTIONS_FALSE}</h3>
+ <select class="categoryList" name="cat_false[]" multiple="multiple" size="30">
+ {html_options options=$category_option_false selected=$category_option_false_selected}
+ </select>
+ <p><input class="submit" type="submit" value="&laquo;" name="trueify" style="font-size:15px;" {$TAG_INPUT_ENABLED}></p>
+ </td>
+ </tr>
+</table>
diff --git a/admin/themes/default/template/element_set_global.tpl b/admin/themes/default/template/element_set_global.tpl
new file mode 100644
index 000000000..fffea3f09
--- /dev/null
+++ b/admin/themes/default/template/element_set_global.tpl
@@ -0,0 +1,211 @@
+
+{include file='include/datepicker.inc.tpl'}
+
+{literal}
+<script type="text/javascript">
+ pwg_initialization_datepicker("#date_creation_day", "#date_creation_month", "#date_creation_year", "#date_creation_linked_date", "#date_creation_action_set");
+</script>
+{/literal}
+
+<h2>{'Batch management'|@translate}</h2>
+
+<h3>{$CATEGORIES_NAV}</h3>
+
+{if !empty($thumbnails)}
+ <p style="text-align:center;">
+ {'global mode'|@translate}
+ | <a href="{$U_UNIT_MODE}">{'unit mode'|@translate}</a>
+ </p>
+
+ <fieldset>
+
+ <legend>{'Display options'|@translate}</legend>
+
+ <p>{'elements per page'|@translate}:
+ <a href="{$U_DISPLAY}&amp;display=20">20</a>
+ | <a href="{$U_DISPLAY}&amp;display=50">50</a>
+ | <a href="{$U_DISPLAY}&amp;display=100">100</a>
+ | <a href="{$U_DISPLAY}&amp;display=all">{'all'|@translate}</a>
+ </p>
+
+ </fieldset>
+
+ <form action="{$F_ACTION}" method="post">
+
+ <fieldset>
+
+ <legend>{'Elements'|@translate}</legend>
+
+ {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+
+ {if !empty($thumbnails)}
+ <ul class="thumbnails">
+ {foreach from=$thumbnails item=thumbnail}
+ <li><span class="wrap1">
+ <label>
+ <span class="wrap2">
+ {if $thumbnail.LEVEL > 0}
+ <em class="levelIndicatorB">{$thumbnail.LEVEL}</em>
+ <em class="levelIndicatorF" title="{$pwg->l10n($pwg->sprintf('Level %d',$thumbnail.LEVEL))}">{$thumbnail.LEVEL}</em>
+ {/if}
+ <span>
+ <img src="{$thumbnail.TN_SRC}"
+ alt="{$thumbnail.FILE}"
+ title="{$thumbnail.TITLE}"
+ class="thumbnail">
+ </span></span>
+ <input type="checkbox" name="selection[]" value="{$thumbnail.ID}">
+ </label>
+ </span>
+ </li>
+ {/foreach}
+ </ul>
+ {/if}
+
+ </fieldset>
+
+ {if $show_delete_form}
+ <fieldset>
+ <legend>{'Deletions'|@translate}</legend>
+ <p style="font-style:italic">{'Note: Only deletes photos added with pLoader'|@translate}</p>
+ <p>
+ {'target'|@translate}
+ <label><input type="radio" name="target_deletion" value="all"> {'all'|@translate}</label>
+ <label><input type="radio" name="target_deletion" value="selection" checked="checked"> {'selection'|@translate}</label>
+ </p>
+ <p>
+ <label><input type="checkbox" name="confirm_deletion" value="1"> {'confirm'|@translate}</label>
+ <input class="submit" type="submit" value="{'Delete selected photos'|@translate}" name="delete" {$TAG_INPUT_ENABLED}>
+ </p>
+ </fieldset>
+ {/if}
+
+ <fieldset>
+
+ <legend>{'Form'|@translate}</legend>
+
+ <table>
+
+ <tr>
+ <td>{'associate to category'|@translate}</td>
+ <td>
+ <select style="width:400px" name="associate" size="1">
+ <option value="0">------------</option>
+ {html_options options=$associate_options }
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'dissociate from category'|@translate}</td>
+ <td>
+ <select style="width:400px" name="dissociate" size="1">
+ <option value="0">------------</option>
+ {if !empty($dissociate_options)}{html_options options=$dissociate_options }{/if}
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'add tags'|@translate}</td>
+ <td>{if !empty($ADD_TAG_SELECTION)}{$ADD_TAG_SELECTION}{else}<p>{'No tag defined. Use Administration>Pictures>Tags'|@translate}</p>{/if}</td>
+ </tr>
+
+ {if !empty($DEL_TAG_SELECTION)}
+ <tr>
+ <td>{'remove tags'|@translate}</td>
+ <td>{$DEL_TAG_SELECTION}</td>
+ </tr>
+ {/if}
+
+ <tr>
+ <td>{'Author'|@translate}</td>
+ <td>
+ <label><input type="radio" name="author_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="author_action" value="unset"> {'unset'|@translate}</label>
+ <label><input type="radio" name="author_action" value="set" id="author_action_set"> {'set to'|@translate}</label>
+ <input onchange="document.getElementById('author_action_set').checked = true;" type="text" class="large" name="author" value="">
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'title'|@translate}</td>
+ <td>
+ <label><input type="radio" name="name_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="name_action" value="unset"> {'unset'|@translate}</label>
+ <label><input type="radio" name="name_action" value="set" id="name_action_set"> {'set to'|@translate}</label>
+ <input onchange="document.getElementById('name_action_set').checked = true;" type="text" class="large" name="name" value="">
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'Creation date'|@translate}</td>
+ <td>
+ <label><input type="radio" name="date_creation_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="date_creation_action" value="unset"> {'unset'|@translate}</label>
+ <label><input type="radio" name="date_creation_action" value="set" id="date_creation_action_set"> {'set to'|@translate}</label>
+ <select id="date_creation_day" name="date_creation_day">
+ <option value="0">--</option>
+ {section name=day start=1 loop=32}
+ <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$DATE_CREATION_DAY}selected="selected"{/if}>{$smarty.section.day.index}</option>
+ {/section}
+ </select>
+ <select id="date_creation_month" name="date_creation_month">
+ {html_options options=$month_list selected=$DATE_CREATION_MONTH}
+ </select>
+ <input id="date_creation_year"
+ name="date_creation_year"
+ type="text"
+ size="4"
+ maxlength="4"
+ value="{$DATE_CREATION_YEAR}">
+ <input id="date_creation_linked_date" name="date_creation_linked_date" type="hidden" size="10" disabled="disabled">
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'Minimum privacy level'|@translate}</td>
+ <td>
+ <label><input type="radio" name="level_action" value="leave" checked="checked">{'leave'|@translate}</label>
+ <label><input type="radio" name="level_action" value="set" id="level_action_set">{'set to'|@translate}</label>
+ <select onchange="document.getElementById('level_action_set').checked = true;" name="level" size="1">
+ {html_options options=$level_options}
+ </select>
+ </td>
+ </tr>
+
+ </table>
+
+ <p>
+ {'target'|@translate}
+ <label><input type="radio" name="target" value="all"> {'all'|@translate}</label>
+ <label><input type="radio" name="target" value="selection" checked="checked"> {'selection'|@translate}</label>
+ </p>
+
+
+ <p><input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}></p>
+
+ </fieldset>
+
+ <fieldset>
+
+ <legend>{'Caddie management'|@translate}</legend>
+
+ <ul style="list-style-type:none;">
+ {if ($IN_CADDIE)}
+ <li><label><input type="radio" name="caddie_action" value="empty_all"> {'Empty caddie'|@translate}</label></li>
+ <li><label><input type="radio" name="caddie_action" value="empty_selected"> {'Take selected elements out of caddie'|@translate}</label></li>
+ {else}
+ <li><label><input type="radio" name="caddie_action" value="add_selected"> {'Add selected elements to caddie'|@translate}</label></li>
+ {/if}
+ </ul>
+
+ <p><input class="submit" type="submit" value="{'Submit'|@translate}" name="submit_caddie"></p>
+
+ </fieldset>
+
+ </form>
+
+{else}
+ <div class="infos"><p>{'Caddie is currently empty'|@translate}</p></div>
+{/if}
diff --git a/admin/themes/default/template/element_set_ranks.tpl b/admin/themes/default/template/element_set_ranks.tpl
new file mode 100644
index 000000000..6fed3fb19
--- /dev/null
+++ b/admin/themes/default/template/element_set_ranks.tpl
@@ -0,0 +1,50 @@
+{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.sortable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.sortable.packed.js" }
+
+{literal}
+<script type="text/javascript">
+ $(function() {
+ $('ul.thumbnails')
+ .sortable(
+ { revert: true,
+ opacity: 0.7,
+ handle: $('.rank-of-image').add('.rank-of-image img'),
+ update: function() {
+ $(this).find('li').each(function(i) {
+ $(this).find("input[@name~='rank_of_image']")
+ .each(function() { $(this).attr('value', (i+1)*10)});
+ });
+ }
+ });
+ });
+
+</script>
+{/literal}
+
+<h2>{'Manage image ranks'|@translate}</h2>
+
+<h3>{$CATEGORIES_NAV}</h3>
+
+{if !empty($thumbnails)}
+<form action="{$F_ACTION}" method="post">
+ <p><input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}></p>
+ <fieldset>
+ <legend>{'Edit ranks'|@translate}</legend>
+ {if !empty($thumbnails)}
+ <ul class="thumbnails">
+ {foreach from=$thumbnails item=thumbnail}
+ <li class="rank-of-image">
+ <img src="{$thumbnail.TN_SRC}" class="thumbnail" alt="">
+ <input type="text" name="rank_of_image[{$thumbnail.ID}]" value="{$thumbnail.RANK}">
+ </li>
+ {/foreach}
+ </ul>
+ {/if}
+ </fieldset>
+ <p><input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}></p>
+</form>
+
+{else}
+<div class="infos"><p>{'No element in this category'|@translate}</p></div>
+{/if}
diff --git a/admin/themes/default/template/element_set_unit.tpl b/admin/themes/default/template/element_set_unit.tpl
new file mode 100644
index 000000000..4e188590b
--- /dev/null
+++ b/admin/themes/default/template/element_set_unit.tpl
@@ -0,0 +1,109 @@
+
+{include file='include/autosize.inc.tpl'}
+{include file='include/datepicker.inc.tpl'}
+
+<h2>{'Batch management'|@translate}</h2>
+
+<h3>{$CATEGORIES_NAV}</h3>
+
+<p style="text-align:center;">
+ <a href="{$U_GLOBAL_MODE}">{'global mode'|@translate}</a>
+ | {'unit mode'|@translate}
+</p>
+
+<form action="{$F_ACTION}" method="POST">
+<fieldset>
+ <legend>{'Display options'|@translate}</legend>
+ <p>{'elements per page'|@translate} :
+ <a href="{$U_ELEMENTS_PAGE}&amp;display=5">5</a>
+ | <a href="{$U_ELEMENTS_PAGE}&amp;display=10">10</a>
+ | <a href="{$U_ELEMENTS_PAGE}&amp;display=50">50</a>
+ | <a href="{$U_ELEMENTS_PAGE}&amp;display=all">{'all'|@translate}</a>
+ </p>
+
+</fieldset>
+
+{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+
+{if !empty($elements) }
+<div><input type="hidden" name="element_ids" value="{$ELEMENT_IDS}"></div>
+{foreach from=$elements item=element}
+<fieldset class="elementEdit">
+ <legend>{$element.LEGEND}</legend>
+
+ <a href="{$element.U_EDIT}"><img src="{$element.TN_SRC}" alt="" title="{'Edit all picture informations'|@translate}"></a>
+
+ <table>
+
+ <tr>
+ <td><strong>{'Name'|@translate}</strong></td>
+ <td><input type="text" class="large" name="name-{$element.ID}" value="{$element.NAME}"></td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Author'|@translate}</strong></td>
+ <td><input type="text" class="large" name="author-{$element.ID}" value="{$element.AUTHOR}"></td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Creation date'|@translate}</strong></td>
+ <td>
+ <label><input type="radio" name="date_creation_action-{$element.ID}" value="unset"> {'unset'|@translate}</label>
+ <label><input type="radio" name="date_creation_action-{$element.ID}" value="set" id="date_creation_action_set-{$element.ID}"> {'set to'|@translate}</label>
+
+ <select id="date_creation_day-{$element.ID}" name="date_creation_day-{$element.ID}">
+ <option value="0">--</option>
+ {section name=day start=1 loop=32}
+ <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$element.DATE_CREATION_DAY}selected="selected"{/if}>{$smarty.section.day.index}</option>
+ {/section}
+ </select>
+ <select id="date_creation_month-{$element.ID}" name="date_creation_month-{$element.ID}">
+ {html_options options=$month_list selected=$element.DATE_CREATION_MONTH}
+ </select>
+ <input id="date_creation_year-{$element.ID}"
+ name="date_creation_year-{$element.ID}"
+ type="text"
+ size="4"
+ maxlength="4"
+ value="{$element.DATE_CREATION_YEAR}">
+ <input id="date_creation_linked_date-{$element.ID}" name="date_creation_linked_date-{$element.ID}" type="hidden" size="10" disabled="disabled">
+ <script type="text/javascript">
+ pwg_initialization_datepicker("#date_creation_day-{$element.ID}", "#date_creation_month-{$element.ID}", "#date_creation_year-{$element.ID}", "#date_creation_linked_date-{$element.ID}", "#date_creation_action_set-{$element.ID}");
+ </script>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Tags'|@translate}</strong></td>
+ <td>{$element.TAG_SELECTION}</td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Description'|@translate}</strong></td>
+ <td><textarea cols="50" rows="5" name="description-{$element.ID}" id="description-{$element.ID}" class="description">{$element.DESCRIPTION}</textarea></td>
+ </tr>
+
+ </table>
+
+</fieldset>
+{/foreach}
+
+<p>
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}">
+</p>
+{/if}
+
+</form>
+
+<script type="text/javascript">// <![CDATA[
+{literal}$(document).ready(function() {
+ $(".elementEdit img").fadeTo("slow", 0.6); // Opacity on page load
+ $(".elementEdit img").hover(function(){
+ $(this).fadeTo("slow", 1.0); // Opacity on hover
+ },function(){
+ $(this).fadeTo("slow", 0.6); // Opacity on mouseout
+ });
+});{/literal}
+// ]]>
+</script>
diff --git a/admin/themes/default/template/extend_for_templates.tpl b/admin/themes/default/template/extend_for_templates.tpl
new file mode 100644
index 000000000..0d093c3bf
--- /dev/null
+++ b/admin/themes/default/template/extend_for_templates.tpl
@@ -0,0 +1,37 @@
+<div class="titrePage"><h2>{'Extend for templates'|@translate}</h2>
+</div>
+{if isset($extents)}
+<h4>{'Replacement of original templates by customized templates from template-extension subfolder'|@translate}</h4>
+<form method="post" name="extend_for_templates" id="extend_for_templates" action="">
+ <table class="table2">
+ <tr class="throw">
+ <th>{'Replacers (customized templates)'|@translate}</th>
+ <th>{'Original templates'|@translate}</th>
+ <th>{'Optional URL keyword'|@translate}</th>
+ <th>{'Bound template'|@translate}</th>
+ </tr>
+ {foreach from=$extents item=tpl name=extent_loop}
+ <tr class="{if $smarty.foreach.extent_loop.index is odd}row1{else}row2{/if}">
+ <td>
+ <input type="hidden" name="reptpl[]" value="{$tpl.replacer}">
+ {$tpl.replacer}
+ </td>
+ <td>
+ {html_options name=original[] output=$tpl.original_tpl values=$tpl.original_tpl selected=$tpl.selected_tpl}
+ </td>
+ <td>
+ {html_options name=url[] output=$tpl.url_parameter values=$tpl.url_parameter selected=$tpl.selected_url}
+ </td>
+ <td>
+ {html_options name=bound[] output=$tpl.bound_tpl values=$tpl.bound_tpl selected=$tpl.selected_bound}
+ </td>
+ </tr>
+ {/foreach}
+ </table>
+ {if !is_adviser()}
+ <p>
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="submit">
+ </p>
+ {/if}
+</form>
+{/if}
diff --git a/admin/themes/default/template/footer.tpl b/admin/themes/default/template/footer.tpl
new file mode 100644
index 000000000..e8709b59f
--- /dev/null
+++ b/admin/themes/default/template/footer.tpl
@@ -0,0 +1,58 @@
+{*
+ Warning : This is the admin pages footer only
+ don't be confusing with the public page footer
+*}
+</div> <!-- pwgMain -->
+{if isset($footer_elements)}
+{foreach from=$footer_elements item=v}
+{$v}
+{/foreach}
+{/if}
+{if isset($debug.QUERIES_LIST)}
+<div id="debug">
+{$debug.QUERIES_LIST}
+</div>
+{/if}
+
+<div id="footer">
+ <div id="piwigoInfos">
+ {* Please, do not remove this copyright. If you really want to,
+ contact us on http://piwigo.org to find a solution on how
+ to show the origin of the script...
+ *}
+
+ {'Powered by'|@translate}
+ <a href="{$PHPWG_URL}" title="Visit Piwigo project website">
+ <span class="Piwigo">Piwigo</span></a>
+ {$VERSION}
+ | <a class="external" href="{$pwgmenu.WIKI}" title="Read Piwigo Documentation" onclick="window.open(this.href, ''); return false;">{'Documentation'|@translate}</a>
+ | <a class="external" href="{$pwgmenu.FORUM}" title="Get Support on Piwigo Forum" onclick="window.open(this.href, ''); return false;">{'Support'|@translate}</a>
+ </div> <!-- piwigoInfos -->
+
+ <div id="pageInfos">
+ {if isset($debug.TIME) }
+ {'SQL queries in'|@translate} {$debug.TIME} ({$debug.NB_QUERIES} {'SQL queries in'|@translate} {$debug.SQL_TIME}) -
+ {/if}
+
+
+ {'Contact'|@translate}
+ <a href="mailto:{$CONTACT_MAIL}?subject={'title_send_mail'|@translate|@escape:url}">{'Webmaster'|@translate}</a>
+ </div> <!-- pageInfos -->
+
+</div> <!-- footer -->
+</div> <!-- the_page -->
+
+{literal}
+<script type='text/javascript'>
+ $(function() {
+ $('#pwgHead A, #footer A').tipTip({
+ 'delay' : 0,
+ 'fadeIn' : 200,
+ 'fadeOut' : 200,
+ });
+ });
+</script>
+{/literal}
+
+</body>
+</html> \ No newline at end of file
diff --git a/admin/themes/default/template/group_list.tpl b/admin/themes/default/template/group_list.tpl
new file mode 100644
index 000000000..6b32da66b
--- /dev/null
+++ b/admin/themes/default/template/group_list.tpl
@@ -0,0 +1,42 @@
+<div class="titrePage">
+ <h2>{'Group management'|@translate}</h2>
+</div>
+
+<form method="post" name="add_user" action="{$F_ADD_ACTION}" class="properties">
+ <fieldset>
+ <legend>{'Add group'|@translate}</legend>
+
+ <span class="property">
+ <label for="groupname">{'Group name'|@translate}</label>
+ </span>
+ <input type="text" id="groupname" name="groupname" maxlength="50" size="20">
+
+ <p>
+ <input class="submit" type="submit" name="submit_add" value="{'Add'|@translate}" {$TAG_INPUT_ENABLED}>
+ </p>
+ </fieldset>
+</form>
+
+<table class="table2">
+ <tr class="throw">
+ <th>{'Group name'|@translate}</th>
+ <th>{'Members'|@translate}</th>
+ <th>{'Actions'|@translate}</th>
+ </tr>
+ {if not empty($groups)}
+ {foreach from=$groups item=group name=group_loop}
+ <tr class="{if $smarty.foreach.group_loop.index is odd}row1{else}row2{/if}">
+ <td>{$group.NAME}<i><small>{$group.IS_DEFAULT}</small></i></td>
+ <td><a href="{$group.U_MEMBERS}">{$group.MEMBERS}</a></td>
+ <td style="text-align:center;">
+ <a href="{$group.U_PERM}">
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/permissions.png" class="button" style="border:none" alt="{'Permissions'|@translate}" title="{'Permissions'|@translate}"></a>
+ <a href="{$group.U_DELETE}" onclick="return confirm('{'delete'|@translate|@escape:'javascript'}' + '\n\n' + '{'Are you sure?'|@translate|@escape:'javascript'}');">
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/delete.png" class="button" style="border:none" alt="{'Delete'|@translate}" title="{'Delete'|@translate}" {$TAG_INPUT_ENABLED}></a>
+ <a href="{$group.U_ISDEFAULT}" onclick="return confirm('{'Toggle \'default group\' property'|@translate|@escape:'javascript'}' +'\n\n' + '{'Are you sure?'|@translate|@escape:'javascript'}');">
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/toggle_is_default_group.png" class="button" style="border:none" alt="{'Toggle \'default group\' property'|@translate}" title="{'Toggle \'default group\' property'|@translate}" {$TAG_INPUT_ENABLED}></a>
+ </td>
+ </tr>
+ {/foreach}
+ {/if}
+</table>
diff --git a/admin/themes/default/template/group_perm.tpl b/admin/themes/default/template/group_perm.tpl
new file mode 100644
index 000000000..1dded1291
--- /dev/null
+++ b/admin/themes/default/template/group_perm.tpl
@@ -0,0 +1,8 @@
+{* $Id *}
+<h2>{$TITLE}</h2>
+
+<form method="post" action="{$F_ACTION}">
+ {$DOUBLE_SELECT}
+</form>
+
+<p>{'Only private categories are listed'|@translate}</p>
diff --git a/admin/themes/default/template/header.tpl b/admin/themes/default/template/header.tpl
new file mode 100644
index 000000000..57ae04fa4
--- /dev/null
+++ b/admin/themes/default/template/header.tpl
@@ -0,0 +1,77 @@
+{*
+
+ Warning : This is the admin pages header only
+ don't confuse with the public page header
+
+*}
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+<html lang="{$lang_info.code}" dir="{$lang_info.direction}">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset={$CONTENT_ENCODING}">
+<meta name="generator" content="Piwigo (aka PWG), see piwigo.org">
+<title>{$GALLERY_TITLE} :: {$PAGE_TITLE}</title>
+<link rel="shortcut icon" type="image/x-icon" href="{$ROOT_URL}{$themeconf.icon_dir}/favicon.ico">
+
+{foreach from=$themes item=theme}
+{if isset($theme.local_head)}{include file=$theme.local_head}{/if}
+<link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/{$theme.name}/theme.css">
+{/foreach}
+
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js" now=1} {*jQuery is always available by default*}
+
+<script type="text/javascript" src="{$ROOT_URL}themes/default/js/scripts.js"></script>
+<!--[if lt IE 7]>
+<script type="text/javascript" src="{$ROOT_URL}themes/default/js/pngfix.js"></script>
+<![endif]-->
+
+{if not empty($head_elements)}
+{foreach from=$head_elements item=elt}
+{$elt}
+{/foreach}
+{/if}
+
+</head>
+
+<body id="{$BODY_ID}">
+
+<div id="the_page">
+
+<div id="pwgHead">
+ <h1>
+ <a href="{$U_RETURN}" title="Visit Gallery">
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/home.png" alt="{'Home'|@translate}">
+ {$GALLERY_TITLE}
+ </a>
+ </h1>
+
+ <div id="headActions">
+ Hello {$USERNAME} :
+ <a href="{$U_RETURN}" title="Visit Gallery">Visit Gallery</a> |
+ <a href="{$U_CHANGE_THEME}" title="Switch to clear theme for administration">Change Theme</a> |
+ <a href="{$U_LOGOUT}">{'Logout'|@translate}</a>
+ <a href="{$U_FAQ}" title="{'Instructions'|@translate}" id="instructions"><img style="padding-left:10px;" src="{$ROOT_URL}{$themeconf.admin_icon_dir}/help.png" class="button" alt="(?)"></a>
+ </div>
+</div>
+
+<div style="clear:both;"></div>
+
+{if not empty($header_msgs)}
+<div class="header_msgs">
+ {foreach from=$header_msgs item=elt}
+ {$elt}
+ {/foreach}
+</div>
+{/if}
+
+<div id="theHeader">{*$PAGE_BANNER*}</div>
+
+{if not empty($header_notes)}
+<div class="header_notes">
+ {foreach from=$header_notes item=elt}
+ {$elt}
+ {/foreach}
+</div>
+{/if}
+
+<div id="pwgMain"> \ No newline at end of file
diff --git a/admin/themes/default/template/history.tpl b/admin/themes/default/template/history.tpl
new file mode 100644
index 000000000..5d0cd771e
--- /dev/null
+++ b/admin/themes/default/template/history.tpl
@@ -0,0 +1,135 @@
+
+{include file='include/datepicker.inc.tpl'}
+
+{literal}
+<script type="text/javascript">
+ pwg_initialization_datepicker("#start_day", "#start_month", "#start_year", "#start_linked_date", null, null, "#end_linked_date");
+ pwg_initialization_datepicker("#end_day", "#end_month", "#end_year", "#end_linked_date", null, "#start_linked_date", null);
+</script>
+{/literal}
+
+<div class="titrePage">
+ <h2>{'History'|@translate} {$TABSHEET_TITLE}</h2>
+</div>
+
+<form class="filter" method="post" name="filter" action="{$F_ACTION}">
+<fieldset>
+ <legend>{'Filter'|@translate}</legend>
+ <ul>
+ <li><label>{'Date'|@translate}</label></li>
+ <li>
+ <select id="start_day" name="start_day">
+ <option value="0">--</option>
+ {section name=day start=1 loop=32}
+ <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$START_DAY_SELECTED}selected="selected"{/if}>{$smarty.section.day.index}</option>
+ {/section}
+ </select>
+ <select id="start_month" name="start_month">
+ {html_options options=$month_list selected=$START_MONTH_SELECTED}
+ </select>
+ <input id="start_year" name="start_year" value="{$START_YEAR}" type="text" size="4" maxlength="4" >
+ <input id="start_linked_date" name="start_linked_date" type="hidden" size="10" disabled="disabled">
+ </li>
+ </ul>
+ <ul>
+ <li><label>{'End-Date'|@translate}</label></li>
+ <li>
+ <select id="end_day" name="end_day">
+ <option value="0">--</option>
+ {section name=day start=1 loop=32}
+ <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$END_DAY_SELECTED}selected="selected"{/if}>{$smarty.section.day.index}</option>
+ {/section}
+ </select>
+ <select id="end_month" name="end_month">
+ {html_options options=$month_list selected=$END_MONTH_SELECTED}
+ </select>
+ <input id="end_year" name="end_year" value="{$END_YEAR}" type="text" size="4" maxlength="4" >
+ <input id="end_linked_date" name="end_linked_date" type="hidden" size="10" disabled="disabled">
+ </li>
+ </ul>
+
+ <label>
+ {'Element type'|@translate}
+ <select name="types[]" multiple="multiple" size="4">
+ {html_options values=$type_option_values output=$type_option_values|translate selected=$type_option_selected}
+ </select>
+ </label>
+
+ <label>
+ {'User'|@translate}
+ <select name="user">
+ <option value="-1">------------</option>
+ {html_options options=$user_options selected=$user_options_selected}
+ </select>
+ </label>
+
+ <label>
+ {'Image id'|@translate}
+ <input name="image_id" value="{$IMAGE_ID}" type="text" size="5">
+ </label>
+
+ <label>
+ {'File name'|@translate}
+ <input name="filename" value="{$FILENAME}" type="text">
+ </label>
+
+ <label>
+ {'Thumbnails'|@translate}
+ <select name="display_thumbnail">
+ {html_options values=$display_thumbnail_values output=$display_thumbnail_values|translate selected=$display_thumbnail_selected}
+ </select>
+ </label>
+
+ <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}">
+</fieldset>
+</form>
+
+{if isset($search_summary)}
+<fieldset>
+ <legend>{'Summary'|@translate}</legend>
+
+ <ul>
+ <li>{$search_summary.NB_LINES}, {$search_summary.FILESIZE}</li>
+ <li>
+ {$search_summary.USERS}
+ <ul>
+ <li>{$search_summary.MEMBERS}</li>
+ <li>{$search_summary.GUESTS}</li>
+ </ul>
+ </li>
+ </ul>
+</fieldset>
+{/if}
+
+{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+
+<table class="table2" id="detailedStats">
+<tr class="throw">
+ <th>{'Date'|@translate}</th>
+ <th>{'Time'|@translate}</th>
+ <th>{'User'|@translate}</th>
+ <th>{'IP'|@translate}</th>
+ <th>{'Element'|@translate}</th>
+ <th>{'Element type'|@translate}</th>
+ <th>{'Section'|@translate}</th>
+ <th>{'Category'|@translate}</th>
+ <th>{'Tags'|@translate}</th>
+</tr>
+{if !empty($search_results) }
+{foreach from=$search_results item=detail name=res_loop}
+<tr class="{if $smarty.foreach.res_loop.index is odd}row1{else}row2{/if}">
+ <td class="hour">{$detail.DATE}</td>
+ <td class="hour">{$detail.TIME}</td>
+ <td>{$detail.USER}</td>
+ <td>{$detail.IP}</td>
+ <td>{$detail.IMAGE}</td>
+ <td>{$detail.TYPE}</td>
+ <td>{$detail.SECTION}</td>
+ <td>{$detail.CATEGORY}</td>
+ <td>{$detail.TAGS}</td>
+</tr>
+{/foreach}
+{/if}
+</table>
+
+{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
diff --git a/admin/themes/default/template/include/autosize.inc.tpl b/admin/themes/default/template/include/autosize.inc.tpl
new file mode 100644
index 000000000..8f5c78c70
--- /dev/null
+++ b/admin/themes/default/template/include/autosize.inc.tpl
@@ -0,0 +1,13 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.autogrow" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.autogrow-textarea.js"}
+
+{* Auto size and auto grow textarea *}
+{literal}
+<script type="text/javascript">
+ jQuery().ready(function(){
+ jQuery('textarea').css('overflow-y', 'hidden');
+ // Auto size and auto grow for all text area
+ jQuery('textarea').autogrow();
+ });
+</script>
+{/literal}
diff --git a/admin/themes/default/template/include/datepicker.inc.tpl b/admin/themes/default/template/include/datepicker.inc.tpl
new file mode 100644
index 000000000..f010febcf
--- /dev/null
+++ b/admin/themes/default/template/include/datepicker.inc.tpl
@@ -0,0 +1,24 @@
+
+{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.datepicker" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.datepicker.packed.js"}
+{known_script id="datepicker.js" src=$ROOT_URL|@cat:"themes/default/js/datepicker.js"}
+
+{assign var="datepicker_language" value="themes/default/js/ui/i18n/ui.datepicker-"|@cat:$lang_info.code|@cat:".js"}
+
+{if "PHPWG_ROOT_PATH"|@constant|@cat:$datepicker_language|@file_exists}
+{known_script id="jquery.ui.datepicker-$lang_info.code" src=$ROOT_URL|@cat:$datepicker_language}
+{/if}
+
+{html_head}
+<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/default/js/ui/themes/ui.datepicker.css">
+{/html_head}
+
+<script type="text/javascript">
+function pwg_initialization_datepicker(day, month, year, linked_date, checked_on_change, min_linked_date, max_linked_date)
+{ldelim}
+ return pwg_common_initialization_datepicker(
+ "{$ROOT_URL}{$themeconf.admin_icon_dir}/datepicker.png",
+ day, month, year, linked_date, checked_on_change, min_linked_date, max_linked_date);
+}
+</script>
diff --git a/admin/themes/default/template/include/dbselect.inc.tpl b/admin/themes/default/template/include/dbselect.inc.tpl
new file mode 100644
index 000000000..009452c1e
--- /dev/null
+++ b/admin/themes/default/template/include/dbselect.inc.tpl
@@ -0,0 +1,22 @@
+{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"}
+
+{* Resize possible *}
+{literal}
+<script type="text/javascript">
+ jQuery().ready(function(){
+ // Resize possible for double select list
+ jQuery(".doubleSelect select.categoryList").resizable({
+ handles: "w,e",
+ animate: true,
+ animateDuration: "slow",
+ animateEasing: "swing",
+ preventDefault: true,
+ preserveCursor: true,
+ autoHide: true,
+ ghost: true
+ });
+ });
+</script>
+{/literal}
diff --git a/admin/themes/default/template/include/install.inc.tpl b/admin/themes/default/template/include/install.inc.tpl
new file mode 100644
index 000000000..b153f0f30
--- /dev/null
+++ b/admin/themes/default/template/include/install.inc.tpl
@@ -0,0 +1,19 @@
+<script type="text/javascript" src="template-common/lib/jquery.packed.js"></script>
+{literal}
+<script type="text/javascript">
+$(function() {
+ $option_selected = $('#dblayer option:selected').attr('value');
+ if ($option_selected=='sqlite' || $option_selected=='pdo-sqlite') {
+ $('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().hide();
+ }
+ $('#dblayer').change(function() {
+ $db = this;
+ if ($db.value=='sqlite' || $db.value=='pdo-sqlite') {
+ $('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().hide();
+ } else {
+ $('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().show();
+ }
+ });
+ });
+</script>
+{/literal}
diff --git a/admin/themes/default/template/include/resize.inc.tpl b/admin/themes/default/template/include/resize.inc.tpl
new file mode 100644
index 000000000..30a637563
--- /dev/null
+++ b/admin/themes/default/template/include/resize.inc.tpl
@@ -0,0 +1,22 @@
+{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"}
+
+{* Resize possible *}
+{literal}
+<script type="text/javascript">
+ jQuery().ready(function(){
+ // Resize possible for list
+ jQuery(".categoryList").resizable({
+ handles: "all",
+ animate: true,
+ animateDuration: "slow",
+ animateEasing: "swing",
+ preventDefault: true,
+ preserveCursor: true,
+ autoHide: true,
+ ghost: true
+ });
+ });
+</script>
+{/literal}
diff --git a/admin/themes/default/template/install.tpl b/admin/themes/default/template/install.tpl
new file mode 100644
index 000000000..ce3d8d906
--- /dev/null
+++ b/admin/themes/default/template/install.tpl
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+<html lang="{$lang_info.code}" dir="{$lang_info.direction}">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset={$T_CONTENT_ENCODING}">
+<meta http-equiv="Content-script-type" content="text/javascript">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="shortcut icon" type="image/x-icon" href="{$ROOT_URL}{$themeconf.icon_dir}/favicon.ico">
+
+{foreach from=$themes item=theme}
+{if isset($theme.local_head)}{include file=$theme.local_head}{/if}
+<link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/{$theme.name}/theme.css">
+{/foreach}
+
+<script type="text/javascript" src="themes/default/js/jquery.packed.js"></script>
+{literal}
+<script type="text/javascript">
+$(function() {
+ $option_selected = $('#dblayer option:selected').attr('value');
+ if ($option_selected=='sqlite' || $option_selected=='pdo-sqlite') {
+ $('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().hide();
+ }
+ $('#dblayer').change(function() {
+ $db = this;
+ if ($db.value=='sqlite' || $db.value=='pdo-sqlite') {
+ $('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().hide();
+ } else {
+ $('input[name=dbhost],input[name=dbuser],input[name=dbpasswd]').parent().parent().show();
+ }
+ });
+ });
+</script>
+
+<style type="text/css">
+.content {
+ width: 800px;
+ margin: auto;
+ text-align: center;
+}
+
+.table2 {
+ width: 100%;
+ margin-bottom: 1em !important;
+}
+
+TD {
+ text-align: left;
+ padding: 0.1em 0.5em;
+ height: 2.5em;
+}
+
+.sql_content, .infos a {
+ color: #ff3363;
+}
+</style>
+{/literal}
+<title>Piwigo {$RELEASE} - {'Installation'|@translate}</title>
+</head>
+
+<body>
+<div id="headbranch"></div> {* Dummy block for double background management *}
+<div id="the_page">
+<div id="theHeader"></div>
+<div id="content" class="content">
+
+<h2>Piwigo {$RELEASE} - {'Installation'|@translate}</h2>
+
+{if isset($errors)}
+<div class="errors">
+ <ul>
+ {foreach from=$errors item=error}
+ <li>{$error}</li>
+ {/foreach}
+ </ul>
+</div>
+{/if}
+
+{if isset($infos)}
+<div class="infos">
+ <ul>
+ {foreach from=$infos item=info}
+ <li>{$info}</li>
+ {/foreach}
+ </ul>
+</div>
+{/if}
+
+{if isset($install)}
+<form method="POST" action="{$F_ACTION}" name="install_form">
+
+ <table class="table2">
+ <tr class="throw">
+ <th colspan="2">{'Basic configuration'|@translate}</th>
+ </tr>
+ <tr>
+ <td style="width: 30%">{'Default gallery language'|@translate}</td>
+ <td>
+ <select name="language" onchange="document.location = 'install.php?language='+this.options[this.selectedIndex].value;">
+ {html_options options=$language_options selected=$language_selection}
+ </select>
+ </td>
+ </tr>
+ </table>
+ <table class="table2">
+ <tr class="throw">
+ <th colspan="3">{'Database configuration'|@translate}</th>
+ </tr>
+ {if count($F_DB_ENGINES)>1}
+ <tr>
+ <td style="width: 30%;">{'Database type'|@translate}</td>
+ <td>
+ <select name="dblayer" id="dblayer">
+ {foreach from=$F_DB_ENGINES key=k item=v}
+ <option value="{$k}"
+ {if $k==$F_DB_LAYER or $v.selected} selected="selected"{/if}
+ {if $v.available!=1} disabled="disabled"{/if}
+ >{$v.label}</option>
+ {/foreach}
+ </select>
+ </td>
+ <td>{'The type of database your piwigo data will be store in'|@translate}</td>
+ {else}
+ <td colspan="3">
+ <input type="hidden" name="dbengine" value="{$F_DB_LAYER}">
+ </td>
+ {/if}
+ </tr>
+ <tr>
+ <td style="width: 30%;">{'Host'|@translate}</td>
+ <td align=center><input type="text" name="dbhost" value="{$F_DB_HOST}"></td>
+ <td>{'localhost, sql.multimania.com, toto.freesurf.fr'|@translate}</td>
+ </tr>
+ <tr>
+ <td>{'User'|@translate}</td>
+ <td align=center><input type="text" name="dbuser" value="{$F_DB_USER}"></td>
+ <td>{'user login given by your host provider'|@translate}</td>
+ </tr>
+ <tr>
+ <td>{'Password'|@translate}</td>
+ <td align=center><input type="password" name="dbpasswd" value=""></td>
+ <td>{'user password given by your host provider'|@translate}</td>
+ </tr>
+ <tr>
+ <td>{'Database name'|@translate}</td>
+ <td align=center><input type="text" name="dbname" value="{$F_DB_NAME}"></td>
+ <td>{'also given by your host provider'|@translate}</td>
+ </tr>
+ <tr>
+ <td>{'Database table prefix'|@translate}</td>
+ <td align=center><input type="text" name="prefix" value="{$F_DB_PREFIX}"></td>
+ <td>{'database tables names will be prefixed with it (enables you to manage better your tables)'|@translate}</td>
+ </tr>
+ </table>
+
+ <table class="table2">
+ <tr class="throw">
+ <th colspan="3">{'Admin configuration'|@translate}</th>
+ </tr>
+ <tr>
+ <td style="width: 30%;">{'Webmaster login'|@translate}</td>
+ <td align="center"><input type="text" name="admin_name" value="{$F_ADMIN}"></td>
+ <td>{'It will be shown to the visitors. It is necessary for website administration'|@translate}</td>
+ </tr>
+ <tr>
+ <td>{'Webmaster password'|@translate}</td>
+ <td align="center"><input type="password" name="admin_pass1" value=""></td>
+ <td>{'Keep it confidential, it enables you to access administration panel'|@translate}</td>
+ </tr>
+ <tr>
+ <td>{'Password [confirm]'|@translate}</td>
+ <td align="center"><input type="password" name="admin_pass2" value=""></td>
+ <td>{'verification'|@translate}</td>
+ </tr>
+ <tr>
+ <td>{'Webmaster mail address'|@translate}</td>
+ <td align="center"><input type="text" name="admin_mail" value="{$F_ADMIN_EMAIL}"></td>
+ <td>{'Visitors will be able to contact site administrator with this mail'|@translate}</td>
+ </tr>
+ </table>
+
+ <table>
+ <tr>
+ <td style="text-align: center;">
+ <input class="submit" type="submit" name="install" value="{'Start Install'|@translate}">
+ </td>
+ </tr>
+ </table>
+</form>
+{else}
+<p>
+ <input type="button" name="Home" value="{'Home'|@translate}" onClick="window.open('index.php');">
+ <input type="button" name="Administration" value="{'Administration'|@translate}" onClick="window.open('admin.php');">
+</p>
+
+{if !isset($migration)}
+<div class="infos">
+ <ul>
+ <li>{'Keep in touch with Piwigo project, subscribe to Piwigo Announcement Newsletter. You will receive emails when a new release is available (sometimes including a security bug fix, it\'s important to know and upgrade) and when major events happen to the project. Only a few emails a year.'|@translate}</li>
+ </ul>
+</div>
+
+<p>
+ <input type="button" name="subscribe" value="{'Subscribe %s'|@translate|@sprintf:$F_ADMIN_EMAIL}" onClick="window.open('{$SUBSCRIBE_BASE_URL}{$F_ADMIN_EMAIL}');">
+</p>
+{/if}
+{/if}
+</div> {* content *}
+<div style="text-align: center">{$L_INSTALL_HELP}</div>
+</div> {* the_page *}
+</body>
+</html>
diff --git a/admin/themes/default/template/intro.tpl b/admin/themes/default/template/intro.tpl
new file mode 100644
index 000000000..86c65c0a3
--- /dev/null
+++ b/admin/themes/default/template/intro.tpl
@@ -0,0 +1,79 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"}
+
+<script type="text/javascript">
+jQuery().ready(function(){ldelim}
+ jQuery('.cluetip').cluetip({ldelim}
+ width: 300,
+ splitTitle: '|'
+ });
+});
+</script>
+
+<h2>{'Piwigo administration'|@translate}</h2>
+<dl style="padding-top: 30px;">
+ <dt>{'Piwigo version'|@translate}</dt>
+ <dd>
+ <ul>
+ <li><a href="{$PHPWG_URL}" onclick="window.open(this.href, '');
+ return false;">Piwigo</a> {$PWG_VERSION}</li>
+ <li><a href="{$U_CHECK_UPGRADE}">{'Check for upgrade'|@translate}</a></li>
+{if isset($SUBSCRIBE_BASE_URL)}
+ <li><a href="{$SUBSCRIBE_BASE_URL}{$EMAIL}" onclick="window.open(this.href); return false;" class="cluetip" title="{'Piwigo Announcements Newsletter'|@translate}|{'Subscribe to Piwigo Announcements Newsletter'|@translate|htmlspecialchars|nl2br}">{'Subscribe %s to Piwigo Announcements Newsletter'|@translate|@sprintf:$EMAIL}</a></li>
+{/if}
+ </ul>
+ </dd>
+
+ <dt>{'Environment'|@translate}</dt>
+ <dd>
+ <ul>
+ <li>{'Operating system'|@translate}: {$OS}</li>
+ <li>PHP: {$PHP_VERSION} (<a href="{$U_PHPINFO}" onclick="window.open(this.href, '');
+ return false;">{'Show info'|@translate}</a>) [{$PHP_DATATIME}]</li>
+ <li>{$DB_ENGINE}: {$DB_VERSION} [{$DB_DATATIME}]</li>
+ </ul>
+ </dd>
+
+ <dt>{'Database'|@translate}</dt>
+ <dd>
+ <ul>
+ <li>
+ {$DB_ELEMENTS}
+ {if isset($waiting)}
+ (<a href="{$waiting.URL}">{$waiting.INFO}</a>)
+ {/if}
+
+ {if isset($first_added)}
+ ({$first_added.DB_DATE})
+ {/if}
+ </li>
+ <li>{$DB_CATEGORIES} ({$DB_IMAGE_CATEGORY})</li>
+ <li>{$DB_TAGS} ({$DB_IMAGE_TAG})</li>
+ <li>{$DB_USERS}</li>
+ <li>{$DB_GROUPS}</li>
+ <li>
+ {$DB_COMMENTS}
+ {if isset($unvalidated)}
+ (<a href="{$unvalidated.URL}">{$unvalidated.INFO}</a>)
+ {/if}
+ </li>
+ </ul>
+ </dd>
+</dl>
+
+
+<form name="QuickSynchro" action="{$U_CAT_UPDATE}" method="post" id="QuickSynchro" style="display: block; text-align:right;">
+<div>
+<input type="hidden" name="sync" value="files" checked="checked">
+<input type="hidden" name="display_info" value="1" checked="checked">
+<input type="hidden" name="add_to_caddie" value="1" checked="checked">
+<input type="hidden" name="privacy_level" value="0" checked="checked">
+<input type="hidden" name="sync_meta" checked="checked">
+<input type="hidden" name="simulate" value="0">
+<input type="hidden" name="subcats-included" value="1" checked="checked">
+</div>
+<div class="bigbutton">
+<span class="bigtext">{'Quick Local Synchronization'|@translate}</span>
+<input type="submit" value="" name="submit">
+</div>
+</form>
diff --git a/admin/themes/default/template/maintenance.tpl b/admin/themes/default/template/maintenance.tpl
new file mode 100644
index 000000000..2208b5baa
--- /dev/null
+++ b/admin/themes/default/template/maintenance.tpl
@@ -0,0 +1,22 @@
+<div class="titrePage">
+ <h2>{'Maintenance'|@translate}</h2>
+</div>
+
+<ul>
+ <li><a href="{$U_MAINT_CATEGORIES}" {$TAG_INPUT_ENABLED}>{'Update categories informations'|@translate}</a></li>
+ <li><a href="{$U_MAINT_IMAGES}" {$TAG_INPUT_ENABLED}>{'Update images informations'|@translate}</a></li>
+ <li><a href="{$U_MAINT_DATABASE}" {$TAG_INPUT_ENABLED}>{'Repair and optimize database'|@translate}</a></li>
+</ul>
+
+<ul>
+ <li><a href="{$U_MAINT_HISTORY_DETAIL}" onclick="return confirm('{'Purge history detail'|@translate}');" {$TAG_INPUT_ENABLED}>{'Purge history detail'|@translate}</a></li>
+ <li><a href="{$U_MAINT_HISTORY_SUMMARY}" onclick="return confirm('{'Purge history summary'|@translate}');" {$TAG_INPUT_ENABLED}>{'Purge history summary'|@translate}</a></li>
+ <li><a href="{$U_MAINT_SESSIONS}" {$TAG_INPUT_ENABLED}>{'Purge sessions'|@translate}</a></li>
+ <li><a href="{$U_MAINT_FEEDS}" {$TAG_INPUT_ENABLED}>{'Purge never used notification feeds'|@translate}</a></li>
+ <li><a href="{$U_MAINT_SEARCH}"onclick="return confirm('{'Purge search history'|@translate}');" {$TAG_INPUT_ENABLED}>{'Purge search history'|@translate}</a></li>
+ <li><a href="{$U_MAINT_COMPILED_TEMPLATES}" {$TAG_INPUT_ENABLED}>{'Purge compiled templates'|@translate}</a></li>
+</ul>
+
+<ul>
+ <li><a href="{$U_MAINT_C13Y}" {$TAG_INPUT_ENABLED}>{'Reinitialize check integrity'|@translate}</a></li>
+</ul>
diff --git a/admin/themes/default/template/menubar.tpl b/admin/themes/default/template/menubar.tpl
new file mode 100644
index 000000000..552880b45
--- /dev/null
+++ b/admin/themes/default/template/menubar.tpl
@@ -0,0 +1,53 @@
+{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-tablednd" src=$ROOT_URL|@cat:"themes/default/js/jquery.tablednd.js"}
+
+{literal}
+<script type="text/javascript">
+$(function() {
+$('table.table2').tableDnD({
+onDrop:function(table,row) {
+var rows = table.tBodies[0].rows;
+for (var i=0; i<rows.length; i++) {
+ $(rows[i])
+ .attr('class', 'row'+i%2)
+ .find("input:text").attr('value', (i+1)*10);
+}
+}
+});
+});
+</script>
+{/literal}
+
+<div class="titrePage">
+ <h2>Menubar</h2>
+</div>
+<div id="debugArea"></div>
+<form method="post" action="{$F_ACTION}" class="properties">
+ <table class="table2" style="width:99%">
+ <thead>
+ <tr class="throw">
+ <td>Id</td>
+ <td>{'Author'|@translate}</td>
+ <td>{'Name'|@translate}</td>
+ <td>{'Position'|@translate}</td>
+ <td>{'Hide'|@translate}</td>
+ </tr>
+ </thead>
+ <tbody>
+ {foreach from=$blocks item=block name="block_loop"}
+ <tr class="{if $smarty.foreach.block_loop.index is odd}row1{else}row2{/if}">
+ <td>{$block.reg->get_id()}</td>
+ <td>{$block.reg->get_owner()}</td>
+ <td>{$block.reg->get_name()|@translate}</td>
+ <td><input type="text" name="pos_{$block.reg->get_id()}" value={math equation="abs(pos)" pos=$block.pos} size="2"></td>
+ <td><input type="checkbox" name="hide_{$block.reg->get_id()}" {if $block.pos<0}checked="checked"{/if}></td>
+ </tr>
+ {/foreach}
+ </tbody>
+ </table>
+ <p>
+ <input type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input type="submit" name="reset" value="{'Reset'|@translate}" {$TAG_INPUT_ENABLED}>
+ </p>
+</form>
diff --git a/admin/themes/default/template/navigation_bar.tpl b/admin/themes/default/template/navigation_bar.tpl
new file mode 100644
index 000000000..82c66bd15
--- /dev/null
+++ b/admin/themes/default/template/navigation_bar.tpl
@@ -0,0 +1,28 @@
+<div class="navigationBar">
+ {if isset($navbar.URL_FIRST)}
+ <a href="{$navbar.URL_FIRST}" rel="first">{'First'|@translate}</a> |
+ <a href="{$navbar.URL_PREV}" rel="prev">{'Previous'|@translate}</a> |
+ {else}
+ {'First'|@translate} |
+ {'Previous'|@translate} |
+ {/if}
+
+ {assign var='prev_page' value=0}
+ {foreach from=$navbar.pages key=page item=url}
+ {if $page > $prev_page+1}...{/if}
+ {if $page == $navbar.CURRENT_PAGE}
+ <span class="pageNumberSelected">{$page}</span>
+ {else}
+ <a href="{$url}">{$page}</a>
+ {/if}
+ {assign var='prev_page' value=$page}
+ {/foreach}
+
+ {if isset($navbar.URL_NEXT)}
+ | <a href="{$navbar.URL_NEXT}" rel="next">{'Next'|@translate}</a>
+ | <a href="{$navbar.URL_LAST}" rel="last">{'Last'|@translate}</a>
+ {else}
+ | {'Next'|@translate}
+ | {'Last'|@translate}
+ {/if}
+</div>
diff --git a/admin/themes/default/template/notification_by_mail.tpl b/admin/themes/default/template/notification_by_mail.tpl
new file mode 100644
index 000000000..3ffccd544
--- /dev/null
+++ b/admin/themes/default/template/notification_by_mail.tpl
@@ -0,0 +1,121 @@
+
+{include file='include/autosize.inc.tpl'}
+
+<div class="titrePage">
+ <h2>{'Send mail to users'|@translate} {$TABSHEET_TITLE}</h2>
+</div>
+
+<form method="post" name="notification_by_mail" id="notification_by_mail" action="{$F_ACTION}">
+ {if isset($REPOST_SUBMIT_NAME)}
+ <fieldset>
+ <div class="infos">
+ <input class="submit" type="submit" value="{'Continue processing treatment'|@translate}" name="{$REPOST_SUBMIT_NAME}" {$TAG_INPUT_ENABLED}>
+ </div>
+ </fieldset>
+ {/if}
+
+ {if isset($param)}
+ <fieldset>
+ <legend>{'Parameters'|@translate}</legend>
+ <table>
+ <tr>
+ <td><label>{'Send mail on HTML format'|@translate}</label></td>
+ <td>
+ <label><input type="radio" name="nbm_send_html_mail" value="true" {if $param.SEND_HTML_MAIL}checked="checked"{/if}>{'Yes'|@translate}</label>
+ <label><input type="radio" name="nbm_send_html_mail" value="false" {if not $param.SEND_HTML_MAIL}checked="checked"{/if}>{'No'|@translate}</label>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <label for="send_mail_as">{'Send mail as'|@translate}</label>
+ <br><i><small>{'With blank value, gallery title will be used'|@translate}</small></i>
+ </td>
+ <td><input type="text" maxlength="35" size="35" name="nbm_send_mail_as" id="send_mail_as" value="{$param.SEND_MAIL_AS}"></td>
+ </tr>
+ <tr>
+ <td><label>{'Add detailed content'|@translate}</label></td>
+ <td>
+ <label><input type="radio" name="nbm_send_detailed_content" value="true" {if $param.SEND_DETAILED_CONTENT}checked="checked"{/if}>{'Yes'|@translate}</label>
+ <label><input type="radio" name="nbm_send_detailed_content" value="false" {if not $param.SEND_DETAILED_CONTENT}checked="checked"{/if}>{'No'|@translate}</label>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="complementary_mail_content">{'Complementary mail content'|@translate}</label></td>
+ <td><textarea cols="50" rows="5" name="nbm_complementary_mail_content" id="complementary_mail_content">{$param.COMPLEMENTARY_MAIL_CONTENT}</textarea></td>
+ </tr>
+ <tr>
+ <td>
+ <label>{'Include display of recent pictures group by dates'|@translate}</label>
+ <br><i><small>{'Available only with HTML format'|@translate}</small></i>
+ </td>
+ <td>
+ <label><input type="radio" name="nbm_send_recent_post_dates" value="true" {if $param.SEND_RECENT_POST_DATES}checked="checked"{/if}>{'Yes'|@translate}</label>
+ <label><input type="radio" name="nbm_send_recent_post_dates" value="false" {if not $param.SEND_RECENT_POST_DATES}checked="checked"{/if}>{'No'|@translate}</label>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+
+ <p>
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="param_submit" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}" name="param_reset">
+ </p>
+ {/if}{* isset $param*}
+
+ {if isset($subscribe)}
+ <fieldset>
+ <legend>{'Subscribe/unsubscribe users'|@translate}</legend>
+ <p><i>{'Warning: subscribing or unsubscribing will send mails to users'|@translate}</i></p>
+ {$DOUBLE_SELECT}
+ </fieldset>
+ {/if}{* isset $subscribe*}
+
+ {if isset($send)}
+ {if empty($send.users)}
+ <p>{'There is no available subscribers to mail.'|@translate}</p>
+ <p>
+ {'Subscribers could be listed (available) only if there is new elements to notify.'|@translate}<br>
+ {'Anyway only webmasters can see this tab and never administrators.'|@translate}
+ </p>
+ {else}
+ <fieldset>
+ <legend>{'Select recipients'|@translate}</legend>
+ <table class="table2">
+ <tr class="throw">
+ <th>{'User'|@translate}</th>
+ <th>{'email'|@translate}</th>
+ <th>{'Last send'|@translate}</th>
+ <th>{'To send ?'|@translate}</th>
+ </tr>
+ {foreach from=$send.users item=u name=user_loop}
+ <tr class="{if $smarty.foreach.user_loop.index is odd}row1{else}row2{/if}">
+ <td><label for="send_selection-{$u.ID}">{$u.USERNAME}</label></td>
+ <td><label for="send_selection-{$u.ID}">{$u.EMAIL}</label></td>
+ <td><label for="send_selection-{$u.ID}">{$u.LAST_SEND}</label></td>
+ <td><input type="checkbox" name="send_selection[]" value="{$u.ID}" {$u.CHECKED} id="send_selection-{$u.ID}"></td>
+ </tr>
+ {/foreach}
+ </table>
+ <p>
+ <a href="#" onclick="SelectAll(document.getElementById('notification_by_mail')); return false;">{'Check all'|@translate}</a>
+ / <a href="#" onclick="DeselectAll(document.getElementById('notification_by_mail')); return false;">{'Uncheck all'|@translate}</a>
+ </p>
+ </fieldset>
+
+ <fieldset>
+ <legend>{'Options'|@translate}</legend>
+ <table>
+ <tr>
+ <td><label for="send_customize_mail_content">{'Complementary mail content'|@translate}</label></td>
+ <td><textarea cols="50" rows="5" name="send_customize_mail_content" id="send_customize_mail_content">{$send.CUSTOMIZE_MAIL_CONTENT}</textarea></td>
+ </tr>
+ </table>
+ </fieldset>
+
+ <p>
+ <input class="submit" type="submit" value="{'Send'|@translate}" name="send_submit" {$TAG_INPUT_ENABLED}>
+ </p>
+ {/if}
+ {/if}{* isset $send*}
+
+</form>
diff --git a/admin/themes/default/template/permalinks.tpl b/admin/themes/default/template/permalinks.tpl
new file mode 100644
index 000000000..ef5c7f802
--- /dev/null
+++ b/admin/themes/default/template/permalinks.tpl
@@ -0,0 +1,66 @@
+<div class="titrePage">
+ <h2>{'Permalinks'|@translate}</h2>
+</div>
+
+<form method="post" action="">
+<fieldset><legend>{'Add/delete a permalink'|@translate}</legend>
+ <label>{'Category'|@translate}:
+ <select name="cat_id">
+ <option value="0">------</option>
+ {html_options options=$categories selected=$categories_selected}
+ </select>
+ </label>
+
+ <label>{'Permalink'|@translate}:
+ <input name="permalink">
+ </label>
+
+ <label>{'Save to permalink history'|@translate}:
+ <input type="checkbox" name="save" checked="checked">
+ </label>
+
+ <p>
+ <input type="submit" class="submit" name="set_permalink" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+ </p>
+ </fieldset>
+</form>
+
+<h3>{'Permalinks'|@translate}</h3>
+<table class="table2">
+ <tr class="throw">
+ <td>Id {$SORT_ID}</td>
+ <td>{'Category'|@translate} {$SORT_NAME}</td>
+ <td>{'Permalink'|@translate} {$SORT_PERMALINK}</td>
+ </tr>
+{foreach from=$permalinks item=permalink name="permalink_loop"}
+ <tr class="{if $smarty.foreach.permalink_loop.index is odd}row1{else}row2{/if}" style="line-height:1.5em;">
+ <td style="text-align:center;">{$permalink.id}</td>
+ <td>{$permalink.name}</td>
+ <td>{$permalink.permalink}</td>
+ </tr>
+{/foreach}
+</table>
+
+<h3>{'Permalink history'|@translate} <a name="old_permalinks"></a></h3>
+<table class="table2">
+ <tr class="throw">
+ <td>Id {$SORT_OLD_CAT_ID}</td>
+ <td>{'Category'|@translate}</td>
+ <td>{'Permalink'|@translate} {$SORT_OLD_PERMALINK}</td>
+ <td>{'Deleted on'|@translate} {$SORT_OLD_DATE_DELETED}</td>
+ <td>{'Last hit'|@translate} {$SORT_OLD_LAST_HIT}</td>
+ <td style="width:20px;">{'Hit'|@translate} {$SORT_OLD_HIT}</td>
+ <td style="width:5px;"></td>
+ </tr>
+{foreach from=$deleted_permalinks item=permalink}
+ <tr style="line-height:1.5em;">
+ <td style="text-align:center;">{$permalink.cat_id}</td>
+ <td>{$permalink.name}</td>
+ <td>{$permalink.permalink}</td>
+ <td>{$permalink.date_deleted}</td>
+ <td>{$permalink.last_hit}</td>
+ <td>{$permalink.hit}</td>
+ <td><a href="{$permalink.U_DELETE}" {$TAG_INPUT_ENABLED}><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/Delete.png" alt="[{'Delete'|@translate}]" class="button"></a></td>
+ </tr>
+{/foreach}
+</table>
diff --git a/admin/themes/default/template/photos_add_direct.tpl b/admin/themes/default/template/photos_add_direct.tpl
new file mode 100644
index 000000000..9f59c11a7
--- /dev/null
+++ b/admin/themes/default/template/photos_add_direct.tpl
@@ -0,0 +1,185 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+
+{literal}
+<script>
+$(document).ready(function(){
+
+ $("input[name=category_type]").click(function () {
+ $("[id^=category_type_]").hide();
+ $("#category_type_"+$(this).attr("value")).show();
+ });
+});
+</script>
+{/literal}
+
+{if $upload_mode eq 'html'}
+{literal}
+<script type="text/javascript">
+$(document).ready(function(){
+ function addUploadBox() {
+ var uploadBox = '<p class="file"><input type="file" size="60" name="image_upload[]" /></p>';
+ $(uploadBox).appendTo("#uploadBoxes");
+ }
+
+ addUploadBox();
+
+ $("#addUploadBox A").click(function () {
+ addUploadBox();
+ });
+});
+</script>
+{/literal}
+
+{elseif $upload_mode eq 'multiple'}
+<script type="text/javascript" src="{$uploadify_path}/swfobject.js"></script>
+<script type="text/javascript" src="{$uploadify_path}/jquery.uploadify.v2.1.0.min.js"></script>
+
+<script type="text/javascript">
+var uploadify_path = '{$uploadify_path}';
+var upload_id = '{$upload_id}';
+var session_id = '{$session_id}';
+var pwg_token = '{$pwg_token}';
+var buttonText = 'Browse';
+
+{literal}
+jQuery(document).ready(function() {
+ jQuery("#uploadify").uploadify({
+ 'uploader' : uploadify_path + '/uploadify.swf',
+ 'script' : uploadify_path + '/uploadify.php',
+ 'scriptData' : {
+ 'upload_id' : upload_id,
+ 'session_id' : session_id,
+ 'pwg_token' : pwg_token,
+ },
+ 'cancelImg' : uploadify_path + '/cancel.png',
+ 'queueID' : 'fileQueue',
+ 'auto' : false,
+ 'displayData' : 'speed',
+ 'buttonText' : buttonText,
+ 'multi' : true,
+ 'onAllComplete' : function(event, data) {
+ if (data.errors) {
+ return false;
+ }
+ else {
+ $("input[name=submit_upload]").click();
+ }
+ }
+ });
+});
+{/literal}
+</script>
+{/if}
+
+<div class="titrePage">
+ <h2>{'Upload photos'|@translate}</h2>
+</div>
+
+{if count($setup_errors) > 0}
+<div class="errors">
+ <ul>
+ {foreach from=$setup_errors item=error}
+ <li>{$error}</li>
+ {/foreach}
+ </ul>
+</div>
+{else}
+
+{if !empty($thumbnails)}
+<fieldset>
+ <legend>{'Uploaded Photos'|@translate}</legend>
+ <div>
+ {foreach from=$thumbnails item=thumbnail}
+ <a href="{$thumbnail.link}" onclick="window.open(this.href); return false;">
+ <img src="{$thumbnail.src}" alt="{$thumbnail.file}" title="{$thumbnail.title}" class="thumbnail">
+ </a>
+ {/foreach}
+ </div>
+ <p id="batchLink"><a href="{$batch_link}">{$batch_label}</a></p>
+</fieldset>
+{/if}
+
+
+<form id="uploadForm" enctype="multipart/form-data" method="post" action="{$F_ACTION}" class="properties">
+{if $upload_mode eq 'multiple'}
+<input name="upload_id" value="{$upload_id}" type="hidden">
+{/if}
+
+ <div class="formField">
+ <div class="formFieldTitle">{'Drop into category'|@translate}</div>
+
+ <label><input type="radio" name="category_type" value="existing"> {'existing category'|@translate}</label>
+ <label><input type="radio" name="category_type" value="new" checked="checked"> {'create a new category'|@translate}</label>
+
+ <div id="category_type_existing" style="display:none" class="category_selection">
+ <select class="categoryDropDown" name="category">
+ {html_options options=$category_options}
+ </select>
+ </div>
+
+ <div id="category_type_new" class="category_selection">
+ <table>
+ <tr>
+ <td>{'Parent category'|@translate}</td>
+ <td>
+ <select class="categoryDropDown" name="category_parent">
+ <option value="0">------------</option>
+ {html_options options=$category_options}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{'Category name'|@translate}</td>
+ <td>
+ <input type="text" name="category_name" value="{$F_CATEGORY_NAME}" style="width:400px">
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+
+ <div class="formField">
+ <div class="formFieldTitle">{'Who can see these photos?'|@translate}</div>
+
+ <select name="level" size="1">
+ {html_options options=$level_options selected=$level_options_selected}
+ </select>
+ </div>
+
+ <div class="formField">
+ <div class="formFieldTitle">{'Select files'|@translate}</div>
+
+{if $upload_mode eq 'html'}
+ <p><a href="{$switch_url}">{'... or switch to the multiple files form'|@translate}</a></p>
+
+ <p>{'JPEG files or ZIP archives with JPEG files inside please.'|@translate}</p>
+
+ <div id="uploadBoxes"></div>
+ <div id="addUploadBox">
+ <a href="javascript:">{'+ Add an upload box'|@translate}</a>
+ </div>
+
+ </div> <!-- formField -->
+
+ <p>
+ <input class="submit" type="submit" name="submit_upload" value="{'Upload'|@translate}" {$TAG_INPUT_ENABLED}/>
+ </p>
+{elseif $upload_mode eq 'multiple'}
+ </table>
+
+ <p>
+ <input type="file" name="uploadify" id="uploadify" />
+ </p>
+
+ <p><a href="{$switch_url}">{'... or switch to the old style form'|@translate}</a></p>
+
+ <div id="fileQueue"></div>
+
+ </div> <!-- formField -->
+ <p>
+ <input class="submit" type="button" value="{'Upload'|@translate}" onclick="javascript:jQuery('#uploadify').uploadifyUpload()"/>
+ <input type="submit" name="submit_upload" style="display:none"/>
+ </p>
+{/if}
+</form>
+{/if}
diff --git a/admin/themes/default/template/photos_add_settings.tpl b/admin/themes/default/template/photos_add_settings.tpl
new file mode 100644
index 000000000..10e4633dd
--- /dev/null
+++ b/admin/themes/default/template/photos_add_settings.tpl
@@ -0,0 +1,74 @@
+{literal}
+<script>
+$(document).ready(function(){
+ function toggleResizeFields() {
+ var checkbox = $("#websize_resize");
+ var needToggle = $("input[name^=websize_]").not(checkbox).parents('tr');
+
+ if ($(checkbox).is(':checked')) {
+ needToggle.show();
+ }
+ else {
+ needToggle.hide();
+ }
+ }
+
+ toggleResizeFields();
+ $("#websize_resize").click(function () {toggleResizeFields()});
+});
+</script>
+{/literal}
+
+<div class="titrePage" style="height:25px">
+ <h2>{'Upload Photos'|@translate}</h2>
+</div>
+
+<form id="uploadFormSettings" enctype="multipart/form-data" method="post" action="{$F_ACTION}" class="properties">
+
+ <div class="formField">
+ <div class="formFieldTitle">{'Web size photo'|@translate}</div>
+
+ <table>
+ <tr>
+ <th><label for="websize_resize">{'Resize'|@translate}</label></th>
+ <td><input type="checkbox" name="websize_resize" id="websize_resize" {$values.websize_resize}></td>
+ </tr>
+ <tr>
+ <th>{'Maximum Width'|@translate}</th>
+ <td><input type="text" name="websize_maxwidth" value="{$values.websize_maxwidth}" size="4" maxlength="4"> {'pixels'|@translate}</td>
+ </tr>
+ <tr>
+ <th>{'Maximum Height'|@translate}</th>
+ <td><input type="text" name="websize_maxheight" value="{$values.websize_maxheight}" size="4" maxlength="4"> {'pixels'|@translate}</td>
+ </tr>
+ <tr>
+ <th>{'Image Quality'|@translate}</th>
+ <td><input type="text" name="websize_quality" value="{$values.websize_quality}" size="3" maxlength="3"> %</td>
+ </tr>
+ </table>
+ </div>
+
+ <div class="formField">
+ <div class="formFieldTitle">{'Thumbnail'|@translate}</div>
+
+ <table>
+ <tr>
+ <th>{'Maximum Width'|@translate}</th>
+ <td><input type="text" name="thumb_maxwidth" value="{$values.thumb_maxwidth}" size="4" maxlength="4"> {'pixels'|@translate}</td>
+ </tr>
+ <tr>
+ <th>{'Maximum Height'|@translate}</th>
+ <td><input type="text" name="thumb_maxheight" value="{$values.thumb_maxheight}" size="4" maxlength="4"> {'pixels'|@translate}</td>
+ </tr>
+ <tr>
+ <th>{'Image Quality'|@translate}</th>
+ <td><input type="text" name="thumb_quality" value="{$values.thumb_quality}" size="3" maxlength="3"> %</td>
+ </tr>
+ </table>
+ </div>
+
+ <p>
+ <input class="submit" type="submit" name="submit" value="{'Save Settings'|@translate}"/>
+ </p>
+
+</form>
diff --git a/admin/themes/default/template/picture_modify.tpl b/admin/themes/default/template/picture_modify.tpl
new file mode 100644
index 000000000..be5fa94a4
--- /dev/null
+++ b/admin/themes/default/template/picture_modify.tpl
@@ -0,0 +1,226 @@
+{include file='include/autosize.inc.tpl'}
+{include file='include/dbselect.inc.tpl'}
+{include file='include/datepicker.inc.tpl'}
+
+{known_script id="jquery.fcbkcomplete" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.fcbkcomplete.js"}
+{literal}
+<script type="text/javascript">
+ $(document).ready(function() {
+ $("#tags").fcbkcomplete({
+ json_url: "admin.php?fckb_tags=1",
+ cache: false,
+ filter_case: true,
+ filter_hide: true,
+ firstselected: true,
+ filter_selected: true,
+ maxitems: 10,
+ newel: true
+ });
+ });
+</script>
+{/literal}
+
+{literal}
+<script type="text/javascript">
+ pwg_initialization_datepicker("#date_creation_day", "#date_creation_month", "#date_creation_year", "#date_creation_linked_date", "#date_creation_action_set");
+</script>
+{/literal}
+
+<h2>{'Modify informations about a picture'|@translate}</h2>
+
+<img src="{$TN_SRC}" alt="{'Thumbnail'|@translate}" class="Thumbnail">
+
+<ul class="categoryActions">
+ {if isset($U_JUMPTO) }
+ <li><a href="{$U_JUMPTO}" title="{'jump to image'|@translate}"><img src="{$themeconf.admin_icon_dir}/category_jump-to.png" class="button" alt="{'jump to image'|@translate}"></a></li>
+ {/if}
+ {if !url_is_remote($path)}
+ <li><a href="{$U_SYNC}" title="{'synchronize'|@translate}" {$TAG_INPUT_ENABLED}><img src="{$themeconf.admin_icon_dir}/sync_metadata.png" class="button" alt="{'synchronize'|@translate}"></a></li>
+ {/if}
+</ul>
+
+<form action="{$F_ACTION}" method="post" id="properties">
+
+ <fieldset>
+ <legend>{'Informations'|@translate}</legend>
+
+ <table>
+
+ <tr>
+ <td><strong>{'Path'|@translate}</strong></td>
+ <td>{$PATH}</td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Post date'|@translate}</strong></td>
+ <td>{$REGISTRATION_DATE}</td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Dimensions'|@translate}</strong></td>
+ <td>{$DIMENSIONS}</td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Filesize'|@translate}</strong></td>
+ <td>{$FILESIZE}</td>
+ </tr>
+
+{if isset($HIGH_FILESIZE) }
+ <tr>
+ <td><strong>{'High filesize'|@translate}</strong></td>
+ <td>{$HIGH_FILESIZE}</td>
+ </tr>
+{/if}
+
+ <tr>
+ <td><strong>{'Storage category'|@translate}</strong></td>
+ <td>{$STORAGE_CATEGORY}</td>
+ </tr>
+
+ {if isset($related_categories) }
+ <tr>
+ <td><strong>{'Linked categories'|@translate}</strong></td>
+ <td>
+ <ul>
+ {foreach from=$related_categories item=name}
+ <li>{$name}</li>
+ {/foreach}
+ </ul>
+ </td>
+ </tr>
+ {/if}
+
+ </table>
+
+ </fieldset>
+
+ <fieldset>
+ <legend>{'Properties'|@translate}</legend>
+
+ <table>
+
+ <tr>
+ <td><strong>{'Name'|@translate}</strong></td>
+ <td><input type="text" class="large" name="name" value="{$NAME}"></td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Author'|@translate}</strong></td>
+ <td><input type="text" class="large" name="author" value="{$AUTHOR}"></td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Creation date'|@translate}</strong></td>
+ <td>
+ <label><input type="radio" name="date_creation_action" value="unset"> {'unset'|@translate}</label>
+ <input type="radio" name="date_creation_action" value="set" id="date_creation_action_set"> {'set to'|@translate}
+ <select id="date_creation_day" name="date_creation_day">
+ <option value="0">--</option>
+ {section name=day start=1 loop=32}
+ <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$DATE_CREATION_DAY_VALUE}selected="selected"{/if}>{$smarty.section.day.index}</option>
+ {/section}
+ </select>
+ <select id="date_creation_month" name="date_creation_month">
+ {html_options options=$month_list selected=$DATE_CREATION_MONTH_VALUE}
+ </select>
+ <input id="date_creation_year"
+ name="date_creation_year"
+ type="text"
+ size="4"
+ maxlength="4"
+ value="{$DATE_CREATION_YEAR_VALUE}">
+ <input id="date_creation_linked_date" name="date_creation_linked_date" type="hidden" size="10" disabled="disabled">
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Tags'|@translate}</strong></td>
+ <td>
+<select id="tags" name="tags">
+{foreach from=$tags item=tag}
+ <option value="{$tag.value}" class="selected">{$tag.caption}</option>
+{/foreach}
+</select>
+ </td>
+ </tr>
+
+
+ <tr>
+ <td><strong>{'Description'|@translate}</strong></td>
+ <td><textarea name="description" id="description" class="description">{$DESCRIPTION}</textarea></td>
+ </tr>
+
+ <tr>
+ <td><strong>{'Minimum privacy level'|@translate}</strong></td>
+ <td>
+ <select name="level" size="1">
+ {html_options options=$level_options selected=$level_options_selected}
+ </select>
+ </td>
+ </tr>
+
+ </table>
+
+ <p style="text-align:center;">
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset">
+ </p>
+
+ </fieldset>
+
+</form>
+
+<form id="associations" method="post" action="{$F_ACTION}#associations">
+ <fieldset>
+ <legend>{'Association to categories'|@translate}</legend>
+
+ <table class="doubleSelect">
+ <tr>
+ <td>
+ <h3>{'Associated'|@translate}</h3>
+ <select class="categoryList" name="cat_associated[]" multiple="multiple" size="30">
+ {html_options options=$associated_options}
+ </select>
+ <p><input class="submit" type="submit" value="&raquo;" name="dissociate" style="font-size:15px;" {$TAG_INPUT_ENABLED}></p>
+ </td>
+
+ <td>
+ <h3>{'Dissociated'|@translate}</h3>
+ <select class="categoryList" name="cat_dissociated[]" multiple="multiple" size="30">
+ {html_options options=$dissociated_options}
+ </select>
+ <p><input class="submit" type="submit" value="&laquo;" name="associate" style="font-size:15px;" {$TAG_INPUT_ENABLED}></p>
+ </td>
+ </tr>
+ </table>
+
+ </fieldset>
+</form>
+
+<form id="representation" method="post" action="{$F_ACTION}#representation">
+ <fieldset>
+ <legend>{'Representation of categories'|@translate}</legend>
+
+ <table class="doubleSelect">
+ <tr>
+ <td>
+ <h3>{'Represents'|@translate}</h3>
+ <select class="categoryList" name="cat_elected[]" multiple="multiple" size="30">
+ {html_options options=$elected_options}
+ </select>
+ <p><input class="submit" type="submit" value="&raquo;" name="dismiss" style="font-size:15px;" {$TAG_INPUT_ENABLED}></p>
+ </td>
+
+ <td>
+ <h3>{'Does not represent'|@translate}</h3>
+ <select class="categoryList" name="cat_dismissed[]" multiple="multiple" size="30">
+ {html_options options=$dismissed_options}
+ </select>
+ <p><input class="submit" type="submit" value="&laquo;" name="elect" style="font-size:15px;" {$TAG_INPUT_ENABLED}></p>
+ </td>
+ </tr>
+ </table>
+
+ </fieldset>
+</form>
diff --git a/admin/themes/default/template/plugins_list.tpl b/admin/themes/default/template/plugins_list.tpl
new file mode 100644
index 000000000..8743d6b6d
--- /dev/null
+++ b/admin/themes/default/template/plugins_list.tpl
@@ -0,0 +1,88 @@
+<div class="titrePage">
+<span class="sort">
+{'Sort order'|@translate} :
+ <select onchange="document.location = this.options[this.selectedIndex].value;" style="width:200px">
+ {html_options options=$order_options selected=$order_selected}
+ </select>
+</span>
+ <h2>{'Plugins'|@translate}</h2>
+</div>
+
+
+{if isset($plugins)}
+<table class="table2 plugins">
+<thead>
+ <tr class="throw">
+ <td>{'Name'|@translate}</td>
+ <td>{'Actions'|@translate}</td>
+ <td>{'Version'|@translate}</td>
+ <td>{'Description'|@translate}</td>
+ </tr>
+</thead>
+
+{foreach from=$plugins item=plugin name=plugins_loop}
+ <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}">
+ <td class="pluginState{if $plugin.STATE != 'uninstalled'} {$plugin.STATE}{/if}">
+ {$plugin.NAME}
+ </td>
+ <td>
+ <ul class="pluginsActions">
+ {if $plugin.STATE == 'active'}
+ <li>
+ <a href="{$plugin.U_ACTION}&amp;action=deactivate">
+ <img src="{$themeconf.admin_icon_dir}/plug_deactivate.png" alt="{'Deactivate'|@translate}" title="{'Deactivate'|@translate}">
+ </a>
+ </li>
+ <li>
+ <img src="{$themeconf.admin_icon_dir}/plug_uninstall_grey.png" alt="{'Uninstall'|@translate}" title="{'Uninstall'|@translate}">
+ </li>
+ {/if}
+ {if $plugin.STATE == 'inactive'}
+ <li>
+ <a href="{$plugin.U_ACTION}&amp;action=activate">
+ <img src="{$themeconf.admin_icon_dir}/plug_activate.png" alt="{'Activate'|@translate}" title="{'Activate'|@translate}">
+ </a>
+ </li>
+ <li>
+ <a href="{$plugin.U_ACTION}&amp;action=uninstall" onclick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');">
+ <img src="{$themeconf.admin_icon_dir}/plug_uninstall.png" alt="{'Uninstall'|@translate}" title="{'Uninstall'|@translate}">
+ </a>
+ </li>
+ {/if}
+ {if $plugin.STATE == 'missing'}
+ <li>
+ <img src="{$themeconf.admin_icon_dir}/plug_deactivate_grey.png" alt="{'Deactivate'|@translate}" title="{'Deactivate'|@translate}">
+ </li>
+ <li>
+ <a href="{$plugin.U_ACTION}&amp;action=uninstall" onclick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');">
+ <img src="{$themeconf.admin_icon_dir}/plug_uninstall.png" alt="{'Uninstall'|@translate}" title="{'Uninstall'|@translate}">
+ </a>
+ </li>
+ {/if}
+ {if $plugin.STATE == 'uninstalled'}
+ <li>
+ <img src="{$themeconf.admin_icon_dir}/plug_activate_grey.png" alt="{'Activate'|@translate}" title="{'Activate'|@translate}">
+ </li>
+ <li>
+ <a href="{$plugin.U_ACTION}&amp;action=install" onclick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');">
+ <img src="{$themeconf.admin_icon_dir}/plug_install.png" alt="{'Install'|@translate}" title="{'Install'|@translate}">
+ </a>
+ </li>
+ <li>
+ <a href="{$plugin.U_ACTION}&amp;action=delete" onclick="return confirm('{'plugins_confirm_delete'|@translate|@escape:'javascript'}');">
+ <img src="{$themeconf.admin_icon_dir}/plug_delete.png" alt="{'Delete'|@translate}" title="{'Delete'|@translate}">
+ </a>
+ </li>
+ {else}
+ <li>
+ <img src="{$themeconf.admin_icon_dir}/plug_delete_grey.png" alt="{'Delete'|@translate}" title="{'Delete'|@translate}">
+ </li>
+ {/if}
+ </ul>
+ </td>
+ <td style="text-align:center;">{$plugin.VERSION}</td>
+ <td>{$plugin.DESCRIPTION}</td>
+ </tr>
+{/foreach}
+</table>
+{/if}
diff --git a/admin/themes/default/template/plugins_new.tpl b/admin/themes/default/template/plugins_new.tpl
new file mode 100644
index 000000000..4bc7700b0
--- /dev/null
+++ b/admin/themes/default/template/plugins_new.tpl
@@ -0,0 +1,47 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"}
+
+<script type="text/javascript">
+jQuery().ready(function(){ldelim}
+ jQuery('.cluetip').cluetip({ldelim}
+ width: 300,
+ splitTitle: '|'
+ });
+});
+</script>
+
+<div class="titrePage">
+<span class="sort">
+{'Sort order'|@translate} :
+ <select onchange="document.location = this.options[this.selectedIndex].value;">
+ {html_options options=$order_options selected=$order_selected}
+ </select>
+</span>
+ <h2>{'Plugins'|@translate}</h2>
+</div>
+
+{if isset($plugins)}
+<br>
+<table class="table2 plugins">
+<thead>
+ <tr class="throw">
+ <td>{'Name'|@translate}</td>
+ <td>{'Version'|@translate}</td>
+ <td>{'Date'|@translate}</td>
+ <td>{'Author'|@translate}</td>
+ <td>{'Actions'|@translate}</td>
+ </tr>
+</thead>
+{foreach from=$plugins item=plugin name=plugins_loop}
+ <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}">
+ <td><a href="{$plugin.EXT_URL}" onclick="window.open(this.href); return false;" class="cluetip" title="{$plugin.EXT_NAME}|{$plugin.EXT_DESC|htmlspecialchars|nl2br}">{$plugin.EXT_NAME}</a></td>
+ <td style="text-align:center;"><a href="{$plugin.EXT_URL}" onclick="window.open(this.href); return false;" class="cluetip" title="{$plugin.EXT_NAME}|{$plugin.VER_DESC|htmlspecialchars|nl2br}">{$plugin.VERSION}</a></td>
+ <td>{$plugin.DATE}</td>
+ <td>{$plugin.AUTHOR}</td>
+ <td style="text-align:center;"><a href="{$plugin.URL_INSTALL}" onclick="return confirm('{'Are you sure you want to install this plugin?'|@translate|@escape:javascript}');">{'Automatic installation'|@translate}</a>
+ / <a href="{$plugin.URL_DOWNLOAD}">{'Download file'|@translate}</a>
+ </td>
+ </tr>
+{/foreach}
+</table>
+{/if}
diff --git a/admin/themes/default/template/plugins_update.tpl b/admin/themes/default/template/plugins_update.tpl
new file mode 100644
index 000000000..312fb3ba8
--- /dev/null
+++ b/admin/themes/default/template/plugins_update.tpl
@@ -0,0 +1,79 @@
+{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
+{known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"}
+
+<script type="text/javascript">
+jQuery().ready(function(){ldelim}
+ jQuery('.cluetip').cluetip({ldelim}
+ width: 300,
+ splitTitle: '|'
+ });
+});
+</script>
+
+<div class="titrePage">
+ <h2>{'Plugins'|@translate}</h2>
+</div>
+
+{if isset($plugins_not_uptodate)}
+<br>
+<b>{'Plugins which need upgrade'|@translate}</b>
+<table class="table2 plugins">
+<thead>
+ <tr class="throw">
+ <td>{'Name'|@translate}</td>
+ <td>{'Current<br>version'|@translate}</td>
+ <td>{'Available<br>version'|@translate}</td>
+ <td>{'Actions'|@translate}</td>
+ </tr>
+</thead>
+{foreach from=$plugins_not_uptodate item=plugin name=plugins_loop}
+ <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}">
+ <td><a href="{$plugin.EXT_URL}" onclick="window.open(this.href); return false;" class="cluetip" title="{$plugin.EXT_NAME}|{$plugin.EXT_DESC|htmlspecialchars|nl2br}">{$plugin.EXT_NAME}</a></td>
+ <td style="text-align:center;">{$plugin.VERSION}</td>
+ <td style="text-align:center;"><a href="{$plugin.EXT_URL}" onclick="window.open(this.href); return false;" class="cluetip" title="{$plugin.EXT_NAME}|{$plugin.NEW_VER_DESC|htmlspecialchars|nl2br}">{$plugin.NEW_VERSION}</a></td>
+ <td style="text-align:center;"><a href="{$plugin.URL_UPDATE}" onclick="return confirm('{'Are you sure to install this upgrade? You must verify if this version does not need uninstallation.'|@translate|@escape:javascript}');">{'Automatic upgrade'|@translate}</a>
+ / <a href="{$plugin.URL_DOWNLOAD}">{'Download file'|@translate}</a></td>
+ </tr>
+{/foreach}
+</table>
+{/if}
+
+
+{if isset($plugins_uptodate)}
+<br>
+<b>{'Plugins up to date'|@translate}</b>
+<table class="table2 plugins">
+<thead>
+ <tr class="throw">
+ <td>{'Name'|@translate}</td>
+ <td>{'Version'|@translate}</td>
+ </tr>
+</thead>
+{foreach from=$plugins_uptodate item=plugin name=plugins_loop}
+ <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}">
+ <td><a href="{$plugin.URL}" onclick="window.open(this.href); return false;" class="cluetip" title="{$plugin.NAME}|{$plugin.EXT_DESC|htmlspecialchars|nl2br}">{$plugin.NAME}</a></td>
+ <td style="text-align:center;"><a href="{$plugin.URL}" onclick="window.open(this.href); return false;" class="cluetip" title="{$plugin.NAME}|{$plugin.VER_DESC|htmlspecialchars|nl2br}">{$plugin.VERSION}</a></td>
+ </tr>
+{/foreach}
+</table>
+{/if}
+
+
+{if isset($plugins_cant_check)}
+<br>
+<b>{'Plugin versions can\'t be checked'|@translate}</b>
+<table class="table2 plugins">
+<thead>
+ <tr class="throw">
+ <td>{'Name'|@translate}</td>
+ <td>{'Version'|@translate}</td>
+ </tr>
+</thead>
+{foreach from=$plugins_cant_check item=plugin name=plugins_loop}
+ <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}">
+ <td>{$plugin.NAME}</td>
+ <td style="text-align:center;">{$plugin.VERSION}</td>
+ </tr>
+{/foreach}
+</table>
+{/if}
diff --git a/admin/themes/default/template/popuphelp.tpl b/admin/themes/default/template/popuphelp.tpl
new file mode 100644
index 000000000..950e3ca0e
--- /dev/null
+++ b/admin/themes/default/template/popuphelp.tpl
@@ -0,0 +1,12 @@
+<div id="content" class="content">
+{$HELP_CONTENT}
+</div> <!-- content -->
+
+<ul class="categoryActions">
+ <li>
+ <a href="#" onclick="window.close();" title="{'Close this window'|@translate}">
+ <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/exit.png" class="button" alt="exit">
+ </a>
+ </li>
+</ul>
+
diff --git a/admin/themes/default/template/profile.tpl b/admin/themes/default/template/profile.tpl
new file mode 100644
index 000000000..6eac82e44
--- /dev/null
+++ b/admin/themes/default/template/profile.tpl
@@ -0,0 +1,5 @@
+<div class="titrePage">
+ <h2>{'Profile'|@translate}</h2>
+</div>
+
+{$PROFILE_CONTENT}
diff --git a/admin/themes/default/template/profile_content.tpl b/admin/themes/default/template/profile_content.tpl
new file mode 100644
index 000000000..fd8841a4e
--- /dev/null
+++ b/admin/themes/default/template/profile_content.tpl
@@ -0,0 +1,108 @@
+<form method="post" name="profile" action="{$F_ACTION}" id="profile" class="properties">
+
+ <fieldset>
+ <legend>{'Registration'|@translate}</legend>
+ <input type="hidden" name="redirect" value="{$REDIRECT}">
+ <ul>
+ <li>
+ <span class="property">{'Username'|@translate}</span>
+ {$USERNAME}
+ </li>
+{if not $SPECIAL_USER} {* can modify password + email*}
+ <li>
+ <span class="property">
+ <label for="mail_address">{'Email address'|@translate}</label>
+ </span>
+ <input type="text" name="mail_address" id="mail_address" value="{$EMAIL}">
+ </li>
+{if not $IN_ADMIN} {* admins do not need old password*}
+ <li>
+ <span class="property">
+ <label for="password">{'Password'|@translate}</label>
+ </span>
+ <input type="password" name="password" id="password" value="">
+ </li>
+{/if}
+ <li>
+ <span class="property">
+ <label for="use_new_pwd">{'New password'|@translate}</label>
+ </span>
+ <input type="password" name="use_new_pwd" id="use_new_pwd" value="">
+ </li>
+ <li>
+ <span class="property">
+ <label for="passwordConf">{'Confirm Password'|@translate}</label>
+ </span>
+ <input type="password" name="passwordConf" id="passwordConf" value="">
+ </li>
+{/if}
+ </ul>
+ </fieldset>
+
+ <fieldset>
+ <legend>{'Preferences'|@translate}</legend>
+
+ <ul>
+ <li>
+ <span class="property">
+ <label for="nb_image_line">{'Number of images per row'|@translate}</label>
+ </span>
+ <input type="text" size="3" maxlength="2" name="nb_image_line" id="nb_image_line" value="{$NB_IMAGE_LINE}">
+ </li>
+ <li>
+ <span class="property">
+ <label for="nb_line_page">{'Number of rows per page'|@translate}</label>
+ </span>
+ <input type="text" size="3" maxlength="2" name="nb_line_page" id="nb_line_page" value="{$NB_ROW_PAGE}" >
+ </li>
+ <li>
+ <span class="property">
+ <label for="template">{'Interface theme'|@translate}</label>
+ </span>
+ {html_options id=template name=template options=$template_options selected=$template_selection}
+ </li>
+ <li>
+ <span class="property">
+ <label for="Language">{'Language'|@translate}</label>
+ </span>
+ {html_options id=language name=language options=$language_options selected=$language_selection}
+ </li>
+ <li>
+ <span class="property">
+ <label for="Recent period">{'Recent period'|@translate}</label>
+ </span>
+ <input type="text" size="3" maxlength="2" name="recent_period" id="recent_period" value="{$RECENT_PERIOD}">
+ </li>
+ <li>
+ <span class="property">{'Expand all categories'|@translate}</span>
+ {html_radios name='expand' options=$radio_options selected=$EXPAND}
+ </li>
+ <li>
+ <span class="property">{'Show number of comments'|@translate}</span>
+ {html_radios name='show_nb_comments' options=$radio_options selected=$NB_COMMENTS}
+ </li>
+ <li>
+ <span class="property">{'Show number of hits'|@translate}</span>
+ {html_radios name='show_nb_hits' options=$radio_options selected=$NB_HITS}
+ </li>
+ <li>
+ <span class="property">
+ <label for="Maximum width of the pictures">{'Maximum width of the pictures'|@translate}</label>
+ </span>
+ <input type="text" size="4" maxlength="4" name="maxwidth" id="maxwidth" value="{$MAXWIDTH}">
+ </li>
+ <li>
+ <span class="property">
+ <label for="Maximum height of the pictures">{'Maximum height of the pictures'|@translate}</label>
+ </span>
+ <input type="text" size="4" maxlength="4" name="maxheight" id="maxheight" value="{$MAXHEIGHT}">
+ </li>
+ </ul>
+ </fieldset>
+
+ <p class="bottomButtons">
+ <input class="submit" type="submit" name="validate" value="{'Submit'|@translate}">
+ <input class="submit" type="reset" name="reset" value="{'Reset'|@translate}">
+ </p>
+
+</form>
diff --git a/admin/themes/default/template/rating.tpl b/admin/themes/default/template/rating.tpl
new file mode 100644
index 000000000..d7d3a85c9
--- /dev/null
+++ b/admin/themes/default/template/rating.tpl
@@ -0,0 +1,67 @@
+<h2>{'elements'|@translate} [{$NB_ELEMENTS} {'elements'|@translate}]</h2>
+
+<form action="{$F_ACTION}" method="GET" id="update" class="filter">
+ <fieldset>
+ <legend>{'Filter'|@translate}</legend>
+
+ <label>
+ {'Sort by'|@translate}
+ <select name="order_by">
+ {html_options options=$order_by_options selected=$order_by_options_selected}
+ </select>
+ </label>
+
+ <label>
+ {'Users'|@translate}
+ <select name="users">
+ {html_options options=$user_options selected=$user_options_selected}
+ </select>
+ </label>
+
+ <label>
+ {'Number of items'|@translate}
+ <input type="text" name="display" size="2" value="{$DISPLAY}">
+ </label>
+
+ <label>
+ &nbsp;
+ <input class="submit" type="submit" name="submit_filter" value="{'Submit'|@translate}">
+ </label>
+ <input type="hidden" name="page" value="rating">
+ </fieldset>
+</form>
+
+{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+
+<table width="99%">
+<tr class="throw">
+ <td>{'File'|@translate}</td>
+ <td>{'Number of rates'|@translate}</td>
+ <td>{'Average rate'|@translate}</td>
+ <td>{'Controversy'|@translate}</td>
+ <td>{'Sum of rates'|@translate}</td>
+ <td>{'Rate'|@translate}</td>
+ <td>{'Username'|@translate}</td>
+ <td>{'Rate date'|@translate}</td>
+ <td></td>
+</tr>
+{foreach from=$images item=image name=image}
+<tr valign="top" class="{if $smarty.foreach.image.index is odd}row1{else}row2{/if}">
+ <td rowspan="{$image.NB_RATES_TOTAL+1}"><a href="{$image.U_URL}"><img src="{$image.U_THUMB}" alt="{$image.FILE}" title="{$image.FILE}"></a></td>
+ <td rowspan="{$image.NB_RATES_TOTAL+1}"><strong>{$image.NB_RATES}/{$image.NB_RATES_TOTAL}</strong></td>
+ <td rowspan="{$image.NB_RATES_TOTAL+1}"><strong>{$image.AVG_RATE}</strong></td>
+ <td rowspan="{$image.NB_RATES_TOTAL+1}"><strong>{$image.STD_RATE}</strong></td>
+ <td rowspan="{$image.NB_RATES_TOTAL+1}" style="border-right: 1px solid;" ><strong>{$image.SUM_RATE}</strong></td>
+</tr>
+{foreach from=$image.rates item=rate name=rate}
+<tr class="{if ($smarty.foreach.image.index+$smarty.foreach.rate.index) is odd}row1{else}row2{/if}">
+ <td>{$rate.RATE}</td>
+ <td><b>{$rate.USER}</b></td>
+ <td><span class="date">{$rate.DATE}</span></td>
+ <td><a href="{$rate.U_DELETE}" {$TAG_INPUT_ENABLED}><img src="{$themeconf.admin_icon_dir}/Delete.png" class="button" style="border:none;vertical-align:middle; margin-left:5px;" alt="[{'Delete'|@translate}]"></a></td>
+</tr>
+{/foreach} {*rates*}
+{/foreach} {*images*}
+</table>
+
+{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
diff --git a/admin/themes/default/template/site_manager.tpl b/admin/themes/default/template/site_manager.tpl
new file mode 100644
index 000000000..678f177fb
--- /dev/null
+++ b/admin/themes/default/template/site_manager.tpl
@@ -0,0 +1,73 @@
+<div class="titrePage">
+ <h2>{'Site manager'|@translate}</h2>
+</div>
+
+{if not empty($remote_output)}
+<div class="remoteOutput">
+ <ul>
+ {foreach from=$remote_output item=remote_line}
+ <li class="{$remote_line.CLASS}">{$remote_line.CONTENT}</li>
+ {/foreach}
+ </ul>
+</div>
+{/if}
+
+{if isset($local_listing)}
+{'A local listing.xml file has been found for '|@translate} {$local_listing.URL}
+{if isset($local_listing.CREATE)}
+<form action="{$F_ACTION}" method="post">
+ <p>
+ {'Create this site'|@translate}:
+ <input type="hidden" name="no_check" value="1">
+ <input type="hidden" name="galleries_url" value="{$local_listing.URL}">
+ <input type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+ </p>
+</form>
+{/if}
+{if isset($local_listing.U_SYNCHRONIZE)}
+&nbsp;<a href="{$local_listing.U_SYNCHRONIZE}" title="{'synchronize'|@translate}">{'synchronize'|@translate}</a>
+<br><br>
+{/if}
+{/if}
+
+{if not empty($sites)}
+<table class="table2">
+ <tr class="throw">
+ <td>{'Local'|@translate} / {'Remote'|@translate}</td>
+ <td>{'Actions'|@translate}</td>
+ </tr>
+ {foreach from=$sites item=site name=site}
+ <tr style="text-align:left" class="{if $smarty.foreach.site.index is odd}row1{else}row2{/if}"><td>
+ <a href="{$site.NAME}">{$site.NAME}</a><br>({$site.TYPE}, {$site.CATEGORIES} {'Categories'|@translate}, {$pwg->l10n_dec('%d element','%d elements',$site.IMAGES)})
+ </td><td>
+ [<a href="{$site.U_SYNCHRONIZE}" title="{'synchronize'|@translate}">{'synchronize'|@translate}</a>]
+ {if isset($site.U_DELETE)}
+ [<a href="{$site.U_DELETE}" onclick="return confirm('{'Are you sure?'|@translate|escape:'javascript'}');"
+ title="{'delete'|@translate}" {$TAG_INPUT_ENABLED}>{'delete'|@translate}</a>]
+ {/if}
+ {if isset($site.remote)}
+ <br>
+ [<a href="{$site.remote.U_TEST}" title="{'test'|@translate}" {$TAG_INPUT_ENABLED}>{'test'|@translate}</a>]
+ [<a href="{$site.remote.U_GENERATE}" title="{'generate listing'|@translate}" {$TAG_INPUT_ENABLED}>{'generate listing'|@translate}</a>]
+ [<a href="{$site.remote.U_CLEAN}" title="{'clean'|@translate}" {$TAG_INPUT_ENABLED}>{'clean'|@translate}</a>]
+ {/if}
+ {if not empty($site.plugin_links)}
+ <br>
+ {foreach from=$site.plugin_links item=plugin_link}
+ [<a href="{$plugin_link.U_HREF}" title='{$plugin_link.U_HINT}' {$TAG_INPUT_ENABLED}>{$plugin_link.U_CAPTION}</a>]
+ {/foreach}
+ {/if}
+ </td></tr>
+ {/foreach}
+</table>
+{/if}
+
+<form action="{$F_ACTION}" method="post">
+ <p>
+ <label for="galleries_url" >{'Create a new site : (give its URL to create_listing_file.php)'|@translate}</label>
+ <input type="text" name="galleries_url" id="galleries_url">
+ </p>
+ <p>
+ <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+ </p>
+</form>
diff --git a/admin/themes/default/template/site_update.tpl b/admin/themes/default/template/site_update.tpl
new file mode 100644
index 000000000..90a2562cf
--- /dev/null
+++ b/admin/themes/default/template/site_update.tpl
@@ -0,0 +1,116 @@
+
+{include file='include/resize.inc.tpl'}
+
+<div class="titrePage">
+ <h2>{'Database synchronization with files'|@translate}: <a href="{$SITE_URL}">{$SITE_URL}</a></h2>
+</div>
+
+{if isset($update_result)}
+<h3>{$L_RESULT_UPDATE}</h3>
+<ul>
+ <li class="update_summary_new">{$update_result.NB_NEW_CATEGORIES} {'categories added in the database'|@translate}</li>
+ <li class="update_summary_new">{$update_result.NB_NEW_ELEMENTS} {'elements added in the database'|@translate}</li>
+ <li class="update_summary_del">{$update_result.NB_DEL_CATEGORIES} {'categories deleted in the database'|@translate}</li>
+ <li class="update_summary_del">{$update_result.NB_DEL_ELEMENTS} {'elements deleted in the database'|@translate}</li>
+ <li>{$update_result.NB_UPD_ELEMENTS} {'elements updated in the database'|@translate}</li>
+ <li class="update_summary_err">{$update_result.NB_ERRORS} {'errors during synchronization'|@translate}</li>
+</ul>
+{/if}
+
+{if isset($metadata_result)}
+<h3>{$L_RESULT_METADATA}</h3>
+<ul>
+ <li>{$metadata_result.NB_ELEMENTS_DONE} {'elements informations synchronized with files metadata'|@translate}</li>
+ <li>{$metadata_result.NB_ELEMENTS_CANDIDATES} {'images candidates for metadata synchronization'|@translate}</li>
+ <li>{'Used metadata'|@translate} : {$METADATA_LIST}</li>
+</ul>
+{/if}
+
+
+{if not empty($sync_errors)}
+<h3>{'Error list'|@translate}</h3>
+<div class="errors">
+<ul>
+ {foreach from=$sync_errors item=error}
+ <li>[{$error.ELEMENT}] {$error.LABEL}</li>
+ {/foreach}
+</ul>
+</div>
+<h3>{'Errors caption'|@translate}</h3>
+<ul>
+ {foreach from=$sync_error_captions item=caption}
+ <li><strong>{$caption.TYPE}</strong>: {$caption.LABEL}</li>
+ {/foreach}
+</ul>
+{/if}
+
+{if not empty($sync_infos)}
+<h3>{'Detailed informations'|@translate}</h3>
+<div class="infos">
+<ul>
+ {foreach from=$sync_infos item=info}
+ <li>[{$info.ELEMENT}] {$info.LABEL}</li>
+ {/foreach}
+</ul>
+</div>
+{/if}
+
+{if isset($introduction)}
+<h4>{'Choose an option'|@translate}</h4>
+<form action="" method="post" id="update">
+
+ <fieldset id="syncFiles">
+ <legend>{'synchronize files structure with database'|@translate}</legend>
+ <ul>
+ <li><label><input type="radio" name="sync" value="" {if empty($introduction.sync)}checked="checked"{/if}> {'nothing'|@translate}</label></li>
+ <li><label><input type="radio" name="sync" value="dirs" {if 'dirs'==$introduction.sync}checked="checked"{/if}> {'only directories'|@translate}</label></li>
+
+ <li><label><input type="radio" name="sync" value="files" {if 'files'==$introduction.sync}checked="checked"{/if}> {'directories + files'|@translate}</label>
+ <ul style="padding-left:3em">
+ <li><label><input type="checkbox" name="display_info" value="1" {if $introduction.display_info}checked="checked"{/if}> {'display maximum informations (added categories and elements, deleted categories and elements)'|@translate}</label></li>
+ <li><label><input type="checkbox" name="add_to_caddie" value="1" {if $introduction.add_to_caddie}checked="checked"{/if}> {'add new elements to caddie'|@translate}</label></li>
+ <li><label>{'Minimum privacy level'|@translate} <select name="privacy_level">{html_options options=$introduction.privacy_level_options selected=$introduction.privacy_level_selected}</select></label></li>
+ </ul>
+ </li>
+ </ul>
+ </fieldset>
+
+ <fieldset id="syncMetadata">
+ <legend>{'synchronize files metadata with database elements informations'|@translate}</legend>
+ <label><input type="checkbox" name="sync_meta" {if $introduction.sync_meta}checked="checked"{/if}> {'synchronize metadata'|@translate} ({$METADATA_LIST})</label>
+ <ul style="padding-left:3em">
+ <li>
+ <label><input type="checkbox" name="meta_all" {if $introduction.meta_all}checked="checked"{/if}> {'even already synchronized elements'|@translate}</label>
+ </li>
+ <li>
+ <label><input type="checkbox" name="meta_empty_overrides" {if $introduction.meta_empty_overrides}checked="checked"{/if}> {'overrides existing values with empty ones'|@translate}</label>
+ </li>
+ </ul>
+ </fieldset>
+
+ <fieldset id="syncSimulate">
+ <legend></legend>
+ <ul><li><label><input type="checkbox" name="simulate" value="1" checked="checked" {$TAG_INPUT_ENABLED}> {'only perform a simulation (no change in database will be made)'|@translate}</label></li></ul>
+ </fieldset>
+
+ <fieldset id="catSubset">
+ <legend>{'reduce to single existing categories'|@translate}</legend>
+ <ul>
+ <li>
+ <select class="categoryList" name="cat" size="10">
+ {html_options options=$category_options selected=$category_options_selected}
+ </select>
+ </li>
+
+ <li><label><input type="checkbox" name="subcats-included" value="1" {if $introduction.subcats_included}checked="checked"{/if}> {'Search in subcategories'|@translate}</label></li>
+ </ul>
+ </fieldset>
+
+ <p class="bottomButtons">
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="submit">
+ <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset">
+ </p>
+</form>
+{/if}{*isset $introduction*}
+
+<p><a href="{$U_SITE_MANAGER}">{'Site manager'|@translate}</a></p>
diff --git a/admin/themes/default/template/stats.tpl b/admin/themes/default/template/stats.tpl
new file mode 100644
index 000000000..692a3a6c5
--- /dev/null
+++ b/admin/themes/default/template/stats.tpl
@@ -0,0 +1,25 @@
+
+<div class="titrePage">
+ <h2>{'History'|@translate} {$TABSHEET_TITLE}</h2>
+</div>
+
+<h3>{$L_STAT_TITLE}</h3>
+
+<table class="table2" id="dailyStats">
+ <tr class="throw">
+ <th>{$PERIOD_LABEL}</th>
+ <th>{'Pages seen'|@translate}</th>
+ <th></th>
+ </tr>
+
+{if not empty($statrows)}
+{foreach from=$statrows item=row}
+ <tr>
+ <td style="white-space: nowrap">{$row.VALUE}</td>
+ <td class="number">{$row.PAGES}</td>
+ <td><div class="statBar" style="width:{$row.WIDTH}px"></div></td>
+ </tr>
+{/foreach}
+{/if}
+
+</table>
diff --git a/admin/themes/default/template/tabsheet.tpl b/admin/themes/default/template/tabsheet.tpl
new file mode 100644
index 000000000..00b3f3c54
--- /dev/null
+++ b/admin/themes/default/template/tabsheet.tpl
@@ -0,0 +1,9 @@
+{if isset($tabsheet) and count($tabsheet)}
+<ul class="tabsheet">
+{foreach from=$tabsheet key=name item=sheet}
+ <li class="{if ($name == $tabsheet_selected)}selected_tab{else}normal_tab{/if}">
+ <a href="{$sheet.url}"><span>{$sheet.caption}</span></a>
+ </li>
+{/foreach}
+</ul>
+{/if} \ No newline at end of file
diff --git a/admin/themes/default/template/tags.tpl b/admin/themes/default/template/tags.tpl
new file mode 100644
index 000000000..3db8417a6
--- /dev/null
+++ b/admin/themes/default/template/tags.tpl
@@ -0,0 +1,53 @@
+<div class="titrePage">
+ <h2>{'Manage tags'|@translate}</h2>
+</div>
+
+<form action="{$F_ACTION}" method="post">
+
+ {if isset($EDIT_TAGS_LIST)}
+ <fieldset>
+ <legend>{'Edit tags'|@translate}</legend>
+ <input type="hidden" name="edit_list" value="{$EDIT_TAGS_LIST}">
+ <table class="table2">
+ <tr class="throw">
+ <th>{'Current name'|@translate}</th>
+ <th>{'New name'|@translate}</th>
+ </tr>
+ {foreach from=$tags item=tag}
+ <tr>
+ <td>{$tag.NAME}</td>
+ <td><input type="text" name="tag_name-{$tag.ID}" value="{$tag.NAME}"></td>
+ </tr>
+ {/foreach}
+ </table>
+
+ <p>
+ <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}">
+ </p>
+ </fieldset>
+ {/if}
+
+ <fieldset>
+ <legend>{'Add a tag'|@translate}</legend>
+
+ <label>
+ {'New tag'|@translate}
+ <input type="text" name="add_tag">
+ </label>
+
+ <p><input class="submit" type="submit" name="add" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}></p>
+ </fieldset>
+
+ <fieldset>
+ <legend>{'Tag selection'|@translate}</legend>
+
+ {$TAG_SELECTION}
+
+ <p>
+ <input class="submit" type="submit" name="edit" value="{'Edit selected tags'|@translate}">
+ <input class="submit" type="submit" name="delete" value="{'Delete selected tags'|@translate}" onclick="return confirm('{'Are you sure?'|@translate}');" {$TAG_INPUT_ENABLED}>
+ </p>
+ </fieldset>
+
+</form>
diff --git a/admin/themes/default/template/thumbnail.tpl b/admin/themes/default/template/thumbnail.tpl
new file mode 100644
index 000000000..653f07cc3
--- /dev/null
+++ b/admin/themes/default/template/thumbnail.tpl
@@ -0,0 +1,119 @@
+<div class="titrePage">
+ <h2>{'Thumbnail creation'|@translate}</h2>
+</div>
+
+{if isset($results) }
+<div class="admin">{'Results of miniaturization'|@translate}</div>
+<table style="width:100%;">
+ <tr class="throw">
+ <td>{'Path'|@translate}</td>
+ <td>{'Thumbnail'|@translate}</td>
+ <td>{'generated in'|@translate}</td>
+ <td>{'Filesize'|@translate}</td>
+ <td>{'Dimensions'|@translate}</td>
+ </tr>
+ {foreach from=$results.elements item=elt}
+ <tr>
+ <td>{$elt.PATH}</td>
+ <td><img src="{$elt.TN_FILE_IMG}"></td>
+ <td style="text-align:right;">{$elt.GEN_TIME}</td>
+ <td style="text-align:right;">{$elt.TN_FILESIZE_IMG}</td>
+ <td style="text-align:right;">{$elt.TN_WIDTH_IMG} x {$elt.TN_HEIGHT_IMG}</td>
+ </tr>
+ {/foreach}
+</table>
+
+<table class="table2">
+ <tr class="throw">
+ <td colspan="2">{'General statistics'|@translate}</td>
+ </tr>
+ <tr>
+ <td>{'number of miniaturized pictures'|@translate}</td>
+ <td style="text-align:center;">{$results.TN_NB}</td>
+ </tr>
+ <tr>
+ <td>{'total time'|@translate}</td>
+ <td style="text-align:right;">{$results.TN_TOTAL}</td>
+ </tr>
+ <tr>
+ <td>{'max time'|@translate}</td>
+ <td style="text-align:right;">{$results.TN_MAX}</td>
+ </tr>
+ <tr>
+ <td>{'min time'|@translate}</td>
+ <td style="text-align:right;">{$results.TN_MIN}</td>
+ </tr>
+ <tr>
+ <td>{'average time'|@translate}</td>
+ <td style="text-align:right;">{$results.TN_AVERAGE}</td>
+ </tr>
+</table>
+<br>
+{/if}
+
+{if isset($params) }
+<form method="post" action="{$params.F_ACTION}" class="properties">
+
+ <fieldset>
+ <legend>{'Miniaturization parameters'|@translate}</legend>
+
+ <ul>
+ <li>
+ <span class="property">{'GD version'|@translate}</span>
+ <label>
+ <input type="radio" name="gd" value="2" {if $params.GD_SELECTED==2}checked="checked"{/if}>2.x
+ </label>
+ <label>
+ <input type="radio" name="gd" value="1" {if $params.GD_SELECTED==1}checked="checked"{/if}>1.x
+ </label>
+ </li>
+
+ <li>
+ <span class="property">
+ <label for="width">{'maximum width'|@translate}</label>
+ </span>
+ <input type="text" id="width" name="width" value="{$params.WIDTH_TN}">
+ </li>
+
+ <li>
+ <span class="property">
+ <label for="height">{'maximum height'|@translate}</label>
+ </span>
+ <input type="text" id="height" name="height" value="{$params.HEIGHT_TN}">
+ </li>
+
+ <li>
+ <span class="property">{'Number of thumbnails to create'|@translate}</span>
+ <label><input type="radio" name="n" value="5" {if $params.N_SELECTED==5}checked="checked"{/if}> 5</label>
+ <label><input type="radio" name="n" value="10" {if $params.N_SELECTED==10}checked="checked"{/if}> 10</label>
+ <label><input type="radio" name="n" value="20" {if $params.N_SELECTED==20}checked="checked"{/if}> 20</label>
+ <label><input type="radio" name="n" value="all" {if $params.N_SELECTED=='all'}checked="checked"{/if}> {'all'|@translate}</label>
+ </li>
+ </ul>
+ </fieldset>
+
+ <p><input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}></p>
+</form>
+{/if} {*isset params*}
+
+{if !empty($remainings) }
+<div class="admin">{$TOTAL_NB_REMAINING} {'pictures without thumbnail (jpeg and png only)'|@translate}</div>
+<table style="width:100%;">
+ <tr class="throw">
+ <td>&nbsp;</td>
+ <td style="width:60%;">{'Path'|@translate}</td>
+ <td>{'Filesize'|@translate}</td>
+ <td>{'Dimensions'|@translate}</td>
+ </tr>
+ {foreach from=$remainings item=elt name=remain_loop}
+ <tr class="{if $smarty.foreach.remain_loop.index is odd}row1{else}row2{/if}">
+ <td>{$smarty.foreach.remain_loop.iteration}</td>
+ <td><div style="margin-left:10px;">{$elt.PATH}</div></td>
+ <td><div style="margin-left:10px;">{$elt.FILESIZE_IMG}</div></td>
+ <td><div style="margin-left:10px;">{$elt.WIDTH_IMG} x {$elt.HEIGHT_IMG}</div></td>
+ </tr>
+ {/foreach}
+</table>
+{else}
+<div style="text-align:center;font-weight:bold;margin:10px;"> [ {'No missing thumbnail'|@translate} ]</div>
+{/if}
diff --git a/admin/themes/default/template/upgrade.tpl b/admin/themes/default/template/upgrade.tpl
new file mode 100644
index 000000000..29b723ef1
--- /dev/null
+++ b/admin/themes/default/template/upgrade.tpl
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
+<html lang="{$lang_info.code}" dir="{$lang_info.direction}">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-script-type" content="text/javascript">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="shortcut icon" type="image/x-icon" href="{$ROOT_URL}{$themeconf.icon_dir}/favicon.ico">
+
+{foreach from=$themes item=theme}
+{if isset($theme.local_head)}{include file=$theme.local_head}{/if}
+<link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/{$theme.name}/theme.css">
+{/foreach}
+
+{literal}
+<style type="text/css">
+.content {
+ width: 800px;
+ min-height: 0px !important;
+ margin: auto;
+ padding: 25px;
+ text-align: left;
+}
+
+table { margin: 0px; }
+td { padding: 3px 10px; }
+textarea { margin-left: 20px; }
+</style>
+{/literal}
+<title>Piwigo {$RELEASE} - {'Upgrade'|@translate}</title>
+</head>
+
+<body>
+<div id="headbranch"></div> {* Dummy block for double background management *}
+<div id="the_page">
+<div id="theHeader"></div>
+<div id="content" class="content">
+
+{if isset($introduction)}
+<h2>Piwigo {$RELEASE} - {'Upgrade'|@translate}</h2>
+
+{if isset($errors)}
+<div class="errors">
+ <ul>
+ {foreach from=$errors item=error}
+ <li>{$error}</li>
+ {/foreach}
+ </ul>
+</div>
+{/if}
+
+<table>
+ <tr>
+ <td>{'Language'|@translate}</td>
+ <td>
+ <select name="language" onchange="document.location = 'upgrade.php?language='+this.options[this.selectedIndex].value;">
+ {html_options options=$language_options selected=$language_selection}
+ </select>
+ </td>
+ </tr>
+</table>
+
+<p>{'introduction message'|@translate|@sprintf:$introduction.CURRENT_RELEASE}</p>
+{if isset($login)}
+<p>{'Only administrator can run upgrade: please sign in below.'|@translate}</p>
+{/if}
+
+<form method="POST" action="{$introduction.F_ACTION}" name="upgrade_form">
+{if isset($login)}
+<table>
+ <tr>
+ <td>{'Username'|@translate}</td>
+ <td><input type="text" name="username" id="username" size="25" maxlength="40" style="width: 150px;"></td>
+ </tr>
+ <tr>
+ <td>{'Password'|@translate}</td>
+ <td><input type="password" name="password" id="password" size="25" maxlength="25" style="width: 150px;"></td>
+ </tr>
+</table>
+{/if}
+
+<p style="text-align: center;">
+<input class="submit" type="submit" name="submit" value="{'Upgrade from %s to %s'|@translate|@sprintf:$introduction.CURRENT_RELEASE:$RELEASE}">
+</p>
+</form>
+<!--
+<p style="text-align: center;">
+<a href="{$introduction.RUN_UPGRADE_URL}">{'Upgrade from %s to %s'|@translate|@sprintf:$introduction.CURRENT_RELEASE:$RELEASE}</a>
+</p>
+-->
+
+{/if}
+
+{if isset($upgrade)}
+<h2>{'Upgrade from %s to %s'|@translate|@sprintf:$upgrade.VERSION:$RELEASE}</h2>
+
+<p><b>{'Statistics'|@translate}</b></p>
+<ul>
+ <li>{'total upgrade time'|@translate} : {$upgrade.TOTAL_TIME}</li>
+ <li>{'total SQL time'|@translate} : {$upgrade.SQL_TIME}</li>
+ <li>{'SQL queries'|@translate} : {$upgrade.NB_QUERIES}</li>
+</ul>
+
+<p><b>{'Upgrade informations'|@translate}</b></p>
+<ul>
+ {foreach from=$infos item=info}
+ <li>{$info}</li>
+ {/foreach}
+</ul>
+
+<form action="index.php" method="post">
+<p><input type="submit" name="submit" value="{'Home'|@translate}"></p>
+</form>
+{/if}
+
+</div> {* content *}
+<div>{$L_UPGRADE_HELP}</div>
+</div> {* the_page *}
+</body>
+</html>
diff --git a/admin/themes/default/template/upload.tpl b/admin/themes/default/template/upload.tpl
new file mode 100644
index 000000000..cc56d9a02
--- /dev/null
+++ b/admin/themes/default/template/upload.tpl
@@ -0,0 +1,51 @@
+<div class="titrePage">
+ <h2>{'Waiting'|@translate} {$TABSHEET_TITLE}</h2>
+</div>
+
+<h3>{'Pictures waiting for validation'|@translate}</h3>
+
+<form action="{$F_ACTION}" method="post" id="waiting">
+ <table style="width:99%;" >
+ <tr class="throw">
+ <td style="width:20%;">{'Category'|@translate}</td>
+ <td style="width:20%;">{'Date'|@translate}</td>
+ <td style="width:20%;">{'File'|@translate}</td>
+ <td style="width:20%;">{'Thumbnail'|@translate}</td>
+ <td style="width:20%;">{'Author'|@translate}</td>
+ <td style="width:1px;">&nbsp;</td>
+ </tr>
+
+ {if not empty($pictures) }
+ {foreach from=$pictures item=picture name=picture_loop}
+ <tr class="{if $smarty.foreach.picture_loop.index is odd}row1{else}row2{/if}">
+ <td style="white-space:nowrap;">{$picture.CATEGORY_IMG}</td>
+ <td style="white-space:nowrap;">{$picture.DATE_IMG}</td>
+ <td style="white-space:nowrap;">
+ <a href="{$picture.PREVIEW_URL_IMG}" title="{$picture.FILE_TITLE}">{$picture.FILE_IMG}</a>
+ </td>
+ <td style="white-space:nowrap;">
+ {if not empty($picture.thumbnail) }
+ <a href="{$picture.thumbnail.PREVIEW_URL_TN_IMG}" title="{$picture.thumbnail.FILE_TN_TITLE}">{$picture.thumbnail.FILE_TN_IMG}</a>
+ {/if}
+ </td>
+ <td style="white-space:nowrap;">
+ <a href="mailto:{$picture.UPLOAD_EMAIL}">{$picture.UPLOAD_USERNAME}</a>
+ </td>
+ <td style="white-space:nowrap;">
+ <label><input type="radio" name="action-{$picture.ID_IMG}" value="validate"> {'Validate'|@translate}</label>
+ <label><input type="radio" name="action-{$picture.ID_IMG}" value="reject"> {'Reject'|@translate}</label>
+ </td>
+ </tr>
+ {/foreach}
+ {/if}
+ </table>
+
+ <p class="bottomButtons">
+ <input type="hidden" name="list" value="{$LIST}">
+ <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="submit" name="validate-all" value="{'Validate All'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="submit" name="reject-all" value="{'Reject All'|@translate}" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}">
+ </p>
+
+</form>
diff --git a/admin/themes/default/template/user_list.tpl b/admin/themes/default/template/user_list.tpl
new file mode 100644
index 000000000..9eb14fa84
--- /dev/null
+++ b/admin/themes/default/template/user_list.tpl
@@ -0,0 +1,334 @@
+<div class="titrePage">
+ <h2>{'User list'|@translate}</h2>
+</div>
+
+<form class="filter" method="post" name="add_user" action="{$F_ADD_ACTION}">
+ <fieldset>
+ <legend>{'Add a user'|@translate}</legend>
+ <label>{'Username'|@translate} <input type="text" name="login" maxlength="50" size="20"></label>
+ {if $Double_Password}
+ <label>{'Password'|@translate} <input type="password" name="password"></label>
+ <label>{'Confirm Password'|@translate} <input type="password" name="password_conf" id="password_conf"></label>
+ {else}
+ <label>{'Password'|@translate} <input type="text" name="password"></label>
+ {/if}
+ <label>{'Email address'|@translate} <input type="text" name="email"></label>
+ <label>&nbsp; <input class="submit" type="submit" name="submit_add" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}></label>
+ </fieldset>
+</form>
+
+<form class="filter" method="get" name="filter" action="{$F_FILTER_ACTION}">
+<fieldset>
+ <legend>{'Filter'|@translate}</legend>
+ <input type="hidden" name="page" value="user_list">
+
+ <label>{'Username'|@translate} <input type="text" name="username" value="{$F_USERNAME}"></label>
+
+ <label>
+ {'status'|@translate}
+ {html_options name=status options=$status_options selected=$status_selected}
+ </label>
+
+ <label>
+ {'group'|@translate}
+ {html_options name=group options=$group_options selected=$group_selected}
+ </label>
+
+ <label>
+ {'Sort by'|@translate}
+ {html_options name=order_by options=$order_options selected=$order_selected}
+ </label>
+
+ <label>
+ {'Sort order'|@translate}
+ {html_options name=direction options=$direction_options selected=$direction_selected}
+ </label>
+
+ <label>
+ &nbsp;
+ <input class="submit" type="submit" value="{'Submit'|@translate}">
+ </label>
+
+</fieldset>
+
+</form>
+
+<form method="post" name="preferences" action="">
+
+{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+
+<table class="table2" width="97%">
+ <thead>
+ <tr class="throw">
+ <td>&nbsp;</td>
+ <td>{'Username'|@translate}</td>
+ <td>{'User status'|@translate}</td>
+ <td>{'Email address'|@translate}</td>
+ <td>{'Groups'|@translate}</td>
+ <td>{'Properties'|@translate}</td>
+ {if not empty($plugin_user_list_column_titles)}
+ {foreach from=$plugin_user_list_column_titles item=title}
+ <td>{$title}</td>
+ {/foreach}
+ {/if}
+ <td>{'Actions'|@translate}</td>
+ </tr>
+ </thead>
+
+ {foreach from=$users item=user name=users_loop}
+ <tr class="{if $smarty.foreach.users_loop.index is odd}row1{else}row2{/if}">
+ <td><input type="checkbox" name="selection[]" value="{$user.ID}" {$user.CHECKED} id="selection-{$user.ID}"></td>
+ <td><label for="selection-{$user.ID}">{$user.USERNAME}</label></td>
+ <td>{$user.STATUS}</td>
+ <td>{$user.EMAIL}</td>
+ <td>{$user.GROUPS}</td>
+ <td>{$user.PROPERTIES}</td>
+ {foreach from=$user.plugin_columns item=data}
+ <td>{$data}</td>
+ {/foreach}
+ <td style="text-align:center;">
+ <a href="{$user.U_PERM}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/permissions.png" class="button" style="border:none" alt="{'Permissions'|@translate}" title="{'Permissions'|@translate}"></a>
+ <a href="{$user.U_PROFILE}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/edit_s.png" class="button" style="border:none" alt="{'Profile'|@translate}" title="{'Profile'|@translate}"></a>
+ {foreach from=$user.plugin_actions item=data}
+ {$data}
+ {/foreach}
+ </td>
+ </tr>
+ {/foreach}
+</table>
+
+{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+
+{* delete the selected users ? *}
+<fieldset>
+ <legend>{'Deletions'|@translate}</legend>
+ <label><input type="checkbox" name="confirm_deletion" value="1"> {'confirm'|@translate}</label>
+ <input class="submit" type="submit" value="{'Delete selected users'|@translate}" name="delete" {$TAG_INPUT_ENABLED}>
+</fieldset>
+
+<fieldset>
+ <legend>{'Status'|@translate}</legend>
+
+ <table>
+ <tr>
+ <td>{'Status'|@translate}</td>
+ <td>
+ <label><input type="radio" name="status_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="status_action" value="set" id="status_action_set"> {'set to'|@translate}</label>
+ <select onchange="document.getElementById('status_action_set').checked = true;" name="status" size="1">
+ {html_options options=$pref_status_options selected=$pref_status_selected}
+ </select>
+ </td>
+ </tr>
+
+ {if isset($adviser)}
+ <tr>
+ <td>{'Adviser'|@translate}</td>
+ <td>
+ <label><input type="radio" name="adviser" value="leave" checked="checked"> {'leave'|@translate}</label>
+ / {'set to'|@translate}
+ <label><input type="radio" name="adviser" value="true">{'Yes'|@translate}</label>
+ <label><input type="radio" name="adviser" value="false">{'No'|@translate}</label>
+ </td>
+ </tr>
+ {/if}
+
+ </table>
+</fieldset>
+
+{* form to set properties for many users at once *}
+<fieldset>
+ <legend>{'Groups'|@translate}</legend>
+
+<table>
+
+ <tr>
+ <td>{'associate to group'|@translate}</td>
+ <td>
+ {html_options name=associate options=$association_options selected=$associate_selected}
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'dissociate from group'|@translate}</td>
+ <td>
+ {html_options name=dissociate options=$association_options selected=$dissociate_selected}
+ </td>
+ </tr>
+
+</table>
+
+</fieldset>
+
+{* Properties *}
+<fieldset>
+ <legend>{'Properties'|@translate}</legend>
+
+ <table>
+
+ <tr>
+ <td>{'High definition enabled'|@translate}</td>
+ <td>
+ <label><input type="radio" name="enabled_high" value="leave" checked="checked"> {'leave'|@translate}</label>
+ / {'set to'|@translate}
+ <label><input type="radio" name="enabled_high" value="true">{'Yes'|@translate}</label>
+ <label><input type="radio" name="enabled_high" value="false">{'No'|@translate}</label>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'Privacy level'|@translate}</td>
+ <td>
+ <label><input type="radio" name="level_action" value="leave" checked="checked">{'leave'|@translate}</label>
+ <label><input type="radio" name="level_action" value="set" id="level_action_set">{'set to'|@translate}</label>
+ <select onchange="document.getElementById('level_action_set').checked = true;" name="level" size="1">
+ {html_options options=$level_options selected=$level_selected}
+ </select>
+ </td>
+ </tr>
+ </table>
+
+</fieldset>
+
+{* preference *}
+<fieldset>
+ <legend>{'Preferences'|@translate}</legend>
+
+<table>
+ <tr>
+ <td>{'Number of images per row'|@translate}</td>
+ <td>
+ <label><input type="radio" name="nb_image_line_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="nb_image_line_action" value="set" id="nb_image_line_action_set"> {'set to'|@translate}</label>
+ <input onmousedown="document.getElementById('nb_image_line_action_set').checked = true;"
+ size="3" maxlength="2" type="text" name="nb_image_line" value="{$NB_IMAGE_LINE}">
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'Number of rows per page'|@translate}</td>
+ <td>
+ <label><input type="radio" name="nb_line_page_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="nb_line_page_action" value="set" id="nb_line_page_action_set"> {'set to'|@translate}</label>
+ <input onmousedown="document.getElementById('nb_line_page_action_set').checked = true;"
+ size="3" maxlength="2" type="text" name="nb_line_page" value="{$NB_LINE_PAGE}">
+ <td>
+ </tr>
+
+ <tr>
+ <td>{'Interface theme'|@translate}</td>
+ <td>
+ <label><input type="radio" name="theme_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="theme_action" value="set" id="theme_action_set"> {'set to'|@translate}</label>
+ <select onchange="document.getElementById('theme_action_set').checked = true;" name="theme" size="1">
+ {html_options values=$theme_options output=$theme_options selected=$theme_selected}
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'Language'|@translate}</td>
+ <td>
+ <label><input type="radio" name="language_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="language_action" value="set" id="language_action_set"> {'set to'|@translate}</label>
+ <select onchange="document.getElementById('language_action_set').checked = true;" name="language" size="1">
+ {html_options options=$language_options selected=$language_selected}
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'Recent period'|@translate}</td>
+ <td>
+ <label><input type="radio" name="recent_period_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="recent_period_action" value="set" id="recent_period_action_set"> {'set to'|@translate}</label>
+ <input onmousedown="document.getElementById('recent_period_action_set').checked = true;"
+ type="text" size="3" maxlength="2" name="recent_period" value="{$RECENT_PERIOD}">
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'Expand all categories'|@translate}</td>
+ <td>
+ <label><input type="radio" name="expand" value="leave" checked="checked"> {'leave'|@translate}</label>
+ / {'set to'|@translate}
+ <label><input type="radio" name="expand" value="true">{'Yes'|@translate}</label>
+ <label><input type="radio" name="expand" value="false">{'No'|@translate}</label>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'Show number of comments'|@translate}</td>
+ <td>
+ <label><input type="radio" name="show_nb_comments" value="leave" checked="checked"> {'leave'|@translate}</label>
+ / {'set to'|@translate}
+ <label><input type="radio" name="show_nb_comments" value="true">{'Yes'|@translate}</label>
+ <label><input type="radio" name="show_nb_comments" value="false">{'No'|@translate}</label>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'Show number of hits'|@translate}</td>
+ <td>
+ <label><input type="radio" name="show_nb_hits" value="leave" checked="checked"> {'leave'|@translate}</label>
+ / {'set to'|@translate}
+ <label><input type="radio" name="show_nb_hits" value="true">{'Yes'|@translate}</label>
+ <label><input type="radio" name="show_nb_hits" value="false">{'No'|@translate}</label>
+ </td>
+ </tr>
+
+ <tr>
+ <td>{'Maximum width of the pictures'|@translate}</td>
+ <td>
+ <label><input type="radio" name="maxwidth_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="maxwidth_action" value="unset"> {'unset'|@translate}</label>
+ <label><input type="radio" name="maxwidth_action" value="set" id="maxwidth_action_set"> {'set to'|@translate}</label>
+ <input onmousedown="document.getElementById('maxwidth_action_set').checked = true;"
+ type="text" size="4" maxlength="4" name="maxwidth" value="{$MAXWIDTH}">
+ </td>
+ </tr>
+
+
+ <tr>
+ <td>{'Maximum height of the pictures'|@translate}</td>
+ <td>
+ <label><input type="radio" name="maxheight_action" value="leave" checked="checked"> {'leave'|@translate}</label>
+ <label><input type="radio" name="maxheight_action" value="unset"> {'unset'|@translate}</label>
+ <label><input type="radio" name="maxheight_action" value="set" id="maxheight_action_set"> {'set to'|@translate}</label>
+ <input onmousedown="document.getElementById('maxheight_action_set').checked = true;"
+ type="text" size="4" maxlength="4" name="maxheight" value="{$MAXHEIGHT}">
+ </td>
+ </tr>
+
+
+</table>
+
+</fieldset>
+
+<p>
+ {'target'|@translate}
+ <label><input type="radio" name="target" value="all"> {'all'|@translate}</label>
+ <label><input type="radio" name="target" value="selection" checked="checked"> {'selection'|@translate}</label>
+</p>
+
+<p>
+ <input class="submit" type="submit" value="{'Submit'|@translate}" name="pref_submit" {$TAG_INPUT_ENABLED}>
+ <input class="submit" type="reset" value="{'Reset'|@translate}" name="pref_reset">
+</p>
+
+</form>
+
+<script type="text/javascript">// <![CDATA[{literal}
+jQuery("form:last").submit( function() {
+ if ( jQuery("input[name=target][value=selection]:checked", this).length > 0 )
+ if ( jQuery("input[name='selection[]']:checked", this).length == 0)
+ {
+ alert( {/literal}"{'Select at least one user'|@translate|escape:javascript}"{literal} );
+ return false;
+ }
+ return true;
+}
+);{/literal}
+// ]]>
+</script>
+
diff --git a/admin/themes/default/template/user_perm.tpl b/admin/themes/default/template/user_perm.tpl
new file mode 100644
index 000000000..d1ecdca9a
--- /dev/null
+++ b/admin/themes/default/template/user_perm.tpl
@@ -0,0 +1,22 @@
+<h2>{$TITLE}</h2>
+
+{if isset($categories_because_of_groups) }
+<fieldset>
+ <legend>{'Categories authorized thanks to group associations'|@translate}</legend>
+
+ <ul>
+ {foreach from=$categories_because_of_groups item=cat }
+ <li>{$cat}</li>
+ {/foreach}
+ </ul>
+</fieldset>
+{/if}
+
+
+<fieldset>
+ <legend>{'Other private categories'|@translate}</legend>
+
+ <form method="post" action="{$F_ACTION}">
+ {$DOUBLE_SELECT}
+ </form>
+</fieldset>
diff --git a/admin/themes/default/theme.css b/admin/themes/default/theme.css
new file mode 100644
index 000000000..3283e29a5
--- /dev/null
+++ b/admin/themes/default/theme.css
@@ -0,0 +1,10 @@
+
+/* template css */
+/*@import "menubar.css";*/
+@import "content.css";
+@import "thumbnails.css";
+@import "default-layout.css";
+/* Override properties with import local file */
+@import "local-layout.css";
+
+@import "default-colors.css";
diff --git a/admin/themes/default/themeconf.inc.php b/admin/themes/default/themeconf.inc.php
new file mode 100644
index 000000000..36352b2b2
--- /dev/null
+++ b/admin/themes/default/themeconf.inc.php
@@ -0,0 +1,8 @@
+<?php
+$themeconf = array(
+ 'theme' => 'default',
+ 'icon_dir' => 'themes/default/icon',
+ 'admin_icon_dir' => 'admin/themes/default/icon',
+ 'mime_icon_dir' => 'themes/default/icon/mimetypes/',
+);
+?>
diff --git a/admin/themes/default/thumbnails.css b/admin/themes/default/thumbnails.css
new file mode 100644
index 000000000..432854e4b
--- /dev/null
+++ b/admin/themes/default/thumbnails.css
@@ -0,0 +1,61 @@
+.content UL.thumbnails {
+ margin: 0; padding: 0; list-style: none;
+ text-align: center; /* to center the whole collection in .content */
+ float: left;
+}
+.content UL.thumbnails LI { display: inline }
+.content ul.thumbnails li.rank-of-image {
+ float: left;
+ background-color: #111;
+ border: 1px solid #666;
+ color: #666;
+ -moz-border-radius: 4px;
+ display: block;
+ width: 104px;
+ height: 128px;
+ cursor: move;
+ margin: 10px;
+}
+.content ul.thumbnails li.rank-of-image img {
+ width: 96px;
+ height: 96px;
+ margin: 4px;
+ float: left;
+}
+.content ul.thumbnails li.rank-of-image input {
+ height: 12px;
+ width: 50px;
+ position: relative;
+ top: 0;
+}
+.content UL.thumbnails SPAN.wrap1 {
+ margin: 0 5px 5px 5px;
+ display: table-cell; display: inline-table;
+ display: inline-block; /* Why 3 display option ??? */
+ vertical-align: top; /* OK with Opera and IE6 not Geko */
+ text-align: center; /* to center the thumbnail and legend in Geko/Opera */
+}
+.content UL.thumbnails SPAN.wrap2 {
+ margin: 0; /* important reset the margins */
+ display: table-cell; /* block prevents vertical-align here */
+ vertical-align: middle; /* Ok with Opera and Geko not IE6 */
+}
+.content UL.thumbnails LABEL { display: block; border-bottom: none; }
+.content UL.thumbnails IMG {
+ margin-bottom: -4px; /* why ??? something wrong with Geko and Opera ignored by IE6*/
+}
+.content UL.thumbnails LABEL { position: relative; }
+.content UL.thumbnails INPUT {
+ position: relative; /* <= Opera can handle relative here */
+ top: -20px;
+}
+:root .content UL.thumbnails INPUT { /* hide from Opera */
+ position: absolute; /* <= Opera hide 1 checkbox over 2 !!! */
+ left: 2px; top: 2px;
+}
+UL.thumbnails .levelIndicatorB {
+display:block; position:absolute; z-index:100;padding:0px 0 0 14px; color:black; font-weight:bold; font-size:120%;
+}
+UL.thumbnails .levelIndicatorF {
+display:block; position:absolute; z-index:101;padding:1px 0 0 15px; color:white; font-weight:bold; font-size:120%;
+}
diff --git a/admin/themes/roma/images/active_tab.png b/admin/themes/roma/images/active_tab.png
new file mode 100644
index 000000000..f0fbcfae3
--- /dev/null
+++ b/admin/themes/roma/images/active_tab.png
Binary files differ
diff --git a/admin/themes/roma/images/active_tab2.png b/admin/themes/roma/images/active_tab2.png
new file mode 100644
index 000000000..29ffdeedc
--- /dev/null
+++ b/admin/themes/roma/images/active_tab2.png
Binary files differ
diff --git a/admin/themes/roma/images/active_tab3.png b/admin/themes/roma/images/active_tab3.png
new file mode 100644
index 000000000..b84c40c11
--- /dev/null
+++ b/admin/themes/roma/images/active_tab3.png
Binary files differ
diff --git a/admin/themes/roma/images/bottom-left-bg.jpg b/admin/themes/roma/images/bottom-left-bg.jpg
new file mode 100644
index 000000000..3d8a5eed2
--- /dev/null
+++ b/admin/themes/roma/images/bottom-left-bg.jpg
Binary files differ
diff --git a/admin/themes/roma/images/external_active.png b/admin/themes/roma/images/external_active.png
new file mode 100644
index 000000000..03c50fbf5
--- /dev/null
+++ b/admin/themes/roma/images/external_active.png
Binary files differ
diff --git a/admin/themes/roma/images/external_inactive.png b/admin/themes/roma/images/external_inactive.png
new file mode 100644
index 000000000..918640316
--- /dev/null
+++ b/admin/themes/roma/images/external_inactive.png
Binary files differ
diff --git a/admin/themes/roma/images/fillet.png b/admin/themes/roma/images/fillet.png
new file mode 100644
index 000000000..c56a51aeb
--- /dev/null
+++ b/admin/themes/roma/images/fillet.png
Binary files differ
diff --git a/admin/themes/roma/images/header_msgs-bg.gif b/admin/themes/roma/images/header_msgs-bg.gif
new file mode 100644
index 000000000..0879e1b79
--- /dev/null
+++ b/admin/themes/roma/images/header_msgs-bg.gif
Binary files differ
diff --git a/admin/themes/roma/images/inactive_tab.png b/admin/themes/roma/images/inactive_tab.png
new file mode 100644
index 000000000..8834859ab
--- /dev/null
+++ b/admin/themes/roma/images/inactive_tab.png
Binary files differ
diff --git a/admin/themes/roma/images/inactive_tab2.png b/admin/themes/roma/images/inactive_tab2.png
new file mode 100644
index 000000000..8d4183b94
--- /dev/null
+++ b/admin/themes/roma/images/inactive_tab2.png
Binary files differ
diff --git a/admin/themes/roma/images/inactive_tab3.png b/admin/themes/roma/images/inactive_tab3.png
new file mode 100644
index 000000000..2b22c8eb1
--- /dev/null
+++ b/admin/themes/roma/images/inactive_tab3.png
Binary files differ
diff --git a/admin/themes/roma/images/menuBoxBottom_new.png b/admin/themes/roma/images/menuBoxBottom_new.png
new file mode 100644
index 000000000..4df220e7c
--- /dev/null
+++ b/admin/themes/roma/images/menuBoxBottom_new.png
Binary files differ
diff --git a/admin/themes/roma/images/menuBoxTop_new.png b/admin/themes/roma/images/menuBoxTop_new.png
new file mode 100644
index 000000000..c8cecd2b1
--- /dev/null
+++ b/admin/themes/roma/images/menuBoxTop_new.png
Binary files differ
diff --git a/admin/themes/roma/images/menubar-detail.png b/admin/themes/roma/images/menubar-detail.png
new file mode 100644
index 000000000..d7f4f2480
--- /dev/null
+++ b/admin/themes/roma/images/menubar-detail.png
Binary files differ
diff --git a/admin/themes/roma/images/menubar-top.png b/admin/themes/roma/images/menubar-top.png
new file mode 100644
index 000000000..3da3bcad3
--- /dev/null
+++ b/admin/themes/roma/images/menubar-top.png
Binary files differ
diff --git a/admin/themes/roma/images/piwigo_logo_sombre_214x100.png b/admin/themes/roma/images/piwigo_logo_sombre_214x100.png
new file mode 100644
index 000000000..106f20add
--- /dev/null
+++ b/admin/themes/roma/images/piwigo_logo_sombre_214x100.png
Binary files differ
diff --git a/admin/themes/roma/images/quickLocalSync_hover.png b/admin/themes/roma/images/quickLocalSync_hover.png
new file mode 100644
index 000000000..a8b9ed98b
--- /dev/null
+++ b/admin/themes/roma/images/quickLocalSync_hover.png
Binary files differ
diff --git a/admin/themes/roma/images/quickLocalSync_inactiv.png b/admin/themes/roma/images/quickLocalSync_inactiv.png
new file mode 100644
index 000000000..b26b23027
--- /dev/null
+++ b/admin/themes/roma/images/quickLocalSync_inactiv.png
Binary files differ
diff --git a/admin/themes/roma/images/resizable-e.gif b/admin/themes/roma/images/resizable-e.gif
new file mode 100644
index 000000000..36451a670
--- /dev/null
+++ b/admin/themes/roma/images/resizable-e.gif
Binary files differ
diff --git a/admin/themes/roma/images/resizable-n.gif b/admin/themes/roma/images/resizable-n.gif
new file mode 100644
index 000000000..fe11bf420
--- /dev/null
+++ b/admin/themes/roma/images/resizable-n.gif
Binary files differ
diff --git a/admin/themes/roma/images/resizable-ne.gif b/admin/themes/roma/images/resizable-ne.gif
new file mode 100644
index 000000000..4819fdf1c
--- /dev/null
+++ b/admin/themes/roma/images/resizable-ne.gif
Binary files differ
diff --git a/admin/themes/roma/images/resizable-nw.gif b/admin/themes/roma/images/resizable-nw.gif
new file mode 100644
index 000000000..7f128dac2
--- /dev/null
+++ b/admin/themes/roma/images/resizable-nw.gif
Binary files differ
diff --git a/admin/themes/roma/images/resizable-s.gif b/admin/themes/roma/images/resizable-s.gif
new file mode 100644
index 000000000..908576c9b
--- /dev/null
+++ b/admin/themes/roma/images/resizable-s.gif
Binary files differ
diff --git a/admin/themes/roma/images/resizable-se.gif b/admin/themes/roma/images/resizable-se.gif
new file mode 100644
index 000000000..0db439888
--- /dev/null
+++ b/admin/themes/roma/images/resizable-se.gif
Binary files differ
diff --git a/admin/themes/roma/images/resizable-sw.gif b/admin/themes/roma/images/resizable-sw.gif
new file mode 100644
index 000000000..e983320f6
--- /dev/null
+++ b/admin/themes/roma/images/resizable-sw.gif
Binary files differ
diff --git a/admin/themes/roma/images/resizable-w.gif b/admin/themes/roma/images/resizable-w.gif
new file mode 100644
index 000000000..fe2a79034
--- /dev/null
+++ b/admin/themes/roma/images/resizable-w.gif
Binary files differ
diff --git a/admin/themes/roma/images/top-left-bg.jpg b/admin/themes/roma/images/top-left-bg.jpg
new file mode 100644
index 000000000..98aa1d6a5
--- /dev/null
+++ b/admin/themes/roma/images/top-left-bg.jpg
Binary files differ
diff --git a/admin/themes/roma/images/transparent.gif b/admin/themes/roma/images/transparent.gif
new file mode 100644
index 000000000..e565824aa
--- /dev/null
+++ b/admin/themes/roma/images/transparent.gif
Binary files differ
diff --git a/admin/themes/roma/index.php b/admin/themes/roma/index.php
new file mode 100644
index 000000000..871b52b6a
--- /dev/null
+++ b/admin/themes/roma/index.php
@@ -0,0 +1,30 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based picture gallery |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2009 Piwigo Team http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | 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();
+?>
diff --git a/admin/themes/roma/mail-css.tpl b/admin/themes/roma/mail-css.tpl
new file mode 100644
index 000000000..a8da286b3
--- /dev/null
+++ b/admin/themes/roma/mail-css.tpl
@@ -0,0 +1,18 @@
+/* Theme wipi mail css */
+
+body {ldelim} background-color:#111; color:#69c;}
+#the_page {ldelim} background: #111 url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/mailbody-bg.png) repeat-y scroll left top;}
+#content {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/header-bg.png) no-repeat scroll left top;}
+#copyright {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/footer-bg.png) no-repeat scroll left bottom;
+color: #69c;}
+h2 {ldelim} background-color: #222;color:#eee;background-image: url({$ROOT_URL}template/{$themeconf.template}/themes/{$themeconf.theme}/images/tableh1_bg.png);}
+img {ldelim} margin: 16px; padding:15px;border:1px solid #eee; -moz-border-radius: 4px; border-radius: 4px 4px; }
+img:hover {ldelim} border:1px solid #69c; -moz-border-radius: 4px; border-radius: 4px 4px; }
+a {ldelim} color: #69c; background: transparent; }
+a:hover {ldelim} color: #f92; }
+a.PWG {ldelim} border: 0px; }
+a.PWG .P {ldelim} color : #f92; }
+a.PWG .W {ldelim} color : #aaa; }
+a.PWG .G {ldelim} color : #69c; }
+a.PWG:hover .P {ldelim} color : #69c; }
+a.PWG:hover .G {ldelim} color : #f92; }
diff --git a/admin/themes/roma/theme.css b/admin/themes/roma/theme.css
new file mode 100644
index 000000000..81af6c627
--- /dev/null
+++ b/admin/themes/roma/theme.css
@@ -0,0 +1,219 @@
+/* text color */
+body, h3, dt, h2, .throw, .content, label,
+input.rateButtonSelected /* <= why IE doesn't inherit this ? */ { color:#666; }
+INPUT, select, textarea { color:#999; background-color: #444; }
+option[disabled] { background-color: #999; color: #444; }
+input[type="radio"], input[type="checkbox"] { background-color: transparent; }
+/* INPUT[type="checkbox"], INPUT[type="radio"]
+{ color:#999; background-color: #eee; } */
+INPUT[type="submit"], INPUT[type="reset"] { color:#999; border: 1px solid #666; background-color: #444; padding: 1px 15px; }
+input.rateButton, legend, h3 { color: #666; }
+#theAdminPage h2 { color: #ccc; letter-spacing:2px; font-weight:bold;}
+.content .infos { color: #f70; border:0; background-color: transparent;
+padding:5px 60px 0pt 10pt; min-height: 48px; text-align:left; background-position:left top;}
+.content .infos .submit {margin-left:30px;}
+.content .infos li, .content .errors li { list-style-type:none; }
+.content .errors { color: #f33; border:0; background-color: transparent;
+padding:5px 60px 0pt 10pt; min-height: 48px; text-align:left; font-weight:bold; background-position:left top; }
+.header_notes { background: transparent url(../../icon/note.png) no-repeat right top;
+border:0; font-weight:bold; min-height: 48px;
+padding:15px 60px 0 0; position:absolute; right:0;
+text-align:right; top:90px; width:550px; }
+html, body { min-height: 100%; }
+body { margin: 0; padding: 0;
+background-color:#111111; }
+/* #the_page { margin: 0; padding: 0; z-index: 1; top:0px; */
+/* padding-top: 0; min-height: 100%; width:100%; position:absolute; left:0px; } */
+#headbranch { width: 233px; height: 240px; margin: 0; padding: 0;
+position:absolute; left:0px; top:0px; z-index: 0;
+}
+#theHeader { display:none;min-height:105px; margin: 0; padding: 0;
+background:transparent url(images/piwigo_logo_sombre_214x100.png) no-repeat scroll 245px top; }
+h3, #imageToolBar a:hover, .row2, .content { background-color: #222; }
+.throw, .row1 { background-color:#111; }
+.throw em { font-style: normal; color: #ff3363; }
+
+#content { min-height: 466px; margin-top: 15px; }
+.content { padding:0 5px 5px; margin: 0 10px 0 248px; z-index:99; }
+
+.content h3 { font-size:20px; letter-spacing:-0.4px; margin:0 20px 12px 0; text-align:center; background:none; border: 0; }
+.content h3 ~ h3{ margin-top: 40px; }
+.content h4 { font-size:14px; text-align:left; padding:3px; margin: 2px;}
+
+/*.content h2:before, .content h2:after, */
+h2:lang(en) { text-transform:capitalize; }
+
+.content dl, dd { margin:5px; }
+.content div.titrePage {}
+.instructions { height:450px; overflow:scroll; padding:0 20px 0; text-align:left; margin-bottom: 20px;
+font-size:14px; line-height:21px; }
+.instructions { overflow-y:scroll; overflow-x:hidden; }
+.instructions h3 { text-align: center; margin: 30px 0 0 0; }
+
+.instructions { text-align:left; padding-top:5px;}
+.instructions LI { margin-bottom:5px; }
+.instructionBlock {border: 1px solid #666; margin: 5px; overflow: hidden;}
+.instructionBlockHeaderCollapsed, .instructionBlockHeaderExpanded {background-color:#111; background-position:15px center;
+background-repeat:no-repeat; color:#444; cursor:pointer; font-size:110%; overflow:hidden; padding:8px 41px;}
+.instructionBlockHeaderCollapsed span, .instructionBlockHeaderExpanded span {border-bottom: 1px solid #444; }
+ .instructionBlockHeaderCollapsed:hover span, .instructionBlockHeaderExpanded:hover span,
+ .instructionBlockHeaderCollapsed:focus span, .instructionBlockHeaderExpanded:focus span { border-bottom-color: #111; }
+
+.instructionBlockHeaderCollapsed { background-image: url(../../icon/expand.png);}
+.instructionBlockHeaderExpanded { background-image: url(../../icon/collapse.png);}
+.instructionBlockContent { padding:0 15px 15px;}
+SPAN.pwgScreen { font-style:italic; border-bottom:1px dotted #666}
+
+.content ul.thumbnails span.wrap2:hover { background-color:#111; border:1px solid #FF3363; color:#666; }
+.content ul.thumbnails span.wrap2 { border:1px solid #666; padding: 4px; }
+.content ul.thumbnails span.wrap2 { -moz-border-radius-bottomleft:4px; -moz-border-radius-bottomright:4px; -moz-border-radius-topleft:4px; -moz-border-radius-topright:4px; }
+.content ul.thumbnails span.wrap1 { margin:0 12px 5px; }
+/* .throw, */ td h3 {
+ background-image: url(images/fillet.png); background-repeat: repeat-x; }
+/* borders */
+fieldset { border: 1px solid #666; }
+INPUT, SELECT, TEXTAREA { border: 1px solid #666; }
+input:focus, select:focus, textarea:focus, input.focus, form .focus { background-color:#444;color: #999; }
+TEXTAREA { cursor:text; font-size: 13px; }
+.content UL.thumbnails SPAN.wrap2 {
+ border: 1px solid #aaaaaa; /* thumbnails border color and style */
+ border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */
+}
+.tagSelection label { padding-right:12px; }
+.content ul.categoryActions a img { margin-left: 10px; }
+ul.thumbnails input { border:3px double #999; color:#999; font-size:10px; margin:0; background-color:#444; text-align: center;}
+INPUT[type="submit"]:hover , INPUT[type="reset"]:hover { cursor: pointer; }
+INPUT.bigbutton:hover { background-color: #222; color:#f33; border: 0; }
+.throw { font-size: 120%; line-height: 26px; padding-top: 10px; font-weight: bold; color: #ff3363; }
+label { cursor:pointer }
+.categoryLi { background: #222 }
+.virtual_cat { background: #333 !important; }
+a.Piwigo {
+ font-family: verdana, arial, helvetica, sans-serif !important;
+ font-size: 11px; font-weight: normal; letter-spacing: 0;
+ color : #F33; text-decoration: none; border: 0; }
+a.Piwigo:hover span.Piwigo {
+ border-bottom: 1px solid #FF3363;
+}
+
+/* RADU - I comment this because it makes FF form controls activation very slow)
+*, *:focus, *:active, input:active, a:active, input:focus, a:focus { outline: none; -moz-outline-width: 0px; }
+*/
+
+a { color:#f70; border-width: 0; }
+a:hover, a:active { color: #f33; border-bottom: 1px solid #FF3363; cursor: pointer; }
+.content .navigationBar {color:#666;}
+ul.actions, .content form#waiting {text-align:center;}
+
+.header_msgs { background:transparent url(images/header_msgs-bg.gif) repeat scroll right top;
+border:0; color:#333; font-size:24px; height:30px; left:0; margin:0; padding:10px 0 0; position:absolute;
+text-align:center; top:0; width:100%; z-index:99; }
+.HelpActions a { border:0; margin:-14px 14px 0 0; position:absolute; right:0; }
+.HelpActions li {list-style-image:none; list-style-position:outside;
+list-style-type:none; text-align:center; text-indent:0pt; }
+#content.content div.comment a.illustration{ margin-right: 30px;}
+/* tabsheets are often used in admin pages => No specific css files */
+.tabsheet {
+background-color:#111111; border:0px none; border-bottom:1px solid #ff3363; display:table;
+font-family:verdana,arial,helvetica,sans-serif; font-size:8px;
+list-style-image:none; padding: 0; position:relative; text-decoration:none;
+top:-2px; white-space:nowrap; margin: 0 0 0 -5px; padding-left:10px;
+width:100%; }
+.tabsheet li { background:#222222; float:left; margin:0 6px 0 0; overflow:hidden; text-align:right; border:1px solid #ff3363; border-bottom:none; position:relative; top:11px; -moz-border-radius-topleft:5px; -moz-border-radius-topright:5px;}
+.tabsheet a {
+color:#666; display:block; font-size:11px; border:0;
+font-weight:bold; overflow:hidden; padding:6px;
+text-align:right; text-decoration:none; margin: 0; }
+.tabsheet a:first-letter { text-transform:capitalize; }
+.tabsheet li.selected_tab {
+ border-bottom:1px solid #222222;
+}
+.tabsheet li:hover, .tabsheet li.selected_tab {
+margin-top:4px; padding-bottom:3px; padding-top:3px; top:1px;
+ }
+.tabsheet a:hover, .tabsheet li.selected_tab a { color: #F36; }
+.tabsheet a span { background-color:#222; display:block; font-size:10px; margin-right:2px; padding:0 3px 0 1px; }
+#debug { margin-left:248px; font-size:12px; }
+/* menubar is on all admin pages => No specific css file */
+#menubar {
+background:transparent url(images/menuBoxBottom_new.png) no-repeat scroll left bottom;
+border:0; display:inline; float:left; left:0; margin: 10px 0 0 10px; min-height:475px; height:475px; /* should be 477 */
+padding:0; width:230px; z-index:99; text-align: left; }
+#menubar ul.scroll { height:163px; margin-right:10px; overflow-y:auto;
+ /* Only IE family supports colored scrollbar */
+ scrollbar-face-color: #222; scrollbar-shadow-color: #444; scrollbar-highlight-color: #000;
+ scrollbar-3dlight-color: #292929; scrollbar-darkshadow-color: #333; scrollbar-track-color: #111;
+ scrollbar-arrow-color: #ff3333; }
+
+#menubar dd {
+background: transparent url(images/menubar-detail.png) repeat-y top left;
+margin: 10px 0 0 0; padding: 0; height:232px; }
+#menubar dl {
+background:transparent url(images/menuBoxTop_new.png) no-repeat scroll left top;
+width: 207px; border:0; margin: 0; padding: 0; display: block; min-height:35px; }
+#menubar dl.first {
+background:transparent url(images/menubar-top.png) no-repeat scroll left 1px; }
+#menubar dt { margin: 0; display: block; background: none; left:10px; font-weight:bold;
+position:relative; padding: 5px 1px 4px 5px; top:-10px; font-size: 13px; color: #666; }
+#menubar dt span { background-color: #111; cursor:pointer; }
+#menubar li { margin: 0 0 0 6px; }
+#menubar li.external { list-style-image:url(images/external_inactive.png); padding:10px 0px 0pt 10px; }
+#menubar li.external:hover { list-style-image:url(images/external_active.png); }
+#menubar ul { color: #333; margin:0 0 0 9px; line-height: 16px;
+ list-style-type: square; list-style-position: inside; padding: 0; }
+/* jQuery tooltips */
+.cluetip-default #cluetip-outer { border-color: #666; color: #666; background-color: #222; }
+.cluetip-default h3#cluetip-title { color: #ff3363; background-color: #111; }
+/* jQuery ui resizable */
+.ui-resizable { position: relative; }
+.ui-wrapper { border: 0; }
+.ui-wrapper input, .ui-wrapper textarea { border: 0; }
+
+/* Global handle styles */
+.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; }
+.ui-resizable .ui-resizable-handle { display: block; }
+body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
+body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
+.ui-resizable-n { cursor: n-resize; height: 6px; width: 100%; top: 0px; left: 0px; background: transparent url(images/resizable-n.gif) no-repeat scroll center top; }
+.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px; background: transparent url(images/resizable-s.gif) no-repeat scroll center top; }
+.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-e.gif) no-repeat scroll right center; }
+.ui-resizable-w { cursor: w-resize; width: 6px; left: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-w.gif) no-repeat scroll right center; }
+.ui-resizable-se { cursor: se-resize; width: 9px; height: 9px; right: 0px; bottom: 0px; background: transparent url(images/resizable-se.gif); }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: 0px; bottom: 0px; background: transparent url(images/resizable-sw.gif); }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: 0px; top: 0px; background: transparent url(images/resizable-nw.gif); }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: 0px; top: 0px; background: transparent url(images/resizable-ne.gif); }
+#ui-datepicker-div .ui-datepicker-control, #ui-datepicker-div a { background-color: #111; color: #f70 !important;}
+#ui-datepicker-div .ui-datepicker-days-row { background-color: #444;}
+#ui-datepicker-div .ui-datepicker-week-end-cell, #ui-datepicker-div .ui-datepicker-week-end-cell a { background-color: #222; color: #f33; border-color: #444; border-top-color: #222; border-left-color: #222;}
+#ui-datepicker-div .ui-datepicker-title-row { background-color: #111;}
+#ui-datepicker-div .ui-datepicker-title-row .ui-datepicker-week-end-cell a { color: #f33;}
+#ui-datepicker-div a:hover { color: #ff3333 !important; border: 0; background-color: #111 !important;}
+#ui-datepicker-div .ui-datepicker-header select { background-color:#444; color:#999; font-weight:normal;}
+#ui-datepicker-div .ui-datepicker-links { background-color:#222;}
+#ui-datepicker-div .ui-datepicker-header { background-color:#444;}
+#ui-datepicker-div .ui-datepicker-current-day { background-color: #111 !important; border-color: #444; border-top-color: #111; border-left-color: #111;}
+#ui-datepicker-div .ui-datepicker-days-cell { background-color:#444; border:1px solid #222; border-top-color: #444; border-left-color: #444;}
+td img.ui-datepicker-trigger { margin:-3px 5px 2px; }
+INPUT[type="text"].large { width: 317px; }
+input[type="button"], input[type="submit"], input[type="reset"] {
+color:#ff3363; background-color:#222; border-color: #ff3363; }
+input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover {
+color:#999; border-color: #666; }
+.bigbutton { background:transparent url(images/quickLocalSync_inactiv.png) no-repeat scroll left top; display: block;
+color:#111; font-size:28px; height:161px; margin: 0 20px 0 auto; padding:0 18px 0; text-align:center; width:625px;
+position:relative; z-index: 50;}
+.bigtext { display:block; font-weight:bold; left:225px; position:relative; top:35px; width:320px; z-index: 55; cursor:pointer; }
+.bigbutton:hover { background:transparent url(images/quickLocalSync_hover.png) no-repeat scroll left top; color: #000; }
+.bigbutton input { background:transparent url(images/transparent.gif) repeat scroll left top; border:0;
+display:block; height:85px; left:225px; position:relative; top:-42px; width:313px; z-index:99; padding:0;}
+.bigbutton input:hover { cursor:pointer; background:transparent url(images/transparent.gif) repeat scroll left top; border:0; padding:0;}
+/* hacks */
+html>body #menubar {min-height:477px; height:477px;} /* IE 7 and modern browsers */
+* html[lang="en"] body .content h2 , *+html[lang="en"] body .content h2 { text-transform:capitalize; } /* IE */
+*+html .bigtext { left: 70px; }
+*+html .bigbutton input, * html .bigbutton input { left:0px; position:relative; top:-40px; }
+
+* html .bigtext { margin-right: 300px; }
+
+#adminHome {background-color:#222;}
+#adminHome:hover {background-color:#333;}
diff --git a/admin/themes/roma/themeconf.inc.php b/admin/themes/roma/themeconf.inc.php
new file mode 100644
index 000000000..1260576ab
--- /dev/null
+++ b/admin/themes/roma/themeconf.inc.php
@@ -0,0 +1,11 @@
+<?php
+if (!function_exists('selected_admin_menu'))
+{
+ include_once(PHPWG_ROOT_PATH.'admin/include/functions_themes.inc.php');
+}
+$themeconf = array(
+ 'theme' => 'roma',
+ 'parent' => 'default',
+ 'selected_admin_menu' => selected_admin_menu(),
+);
+?>