summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Vratil <vratil@progdansoft.com>2010-11-21 08:59:07 +0100
committerLoui Chang <louipc.ist@gmail.com>2010-11-21 09:37:17 +0100
commit57a5cbfd88b2b91722ce0bf6911b416d051dde65 (patch)
treec7a8175ec8c90ef6610aabce02af4d291ea74d14
parent01fc2024cb48a68710065ceaae070f35aa69825d (diff)
downloadaur-57a5cbfd88b2b91722ce0bf6911b416d051dde65.tar.gz
aur-57a5cbfd88b2b91722ce0bf6911b416d051dde65.tar.xz
Auto redirect from confirmation screens.
Finally move comment deletion and category editing into functions and remove pkgedit.php Signed-off-by: Loui Chang <louipc.ist@gmail.com> -Fix indentation -Fix variable naming conflict $id vs $cid
-rw-r--r--web/html/css/containers.css4
-rw-r--r--web/html/packages.php4
-rw-r--r--web/html/pkgedit.php109
-rw-r--r--web/lib/pkgfuncs.inc86
-rw-r--r--web/template/pkg_comments.php23
-rw-r--r--web/template/pkg_details.php23
6 files changed, 125 insertions, 124 deletions
diff --git a/web/html/css/containers.css b/web/html/css/containers.css
index fc092de1..12362f60 100644
--- a/web/html/css/containers.css
+++ b/web/html/css/containers.css
@@ -187,4 +187,8 @@ input.button {
font-size: 12px;
padding: 2px 8px;
}
+input[type=image] {
+ border: 0;
+ background: none;
+}
diff --git a/web/html/packages.php b/web/html/packages.php
index 472f6a21..741ffb17 100644
--- a/web/html/packages.php
+++ b/web/html/packages.php
@@ -57,6 +57,10 @@ if ($_POST['action'] == "do_Flag" || isset($_POST['do_Flag'])) {
$output = pkg_notify($atype, $ids);
} elseif ($_POST['action'] == "do_UnNotify" || isset($_POST['do_UnNotify'])) {
$output = pkg_notify($atype, $ids, False);
+} elseif ($_POST['action'] == "do_DeleteComment" || isset($_POST["do_DeleteComment"])) {
+ $output = pkg_delete_comment($atype);
+} elseif ($_POST['action'] == "do_ChangeCategory" || isset($_POST['do_ChangeCategory'])) {
+ $output = pkg_change_category($atype);
}
html_header($title);
diff --git a/web/html/pkgedit.php b/web/html/pkgedit.php
deleted file mode 100644
index 0339d004..00000000
--- a/web/html/pkgedit.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-
-set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');
-
-include_once("aur.inc"); # access AUR common functions
-include_once("pkgfuncs.inc"); # use some form of this for i18n support
-set_lang(); # this sets up the visitor's language
-check_sid(); # see if they're still logged in
-html_header(); # print out the HTML header
-
-# Make sure this visitor is logged in
-#
-if (isset($_COOKIE["AURSID"])) {
- $atype = account_from_sid($_COOKIE["AURSID"]);
-} else {
- $atype = "";
-}
-if (!$atype) {
- print __("You must be logged in before you can edit package information.");
- print "<br />\n";
- html_footer(AUR_VERSION);
- exit();
-}
-
-# Must know what package to operate on throughout this entire script
-#
-if (!$_REQUEST["ID"]) {
- print __("Missing package ID.");
- print "<br />\n";
- html_footer(AUR_VERSION);
- exit();
-}
-
-
-# Delete a comment for this package
-#
-if ($_REQUEST["del_Comment"]) {
- if ($_REQUEST["comment_id"]) {
- $uid = uid_from_sid($_COOKIE["AURSID"]);
- if (canDeleteComment($_REQUEST["comment_id"], $atype, $uid)) {
- $dbh = db_connect();
- $q = "UPDATE PackageComments ";
- $q.= "SET DelUsersID = ".$uid." ";
- $q.= "WHERE ID = ".intval($_REQUEST["comment_id"]);
- db_query($q, $dbh);
- print __("Comment has been deleted.")."<br />\n";
- } else {
- print __("You are not allowed to delete this comment.")."<br />\n";
- }
- } else {
- print __("Missing comment ID.")."<br />\n";
- }
- html_footer(AUR_VERSION);
- exit();
-}
-
-# Change package category
-#
-if ($_REQUEST["change_Category"]) {
- $cat_array = pkgCategories();
- $dbh = db_connect();
-
- if ($_REQUEST["category_id"]) {
- # Try and set the requested category_id
- #
- if (array_key_exists($_REQUEST["category_id"], $cat_array)) {
- $q = "UPDATE Packages SET CategoryID = ".intval($_REQUEST["category_id"]);
- $q.= " WHERE ID = ".intval($_REQUEST["ID"]);
- db_query($q, $dbh);
- print __("Package category updated.")."<br />\n";
-
- } else {
- print __("Invalid category ID.")."<br />\n";
- }
- } else {
- # Prompt visitor for new category_id
- #
- $q = "SELECT CategoryID FROM Packages WHERE ID = ".intval($_REQUEST["ID"]);
- $result = db_query($q, $dbh);
- if ($result != NULL) {
- $catid = mysql_fetch_row($result);
- }
- print "<form action='pkgedit.php' method='post'>\n";
- print "<input type='hidden' name='change_Category' value='1'>\n";
- print "<input type='hidden' name='ID' value=\"".$_REQUEST["ID"]."\">\n";
- print __("Select new category").":&nbsp;\n";
- print "<select name='category_id'>\n";
- while (list($id,$cat) = each($cat_array)) {
- print "<option value='".$id."'";
- if ($id == $catid[0]) {
- print " selected";
- }
- print "> ".$cat."</option>\n";
- }
- print "</select>\n";
- print "<br />&nbsp;<br />\n";
- print "<input type='submit' value=\"".__("Submit")."\">\n";
- print "<input type='reset' value=\"".__("Reset")."\">\n";
- print "</form>\n";
-
- }
- html_footer(AUR_VERSION);
- exit();
-}
-
-print __("You've found a bug if you see this....")."<br />\n";
-
-html_footer(AUR_VERSION);
-
diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc
index 0f45124d..c701348d 100644
--- a/web/lib/pkgfuncs.inc
+++ b/web/lib/pkgfuncs.inc
@@ -984,3 +984,89 @@ function pkg_notify ($atype, $ids, $action = True) {
return $output;
}
+
+
+/**
+ * Delete comment
+ *
+ * @param string $atype Account type, output of account_from_sid
+ * @return string Translated error or success message
+ */
+function pkg_delete_comment($atype) {
+ if (!$atype) {
+ return __("You must be logged before you can edit package information.");
+ }
+
+ # Get ID of comment to be removed
+ if (isset($_POST["comment_id"])) {
+ $comment_id = $_POST["comment_id"];
+ } else {
+ return __("Missing comment ID.");
+ }
+
+ $uid = uid_from_sid($_COOKIE["AURSID"]);
+ if (canDeleteComment($comment_id, $atype, $uid)) {
+
+ $dbh = db_connect();
+ $q = "UPDATE PackageComments ";
+ $q.= "SET DelUsersID = ".$uid." ";
+ $q.= "WHERE ID = ".intval($comment_id);
+ db_query($q, $dbh);
+ return __("Comment has been deleted.");
+ } else {
+ return __("You are not allowed to delete this comment.");
+ }
+}
+
+/**
+ * Change package category
+ *
+ * @param string $atype Account type, output of account_from_sid
+ * @return string Translated error or success message
+ */
+function pkg_change_category($atype) {
+ if (!$atype) {
+ return __("You must be logged before you can edit package information.");
+ }
+
+ # Get ID of the new category
+ if (isset($_POST["category_id"])) {
+ $category_id = $_POST["category_id"];
+ } else {
+ return __("Missing category ID.");
+ }
+
+ $catArray = pkgCategories();
+ if (!array_key_exists($category_id, $catArray)) {
+ return __("Invalid category ID.");
+ }
+
+ if (isset($_GET["ID"])) {
+ $pid = $_GET["ID"];
+ } else {
+ return __("Missing package ID.");
+ }
+
+ # Verify package ownership and location
+ $dbh = db_connect();
+ $q = "SELECT Packages.MaintainerUID,";
+ $q.= "PackageLocations.Location ";
+ $q.= "FROM Packages ";
+ $q.= "LEFT JOIN PackageLocations ON Packages.LocationID = PackageLocations.ID ";
+ $q.= "WHERE Packages.ID = ".$pid;
+ $result = db_query($q, $dbh);
+ echo mysql_error();
+ $pkg = mysql_fetch_assoc($result);
+
+ $uid = uid_from_sid($_COOKIE["AURSID"]);
+ if ($pkg["Location"] == "unsupported" and ($uid == $pkg["MaintainerUID"] or
+ ($atype == "Developer" or $atype == "Trusted User"))) {
+ $q = "UPDATE Packages ";
+ $q.= "SET CategoryID = ".intval($category_id)." ";
+ $q.= "WHERE ID = ".intval($pid);
+ db_query($q, $dbh);
+ return __("Package category changed.");
+ } else {
+ return __("You are not allowed to change this package category.");
+ }
+}
diff --git a/web/template/pkg_comments.php b/web/template/pkg_comments.php
index 02171a03..e4a9da13 100644
--- a/web/template/pkg_comments.php
+++ b/web/template/pkg_comments.php
@@ -3,20 +3,25 @@
$uid = uid_from_sid($SID);
while (list($indx, $carr) = each($comments)) { ?>
<div class="comment-header"><?php
- if (canDeleteCommentArray($carr, $atype, $uid)) {
- $durl = '<a href="pkgedit.php?del_Comment=1';
- $durl.= '&comment_id=' . $carr['ID'] . '&ID=' . $row['ID'];
- $durl.= '"><img src="images/x.png" border="0"';
- $durl.= ' alt="' . __("Delete comment") . '"></a> ';
-
- echo $durl;
- }
if ($SID) {
$carr['UserName'] = "<a href=\"account.php?Action=AccountInfo&amp;ID={$carr['UsersID']}\">{$carr['UserName']}</a>";
}
- echo __('Comment by: %s on %s', $carr['UserName'], gmdate('r', $carr['CommentTS']));
+ $commentHeader =__('Comment by: %s on %s', $carr['UserName'], gmdate('r', $carr['CommentTS']));
+
+ if (canDeleteCommentArray($carr, $atype, $uid)) {
+ $durl = '<form method="POST" action="packages.php?ID='.$row['ID'].'">';
+ $durl.= '<input type="hidden" name="action" value="do_DeleteComment">';
+ $durl.= '<input type="hidden" name="comment_id" value="'.$carr['ID'].'">';
+ $durl.= '<input type="image" src="images/x.png" border="0" ';
+ $durl.= ' alt="'.__("Delete comment").'" name="submit" value="1" ';
+ $durl.= ' width="19" height="18">&nbsp;';
+
+ $commentHeader = $durl.$commentHeader."</form>";
+ }
+
+ echo $commentHeader;
?></div>
<blockquote class="comment-body">
<div>
diff --git a/web/template/pkg_details.php b/web/template/pkg_details.php
index a4b8f954..7c6356d1 100644
--- a/web/template/pkg_details.php
+++ b/web/template/pkg_details.php
@@ -4,13 +4,24 @@ $pkgid = intval($_REQUEST['ID']);
if ($row["Location"] == "unsupported" and ($uid == $row["MaintainerUID"] or
($atype == "Developer" or $atype == "Trusted User"))) {
- $edit_cat = "<a href='pkgedit.php?change_Category=1&amp;ID=";
- $edit_cat .= $pkgid ."'>".$row["Category"]."</a>";
- $edit_cat .= " &nbsp;<span class='fix'>(";
- $edit_cat .= __("change category").")</span>";
+ $catarr = pkgCategories();
+ $edit_cat = "<form method='POST' action='packages.php?ID=".$pkgid."'>\n";
+ $edit_cat.= "<input type='hidden' name='action' value='do_ChangeCategory'>";
+ $edit_cat.= $row['Location']." :: ";
+ $edit_cat.= "<select name='category_id'>\n";
+ foreach ($catarr as $cid => $catname) {
+ $edit_cat.= "<option value='$cid'";
+ if ($cid == $row["CategoryID"]) {
+ $edit_cat.="selected";
+ }
+ $edit_cat.=">".$catname."</option>";
+ }
+ $edit_cat.= "</select>&nbsp;<input type='submit' value='Change category'>";
+ $edit_cat.= "</form>";
+
}
else {
- $edit_cat = $row['Category'];
+ $edit_cat = $row['Location']." :: ".$row['Category'];
}
if ($row["MaintainerUID"]) {
@@ -49,7 +60,7 @@ $out_of_date_time = ($row["OutOfDateTS"] == 0) ? $msg : gmdate("r", intval($row[
</p>
<p>
- <span class='f3'><?php echo $row['Location'] . ' :: ' . $edit_cat ?></span><br />
+ <span class='f3'><?php echo $edit_cat ?></span><br />
<span class='f3'><?php echo __('Maintainer') .': ' . $maintainer ?></span><br />
<span class='f3'><?php echo $votes ?></span>
</p>