From 2fa1013ace21fe6df7beb9c8505a256244fa637e Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sun, 11 Nov 2012 15:01:09 +0000 Subject: feature:2786 Allow to edit website url in user comments + improve "user experience" on comment edition git-svn-id: http://piwigo.org/svn/trunk@18995 68402e56-0260-453c-a942-63ccdbb3a9ee --- comments.php | 28 ++++++++++++++++++++-------- include/functions_comment.inc.php | 17 ++++++++++++++++- language/en_UK/common.lang.php | 2 ++ language/fr_FR/common.lang.php | 2 ++ picture.php | 10 ++++------ themes/default/template/comment_list.tpl | 10 ++++++---- 6 files changed, 50 insertions(+), 19 deletions(-) diff --git a/comments.php b/comments.php index 1cd19890d..5eff03e90 100644 --- a/comments.php +++ b/comments.php @@ -233,21 +233,33 @@ if (isset($action)) if (!empty($_POST['content'])) { check_pwg_token(); - update_user_comment( + $comment_action = update_user_comment( array( 'comment_id' => $_GET['edit'], 'image_id' => $_POST['image_id'], - 'content' => $_POST['content'] + 'content' => $_POST['content'], + 'website_url' => @$_POST['website_url'], ), $_POST['key'] ); - - $perform_redirect = true; - } - else - { - $edit_comment = $_GET['edit']; + + switch ($comment_action) + { + case 'moderate': + $_SESSION['page_infos'][] = l10n('An administrator must authorize your comment before it is visible.'); + case 'validate': + $_SESSION['page_infos'][] = l10n('Your comment has been registered'); + $perform_redirect = true; + break; + case 'reject': + $_SESSION['page_errors'][] = l10n('Your comment has NOT been registered because it did not pass the validation rules'); + break; + default: + trigger_error('Invalid comment action '.$comment_action, E_USER_WARNING); + } } + + $edit_comment = $_GET['edit']; } if ($perform_redirect) diff --git a/include/functions_comment.inc.php b/include/functions_comment.inc.php index 67716216c..b388439f5 100644 --- a/include/functions_comment.inc.php +++ b/include/functions_comment.inc.php @@ -309,7 +309,7 @@ $user_where_clause.' function update_user_comment($comment, $post_key) { - global $conf; + global $conf, $page; $comment_action = 'validate'; @@ -335,6 +335,20 @@ function update_user_comment($comment, $post_key) ) ); + // website + if (!empty($comment['website_url'])) + { + if (!preg_match('/^https?/i', $comment['website_url'])) + { + $comment['website_url'] = 'http://'.$comment['website_url']; + } + if (!url_check_format($comment['website_url'])) + { + array_push($page['errors'], l10n('Your website URL is invalid')); + $comment_action='reject'; + } + } + if ( $comment_action!='reject' ) { $user_where_clause = ''; @@ -347,6 +361,7 @@ function update_user_comment($comment, $post_key) $query = ' UPDATE '.COMMENTS_TABLE.' SET content = \''.$comment['content'].'\', + website_url = '.(!empty($comment['website_url']) ? '\''.$comment['website_url'].'\'' : 'NULL').', validated = \''.($comment_action=='validate' ? 'true':'false').'\', validation_date = '.($comment_action=='validate' ? 'NOW()':'NULL').' WHERE id = '.$comment['comment_id']. diff --git a/language/en_UK/common.lang.php b/language/en_UK/common.lang.php index 54b221e4b..cef1111d1 100644 --- a/language/en_UK/common.lang.php +++ b/language/en_UK/common.lang.php @@ -392,6 +392,7 @@ $lang['View'] = "View"; $lang['Visits'] = "Visits"; $lang['Visits, high → low'] = 'Visits, high → low'; $lang['Visits, low → high'] = 'Visits, low → high'; +$lang['Website'] = 'Website'; $lang['Webmaster'] = "Webmaster"; $lang['Week %d'] = "Week %d"; $lang['Welcome to your Piwigo photo gallery!'] = 'Welcome to your Piwigo photo gallery!'; @@ -409,5 +410,6 @@ $lang['Your favorites'] = "Your favorites"; $lang['Your Gallery Customization'] = "Your gallery customization"; $lang['Your password has been reset'] = 'Your password has been reset'; $lang['Your username has been successfully changed to : %s'] = 'Your username has been successfully changed to : %s'; +$lang['Your website URL is invalid'] = 'Your website URL is invalid'; $lang['mandatory'] = 'mandatory'; ?> \ No newline at end of file diff --git a/language/fr_FR/common.lang.php b/language/fr_FR/common.lang.php index bd278d927..6934b675f 100644 --- a/language/fr_FR/common.lang.php +++ b/language/fr_FR/common.lang.php @@ -410,4 +410,6 @@ $lang['Requested tag does not exist'] = 'Le tag demandée n\'existe pas'; $lang['Username is mandatory'] = 'Nom d\'utilisateur obligatoire'; $lang['Email address is mandatory'] = 'Adresse email obligatoire'; $lang['mandatory'] = 'obligatoire'; +$lang['Website'] = 'Site web'; +$lang['Your website URL is invalid'] = 'L\'adresse de votre site web est invalide'; ?> \ No newline at end of file diff --git a/picture.php b/picture.php index 4d89edc77..663a192b3 100644 --- a/picture.php +++ b/picture.php @@ -349,7 +349,8 @@ UPDATE '.USER_CACHE_CATEGORIES_TABLE.' array( 'comment_id' => $_GET['comment_to_edit'], 'image_id' => $page['image_id'], - 'content' => $_POST['content'] + 'content' => $_POST['content'], + 'website_url' => @$_POST['website_url'], ), $_POST['key'] ); @@ -365,7 +366,6 @@ UPDATE '.USER_CACHE_CATEGORIES_TABLE.' break; case 'reject': $_SESSION['page_errors'][] = l10n('Your comment has NOT been registered because it did not pass the validation rules'); - $perform_redirect = true; break; default: trigger_error('Invalid comment action '.$comment_action, E_USER_WARNING); @@ -377,10 +377,8 @@ UPDATE '.USER_CACHE_CATEGORIES_TABLE.' } unset($_POST['content']); } - else - { - $edit_comment = $_GET['comment_to_edit']; - } + + $edit_comment = $_GET['comment_to_edit']; } break; } diff --git a/themes/default/template/comment_list.tpl b/themes/default/template/comment_list.tpl index 05ee28f75..df60a453a 100644 --- a/themes/default/template/comment_list.tpl +++ b/themes/default/template/comment_list.tpl @@ -5,7 +5,7 @@ } .content .commentElement .description{ldelim} - height: {$comment_derivative_params->max_height()+5}px + min-height: {$comment_derivative_params->max_height()+5}px } {/html_style}{/strip} {/if} @@ -28,7 +28,7 @@ {/if} -
+
{if isset($comment.U_DELETE) or isset($comment.U_VALIDATE) or isset($comment.U_EDIT)}
{if isset($comment.U_DELETE)} @@ -39,7 +39,7 @@ {if isset($comment.U_CANCEL)} {'Cancel'|@translate} - {if isset($comment.U_VALIDATE) or isset($comment.U_EDIT)} | {/if} + {if isset($comment.U_VALIDATE)} | {/if} {/if} {if isset($comment.U_EDIT) and !isset($comment.IN_EDIT)} @@ -60,8 +60,10 @@ {if isset($comment.IN_EDIT)}
-

+

+

+

-- cgit v1.2.3