aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--admin/cat_list.php9
-rw-r--r--admin/element_set.php2
-rw-r--r--admin/element_set_global.php6
-rw-r--r--admin/group_list.php10
-rw-r--r--admin/include/functions.php1
-rw-r--r--admin/picture_modify.php3
-rw-r--r--admin/plugins_list.php4
-rw-r--r--admin/plugins_new.php6
-rw-r--r--admin/plugins_update.php7
-rw-r--r--admin/site_manager.php18
-rw-r--r--admin/tags.php8
-rw-r--r--admin/template/goto/cat_list.tpl2
-rw-r--r--admin/template/goto/group_list.tpl1
-rw-r--r--admin/template/goto/site_manager.tpl2
-rw-r--r--admin/template/goto/tags.tpl1
-rw-r--r--comments.php99
-rw-r--r--doc/README_en.txt4
-rw-r--r--doc/README_fr.txt4
-rw-r--r--include/constants.php3
-rw-r--r--include/functions.inc.php76
-rw-r--r--include/functions_comment.inc.php22
-rw-r--r--include/picture_comment.inc.php3
-rw-r--r--include/ws_functions.inc.php66
-rw-r--r--language/de_DE/admin.lang.php57
-rw-r--r--language/de_DE/common.lang.php14
-rw-r--r--language/de_DE/help/maintenance.html4
-rw-r--r--language/en_UK/help/maintenance.html3
-rw-r--r--language/es_AR/iso.txt2
-rw-r--r--language/es_ES/help/maintenance.html23
-rw-r--r--language/fr_FR/help/maintenance.html69
-rw-r--r--language/hr_HR/help/maintenance.html3
-rw-r--r--language/it_IT/help/maintenance.html4
-rw-r--r--language/ja_JP/help/maintenance.html4
-rw-r--r--language/nl_NL/help/maintenance.html4
-rw-r--r--language/pl_PL/help/maintenance.html4
-rw-r--r--language/ru_RU/help/maintenance.html4
-rw-r--r--picture.php2
-rw-r--r--plugins/LocalFilesEditor/language/de_DE/plugin.lang.php28
-rw-r--r--plugins/add_index/language/de_DE/plugin.lang.php10
-rw-r--r--plugins/admin_advices/language/de_DE/description.txt2
-rw-r--r--plugins/admin_advices/language/de_DE/plugin.lang.php171
-rw-r--r--plugins/c13y_upgrade/language/de_DE/plugin.lang.php8
-rw-r--r--template-common/scripts.js58
-rw-r--r--template/yoga/picture.tpl1
-rw-r--r--ws.php8
45 files changed, 546 insertions, 294 deletions
diff --git a/admin/cat_list.php b/admin/cat_list.php
index 3a9a1fc46..1aac22f0d 100644
--- a/admin/cat_list.php
+++ b/admin/cat_list.php
@@ -33,6 +33,11 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
// +-----------------------------------------------------------------------+
check_status(ACCESS_ADMINISTRATOR);
+if (!empty($_POST) or isset($_GET['delete']))
+{
+ check_pwg_token();
+}
+
// +-----------------------------------------------------------------------+
// | functions |
// +-----------------------------------------------------------------------+
@@ -64,6 +69,8 @@ function save_categories_order($categories)
// | initialization |
// +-----------------------------------------------------------------------+
+check_input_parameter('parent_id', @$_GET['parent_id'], false, PATTERN_ID);
+
$categories = array();
$base_url = get_root_url().'admin.php?page=cat_list';
@@ -161,6 +168,7 @@ if (isset($_GET['parent_id']))
$template->assign(array(
'CATEGORIES_NAV'=>$navigation,
'F_ACTION'=>$form_action,
+ 'PWG_TOKEN' => get_pwg_token(),
));
// +-----------------------------------------------------------------------+
@@ -236,6 +244,7 @@ foreach ($categories as $category)
if (empty($category['dir']))
{
$tpl_cat['U_DELETE'] = $self_url.'&delete='.$category['id'];
+ $tpl_cat['U_DELETE'].= '&pwg_token='.get_pwg_token();
}
if ( array_key_exists($category['id'], $categories_with_images) )
diff --git a/admin/element_set.php b/admin/element_set.php
index 821c4e188..bc722887b 100644
--- a/admin/element_set.php
+++ b/admin/element_set.php
@@ -39,6 +39,8 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
// +-----------------------------------------------------------------------+
check_status(ACCESS_ADMINISTRATOR);
+check_input_parameter('selection', @$_POST['selection'], true, PATTERN_ID);
+
// +-----------------------------------------------------------------------+
// | caddie management |
// +-----------------------------------------------------------------------+
diff --git a/admin/element_set_global.php b/admin/element_set_global.php
index 2ad3ab164..05f4158b7 100644
--- a/admin/element_set_global.php
+++ b/admin/element_set_global.php
@@ -43,6 +43,12 @@ check_status(ACCESS_ADMINISTRATOR);
// | deletion form submission |
// +-----------------------------------------------------------------------+
+// the $_POST['selection'] was already checked in element_set.php
+check_input_parameter('add_tags', @$_POST['add_tags'], true, PATTERN_ID);
+check_input_parameter('del_tags', @$_POST['del_tags'], true, PATTERN_ID);
+check_input_parameter('associate', @$_POST['associate'], false, PATTERN_ID);
+check_input_parameter('dissociate', @$_POST['dissociate'], false, PATTERN_ID);
+
if (isset($_POST['delete']))
{
if (isset($_POST['confirm_deletion']) and 1 == $_POST['confirm_deletion'])
diff --git a/admin/group_list.php b/admin/group_list.php
index ab2e8ae7c..0ab7d3bc3 100644
--- a/admin/group_list.php
+++ b/admin/group_list.php
@@ -33,6 +33,11 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
// +-----------------------------------------------------------------------+
check_status(ACCESS_ADMINISTRATOR);
+if (!empty($_POST) or isset($_GET['delete']) or isset($_GET['toggle_is_default']))
+{
+ check_pwg_token();
+}
+
// +-----------------------------------------------------------------------+
// | delete a group |
// +-----------------------------------------------------------------------+
@@ -155,6 +160,7 @@ $template->assign(
array(
'F_ADD_ACTION' => get_root_url().'admin.php?page=group_list',
'U_HELP' => get_root_url().'popuphelp.php?page=group_list',
+ 'PWG_TOKEN' => get_pwg_token(),
)
);
@@ -191,9 +197,9 @@ SELECT COUNT(*)
'IS_DEFAULT' => (get_boolean($row['is_default']) ? ' ['.l10n('is_default_group').']' : ''),
'MEMBERS' => l10n_dec('%d member', '%d members', $counter),
'U_MEMBERS' => $members_url.$row['id'],
- 'U_DELETE' => $del_url.$row['id'],
+ 'U_DELETE' => $del_url.$row['id'].'&pwg_token='.get_pwg_token(),
'U_PERM' => $perm_url.$row['id'],
- 'U_ISDEFAULT' => $toggle_is_default_url.$row['id']
+ 'U_ISDEFAULT' => $toggle_is_default_url.$row['id'].'&pwg_token='.get_pwg_token(),
)
);
}
diff --git a/admin/include/functions.php b/admin/include/functions.php
index 66d7b52ec..1081c9f3d 100644
--- a/admin/include/functions.php
+++ b/admin/include/functions.php
@@ -23,7 +23,6 @@
include(PHPWG_ROOT_PATH.'admin/include/functions_metadata.php');
-
// The function delete_site deletes a site and call the function
// delete_categories for each primary category of the site
function delete_site( $id )
diff --git a/admin/picture_modify.php b/admin/picture_modify.php
index c142ae955..71b0d7777 100644
--- a/admin/picture_modify.php
+++ b/admin/picture_modify.php
@@ -33,6 +33,9 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
// +-----------------------------------------------------------------------+
check_status(ACCESS_ADMINISTRATOR);
+check_input_parameter('image_id', $_GET['image_id'], false, PATTERN_ID);
+check_input_parameter('cat_id', @$_GET['cat_id'], false, PATTERN_ID);
+
// +-----------------------------------------------------------------------+
// | synchronize metadata |
// +-----------------------------------------------------------------------+
diff --git a/admin/plugins_list.php b/admin/plugins_list.php
index 2b12f171c..708ecd889 100644
--- a/admin/plugins_list.php
+++ b/admin/plugins_list.php
@@ -38,6 +38,8 @@ $plugins = new plugins();
//--------------------------------------------------perform requested actions
if (isset($_GET['action']) and isset($_GET['plugin']) and !is_adviser())
{
+ check_pwg_token();
+
$page['errors'] = $plugins->perform_action($_GET['action'], $_GET['plugin']);
if (empty($page['errors']))
@@ -96,7 +98,7 @@ foreach($plugins->fs_plugins as $plugin_id => $fs_plugin)
array('NAME' => $display_name,
'VERSION' => $fs_plugin['version'],
'DESCRIPTION' => $desc,
- 'U_ACTION' => $base_url.'&plugin='.$plugin_id);
+ 'U_ACTION' => $base_url.'&plugin='.$plugin_id.'&pwg_token='.get_pwg_token());
if (isset($plugins->db_plugins_by_id[$plugin_id]))
{
diff --git a/admin/plugins_new.php b/admin/plugins_new.php
index 56b09d097..857f75bc5 100644
--- a/admin/plugins_new.php
+++ b/admin/plugins_new.php
@@ -38,6 +38,8 @@ $plugins = new plugins();
//------------------------------------------------------automatic installation
if (isset($_GET['revision']) and isset($_GET['extension']) and !is_adviser())
{
+ check_pwg_token();
+
$install_status = $plugins->extract_plugin_files('install', $_GET['revision'], $_GET['extension']);
redirect($base_url.'&installstatus='.$install_status);
@@ -110,7 +112,9 @@ if ($plugins->get_server_plugins(true))
$url_auto_install = htmlentities($base_url)
. '&revision=' . $plugin['revision_id']
- . '&extension=' . $plugin['extension_id'];
+ . '&extension=' . $plugin['extension_id']
+ . '&pwg_token='.get_pwg_token()
+ ;
$template->append('plugins', array(
'EXT_NAME' => $plugin['extension_name'],
diff --git a/admin/plugins_update.php b/admin/plugins_update.php
index e6d6705fe..953fddd8e 100644
--- a/admin/plugins_update.php
+++ b/admin/plugins_update.php
@@ -37,6 +37,8 @@ $plugins = new plugins();
//-----------------------------------------------------------automatic upgrade
if (isset($_GET['plugin']) and isset($_GET['revision']) and !is_adviser())
{
+ check_pwg_token();
+
$plugin_id = $_GET['plugin'];
$revision = $_GET['revision'];
@@ -48,6 +50,7 @@ if (isset($_GET['plugin']) and isset($_GET['revision']) and !is_adviser())
redirect($base_url
. '&revision=' . $revision
. '&plugin=' . $plugin_id
+ . '&pwg_token='.get_pwg_token()
. '&reactivate=true');
}
@@ -133,7 +136,9 @@ if ($plugins->get_server_plugins())
// Plugin need upgrade
$url_auto_update = $base_url
. '&revision=' . $plugin_info['revision_id']
- . '&plugin=' . $plugin_id;
+ . '&plugin=' . $plugin_id
+ . '&pwg_token='.get_pwg_token()
+ ;
$template->append('plugins_not_uptodate', array(
'EXT_NAME' => $fs_plugin['name'],
diff --git a/admin/site_manager.php b/admin/site_manager.php
index 06687a274..7e30090d6 100644
--- a/admin/site_manager.php
+++ b/admin/site_manager.php
@@ -33,6 +33,11 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
// +-----------------------------------------------------------------------+
check_status(ACCESS_ADMINISTRATOR);
+if (!empty($_POST) or isset($_GET['action']))
+{
+ check_pwg_token();
+}
+
/**
* requests the given $url (a remote create_listing_file.php) and fills a
* list of lines corresponding to request output
@@ -198,11 +203,13 @@ SELECT galleries_url
}
}
-$template->assign( array(
- 'U_HELP' => get_root_url().'popuphelp.php?page=site_manager',
- 'F_ACTION' => get_root_url().'admin.php'
- .get_query_string_diff( array('action','site') )
- ) );
+$template->assign(
+ array(
+ 'U_HELP' => get_root_url().'popuphelp.php?page=site_manager',
+ 'F_ACTION' => get_root_url().'admin.php'.get_query_string_diff(array('action','site','pwg_token')),
+ 'PWG_TOKEN' => get_pwg_token(),
+ )
+ );
// +-----------------------------------------------------------------------+
// | remote sites list |
@@ -242,6 +249,7 @@ while ($row = mysql_fetch_array($result))
$base_url = PHPWG_ROOT_PATH.'admin.php';
$base_url.= '?page=site_manager';
$base_url.= '&site='.$row['id'];
+ $base_url.= '&pwg_token='.get_pwg_token();
$base_url.= '&action=';
$update_url = PHPWG_ROOT_PATH.'admin.php';
diff --git a/admin/tags.php b/admin/tags.php
index c4548ef8b..ea5ed6001 100644
--- a/admin/tags.php
+++ b/admin/tags.php
@@ -29,6 +29,11 @@ if( !defined("PHPWG_ROOT_PATH") )
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
check_status(ACCESS_ADMINISTRATOR);
+if (!empty($_POST))
+{
+ check_pwg_token();
+}
+
// +-----------------------------------------------------------------------+
// | edit tags |
// +-----------------------------------------------------------------------+
@@ -189,7 +194,8 @@ $template->set_filenames(array('tags' => 'tags.tpl'));
$template->assign(
array(
- 'F_ACTION' => PHPWG_ROOT_PATH.'admin.php?page=tags'
+ 'F_ACTION' => PHPWG_ROOT_PATH.'admin.php?page=tags',
+ 'PWG_TOKEN' => get_pwg_token(),
)
);
diff --git a/admin/template/goto/cat_list.tpl b/admin/template/goto/cat_list.tpl
index f4e39a068..7654a2345 100644
--- a/admin/template/goto/cat_list.tpl
+++ b/admin/template/goto/cat_list.tpl
@@ -27,6 +27,7 @@
<h3>{$CATEGORIES_NAV}</h3>
<form id="addVirtual" action="{$F_ACTION}" method="post">
+ <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}" />
<p>
{'cat_add'|@translate} : <input type="text" name="virtual_name" />
<input class="submit" type="submit" value="{'Submit'|@translate}" name="submitAdd" {$TAG_INPUT_ENABLED} />
@@ -39,6 +40,7 @@
{if count($categories) }
<form id="categoryOrdering" action="{$F_ACTION}" method="post">
+ <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}" />
<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} />
diff --git a/admin/template/goto/group_list.tpl b/admin/template/goto/group_list.tpl
index b21c2ec86..4bc163153 100644
--- a/admin/template/goto/group_list.tpl
+++ b/admin/template/goto/group_list.tpl
@@ -4,6 +4,7 @@
</div>
<form method="post" name="add_user" action="{$F_ADD_ACTION}" class="properties">
+ <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}" />
<fieldset>
<legend>{'Add group'|@translate}</legend>
diff --git a/admin/template/goto/site_manager.tpl b/admin/template/goto/site_manager.tpl
index 61c0157cf..570b0a15c 100644
--- a/admin/template/goto/site_manager.tpl
+++ b/admin/template/goto/site_manager.tpl
@@ -17,6 +17,7 @@
{'remote_site_local_found'|@translate} {$local_listing.URL}
{if isset($local_listing.CREATE)}
<form action="{$F_ACTION}" method="post">
+ <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}" />
<p>
{'remote_site_local_create'|@translate}:
<input type="hidden" name="no_check" value="1"/>
@@ -64,6 +65,7 @@
{/if}
<form action="{$F_ACTION}" method="post">
+ <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}" />
<p>
<label for="galleries_url" >{'site_create'|@translate}</label>
<input type="text" name="galleries_url" id="galleries_url" />
diff --git a/admin/template/goto/tags.tpl b/admin/template/goto/tags.tpl
index b2ce57341..ce7949063 100644
--- a/admin/template/goto/tags.tpl
+++ b/admin/template/goto/tags.tpl
@@ -4,6 +4,7 @@
</div>
<form action="{$F_ACTION}" method="post">
+ <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}" />
{if isset($EDIT_TAGS_LIST)}
<fieldset>
diff --git a/comments.php b/comments.php
index 1f0221c08..b30db9fa8 100644
--- a/comments.php
+++ b/comments.php
@@ -113,6 +113,26 @@ if (!empty($_GET['author']))
$page['where_clauses'][] = 'com.author = \''.$_GET['author'].'\'';
}
+// search a specific comment (if you're coming directly from an admin
+// notification email)
+if (!empty($_GET['comment_id']))
+{
+ check_input_parameter('comment_id', $_GET['comment_id'], false, PATTERN_ID);
+
+ // currently, the $_GET['comment_id'] is only used by admins from email
+ // for management purpose (validate/delete)
+ if (!is_admin())
+ {
+ $login_url =
+ get_root_url().'identification.php?redirect='
+ .urlencode(urlencode($_SERVER['REQUEST_URI']))
+ ;
+ redirect($login_url);
+ }
+
+ $page['where_clauses'][] = 'com.id = '.$_GET['comment_id'];
+}
+
// search a substring among comments content
if (!empty($_GET['keyword']))
{
@@ -152,28 +172,46 @@ $page['where_clauses'][] = get_sql_condition_FandF
// +-----------------------------------------------------------------------+
// | comments management |
// +-----------------------------------------------------------------------+
-if (isset($_GET['delete']) and is_numeric($_GET['delete'])
- and !is_adviser() )
-{// comments deletion
- check_status(ACCESS_ADMINISTRATOR);
- $query = '
-DELETE FROM '.COMMENTS_TABLE.'
- WHERE id='.$_GET['delete'].'
+
+if (isset($_GET['delete']) or isset($_GET['validate']))
+{
+ check_pwg_token();
+
+ if (!is_adviser())
+ {
+ check_status(ACCESS_ADMINISTRATOR);
+
+ if (isset($_GET['delete']))
+ {
+ check_input_parameter('delete', $_GET['delete'], false, PATTERN_ID);
+
+ $query = '
+DELETE
+ FROM '.COMMENTS_TABLE.'
+ WHERE id = '.$_GET['delete'].'
;';
- pwg_query($query);
-}
+ pwg_query($query);
+ }
-if (isset($_GET['validate']) and is_numeric($_GET['validate'])
- and !is_adviser() )
-{ // comments validation
- check_status(ACCESS_ADMINISTRATOR);
- $query = '
+ if (isset($_GET['validate']))
+ {
+ check_input_parameter('validate', $_GET['validate'], false, PATTERN_ID);
+
+ $query = '
UPDATE '.COMMENTS_TABLE.'
- SET validated = \'true\'
- , validation_date = NOW()
- WHERE id='.$_GET['validate'].'
+ SET validated = "true"
+ , validation_date = NOW()
+ WHERE id = '.$_GET['validate'].'
;';
- pwg_query($query);
+ pwg_query($query);
+ }
+
+ $redirect_url =
+ PHPWG_ROOT_PATH
+ .'comments.php'
+ .get_query_string_diff(array('delete','validate','pwg_token'));
+ redirect($redirect_url);
+ }
}
// +-----------------------------------------------------------------------+
@@ -268,7 +306,7 @@ list($counter) = mysql_fetch_row(pwg_query($query));
$url = PHPWG_ROOT_PATH
.'comments.php'
- .get_query_string_diff(array('start','delete','validate'));
+ .get_query_string_diff(array('start','delete','validate','pwg_token'));
$navbar = create_navigation_bar($url,
$counter,
@@ -380,16 +418,25 @@ SELECT id, name, permalink, uppercats
if ( is_admin() )
{
- $url = get_root_url().'comments.php'.get_query_string_diff(array('delete','validate'));
- $tpl_comment['U_DELETE'] = add_url_params($url,
- array('delete'=>$comment['comment_id'])
- );
+ $url = get_root_url().'comments.php'.get_query_string_diff(array('delete','validate','pwg_token'));
+
+ $tpl_comment['U_DELETE'] = add_url_params(
+ $url,
+ array(
+ 'delete' => $comment['comment_id'],
+ 'pwg_token' => get_pwg_token(),
+ )
+ );
if ($comment['validated'] != 'true')
{
- $tpl_comment['U_VALIDATE'] = add_url_params($url,
- array('validate'=>$comment['comment_id'])
- );
+ $tpl_comment['U_VALIDATE'] = add_url_params(
+ $url,
+ array(
+ 'validate' => $comment['comment_id'],
+ 'pwg_token' => get_pwg_token(),
+ )
+ );
}
}
$template->append('comments', $tpl_comment);
diff --git a/doc/README_en.txt b/doc/README_en.txt
index 158282b13..6c8f5f3d7 100644
--- a/doc/README_en.txt
+++ b/doc/README_en.txt
@@ -26,7 +26,7 @@ Communication
Newsletter
----------
-https://mail.gna.org/listinfo/phpwebgallery-announce/
+http://piwigo.org/announcement/subscribe/"your e-mail"
It is *highly* recommended to subscribe to Piwigo newsletter. This is
extremely low-traffic, but will provide you with announcements of new
@@ -35,7 +35,7 @@ Piwigo releases and serious bug notification.
Freshmeat
---------
-http://freshmeat.net/projects/phpwebgallery
+http://freshmeat.net/projects/piwigo
Want to stay informed at each release, stable and development
release. Development releases notification are not send in the newsletter.
diff --git a/doc/README_fr.txt b/doc/README_fr.txt
index 4b10557be..075f91590 100644
--- a/doc/README_fr.txt
+++ b/doc/README_fr.txt
@@ -28,7 +28,7 @@ Communication
Newsletter
----------
-https://mail.gna.org/listinfo/phpwebgallery-announce-french/
+http://fr.piwigo.org/announcement/subscribe/"votre mail"
Il est *fortement* recommand de souscrire la newsletter de
Piwigo. Trs peu de mails sont envoys, mais les informations sont
@@ -38,7 +38,7 @@ importants (relatifs la scurit).
Freshmeat
---------
-http://freshmeat.net/projects/phpwebgallery
+http://freshmeat.net/projects/piwigo
Permet d'tre au courant des sorties de toutes les releases, et en
exclusivit les builds de la branche de dveloppement (ce qui n'est pas
diff --git a/include/constants.php b/include/constants.php
index 99a4816e7..2c828702a 100644
--- a/include/constants.php
+++ b/include/constants.php
@@ -38,6 +38,9 @@ define('ACCESS_ADMINISTRATOR', 3);
define('ACCESS_WEBMASTER', 4);
define('ACCESS_CLOSED', 5);
+// Sanity checks
+define('PATTERN_ID', '/^\d+$/');
+
// Table names
if (!defined('CATEGORIES_TABLE'))
define('CATEGORIES_TABLE', $prefixeTable.'categories');
diff --git a/include/functions.inc.php b/include/functions.inc.php
index 273d63776..6685bba99 100644
--- a/include/functions.inc.php
+++ b/include/functions.inc.php
@@ -1492,4 +1492,80 @@ function get_comment_post_key($image_id)
)
);
}
+
+/*
+ * breaks the script execution if the given value doesn't match the given
+ * pattern. This should happen only during hacking attempts.
+ *
+ * @param string param_name
+ * @param mixed param_value
+ * @param boolean is_array
+ * @param string pattern
+ *
+ * @return void
+ */
+function check_input_parameter($param_name, $param_value, $is_array, $pattern)
+{
+ // it's ok if the input parameter is null
+ if (empty($param_value))
+ {
+ return true;
+ }
+
+ if ($is_array)
+ {
+ if (!is_array($param_value))
+ {
+ die('[Hacking attempt] the input parameter "'.$param_name.'" should be an array');
+ }
+
+ foreach ($param_value as $item_to_check)
+ {
+ if (!preg_match($pattern, $item_to_check))
+ {
+ die('[Hacking attempt] an item is not valid in input parameter "'.$param_name.'"');
+ }
+ }
+ }
+ else
+ {
+ if (!preg_match($pattern, $param_value))
+ {
+ die('[Hacking attempt] the input parameter "'.$param_name.'" is not valid');
+ }
+ }
+}
+
+/**
+ * check token comming from form posted or get params to prevent csrf attacks
+ * if pwg_token is empty action doesn't require token
+ * else pwg_token is compare to server token
+ *
+ * @return void access denied if token given is not equal to server token
+ */
+function check_pwg_token()
+{
+ $valid_token = get_pwg_token();
+ $given_token = null;
+
+ if (!empty($_POST['pwg_token']))
+ {
+ $given_token = $_POST['pwg_token'];
+ }
+ elseif (!empty($_GET['pwg_token']))
+ {
+ $given_token = $_GET['pwg_token'];
+ }
+ if ($given_token != $valid_token)
+ {
+ access_denied();
+ }
+}
+
+function get_pwg_token()
+{
+ global $conf;
+
+ return hash_hmac('md5', session_id(), $conf['secret_key']);
+}
?> \ No newline at end of file
diff --git a/include/functions_comment.inc.php b/include/functions_comment.inc.php
index c8dd6f3e0..53cf4660a 100644
--- a/include/functions_comment.inc.php
+++ b/include/functions_comment.inc.php
@@ -166,33 +166,25 @@ INSERT INTO '.COMMENTS_TABLE.'
$comm['id'] = mysql_insert_id();
- if
- (
- ($comment_action=='validate' and $conf['email_admin_on_comment'])
- or
- ($comment_action!='validate' and $conf['email_admin_on_comment_validation'])
- )
+ if ($conf['email_admin_on_comment']
+ or ($conf['email_admin_on_comment_validation'] and 'moderate' == $comment_action))
{
include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
- $del_url =
- get_absolute_root_url().'comments.php?delete='.$comm['id'];
+ $comment_url = get_absolute_root_url().'comments.php?comment_id='.$comm['id'];
$keyargs_content = array
(
get_l10n_args('Author: %s', $comm['author']),
get_l10n_args('Comment: %s', $comm['content']),
get_l10n_args('', ''),
- get_l10n_args('Delete: %s', $del_url)
+ get_l10n_args('Manage this user comment: %s', $comment_url)
);
- if ($comment_action!='validate')
+ if ('moderate' == $comment_action)
{
- $keyargs_content[] =
- get_l10n_args('', '');
- $keyargs_content[] =
- get_l10n_args('Validate: %s',
- get_absolute_root_url().'comments.php?validate='.$comm['id']);
+ $keyargs_content[] = get_l10n_args('', '');
+ $keyargs_content[] = get_l10n_args('(!) This comment requires validation', '');
}
pwg_mail_notification_admins
diff --git a/include/picture_comment.inc.php b/include/picture_comment.inc.php
index 73b245b6b..af14cb050 100644
--- a/include/picture_comment.inc.php
+++ b/include/picture_comment.inc.php
@@ -149,7 +149,8 @@ SELECT id,author,date,image_id,content
$url_self,
array(
'action'=>'delete_comment',
- 'comment_to_delete'=>$row['id']
+ 'comment_to_delete'=>$row['id'],
+ 'pwg_token'=>get_pwg_token(),
)
);
}
diff --git a/include/ws_functions.inc.php b/include/ws_functions.inc.php
index 7b25a045f..6e13af641 100644
--- a/include/ws_functions.inc.php
+++ b/include/ws_functions.inc.php
@@ -855,6 +855,10 @@ function ws_images_setPrivacyLevel($params, &$service)
{
return new PwgError(401, 'Access denied');
}
+ if (!$service->isPost())
+ {
+ return new PwgError(405, "This method requires HTTP POST");
+ }
$params['image_id'] = array_map( 'intval',$params['image_id'] );
if ( empty($params['image_id']) )
{
@@ -865,6 +869,7 @@ function ws_images_setPrivacyLevel($params, &$service)
{
return new PwgError(WS_ERR_INVALID_PARAM, "Invalid level");
}
+
$query = '
UPDATE '.IMAGES_TABLE.'
SET level='.(int)$params['level'].'
@@ -885,12 +890,17 @@ function ws_images_add_chunk($params, &$service)
// original_sum
// type {thumb, file, high}
// position
-
+
if (!is_admin() || is_adviser() )
{
return new PwgError(401, 'Access denied');
}
+ if (!$service->isPost())
+ {
+ return new PwgError(405, "This method requires HTTP POST");
+ }
+
$upload_dir = PHPWG_ROOT_PATH.'upload/buffer';
// create the upload directory tree if not exists
@@ -945,18 +955,18 @@ function merge_chunks($output_filepath, $original_sum, $type)
if (is_file($output_filepath))
{
unlink($output_filepath);
-
+
if (is_file($output_filepath))
{
new PwgError(500, '[merge_chunks] error while trying to remove existing '.$output_filepath);
exit();
}
}
-
+
$upload_dir = PHPWG_ROOT_PATH.'upload/buffer';
$pattern = '/'.$original_sum.'-'.$type.'/';
$chunks = array();
-
+
if ($handle = opendir($upload_dir))
{
while (false !== ($file = readdir($handle)))
@@ -977,21 +987,21 @@ function merge_chunks($output_filepath, $original_sum, $type)
}
$i = 0;
-
+
foreach ($chunks as $chunk)
{
$string = file_get_contents($chunk);
-
+
if (function_exists('memory_get_usage')) {
ws_logfile('[merge_chunks] memory_get_usage on chunk '.++$i.': '.memory_get_usage());
}
-
+
if (!file_put_contents($output_filepath, $string, FILE_APPEND))
{
new PwgError(500, '[merge_chunks] error while writting chunks for '.$output_filepath);
exit();
}
-
+
unlink($chunk);
}
@@ -1009,7 +1019,7 @@ function add_file($file_path, $type, $original_sum, $file_sum)
$file_path = file_path_for_type($file_path, $type);
$upload_dir = dirname($file_path);
-
+
if (!is_dir($upload_dir)) {
umask(0000);
$recursive = true;
@@ -1096,7 +1106,7 @@ SELECT
// update basic metadata from file
//
$update = array();
-
+
if ('high' == $params['type'])
{
$update['high_filesize'] = $infos['filesize'];
@@ -1115,7 +1125,7 @@ SELECT
if (count($update) > 0)
{
$update['id'] = $params['image_id'];
-
+
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
mass_updates(
IMAGES_TABLE,
@@ -1665,6 +1675,11 @@ function ws_images_setInfo($params, &$service)
return new PwgError(401, 'Access denied');
}
+ if (!$service->isPost())
+ {
+ return new PwgError(405, "This method requires HTTP POST");
+ }
+
$params['image_id'] = (int)$params['image_id'];
if ($params['image_id'] <= 0)
{
@@ -1829,7 +1844,7 @@ function ws_add_image_category_relations($image_id, $categories_string, $replace
);
exit();
}
-
+
$query = '
SELECT
id
@@ -1847,9 +1862,9 @@ SELECT
);
exit();
}
-
+
$to_update_cat_ids = array();
-
+
// in case of replace mode, we first check the existing associations
$query = '
SELECT
@@ -1874,13 +1889,13 @@ DELETE
update_category($to_remove_cat_ids);
}
}
-
+
$new_cat_ids = array_diff($cat_ids, $existing_cat_ids);
if (count($new_cat_ids) == 0)
{
return true;
}
-
+
if ($search_current_ranks)
{
$query = '
@@ -1904,16 +1919,16 @@ SELECT
{
$current_rank_of[$cat_id] = 0;
}
-
+
if ('auto' == $rank_on_category[$cat_id])
{
$rank_on_category[$cat_id] = $current_rank_of[$cat_id] + 1;
}
}
}
-
+
$inserts = array();
-
+
foreach ($new_cat_ids as $cat_id)
{
array_push(
@@ -1925,14 +1940,14 @@ SELECT
)
);
}
-
+
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
mass_inserts(
IMAGE_CATEGORY_TABLE,
array_keys($inserts[0]),
$inserts
);
-
+
update_category($new_cat_ids);
}
@@ -1944,6 +1959,11 @@ function ws_categories_setInfo($params, &$service)
return new PwgError(401, 'Access denied');
}
+ if (!$service->isPost())
+ {
+ return new PwgError(405, "This method requires HTTP POST");
+ }
+
// category_id
// name
// comment
@@ -1986,7 +2006,7 @@ function ws_categories_setInfo($params, &$service)
array($update)
);
}
-
+
}
function ws_logfile($string)
@@ -1996,7 +2016,7 @@ function ws_logfile($string)
if (!$conf['ws_enable_log']) {
return true;
}
-
+
file_put_contents(
$conf['ws_log_filepath'],
'['.date('c').'] '.$string."\n",
diff --git a/language/de_DE/admin.lang.php b/language/de_DE/admin.lang.php
index f6b8d5863..ff4748e3e 100644
--- a/language/de_DE/admin.lang.php
+++ b/language/de_DE/admin.lang.php
@@ -78,7 +78,7 @@ $lang['Deactivate'] = 'Deaktiviere';
$lang['Delete Representant'] = 'Lösche Vorschaubild';
$lang['Delete selected tags'] = 'Lösche markierte Tags';
$lang['Delete selected users'] = 'Lösche markierte Benutzer';
-$lang['Deletions'] = 'Löschungen';
+$lang['Deletions'] = 'Entfernen';
$lang['Deny selected groups'] = 'Ausgewählte Gruppen ablehnen';
$lang['Deny selected users'] = 'Ausgewählte Benutzer ablehnen';
$lang['Description'] = 'Beschreibung';
@@ -110,11 +110,11 @@ $lang['Install'] = 'Installiere';
$lang['Link all category elements to a new category'] = 'Verlinkte alle Kategorieelemente zu einer neuen Kategorie';
$lang['Link all category elements to some existing categories'] = 'Verlinkte alle Kategorieelemente zu einer bestehenden Kategorie';
$lang['Linked categories'] = 'Verlinkte Kategorie';
-$lang['Lock gallery'] = 'Schliesse die Bildergalerie für Wartungsarbeiten';
+$lang['Lock gallery'] = 'Blockiere Schreibzugriffe auf die Datenbank für Wartungsarbeiten';
$lang['Maintenance'] = 'Wartung';
$lang['Manage permissions for a category'] = 'Befugnisse für Kategorien verwalten';
-$lang['Manage permissions for group "%s"'] = 'Befugnisse verwalten für die Gruppe "%s"';
-$lang['Manage permissions for user "%s"'] = 'Befugnisse verwalten für den Benutzer "%s"';
+$lang['Manage permissions for group "%s"'] = 'verwalte Zugriffsrechte für die Gruppe "%s"';
+$lang['Manage permissions for user "%s"'] = 'verwalte Zugriffsrechte für den Benutzer "%s"';
$lang['Manage tags'] = 'Verwalte Tags';
$lang['Members'] = 'Mitglieder';
$lang['Metadata synchronized from file'] = 'Metadaten synchronisiert von Datei';
@@ -167,7 +167,7 @@ $lang['Select at least one picture'] = 'Mindestens ein Element auswählen';
$lang['Select at least one user'] = 'Mindestens einen Benutzer auswählen';
$lang['Show info'] = 'Info anzeigen';
$lang['Site manager'] = 'Seitenmanager';
-$lang['Status'] = 'Benutzerstatus';
+$lang['Status'] = 'Status';
$lang['Statistics'] = 'Statistik';
$lang['Storage category'] = 'Speicherkategorie';
$lang['Sum of rates'] = 'Summe der Bewertungen';
@@ -184,7 +184,7 @@ $lang['User comments validation'] = 'Kommentare warten auf Freigabe';
$lang['Users'] = 'Benutzer';
$lang['Validate All'] = 'Gebe alle frei';
$lang['Validate'] = 'Freigeben';
-$lang['Validation'] = 'Freigabe durch Admin';
+$lang['Validation'] = 'Freigabe der Kommentare durch den Admin';
$lang['Version'] = 'Version';
$lang['Virtual categories movement'] = 'Verschieben virtueller Kategorien';
$lang['Virtual categories to move'] = 'Wähle eine oder mehrere Virtuelle Kategorien aus um sie zu verschieben';
@@ -208,7 +208,7 @@ $lang['cat_public'] = 'öffentliche Kategorie';
$lang['cat_representant'] = 'Bestimme ein neues zufälliges Vorschaubild';
$lang['cat_security'] = 'Öffentlich / Privat';
$lang['cat_status_title'] = 'Berechtigungen für ausgewählte Kategorien verwalten';
-$lang['cat_upload_title'] = 'Wähle Uploadkategorie aus';
+$lang['cat_upload_title'] = 'gebe Kategorien für den Upload frei';
$lang['cat_virtual_added'] = 'Virtuelle Kategorie hinzugefügt';
$lang['cat_virtual_deleted'] = 'Virtuelle Kategorie gelöscht';
$lang['category'] = 'Kategorie';
@@ -339,7 +339,7 @@ $lang['private'] = 'private';
$lang['properties'] = 'Eigenschaften';
$lang['public'] = 'öffentlich';
$lang['purge never used notification feeds'] = 'Lösche alle noch nicht verschickten Benachrichtigungen';
-$lang['purge sessions'] = 'Löschen Sitzungen';
+$lang['purge sessions'] = 'Lösche Sitzungen';
$lang['randomly represented'] = 'zufälliges Vorschaubild';
$lang['registration_date'] = 'Registrierungsdatum';
$lang['remote_site'] = 'Remote-Standort';
@@ -386,7 +386,7 @@ $lang['title_groups'] = 'Verwalten von Gruppen';
$lang['title_liste_users'] = 'Liste der Benutzer';
$lang['title_picmod'] = 'ändern der Informationen eines Bildes';
$lang['title_thumbnails'] = 'Erstellung von Miniaturansichten';
-$lang['title_update'] = 'Synchronisierung der Datenbank aus den Dateien der';
+$lang['title_update'] = 'Synchronisierung der Datenbank';
$lang['title_upload'] = 'Bilder warten auf Freigabe';
$lang['tn_all'] = 'alle';
$lang['tn_alone_title'] = 'Bilder ohne Thumbnail (JPEG-und PNG-only)';
@@ -466,9 +466,9 @@ $lang['toggle_is_default_group'] = 'Setze die Einstellungen der Gruppe zurück a
$lang['Advanced_features'] = 'Erweiterte Einstellungen';
$lang['Elements_not_linked'] = 'Nicht verlinkte Elemente';
$lang['special_admin_menu'] = 'Erweiterte Verwaltung';
-$lang['Duplicates'] = 'Finde Dateien mit dem gleichen Dateiname';
+$lang['Duplicates'] = 'Finde Dateien mit der gleiche Beschreibung';
-$lang['Overall'] = 'überall';
+$lang['Overall'] = 'Gesamt';
$lang['Year'] = 'Jahr';
$lang['Month'] = 'Monat';
$lang['Day'] = 'Tag';
@@ -575,8 +575,8 @@ $lang['plugins_tab_update'] = 'Plugins auf Updates überprüfen';
$lang['plugins_tab_new'] = 'Zur verfügung stehende Plugins';
$lang['plugins_revisions'] = 'Aktuelle änderungen';
$lang['plugins_delete'] = 'Löschen';
-$lang['plugins_confirm_install'] = 'Sind Sie sicher dass Sie dieses Plugin installieren möchten?';
$lang['plugins_confirm_delete'] = 'Sind Sie sicher dass Sie dieses Plugin löschen möchten?';
+$lang['plugins_confirm_install'] = 'Sind Sie sicher dass Sie dieses Plugin installieren möchten?';
$lang['plugins_confirm_upgrade'] = 'Sind Sie sicher dass Sie dieses Plugin installieren möchten? Stellen sicher, dass die vorhergehende Version nicht deinstalliert werden muss.';
$lang['plugins_upgrade_ok'] = '%s wurde erfolgreich aktualisiert.';
$lang['plugins_install_ok'] = 'Das Plugin wurde erfolgreich installiert.';
@@ -589,21 +589,21 @@ $lang['plugins_check_chmod'] = 'überprüfen Sie die Berechtigungen des Ordners
$lang['plugins_server_error'] = 'Es konnte keine Verbindung zum Server hergestellt werden.';
$lang['Purge compiled templates'] = 'Löschen der kompilierten Templates';
$lang['Caddie is currently empty'] = 'Der Sammelkorb ist derzeit leer.';
-$lang['DEMO'] = 'Demo';
-$lang['HOME'] = 'Home Piwigo';
-$lang['FORUM'] = 'Support';
-$lang['BUGS'] = 'Bugs';
-$lang['EXTENSIONS'] = 'Erweiterungen';
-$lang['WIKI / DOC'] = 'WIKI / Dokumentation';
$lang['conf_upload_title'] = 'Upload';
$lang['Show upload link every time'] = 'Den Uploadlink immer anzeigen';
-$lang['User access level to upload'] = 'Benutzer dürfen Bilder hochladen';
+$lang['User access level to upload'] = 'dürfen Bilder hochladen';
$lang['ACCESS_0'] = 'Frei';
$lang['ACCESS_1'] = 'Alle';
$lang['ACCESS_2'] = 'Mitglieder';
$lang['ACCESS_3'] = 'Administratoren';
$lang['ACCESS_4'] = 'Webmaster';
-$lang['ACCESS_5'] = 'Kein Zugriff';
+$lang['ACCESS_5'] = 'Keine Benutzer';
+$lang['DEMO'] = 'Demo';
+$lang['HOME'] = 'Home Piwigo';
+$lang['FORUM'] = 'Support';
+$lang['BUGS'] = 'Bugs';
+$lang['EXTENSIONS'] = 'Erweiterungen';
+$lang['WIKI / DOC'] = 'WIKI / Dokumentation';
$lang['A new version of Piwigo is available.'] = 'Es steht eine neue Version von Piwigo zur Verfügung.';
$lang['Piwigo Administration'] = 'Verwaltung von Piwigo';
$lang['Piwigo version'] = 'Version von Piwigo';
@@ -617,6 +617,7 @@ $lang['GD library is missing'] = 'die GD-Library ist nicht auf dem Server instal
$lang['conf_extents'] = 'Templates (Modelle)';
$lang['extend_for_templates'] = 'Erweitere für Templates';
$lang['Replacement of original templates'] = 'Ersetzte originale Templates';
+
$lang['Replacers'] = 'Veränderte (Templates geändert)';
$lang['Original templates'] = 'Originales Templates';
$lang['Optional URL keyword'] = 'Optionale Parameter in der URL';
@@ -625,21 +626,21 @@ $lang['Optimizations completed'] = 'Alle Optimierungen wurden erfolgreich abgesc
$lang['Optimizations errors'] = 'Einige Optimierungen endeten mit Fehlern.';
$lang['delete this comment'] = 'Diesen Kommentar löschen';
$lang['link_info_image'] = 'Informationen ändern';
-$lang['edit category informations'] = 'bearbeiten die Informationen in dieser Kategorie';
+$lang['edit category informations'] = 'Kategorieeigenschaften und -beschreibung bearbeiten';
$lang['nothing'] = 'nichts';
-$lang['overrides existing values with empty ones'] = 'überschreibt vorhandene Werte mit leeren';
-$lang['manage image ranks'] = 'verwaltung der Reihenfolge der Bilder';
+$lang['overrides existing values with empty ones'] = 'Löscht alle Werte in der Datenbank !! (filesize, width, height, high_filesize, date_creation, keywords, date_creation, author, name, comment)';
+$lang['manage image ranks'] = 'Verwaltung der Reihenfolge der Bilder';
$lang['Manage image ranks'] = 'Verwalten Sie die Reihenfolge der Bilder';
$lang['Edit ranks'] = 'Die Reihenfolge ändern';
-$lang['No element in this category'] = 'Kein Eintrag in dieser Kategorie';
+$lang['No element in this category'] = 'Kein Element in dieser Kategorie';
$lang['Images manual order was saved'] = 'Die manuelle Reihenfolge der Bilder wurde gespeichert';
$lang['ranks'] = 'Reihenfolge';
$lang['Drag to re-order'] = 'Klicken und Ziehen um eine neue Reihenfolge festzulegen';
-$lang['Unable to retrieve server informations since allow_url_fopen is disabled.'] = 'Es konnte keine Verbindung zum Server, da die Funktion allow_url_fopen deaktiviert ist.';
+$lang['Unable to retrieve server informations since allow_url_fopen is disabled.'] = 'Es konnte keine Verbindung zum Server hergestellt werden da die Funktion allow_url_fopen deaktiviert ist.';
$lang['Quick Local Synchronization'] = 'Schnelle Synchronisierung';
$lang['No photo can be deleted'] = 'Kein Foto kann gelöscht werden';
-$lang['Note: Only deletes photos added with pLoader'] = 'Bitte beachten: Nur über pLoader Fotos entfernt werden können';
-$lang['Delete selected photos'] = 'Fotos löschen';
+$lang['Note: Only deletes photos added with pLoader'] = 'Bitte beachten: Nur über pLoader hochgeladene Fotos können damit entfernt werden';
+$lang['Delete selected photos'] = 'Lösche ausgewählte Fotos';
$lang['%d photo was deleted'] = '%d Foto wurde gelöscht';
$lang['%d photos were deleted'] = '%d Fotos wurden gelöscht';
$lang['Bound template'] = 'Verbundenes Template';
@@ -648,7 +649,7 @@ $lang['Released on'] = 'Veröffentlicht am';
$lang['Number of downloads'] = 'Anzahl der Downloads';
// --------- Starting below: New or revised $lang ---- from Colibri
$lang['Piwigo Announcements Newsletter'] = 'Piwigo Newsletter';
-$lang['Subscribe to Piwigo Announcements Newsletter'] = 'Bleibe in Verbindung mit dem, abonniere den Piwigo Newsletter. Du bekommst eine E-Mail wenn eine neue Version verfügbar ist (manchmal wird ein Bug gefixt, der die Sicherheit der Piwigo erhöht, es ist dann wichtig, das Upgrade zu installieren) und wenn es wichtige Ereignisse rund um das Projekt gibt. Es sind nur ein paar E-Mails im Jahr.';
+$lang['Subscribe to Piwigo Announcements Newsletter'] = 'Abonniere den Piwigo Newsletter. Du bekommst eine E-Mail wenn eine neue Version verfügbar ist (manchmal wird ein Bug gefixt, der die Sicherheit der Piwigo erhöht, es ist dann wichtig das Upgrade zu installieren) und wenn es wichtige Ereignisse rund um das Projekt gibt. Es sind nur ein paar E-Mails im Jahr.';
$lang['Subscribe %s'] = 'Abonnieren %s';
$lang['Subscribe %s to Piwigo Announcements Newsletter'] = 'Abonniere %s zum Piwigo Newsletter';
$lang['Purge search history'] = 'Lösche die Such-Historie';
diff --git a/language/de_DE/common.lang.php b/language/de_DE/common.lang.php
index 8a53d433b..5e4f92c29 100644
--- a/language/de_DE/common.lang.php
+++ b/language/de_DE/common.lang.php
@@ -105,7 +105,7 @@ $lang['RSS feed'] = 'RSS-Feed';
$lang['Rate'] = 'Bewertung';
$lang['Register'] = 'Registrieren';
$lang['Registration'] = 'Registrierung';
-$lang['Related tags'] = 'Tags mit';
+$lang['Related tags'] = 'mit den Tags';
$lang['Reset'] = 'Abbrechen';
$lang['Retrieve password'] = 'Passwort abrufen';
$lang['Search rules'] = 'Suchkriterien';
@@ -129,12 +129,12 @@ $lang['about_page_title'] = 'über Piwigo';
$lang['access_forbiden'] = 'Sie sind nicht berechtigt die gewünschte Seite aufzurufen';
$lang['add to caddie'] = 'in den Sammelkorb';
$lang['add_favorites_hint'] = 'Dieses Bild zu Ihren Favoriten hinzugefügt';
-$lang['admin'] = 'Verwaltung';
+$lang['admin'] = 'Administration';
$lang['adviser_mode_enabled'] = 'Berater-Modus aktiv';
$lang['all'] = 'alle';
$lang['ascending'] = 'wachsende';
$lang['author(s) : %s'] = 'Autor(en) : %s';
-$lang['auto_expand'] = 'Entwickeln alle Kategorien';
+$lang['auto_expand'] = 'Kategoriebaum immer vollständig sichtbar';
$lang['became available after %s (%s)'] = 'zur Verfügung gestellt nachdem die %s (%s)';
$lang['became available before %s (%s)'] = 'zur Verfügung gestellt, bevor die %s (%s)';
$lang['became available between %s (%s) and %s (%s)'] = 'zur Verfügung gestellt von %s (%s) und das %s (%s)';
@@ -196,7 +196,7 @@ $lang['hint_comments'] = 'Zeige die letzten Kommentare Benutzer';
$lang['hint_customize'] = 'das Aussehen der Galerie';
$lang['hint_search'] = 'Suche';
$lang['home'] = 'Startseite';
-$lang['identification'] = 'Verwaltung';
+$lang['identification'] = 'Identifikation';
$lang['images_available_cpl'] = 'in dieser Kategorie';
$lang['images_available_cat'] = 'in %d Unterkategorie';
$lang['images_available_cats'] = 'in %d Unterkategorien';
@@ -212,10 +212,10 @@ $lang['maxheight'] = 'Maximale Höhe der Bilder';
$lang['maxheight_error'] = 'Die maximale Höhe der Bilder muss mehr als 50';
$lang['maxwidth'] = 'Maximale Breite der Bilder';
$lang['maxwidth_error'] = 'Die Breite der Bilder muss mehr als 50';
-$lang['mode_created_hint'] = 'Anzeigen eines Kalenders nach Erstellungsdatum';
-$lang['mode_flat_hint'] = 'anzuzeigen zu flach die Kategorien und Unterkategorien';
+$lang['mode_created_hint'] = 'zeige einen Kalender nach Erstellungsdatum';
+$lang['mode_flat_hint'] = 'Zeige alle Bilder inclusive der Unterkategorien';
$lang['mode_normal_hint'] = 'Zurück zur normalen Ansicht';
-$lang['mode_posted_hint'] = 'Anzeigen eines Kalenders von Datum hinzugefügt';
+$lang['mode_posted_hint'] = 'zeige einen Kalender nach Einstellungsdatum';
$lang['month'][10] = 'Oktober';
$lang['month'][11] = 'November';
$lang['month'][12] = 'Dezember';
diff --git a/language/de_DE/help/maintenance.html b/language/de_DE/help/maintenance.html
index 33ec7d164..d0591bf1d 100644
--- a/language/de_DE/help/maintenance.html
+++ b/language/de_DE/help/maintenance.html
@@ -47,5 +47,9 @@ gehen verloren, und es gibt keine Möglichkeit, diese wiederherzustellen.</li>
Abgelaufene ..</li>
<li><strong>Löschen von Arbeitsabläufen Anmeldung genutzt</strong></li>
+
+ <li><strong>Lösche die Such-Historie</strong></li>
+
+ <li><strong>Löschen der kompilierten Templates</strong></li>
</ul> \ No newline at end of file
diff --git a/language/en_UK/help/maintenance.html b/language/en_UK/help/maintenance.html
index d33074063..a0d47f7a3 100644
--- a/language/en_UK/help/maintenance.html
+++ b/language/en_UK/help/maintenance.html
@@ -43,4 +43,7 @@ information from database make you save disk space.</p>
<li><strong>Purge never used notification feeds</strong></li>
+ <li><strong>Purge search history</strong></li>
+
+ <li><strong>Purge compiled templates</strong></li>
</ul>
diff --git a/language/es_AR/iso.txt b/language/es_AR/iso.txt
index aadee730d..6a4c7be24 100644
--- a/language/es_AR/iso.txt
+++ b/language/es_AR/iso.txt
@@ -1 +1 @@
-Castellano [AR] \ No newline at end of file
+Español [AR]
diff --git a/language/es_ES/help/maintenance.html b/language/es_ES/help/maintenance.html
index 6d82c8c17..7af09234f 100644
--- a/language/es_ES/help/maintenance.html
+++ b/language/es_ES/help/maintenance.html
@@ -13,15 +13,26 @@ class="pwgScreen">Administración, Categorías, Sincronizar</span> O sobre la pa
(accesible desde la página de visualización de una imagen <span
class="pwgScreen">picture.php</span>).</li>
- <li><strong>Purgar la reseña histórica:</strong> Suprime todas las líneas de la mesa <code>history</code>. La pantalla <span
-class="pwgScreen">Administración, Classes de matemáticas superiores, Reseña histórica</span> no muestres entonces ninguna información sobre el pasado. <em>Atención</em>: todos los datos estarán perdidos y no existe ningún medio de recuperarlas.</li>
+ <li><strong>Reparar y optimizar la base de datos :</strong>
+Para cada mesa de la base de datos Piwigo las operaciones de ré-planificación, de reparación y de optimización son efectuadas.
+ </li>
+
+</ul>
+
+<ul>
+ <li><strong>Vaciar el histórico :</strong>
+Suprime todas las líneas de la mesa <code>history</code>. La pantalla <span class="pwgScreen">
+Administración, Especiales, histórico</span> no muestra entonces ninguna información sobre el pasado. <Em>Atención</em>: todos los datos estarán perdidos y no existe ningún medio de recuperarlas.
+ </li>
+
+ <li><strong>Vaciar el sumario del histórico</strong>Suprime todas las informaciones recapitulativas (obtenidas a partir del detalle de la reseña histórica).</li>
<li><strong>Purgar las sesiones:</strong> Suprimir las sesiones espiradas..</li>
<li><strong>Purgar los flujos jamás utilizados de notificación</strong></li>
- <li><strong>Reparar y optimizar la base de datos:</strong>
-Para cada mesas de la base de datos PhpWegGallery, las operaciones de ré-planificación, de reparación y de optimización son efectuadas.
- </li>
-
+ <li><strong>Purgar la reseña histórica de las búsquedas</strong></li>
+
+ <li><strong>Purgar el templates compilado</strong></li>
+
</ul>
diff --git a/language/fr_FR/help/maintenance.html b/language/fr_FR/help/maintenance.html
index 06fe13fa2..00370d2d6 100644
--- a/language/fr_FR/help/maintenance.html
+++ b/language/fr_FR/help/maintenance.html
@@ -1,51 +1,52 @@
<h2>Maintenance</h2>
-<p>Pour optimiser le temps de génération des pages, Piwigo utilise
-des informations en cache. Par exemple, au lieu de compter le nombre
-d'éléments contenus dans chaque catégorie à chaque rechargement de page,
-cette information est stockée dans la base de données. En théorie, cette
-information doit toujours être correcte, mais parfois une erreur peut
-survenir et l'information en cache devient fausse.</p>
+<p>Pour optimiser le temps de génération des pages, Piwigo utilise des informations en cache.
+ Par exemple, au lieu de compter le nombre d'éléments contenus dans chaque catégorie à
+ chaque rechargement de page, cette information est stockée dans la base de données.
+ En théorie, cette information doit toujours être correcte, mais parfois une erreur peut
+ survenir et l'information en cache devient fausse.</p>
-<p>Des informations deviennent inutiles avec le temps. Les supprimer de la
-base de données libère de l'espace disque.</p>
+<p>Des informations deviennent inutiles avec le temps.
+Les supprimer de la base de données libère de l'espace disque.</p>
<ul>
- <li><strong>Mettre à jour les informations des catégories:</strong> Pour
-chaque catégorie, les informations à controller et/ou mettre à jour sont les
-suivantes: liste des catégories mères, nombre d'éléments, date du dernier
-élément, position parmi les catégories soeur, position dans l'arbre complet
-des catégories. Cette action vérifie également la cohérence des
-représentants.</li>
-
- <li><strong>Mettre à jour les informations des images:</strong> Pour
-chaque image, les informations à mettre à jour sont: chemin complet vers le
-fichier, note moyenne. <em>Attention</em>: ne pas confondre avec les
-méta-données qui sont synchronisées sur l'écran <span
-class="pwgScreen">Administration, Catégories, Synchroniser</span> ou sur
-l'écran <span class="pwgScreen">Modifier les informations d'une image</span>
-(accessible depuis la page de visualisation d'une image <span
-class="pwgScreen">picture.php</span>).</li>
-
- <li><strong>Réparer et optimiser la base de données:</strong>
-Pour chaque tables de la base de données PhpWegGallery, les opérations de ré-ordonnancement, de réparation et d'optimisation sont effectuées.
+ <li><strong>Mettre à jour les informations des catégories :</strong>
+ Pour chaque catégorie, les informations à contrôler et/ou mettre à jour sont les suivantes :
+ liste des catégories mères, nombre d'éléments, date du dernier élément, position parmi les
+ catégories soeurs, position dans l'arbre complet des catégories. Cette action vérifie
+ également la cohérence des représentants.</li>
+
+ <li><strong>Mettre à jour les informations des images :</strong>
+Pour chaque image, les informations à mettre à jour sont : chemin complet vers le
+fichier, note moyenne. Attention : ne pas confondre avec les méta-données qui sont
+synchronisées sur l'écran <span class="pwgScreen">Administration, Catégories, Synchroniser</span>
+ou sur l'écran <span class="pwgScreen">Modifier les informations d'une image</span>
+(accessible depuis la page de visualisation d'une image <span class="pwgScreen">picture.php</span>).</li>
+
+ <li><strong>Réparer et optimiser la base de données :</strong>
+Pour chaque table de la base de données Piwigo les opérations de ré-ordonnancement, de réparation et d'optimisation sont effectuées.
</li>
</ul>
<ul>
- <li><strong>Purger le detail de l'historique:</strong> Supprime toutes les lignes de
-la table <code>history</code>. L'écran <span
-class="pwgScreen">Administration, Spéciales, Historique</span> ne montre alors
-plus aucune information sur le passé. <em>Attention</em>: toutes les données
-seront perdues et il n'existe aucun moyen de les récupérer.</li>
+ <li><strong>Purger le détail de l'historique :</strong>
+Supprime toutes les lignes de la table <code>history</code>. L'écran <span class="pwgScreen">
+Administration, Spéciales, Historique</span> ne montre alors plus aucune information sur le passé.
+<em>Attention</em> : toutes les données seront perdues et il n'existe aucun moyen de les récupérer.
+ </li>
- <li><strong>Purger le sommaire de l'historique:</strong> Supprime toutes les informations sommaires (obtenues à partir de detail de l'historique) .</li>
+ <li><strong>Purger le sommaire de l'historique :</strong>
+Supprime toutes les informations récapitulatives (obtenues à partir du détail de l'historique).
+ </li>
- <li><strong>Purger les sessions:</strong> Supprimer les sessions
-expirées..</li>
+ <li><strong>Purger les sessions :</strong> Supprimer les sessions expirées..</li>
<li><strong>Purger les flux de notification jamais utilisés</strong></li>
+
+ <li><strong>Purger l'historique des recherches</strong></li>
+
+ <li><strong>Purger les templates compilés</strong></li>
</ul>
diff --git a/language/hr_HR/help/maintenance.html b/language/hr_HR/help/maintenance.html
index d33074063..a0d47f7a3 100644
--- a/language/hr_HR/help/maintenance.html
+++ b/language/hr_HR/help/maintenance.html
@@ -43,4 +43,7 @@ information from database make you save disk space.</p>
<li><strong>Purge never used notification feeds</strong></li>
+ <li><strong>Purge search history</strong></li>
+
+ <li><strong>Purge compiled templates</strong></li>
</ul>
diff --git a/language/it_IT/help/maintenance.html b/language/it_IT/help/maintenance.html
index 15f858afa..480a1614f 100644
--- a/language/it_IT/help/maintenance.html
+++ b/language/it_IT/help/maintenance.html
@@ -47,5 +47,9 @@ informazioni del sommario (ottenute dal dettaglio della cronologia) .</li>
scadute.</li>
<li><strong>Ripulire i flussi di notifica mai usati</strong></li>
+
+ <li><strong>Ripulire la cronologia delle ricerche</strong></li>
+
+ <li><strong>Ripulire i templates compilati</strong></li>
</ul> \ No newline at end of file
diff --git a/language/ja_JP/help/maintenance.html b/language/ja_JP/help/maintenance.html
index a0803b42b..7c6cf27c2 100644
--- a/language/ja_JP/help/maintenance.html
+++ b/language/ja_JP/help/maintenance.html
@@ -35,5 +35,9 @@
<li><strong>セッションを削除する:</strong> 期限切れのユーザセッションを削除します。</li>
<li><strong>未使用の通知フィードを削除する</strong></li>
+
+ <li><strong>Purge search history</strong></li>
+
+ <li><strong>コンパイル済みテンプレートを削除する</strong></li>
</ul> \ No newline at end of file
diff --git a/language/nl_NL/help/maintenance.html b/language/nl_NL/help/maintenance.html
index f444ce9eb..45b4593cc 100644
--- a/language/nl_NL/help/maintenance.html
+++ b/language/nl_NL/help/maintenance.html
@@ -33,5 +33,9 @@ maar soms kan een fout optreden en de cache informatie is dan foutief.</p>
<li><strong>Filter sessies:</strong> Verwijder verlopen gebruikers sessies.</li>
<li><strong>Filter nooit gebruikte meldingen</strong></li>
+
+ <li><strong>Purge search history</strong></li>
+
+ <li><strong>Purge samengestelde sjablonen</strong></li>
</ul>
diff --git a/language/pl_PL/help/maintenance.html b/language/pl_PL/help/maintenance.html
index 07c4777ca..209ce2842 100644
--- a/language/pl_PL/help/maintenance.html
+++ b/language/pl_PL/help/maintenance.html
@@ -26,5 +26,9 @@
<li><strong>Wyczyść sesje:</strong> Usuwa wygaśnięte sesje użytkowników.</li>
<li><strong>Wyczyść nigdy nie używane RSS feed</strong></li>
+
+ <li><strong>Purge search history</strong></li>
+
+ <li><strong>Usuń skompilowane szablony</strong></li>
</ul>
diff --git a/language/ru_RU/help/maintenance.html b/language/ru_RU/help/maintenance.html
index a161a3b7d..38f5b9ff9 100644
--- a/language/ru_RU/help/maintenance.html
+++ b/language/ru_RU/help/maintenance.html
@@ -39,5 +39,9 @@
<li><strong>Очистить сессии:</strong> Удаляются истекшие пользовательские сеансы.</li>
<li><strong>Очистить неиспользуемые каналы уведомлений</strong></li>
+
+ <li><strong>Purge search history</strong></li>
+
+ <li><strong>Очистить созданные шаблоны</strong></li>
</ul>
diff --git a/picture.php b/picture.php
index 28e11e3e3..3b4753587 100644
--- a/picture.php
+++ b/picture.php
@@ -309,6 +309,8 @@ UPDATE '.CATEGORIES_TABLE.'
}
case 'delete_comment' :
{
+ check_pwg_token();
+
if (isset($_GET['comment_to_delete'])
and is_numeric($_GET['comment_to_delete'])
and is_admin() and !is_adviser() )
diff --git a/plugins/LocalFilesEditor/language/de_DE/plugin.lang.php b/plugins/LocalFilesEditor/language/de_DE/plugin.lang.php
index 7e4edc84a..06d24f08a 100644
--- a/plugins/LocalFilesEditor/language/de_DE/plugin.lang.php
+++ b/plugins/LocalFilesEditor/language/de_DE/plugin.lang.php
@@ -26,31 +26,31 @@ $lang['locfiledit_onglet_css'] = 'CSS';
$lang['locfiledit_onglet_tpl'] = 'Vorlagen';
$lang['locfiledit_onglet_lang'] = 'Sprachen';
$lang['locfiledit_onglet_plug'] = 'Persönliche Plugin';
-$lang['locfiledit_cant_save'] = 'Aktuelle Datei ist nicht änderbar. Prüfen Sie ob ein Verzeichnis "include/" ist änderbar (chmod)';
-$lang['locfiledit_newfile'] = 'Die Datei ist nicht vorhanden und wird bei der Registrierung von localfile Editor';
-$lang['locfiledit_save_config'] = 'Datei geschrieben erfolgreich.';
-$lang['locfiledit_show_default'] = 'Anzeige Referenz-Datei: ';
-$lang['locfiledit_save_bak'] = 'Backup-Kopie wird auf Speichern.';
+$lang['locfiledit_cant_save'] = 'Aktuelle Datei ist nicht überschreibbar. Prüfen Sie ob Schreibrechte für das Verzeichnis "include/" bestehen (chmod)';
+$lang['locfiledit_newfile'] = 'Die Datei ist nicht vorhanden und wird erstellt vom Localfiles Editor';
+$lang['locfiledit_save_config'] = 'Datei erfolgreich geschrieben.';
+$lang['locfiledit_show_default'] = 'Zeige Referenz-Datei: ';
+$lang['locfiledit_save_bak'] = 'Backup-Kopie wird beim Speichern erstellt.';
$lang['locfiledit_saved_bak'] = 'Backup-Datei erstellt (%s)';
$lang['locfiledit_save_file'] = 'Datei speichern';
-$lang['locfiledit_choose_file'] = 'Wählen die Datei auf der bearbeitet werden';
+$lang['locfiledit_choose_file'] = 'Wählen Sie eine Datei zum bearbeiten aus';
$lang['locfiledit_edit'] = 'Bearbeiten';
$lang['locfiledit_restore'] = 'Wiederherstellung der Backup-Datei';
$lang['locfiledit_restore_confirm'] = 'Bitte bestätigen?
Wiederherstellung wird nicht wirksam sein bis zum nächsten speichern.';
-$lang['locfiledit_bak_loaded1'] = 'Backup-Datei geladen werden.';
-$lang['locfiledit_bak_loaded2'] = 'Sie müssen Datei speichern zur Wiederherstellung es.';
+$lang['locfiledit_bak_loaded1'] = 'Backup-Datei geladen.';
+$lang['locfiledit_bak_loaded2'] = 'Sie müssen die Datei speichern um sie wiederherstellen zu können.';
$lang['locfiledit_syntax_error'] = 'Syntax-Fehler! Datei kann nicht gespeichert werden.';
-$lang['locfiledit_enable_editarea'] = 'Aktivieren Bearbeiten Bereich';
-$lang['locfiledit_disable_editarea'] = 'Deaktivieren Bearbeiten Bereich';
-$lang['locfiledit_new_tpl'] = 'Erstellen eine neue Datei';
+$lang['locfiledit_enable_editarea'] = 'Aktiviere den Bearbeitungsbereich';
+$lang['locfiledit_disable_editarea'] = 'Deaktiviere den Bearbeitungsbereich';
+$lang['locfiledit_new_tpl'] = 'Erstelle eine neue Datei';
$lang['locfiledit_new_filename'] = 'Dateiname';
$lang['locfiledit_model'] = 'Modell';
$lang['locfiledit_empty_page'] = 'Leere Seite';
-$lang['locfiledit_parent_directory'] = 'Eltern-Verzeichnis';
-$lang['locfiledit_filename_error'] = 'Verboten Zeichen in Dateinamen.';
+$lang['locfiledit_parent_directory'] = 'Übergeordnetes Verzeichnis';
+$lang['locfiledit_filename_error'] = 'Verbotene Zeichen im Dateinamen.';
$lang['locfiledit_file_already_exists'] = 'Datei ist bereits vorhanden.';
$lang['locfiledit_model_error'] = 'Sie müssen ein Modell wählen.';
-/* TODO */ $lang['locfiledit_empty_filename'] = 'You must fill file name.';
+$lang['locfiledit_empty_filename'] = 'Sie müssen einen Dateiname eingeben.';
?> \ No newline at end of file
diff --git a/plugins/add_index/language/de_DE/plugin.lang.php b/plugins/add_index/language/de_DE/plugin.lang.php
index dbcb9ac61..7af34f1a2 100644
--- a/plugins/add_index/language/de_DE/plugin.lang.php
+++ b/plugins/add_index/language/de_DE/plugin.lang.php
@@ -21,19 +21,19 @@
// | USA. |
// +-----------------------------------------------------------------------+
-$lang['Add_Index'] = 'Hinzufügen "Index"-Dateien';
-$lang['Advanced_Add_Index'] = 'Hinzufügen und überschreiben "Index"-Dateien für alle lokalen Standorte';
-$lang['Manager_Add_Index'] = 'Hinzufügen "Index"';
+$lang['Add_Index'] = 'Hinzufügen von "Index"-Dateien in jeden Ordner';
+$lang['Advanced_Add_Index'] = 'Hinzufügen und überschreiben von "Index"-Dateien in allen Ordnern';
+$lang['Manager_Add_Index'] = 'Hinzufügen von "Index"-Dateien';
$lang['add_index_file_copied'] = '%s kopiert';
$lang['add_index_file_not_copied'] = '%s nicht kopiert';
-$lang['add_index_not_local_site'] = '%s [%d] ist eine Remote-Website. Es ist kompatibel mit hinzufügen "Index"-Dateien.';
+$lang['add_index_not_local_site'] = '%s [%d] ist eine Remote-Website. Sie ist kompatibel mit den hinzugefügten "Index"-Dateien.';
$lang['add_index_nb_copied_file'] = '%d Datei kopiert';
$lang['add_index_nb_copied_files'] = '%d Dateien kopiert';
$lang['add_index_nb_skipped_file'] = '%d Datei übersprungen';
$lang['add_index_nb_skipped_files'] = '%d Dateien übersprungen';
$lang['add_index_nb_not_copied_file'] = '%d Datei nicht kopiert';
$lang['add_index_nb_not_copied_files'] = '%d Dateien nicht kopiert';
-$lang['add_index_src_file_dont_exists'] = 'Quelldatei %s ist nicht vorhanden, kann nicht duplizieren diese Datei';
+$lang['add_index_src_file_dont_exists'] = 'Quelldatei %s ist nicht vorhanden, kann nicht kopiert werden';
?>
diff --git a/plugins/admin_advices/language/de_DE/description.txt b/plugins/admin_advices/language/de_DE/description.txt
index 1e2ea6bf7..d42f15835 100644
--- a/plugins/admin_advices/language/de_DE/description.txt
+++ b/plugins/admin_advices/language/de_DE/description.txt
@@ -1 +1 @@
-Ausgabe von Empfehlungen (auf englisch) für die Administratorseite. \ No newline at end of file
+Ausgabe von Empfehlungen für die Administratorseite. \ No newline at end of file
diff --git a/plugins/admin_advices/language/de_DE/plugin.lang.php b/plugins/admin_advices/language/de_DE/plugin.lang.php
index 2eea2ef5c..86bf385f4 100644
--- a/plugins/admin_advices/language/de_DE/plugin.lang.php
+++ b/plugins/admin_advices/language/de_DE/plugin.lang.php
@@ -22,65 +22,65 @@
// +-----------------------------------------------------------------------+
// --------- Starting below: New or revised $lang ---- from Butterfly (1.8)
-$lang['An_advice_about'] = 'Ein neues Gutachten über';
+$lang['An_advice_about'] = 'Ein neuer Tipp für';
$lang['contribute'] = 'wie Sie beitragen können';
$lang['navigation'] = 'Navigation';
$lang['Metadata'] = 'Metadaten';
$lang['current'] = 'Aktueller Wert: %s.';
-$lang['TN-height&width'] = 'Thumbnail Höhe und Breite müssen gleich sein.';
+$lang['TN-height&width'] = 'Thumbnailhöhe und Breite müssen gleich sein.';
$lang['Adv_case'][0] = array( /* **contribute */
- 'Wenn Sie mit Ihrem eigenen Beitrag "Trick", danke für die Veröffentlichung',
- 'auf den Forum von Piwigo (oder durch private Nachricht an einen der Entwickler),',
- 'und wir würden gerne um es innerhalb nächste Veröffentlichung.', );
+ 'Wenn Sie mit Ihrem eigenen "Tipp" beitragen wollen, veröffentlichen Sie ihn bitte',
+ 'im Forum von Piwigo (oder durch eine private Nachricht an einen der Entwickler),',
+ 'und wir werden ihn in der nächsten Version berücksichtigen.', );
$lang['Adv_case'][1] = array( /* newcat_default_status */
- 'Versuchen $conf[\'newcat_default_status\'] = \'private\',',
- 'Sie werden mehr Zeit haben zu beschreiben und überprüfen Sie Ihre Bilder.',
- 'Zeit zu entscheiden zwischen privaten und öffentlichen Status.',
- 'Wenn Sie privat wählen, Zeit zu vertreiben Genehmigung.',
+ 'Versuchen Sie $conf[\'newcat_default_status\'] = \'private\', zu setzen',
+ 'Sie haben dann mehr Zeit, ihren neuen Bildern Beschreibungen zuzufügen und sie zu überprüfen.',
+ 'Zeit, zu entscheiden zwischen privaten und öffentlichen Status.',
+ 'Wenn Sie privat wählen, kann die Kategorie erst einmal niemand einsehen bis Sie sie endgültig freigeben.',
'Ihre neue Kategorie wird gut vorbereitet.', );
$lang['Adv_case'][2] = array( /* slideshow_period */
- 'Dieser Wert könnte zu klein für niedrige Band-Verbindungen.',
- 'Denken Sie an höheren Wert wie 4.', );
+ 'Dieser Wert könnte zu klein für Schmalbandverbindungen.',
+ 'Denken Sie an einen höheren Wert wie z.B. 4.', );
$lang['Adv_case'][3] = array( /* file_ext */
- 'Sollte nie enthält Erweiterungen die ausgeführt werden können',
+ 'Sollte nie Erweiterungen von ausführbaren Dateien enthalten',
'auf der Server-Seite wie *.php, *.php, *.asp,...', );
$lang['Adv_case'][4] = array( /* show_iptc_mapping */
'Zeige die IPTC-Daten von Ihrem Bild:',
- ' 1 - Kopieren Sie eines Ihrer jpg Bilder (eine öffentliches) in ./tools/',
- ' 2 - Benennen Sie es als sample.jpg.',
- ' 3 - Führen Sie ./tools/metadata.php',
+ ' 1 - Kopieren Sie eines Ihrer jpg Bilder (ein öffentliches) in den Ordner ./tools/',
+ ' 2 - Benennen Sie es um in sample.jpg.',
+ ' 3 - Führen Sie ./tools/metadata.php aus',
' 4 - Ergebnisse analysieren um festzustellen welche IPTC-Felder nützlich sein könnte für Ihre Besucher.',
- 'Anfänger würde es vorziehen $conf[\'show_iptc\'] = false,',
- 'Fortgeschrittene Benutzer würde kümmern $lang Werte und Auswirkungen auf die Vorlagen.', );
+ 'Anfängern empfehlen wir $conf[\'show_iptc\'] = false zu setzen,',
+ 'Fortgeschrittene Benutzer können die Werte von $lang analysieren und deren Auswirkungen auf die Vorlagen.', );
$lang['Adv_case'][5] = array( /* top_number */
- 'Dieser Wert ist vielleicht zu hoch für niedrige Verbindungen hat, kann man 25-50 abhängig von Ihrem Thumbnail-Größen.', );
+ 'Dieser Wert ist vielleicht zu hoch für Schmalbandverbindungen, 25-50 abhängig von der Größe der Thumbnails dürften gut sein.', );
$lang['Adv_case'][6] = array( /* top_number */
- 'Ein? Es könnte sein zu niedrig für Zufalls-Bilder hat kann man 5-10 abhängig von Ihrem Thumbnail-Größen.', );
+ 'Eins? Es könnte sein zu niedrig für Zufalls-Bilder, 5-10 abhängig von der Größe der Thumbnails dürften gut sein.', );
$lang['Adv_case'][7] = array( /* anti-flood_time */
- 'Für normale Flow-Verarbeitung, Ihr Wert ist wahrscheinlich zu hoch. Angemessenen Wert ist 60 (Standard).' , );
+ 'Für normale Flow-Verarbeitung ist Ihr Wert wahrscheinlich zu hoch. Ein angemessenen Wert ist 60 (Standard).' , );
$lang['Adv_case'][8] = array( /* calendar_datefield */
- 'Autorisierten Werte sind ' ."'date_creation' oder 'date_available'" . ', Sonst können Sie unvorhersehbare Ergebnisse.' , );
+ 'Erlaubte Werte sind ' ."'date_creation' oder 'date_available'" . ', ansonsten bekommen Sie unvorhersehbare Ergebnisse.' , );
$lang['Adv_case'][9] = array( /* calendar_datefield */
- "'date_creation'" . ' ist NICHT gefüllt von jedem aktiviert Verwendung von Metadaten-Mapping Felder aus.',
- 'So aktivieren Metadaten Nutzung <strong>oder</strong> ändern bis zu $conf[\'calendar_datefield\']=\'date_available\'',
- 'Aktivieren Sie Metadaten-Nutzung wie Sie wollen: ',
- '1 - $conf[\'use_iptc\'] = true, or $conf[\'use_exif\'] = true, jeder Weg wird korrekt.',
+ "'date_creation'" . ' ist NICHT nutzbar, da keine Metadaten verarbeitet werden.',
+ 'So aktivieren Sie die Metadatennutzung <strong>oder</strong> ändern Sie $conf[\'calendar_datefield\']=\'date_available\'',
+ 'Aktivieren Sie Metadaten-Nutzung wenn Sie wollen: ',
+ '1 - $conf[\'use_iptc\'] = true, oder $conf[\'use_exif\'] = true, alle beiden Möglichkeiten werden unterstützt.',
'2 - Jeweils zu den einzelnen Änderungen:',
'$conf[\'use_iptc_mapping\'] = array( ..., \'date_creation\' => \'2#055\', ...',
'oder/und:',
'$conf[\'use_exif_mapping\'] = array(\'date_creation\' => \'DateTimeOriginal\', ...',
- '3 - Schließlich, eine neue Aufgabe liegt an Ihnen: Metadata-Synchronisierung.', );
+ '3 - Schließlich liegt eine neue Aufgabe vor Ihnen: Metadata-Synchronisierung.', );
$lang['Adv_case'][10] = array( /* newcat_default_visible */
- 'Nicht sinnvoll, privaten Status ist besser, so dass Code $conf[\'newcat_default_visible\'] = true,', );
+ 'Nicht sinnvoll, Voreinstellung auf privaten Status ist besser, ändern Sie den Code $conf[\'newcat_default_visible\'] = true,', );
$lang['Adv_case'][11] = array( /* level_separator */
- 'Probieren Sie etwas anderes wie $conf[\'level_separator\'] = \'+ \',', );
+ 'Probieren Sie etwas anderes wie z.B. $conf[\'level_separator\'] = \'+ \',', );
$lang['Adv_case'][12] = array( /* paginate_pages_around */
- 'Üblichen Bereich liegt zwischen 2 und 5. Mehr leichter, wählen Sie $conf[\'paginate_pages_around\'] = 2, ',
- 'So bieten große Sprung, wählen Sie $conf[\'paginate_pages_around\'] = 7,', );
+ 'Der übliche Bereich liegt zwischen 2 und 5. Mehr ist leichter, wählen Sie $conf[\'paginate_pages_around\'] = 2, ',
+ 'So bieten Sie große Sprünge an, ändern Sie $conf[\'paginate_pages_around\'] = 7,', );
$lang['Adv_case'][13] = array( /* tn_width */
- 'Sollte eine enge Wert auf Ihre Thumbnail-Breite. Üblichen Bereich liegt zwischen 96 und 150, über $conf[\'tn_width\'] = 128,', );
+ 'Stellt die Breite ihrer zu erstellenden Thumbnails ein. Der üblichen Bereich liegt zwischen 96 und 150 und wird so eingestellt: $conf[\'tn_width\'] = 128,', );
$lang['Adv_case'][14] = array( /* tn_height */
- 'Sollte eine enge Wert auf Ihre Thumbnail-Höhe. Üblichen Bereich liegt zwischen 96 und 150, über $conf[\'tn_height\'] = 128,', );
+ 'Stellt die Höhe ihrer zu erstellenden Thumbnails ein. Der üblichen Bereich liegt zwischen 96 und 150 und wird so eingestellt: $conf[\'tn_height\'] = 128,', );
$lang['Adv_case'][15] = array( /* tn_height */
'Thumbnail Höhe und Breite müssen gleich sein.',
'Wählen $conf[\'tn_height\'] = $conf[\'tn_width\'],',
@@ -88,58 +88,60 @@ $lang['Adv_case'][15] = array( /* tn_height */
$lang['Adv_case'][16] = array( /* show_version */
'Aus Sicherheitsgründen, setzen Sie bitte $conf[\'show_version\'] = false,', );
$lang['Adv_case'][17] = array( /* show_thumbnail_caption */
- 'Für eine leichtere Galerie müssen nur einen Blick bis zu $conf[\'show_thumbnail_caption\'] = false,', );
+ 'Für eine leichtere Galerie werfen Sie einen Blick auf $conf[\'show_thumbnail_caption\'] = false,', );
$lang['Adv_case'][18] = array( /* show_picture_name_on_title */
- 'Für eine leichtere Galerie müssen nur einen Blick bis zu $conf[\'show_picture_name_on_title\'] = false,', );
-
-$lang['Adv_case'][20] = array( /* allow_random_representative */
- 'Verlassen $conf[\'allow_random_representative\'] = true, ',
- 'aber analysieren, wenn Sie können verhindern, dass für Performance-Gründen.' , );
+ 'Für eine leichtere Galerie werfen Sie einen Blick auf $conf[\'show_picture_name_on_title\'] = false,', );
+$lang['Adv_case'][19] = array( /* tags_default_display_mode */
+ '\'cloud\' standartmäßig wird die Bedeutung der Tags über die Schriftgröße angezeigt.',
+ 'Sie können die Tag-Seite so ändern, $conf[\'tags_default_display_mode\'] = \'letters\'', );
+ $lang['Adv_case'][20] = array( /* allow_random_representative */
+ 'Lassen Sie den Wert stehen $conf[\'allow_random_representative\'] = true, ',
+ 'aber analysieren sie die Performance.' , );
$lang['Adv_case'][21] = array( /* prefix_thumbnail */
- 'Seien Sie vorsichtig, Ihre $conf[\'prefix_thumbnail\'] ist NICHT Standard.',
- 'Ändern sich NICHT, es sei denn, Ihr Thumbnails sind NICHT sichtbar.',
- 'Entfernten Standort übertragen verwenden Sie ein anderes Präfix aber create_listing_file.php muss geändert werden.',
+ 'Seien Sie vorsichtig, Ihr Wert $conf[\'prefix_thumbnail\'] ist NICHT Standard.',
+ 'Ändern Sie ihn NICHT, es sei denn, Ihr Thumbnails sind NICHT sichtbar.',
+ 'Wenn auf entfernten Standorten ein anderes Präfix werwendet wird, ändern Sie es in der jeweiligen Datei create_listing_file.php.',
'Sie erhalten eine Warnmeldung während der Synchronisierung in diesem Fall.',
- 'Versuchen Sie den gleichen Präfix durch alle Ihre Websites entweder lokal oder distants.',
+ 'Versuchen Sie den gleichen Präfix in all ihren lokalen wie entfernten Websites zu verwenden.',
'Halten Sie diesen Parameter in Ihrer ./include/config_ <strong>local.inc.php</strong>',
- 'Auf unserer Wiki Konfiguration Seite finden Sie weitere Informationen zum ./include/config_<strong>local.inc.php</strong>.', );
+ 'Auf unserer Wiki Seite zur Konfiguration finden Sie weitere Informationen zum Thema ./include/config_<strong>local.inc.php</strong>.', );
$lang['Adv_case'][22] = array( /* users_page */
- 'Es sei denn, Sie haben ein niedriges Band-Anschluss besitzen, können erstellt $conf[\'users_page\'] auf einen höheren Wert, wenn Sie mehr als 20 Mitglieder.', );
+ 'Es sei denn, Sie haben einen Schmalbandanschluss, können Sie den Wert in $conf[\'users_page\'] auf einen höheren Werteinstellen. Zeigt aber nur Auswirkungen, wenn Sie mehr als 20 Mitglieder in der Galerie haben.', );
$lang['Adv_case'][23] = array( /* mail_options */
- 'Sollte falsch, nur wenige Webmaster haben um $conf[\'mail_options\'] = true, ',
- 'Eine spezifische Beratung können Sie von einem fortgeschrittenen Benutzer auf unserem Forum in einigen Mailing-Fragen.', );
+ 'Sollte false sein, nur wenige Webmaster haben einen Grund diese Option auf $conf[\'mail_options\'] = true zu ändern, ',
+ 'Für eine spezifische Beratung in diesem Fall besuchen Sie unser Forum. Ein fortgeschrittener User wird ihnen helfen', );
$lang['Adv_case'][24] = array( /* check_upgrade_feed */
- 'Sollte falsch, nur PWG dev Team haben um $conf[\'check_upgrade_feed\'] = true, für Test-Zwecke.' , );
+ 'Sollte false bleiben, ist nur für Entwickler interessant diesen Wert auf $conf[\'check_upgrade_feed\'] = true, für Test-Zwecke zu ändern.' , );
$lang['Adv_case'][25] = array( /* rate_items */
- 'Ihr $conf[\'rate_items\'] hätte es 4 oder 5 Posten, nicht weniger', );
+ 'Ihr $conf[\'rate_items\'] sollte 4 oder 5 Posten haben, nicht weniger', );
$lang['Adv_case'][26] = array( /* rate_items */
- 'Ihr $conf[\'rate_items\'] hätte 5 oder 6 Posten, nicht mehr.',
- 'Überprüfen Sie Ihre besten bewertet Bilder vor um einige Werte.',
- 'Reduzieren Sie übermäßige Einschätzung des Hotels und ändern Sie Ihre $conf[\'rate_items\'].', );
+ 'Ihr $conf[\'rate_items\'] sollte 5 oder 6 Posten haben, nicht mehr.',
+ 'Überprüfen Sie Ihre am besten bewerteten Bilder bevor Sie Änderungen vornehmen.',
+ 'Reduzieren Sie übermäßige Bewertungen und ändern Sie Ihre $conf[\'rate_items\'].', );
$lang['Adv_case'][27] = array( /* show_iptc */
- 'Könnte wahr sein, denken Sie etwa $conf[\'show_iptc\'] = false,',
- 'Einige professionelle Fotografen wählen Sie falsche ihre Gründe dafür sind nicht wirklich professionell.' ,
- 'NICHT zu verwechseln zwischen <strong>show</strong>_iptc und <strong>use</strong>_iptc (werfen Sie einen Blick auf Metadaten-Seite auf unserem Wiki).', );
+ 'Kann auf true gesetzt werden, denken Sie über eine Änderung in $conf[\'show_iptc\'] = false nach,',
+ 'Einige professionelle Fotografen wählen false, ihre Gründe dafür sind nicht wirklich professionell.' ,
+ 'Bitte NICHT <strong>show</strong>_iptc und <strong>use</strong>_iptc verwechseln (werfen Sie einen Blick auf Metadaten-Seite auf unserem Wiki).', );
$lang['Adv_case'][28] = array( /* use_iptc */
- 'Dokumentare und professionellen Fotografen würde es stimmt, aber Anfänger sollten es als $conf[\'use_iptc\'] = false,',
- 'Achten Sie darauf, der Hinweise auf Bereiche, in Metadaten-Synchronisierung.',
- 'Genannten Bereichen wäre rewrited mit IPTC-Werte selbst in denjenigen sind NICHT leer.',
- 'NICHT zu verwechseln zwischen <strong>show</strong>_iptc und <strong>use</strong>_iptc (werfen Sie einen Blick auf Metadaten-Seite auf unserem Wiki).', );
+ 'Dokumentare und professionellen Fotografen würde es auf true setzen, aber Anfänger sollten es auf $conf[\'use_iptc\'] = false belassen,',
+ 'Achten Sie auf die Felder die in der Metadaten-Synchronisierung erwähnt werden.',
+ 'Genannte Bereichen werden neu beschrieben mit den IPTC-Werten selbst diejenigen, die NICHT leer sind.',
+ 'NICHT zu verwechseln mit <strong>show</strong>_iptc und <strong>use</strong>_iptc (werfen Sie einen Blick auf Metadaten-Seite auf unserem Wiki).', );
$lang['Adv_case'][29] = array( /* use_iptc */
'Der Umgang mit IPTC:',
- '1 - Kopieren Sie eines Ihrer jpg Bilder (eine öffentliche eins) in ./tools/',
- '2 - Benennen Sie es als sample.jpg.',
- '3 - Start ./tools/metadata.php',
- '4 - Ergebnisse analysieren, um festzustellen welche IPTC-Felder genutzt werden könnte um Datenbank-Felder.',
- 'Anfänger würde es vorziehen $conf[\'use_iptc\'] = false,',
- 'Fortgeschrittene Benutzer machen Dokumentation Anstrengungen vor dem Upload ihrer Bilder.',
- 'IPTC-Felder müssen ausgefüllt werden beschrieben in $conf[\'use_iptc_mapping\']',
- 'Auf jedem Fall, <strong>show</strong>_iptc_mapping und <strong>use</strong>_iptc_mapping muss völlig anders aus.', );
-$lang['Adv_case'][30] = array( /* use_iptc_mapping */
+ '1 - Kopieren Sie eines Ihrer jpg Bilder (ein öffentliches) in ./tools/',
+ '2 - Benennen Sie es um in sample.jpg.',
+ '3 - Starten Sie ./tools/metadata.php',
+ '4 - Ergebnisse analysieren, um festzustellen welche IPTC-Felder genutzt werden können um sie in der Datenbank zu überschreiben.',
+ 'Anfängern empfehlen wir $conf[\'show_iptc\'] = false zu setzen,',
+ 'Fortgeschrittene Benutzer analysieren die Bildinformationen vor dem Upload.',
+ 'IPTC-Felder werden beschrieben in $conf[\'use_iptc_mapping\']',
+ 'Auf jedem Fall, <strong>show</strong>_iptc_mapping und <strong>use</strong>_iptc_mapping müssen völlig verschieden sein.', );
+ $lang['Adv_case'][30] = array( /* use_iptc_mapping */
'Der Umgang mit IPTC:',
- 'Achten Sie darauf, der Hinweise auf Bereiche, in Metadaten-Synchronisierung.',
- 'Genannten Bereichen wäre rewrited mit IPTC-Werte selbst in denjenigen sind NICHT leer.',
- 'Auf jedem Fall, <strong>show</strong>_iptc_mapping und <strong>use</strong>_iptc_mapping muss völlig anders aus.', );
+ 'Achten Sie auf Hinweise in den Berichten der Metadaten-Synchronisierung.',
+ 'Genannte Bereichen werden neu beschrieben mit den IPTC-Werten selbst diejenigen, die NICHT leer sind.',
+ 'Auf jedem Fall, <strong>show</strong>_iptc_mapping und <strong>use</strong>_iptc_mapping müssen völlig verschieden sein.', );
$lang['Adv_case'][31] = array( /* show_exif */
'Sollte wahr sein, einige Informationen von Ihrer Kamera angezeigt werden kann.',
'Denken Sie über EXIF-Informationen könnten werden verschiedene nach Kamera-Modelle.',
@@ -147,23 +149,20 @@ $lang['Adv_case'][31] = array( /* show_exif */
'Viele professionelle Fotografen wählen Sie falsch, ihre Gründe dafür sind zum Schutz ihres Wissens.' ,
'NICHT zu verwechseln zwischen <strong>show</strong>_exif und <strong>use</strong>_exif (werfen Sie einen Blick auf Metadaten-Seite auf unserem Wiki).', );
$lang['Adv_case'][32] = array( /* use_exif */
- 'Dokumentare und professionellen Fotografen würde es stimmt, aber Anfänger sollten den Standardwert.',
- 'Achten Sie darauf der Hinweise auf Bereiche in Metadaten-Synchronisierung.',
- 'Genannten Bereichen wäre rewrited mit EXIF-Werte selbst in denjenigen sind NICHT leer.',
- 'NICHT zu verwechseln zwischen <strong>show</strong>_exif und <strong>use</strong>_exif (werfen Sie einen Blick auf Metadaten-Seite auf unserem Wiki).', );
+ 'Dokumentare und professionellen Fotografen würde es auf true setzen, aber Anfänger sollten es auf dem Standartwert belassen.',
+ 'Achten Sie auf Hinweise nach der Metadaten-Synchronisierung.',
+ 'Genannte Bereichen werden neu beschrieben mit den EXIF-Werten selbst diejenigen, die NICHT leer sind.',
+ 'Verwechseln Sie bitte nicht <strong>show</strong>_exif mit <strong>use</strong>_exif (werfen Sie einen Blick auf Metadaten-Seite auf unserem Wiki).', );
$lang['Adv_case'][33] = array( /* **navigation */
- 'Sie können mit der Tastatur Pfeile zum Navigieren zwischen den Bildern.', );
+ 'Sie können mit den Pfeil-Tasten ihrer Tastatur zwischen den Bildern navigieren.', );
$lang['Adv_case'][34] = array( /* compiled_template_cache_language */
- 'Should be true, translation will be done at compilation time.',
- 'If you are modifying a language (translators), you should consider to set it false.',
- 'Setting it false, template @translate function are called at usage time.' );
+ 'Sollte auf true belassen werden.',
+ 'Wenn Sie selbst eine Übersetzung ändern können Sie den Wert auf false ändern.',
+ 'Wenn der Wert false eingetragen ist, wird template @translate Function wird so lang aufgerufen.' );
$lang['Adv_case'][35] = array( /* template_compile_check */
- 'Default is true, template changes are detected and the template is compiled.',
- 'If you are not updating template any more for several days, ',
- 'you should consider to set it false.',
- 'Choosing false, template changes are not detected, this improves response time.',
- 'Anyway Specials > Maintenance > Purge compiled templates, is recommended after this $conf change.' );
-$lang['Adv_case'][19] = array( /* tags_default_display_mode */
- '\'cloud\' by default, importance of tags is shown with font size.',
- 'You can change the tags page, $conf[\'tags_default_display_mode\'] = \'letters\'', );
+ 'Standart ist true, Änderungen am Template werden erkannt und das Template compiliert.',
+ 'Wenn sie das Template mehrere Tage nicht bearbeiten, ',
+ 'setzen Sie den Wert bitte auf false.',
+ 'Wenn der Wert auf false steht, wird nicht nach Änderungen an den Templates gesucht. Dies verbessert die Antwortzeiten.',
+ 'Erweiterte Verwaltung > Erweiterte EinstellungenMaintenance > Löschen der kompilierten Templates, wird empfohlen nach einer Änderung von $conf change.' );
?> \ No newline at end of file
diff --git a/plugins/c13y_upgrade/language/de_DE/plugin.lang.php b/plugins/c13y_upgrade/language/de_DE/plugin.lang.php
index fdc4b8111..b8a5fc277 100644
--- a/plugins/c13y_upgrade/language/de_DE/plugin.lang.php
+++ b/plugins/c13y_upgrade/language/de_DE/plugin.lang.php
@@ -23,9 +23,9 @@
// --------- Starting below: New or revised $lang ---- from Butterfly (1.8)
$lang['c13y_upgrade_no_anomaly'] = 'Keine Unregelmäßigkeiten festgestellt nach der Aktualisierung der Anwendung'; /* TODO , "Check upgrades" plugin was deactivated.'*/
-$lang['c13y_dbl_email_user'] = 'Benutzer mit gleichen E-Mail-Adresse';
-$lang['c13y_correction_dbl_email_user'] = 'Löschen doppeltes Benutzer';
+$lang['c13y_dbl_email_user'] = 'Benutzer mit der gleichen E-Mail-Adresse';
+$lang['c13y_correction_dbl_email_user'] = 'Lösche doppelte Benutzer';
$lang['c13y_obsolete_plugin'] = 'Veraltete Plugin';
-$lang['c13y_correction_obsolete_plugin'] = 'Das Plugin "%s" wurde enthaltet in dieser Programms Version und es müss deinstalliert werden.';
+$lang['c13y_correction_obsolete_plugin'] = 'Das Plugin "%s" wurde deaktiviert da es nicht kompatibel zu dieser Version der Piwigo ist. Bitte deinstallieren Sie es.';
-?>
+?> \ No newline at end of file
diff --git a/template-common/scripts.js b/template-common/scripts.js
index f6b22b41c..389ed1b21 100644
--- a/template-common/scripts.js
+++ b/template-common/scripts.js
@@ -71,6 +71,23 @@ function popuphelp(url)
}
+function blockToggleDisplay(headerId, contentId)
+{
+ var revHeader = document.getElementById(headerId);
+ var revContent = document.getElementById(contentId);
+
+ if (revContent.style.display == 'none')
+ {
+ revContent.style.display = 'block';
+ revHeader.className = 'instructionBlockHeaderExpanded';
+ }
+ else
+ {
+ revContent.style.display = 'none';
+ revHeader.className = 'instructionBlockHeaderCollapsed';
+ }
+}
+
Function.prototype.pwgBind = function() {
var __method = this, object = arguments[0], args = new Array();
@@ -90,23 +107,6 @@ function PwgWS(urlRoot)
};
};
-function blockToggleDisplay(headerId, contentId)
-{
- var revHeader = document.getElementById(headerId);
- var revContent = document.getElementById(contentId);
-
- if (revContent.style.display == 'none')
- {
- revContent.style.display = 'block';
- revHeader.className = 'instructionBlockHeaderExpanded';
- }
- else
- {
- revContent.style.display = 'none';
- revHeader.className = 'instructionBlockHeaderCollapsed';
- }
-}
-
PwgWS.prototype = {
@@ -129,8 +129,9 @@ PwgWS.prototype = {
}
this.transport.onreadystatechange = this.onStateChange.pwgBind(this);
- var url = this.urlRoot;
- url += "ws.php?format=json&method="+method;
+ var url = this.urlRoot+"ws.php?format=json";
+
+ var body = "method="+method;
if (parameters)
{
for (var property in parameters)
@@ -138,14 +139,25 @@ PwgWS.prototype = {
if ( typeof parameters[property] == 'object' && parameters[property])
{
for (var i=0; i<parameters[property].length; i++)
- url += "&"+property+"[]="+encodeURIComponent(parameters[property][i]);
+ body += "&"+property+"[]="+encodeURIComponent(parameters[property][i]);
}
else
- url += "&"+property+"="+encodeURIComponent(parameters[property]);
+ body += "&"+property+"="+encodeURIComponent(parameters[property]);
}
}
- this.transport.open(this.options.method, url, this.options.async);
- this.transport.send(null);
+
+ if (this.options.method == "POST" )
+ {
+ this.transport.open(this.options.method, url, this.options.async);
+ this.transport.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+ this.transport.send(body);
+ }
+ else
+ {
+ url += "&"+body;
+ this.transport.open(this.options.method, url, this.options.async);
+ this.transport.send(null);
+ }
},
onStateChange: function() {
diff --git a/template/yoga/picture.tpl b/template/yoga/picture.tpl
index 26450a21c..5b720c85e 100644
--- a/template/yoga/picture.tpl
+++ b/template/yoga/picture.tpl
@@ -215,6 +215,7 @@ var y = new PwgWS(rootUrl);
y.callService(
"pwg.images.setPrivacyLevel", {image_id: id, level:level} ,
{
+ method: "POST",
onFailure: function(num, text) { selectElement.disabled = false; alert(num + " " + text); },
onSuccess: function(result) { selectElement.disabled = false; }
}
diff --git a/ws.php b/ws.php
index f4d1ce029..fded120db 100644
--- a/ws.php
+++ b/ws.php
@@ -136,7 +136,7 @@ function ws_addDefaultMethods( $arr )
'image_id' => array('flags'=>WS_PARAM_FORCE_ARRAY),
'level' => array('maxValue'=>$conf['available_permission_levels']),
),
- 'sets the privacy levels for the images'
+ 'sets the privacy levels for the images (POST method only)'
);
$service->addMethod('pwg.session.getStatus', 'ws_session_getStatus', null, '' );
@@ -278,7 +278,7 @@ function ws_addDefaultMethods( $arr )
'ws_images_setInfo',
array(
'image_id' => array(),
-
+
'name' => array('default' => null),
'author' => array('default' => null),
'date_creation' => array('default' => null),
@@ -297,13 +297,13 @@ function ws_addDefaultMethods( $arr )
<br/><b>single_value_mode</b> can be "fill_if_empty" (only use the input value if the corresponding values is currently empty) or "replace" (overwrite any existing value) and applies to single values properties like name/author/date_creation/comment
<br/><b>multiple_value_mode</b> can be "append" (no change on existing values, add the new values) or "replace" and applies to multiple values properties like tag_ids/categories'
);
-
+
$service->addMethod(
'pwg.categories.setInfo',
'ws_categories_setInfo',
array(
'category_id' => array(),
-
+
'name' => array('default' => null),
'comment' => array('default' => null),
),