Switch the 'modify' code of admin/field.php to use templates
[bugdar.git] / editcomment.php
index 1ec7c4ef3c8b7ee5e72a34671910a2ecf19ad135..205eded50c355994367fa0d43a5917c3ee0f272e 100644 (file)
@@ -2,7 +2,7 @@
 /*=====================================================================*\
 || ###################################################################
 || # Bugdar
-|| # Copyright ©2002-2007 Blue Static
+|| # Copyright (c)2004-2009 Blue Static
 || #
 || # 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
@@ -23,24 +23,20 @@ $fetchtemplates = array(
        'editcomment'
 );
 
-define('SVN', '$Id$');
 
 $focus['showreport'] = 'focus';
 
 require_once('./global.php');
 require_once('./includes/api_comment.php');
 
-require_once('./includes/class_api_error.php');
-APIError(array(new API_Error_Handler($message), 'user_cumulative'));
 
-$commentapi = new CommentAPI($bugsys);
-$commentapi->set('commentid',  $bugsys->in['commentid']);
-$commentapi->set_condition();
+$commentapi = new CommentAPI();
+$commentapi->set('commentid',  $input->in['commentid']);
 $commentapi->fetch();
 
-$comment =& $commentapi->objdata;
+$comment = &$commentapi->record;
 
-$bug = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid = $comment[bugid]");
+$bug = $db->queryFirst("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid = $comment[bugid]");
 
 if (!check_bug_permissions($bug))
 {
@@ -64,14 +60,14 @@ if ($_POST['do'] == 'kill')
        }
        
        // get the last post (as in prior to deletion)
-       $lastpost = $db->query_first("SELECT commentid FROM " . TABLE_PREFIX . "comment WHERE bugid = $bug[bugid] ORDER BY dateline DESC");
+       $lastpost = $db->queryFirst("SELECT commentid FROM " . TABLE_PREFIX . "comment WHERE bugid = $bug[bugid] ORDER BY dateline DESC");
        
-       $commentapi->delete();
+       $commentapi->remove();
        
        // check to see if we need to rebuild the lastpost information
        if ($lastpost['commentid'] == $comment['commentid'])
        {
-               $lastgoodpublic = $db->query_first("
+               $lastgoodpublic = $db->queryFirst("
                        SELECT comment.* AS comment, user.displayname AS username
                        FROM " . TABLE_PREFIX . "comment AS comment
                        LEFT JOIN " . TABLE_PREFIX . "user AS user
@@ -79,7 +75,7 @@ if ($_POST['do'] == 'kill')
                        WHERE bugid = $bug[bugid]
                                AND !hidden ORDER BY dateline DESC
                ");
-               $lastgoodprivate = $db->query_first("
+               $lastgoodprivate = $db->queryFirst("
                        SELECT comment.* AS comment, user.displayname AS username
                        FROM " . TABLE_PREFIX . "comment AS comment
                        LEFT JOIN " . TABLE_PREFIX . "user AS user
@@ -91,15 +87,15 @@ if ($_POST['do'] == 'kill')
                        UPDATE " . TABLE_PREFIX . "bug
                        SET hiddenlastposttime = $lastgoodpublic[dateline],
                                hiddenlastpostby = $lastgoodpublic[userid],
-                               hiddenlastpostbyname = '" . $db->escape_string($lastgoodpublic['username']) . "',
+                               hiddenlastpostbyname = '" . $db->escapeString($lastgoodpublic['username']) . "',
                                lastposttime = $lastgoodprivate[dateline],
                                lastpostby = $lastgoodprivate[userid],
-                               lastpostbyname = '" . $db->escape_string($lastgoodprivate['username']) . "'
+                               lastpostbyname = '" . $db->escapeString($lastgoodprivate['username']) . "'
                        WHERE bugid = $bug[bugid]"
                );
        }
        
-       $message->redirect(_('The comment has been deleted. You will be redirected back to the bug.'), 'showreport.php?bugid=' . $bug['bugid']);
+       $message->redirect(T('The comment has been deleted. You will be redirected back to the bug.'), 'showreport.php?bugid=' . $bug['bugid']);
 }
 
 // ###################################################################
@@ -113,28 +109,28 @@ if ($_REQUEST['do'] == 'delete')
        
        if ($bug['initialreport'] == $comment['commentid'])
        {
-               $message->error(_('You cannot delete this comment because it is attached to the bug as the first comment. You have to delete the entire bug instead (which is not recommended unless it is spam).'));
+               $message->error(T('You cannot delete this comment because it is attached to the bug as the first comment. You have to delete the entire bug instead (which is not recommended unless it is spam).'));
        }
        
-       $message->confirm(_('Are you sure you want to delete this comment? After you do so, the data <strong>will</strong> be lost forever. We recommend only deleting spam comments and nothing else.'), 'editcomment.php', 'kill', _('Delete Comment'), 'showreport.php?bugid=' . $bug['bugid'], array('commentid' => $comment['commentid']));
+       $message->confirm(T('Are you sure you want to delete this comment? After you do so, the data <strong>will</strong> be lost forever. We recommend only deleting spam comments and nothing else.'), 'editcomment.php', 'kill', T('Delete Comment'), 'showreport.php?bugid=' . $bug['bugid'], array('commentid' => $comment['commentid']));
 }
 
 // ###################################################################
 
 if ($_POST['do'] == 'update')
 {
-       if (!((can_perform('caneditownreply', $bug['product']) AND $bugsys->userinfo['userid'] == $comment['userid']) OR (can_perform('caneditotherreply', $bug['product']) AND $bugsys->userinfo['userid'] != $comment['userid'])))
+       if (!((can_perform('caneditownreply', $bug['product']) AND bugdar::$userinfo['userid'] == $comment['userid']) OR (can_perform('caneditotherreply', $bug['product']) AND bugdar::$userinfo['userid'] != $comment['userid'])))
        {
                $message->errorPermission();
        }
        
-       $commentapi->set('comment',     $bugsys->in['comment']);
-       $commentapi->set('parselinks', $bugsys->in['parselinks']);
-       $commentapi->set('hidden',      $bugsys->in['hidden']);
+       $commentapi->set('comment',             $input->in['comment']);
+       $commentapi->set('parselinks',  $input->in['parselinks']);
+       $commentapi->set('hidden',              $input->in['hidden']);
        
-       if ($bugsys->in['commentid'] == $bug['initialreport'] AND $bugsys->in['hidden'])
+       if ($input->in['commentid'] == $bug['initialreport'] AND $input->in['hidden'])
        {
-               $message->addError(_('You cannot hide the first comment/initial report of a bug. Instead, hide the entire bug.'));
+               $message->addError(T('You cannot hide the first comment/initial report of a bug. Instead, hide the entire bug.'));
        }
        
        if (!$message->hasErrors())
@@ -144,13 +140,13 @@ if ($_POST['do'] == 'update')
                // setup logging
                require_once('./includes/class_logging.php');
                $log = new Logging;
-               $log->set_bugid($bug['bugid']);
-               $log->set_commentid($comment['commentid']);
+               $log->setBugId($bug['bugid']);
+               $log->setCommentId($comment['commentid']);
                
-               $log->add_data(true, $commentapi->objdata, array('comment', 'hidden'), false, 'comment');
-               $log->add_data(false, $commentapi->values, array('comment', 'hidden'), false, 'comment');
+               $log->addData(true, $commentapi->record, array('comment', 'hidden'), false, 'comment');
+               $log->addData(false, $commentapi->values, array('comment', 'hidden'), false, 'comment');
                
-               $lastgood = $db->query_first("
+               $lastgood = $db->queryFirst("
                        SELECT comment.* AS comment, user.displayname AS username
                        FROM " . TABLE_PREFIX . "comment AS comment
                        LEFT JOIN " . TABLE_PREFIX . "user AS user
@@ -162,20 +158,20 @@ if ($_POST['do'] == 'update')
                        UPDATE " . TABLE_PREFIX . "bug
                        SET hiddenlastposttime = $lastgood[dateline],
                                hiddenlastpostby = $lastgood[userid],
-                               hiddenlastpostbyname = '" . $db->escape_string($lastgood['username']) . "'
+                               hiddenlastpostbyname = '" . $db->escapeString($lastgood['username']) . "'
                        WHERE bugid = $bug[bugid]"
                );
                
-               $log->update_history();
+               $log->updateHistory();
                
-               $message->redirect(_('The comment was modified successfully.'), "showreport.php?bugid=$bug[bugid]");
+               $message->redirect(T('The comment was modified successfully.'), "showreport.php?bugid=$bug[bugid]");
        }
        else
        {
                $show['errors'] = true;
                $_REQUEST['do'] = 'edit';
-               $comment['comment'] = $bugsys->in['comment'];
-               $comment['hidden'] = $bugsys->in['hidden'];
+               $comment['comment'] = $input->in['comment'];
+               $comment['hidden'] = $input->in['hidden'];
        }
 }
 
@@ -183,22 +179,29 @@ if ($_POST['do'] == 'update')
 
 if ($_REQUEST['do'] == 'edit')
 {
-       if (!((can_perform('caneditownreply', $bug['product']) AND $bugsys->userinfo['userid'] == $comment['userid']) OR (can_perform('caneditotherreply', $bug['product']) AND $bugsys->userinfo['userid'] != $comment['userid'])))
+       if (!((can_perform('caneditownreply', $bug['product']) AND bugdar::$userinfo['userid'] == $comment['userid']) OR (can_perform('caneditotherreply', $bug['product']) AND bugdar::$userinfo['userid'] != $comment['userid'])))
        {
                $message->errorPermission();
        }
        
-       $comment['posttime'] = $datef->format($bugsys->options['dateformat'], $comment['dateline']);
-       $comment['postby'] = construct_user_display($commentapi->relations['userid']->objdata);
-       $comment['comment'] = $bugsys->sanitize($comment['comment']);
-       $show['hide'] = ($bug['initialreport'] != $comment['commentid'] ? true : false);
-       eval('$template->flush("' . $template->fetch('editcomment') . '");');
+       $comment['posttime'] = $datef->format(bugdar::$options['dateformat'], $comment['dateline']);
+       if ($comment['userid'])
+       {
+               $commenter = new UserAPI();
+               $commenter->set('userid', $comment['userid']);
+               $commenter->fetch();
+               $commenter = $commenter->record;
+       }
+       $comment['postby'] = construct_user_display($commenter);
+       $comment['comment'] = $input->sanitize($comment['comment']);
+       $show['hide'] = ($bug['initialreport'] != $comment['commentid']);
+       
+       $tpl = new BSTemplate('editcomment');
+       $tpl->vars = array(
+               'comment'       => $comment,
+               'bug'           => $bug
+       );
+       $tpl->evaluate()->flush();
 }
 
-/*=====================================================================*\
-|| ###################################################################
-|| # $HeadURL$
-|| # $Id$
-|| ###################################################################
-\*=====================================================================*/
 ?>
\ No newline at end of file