Move Handler
The
handler∞ move.php assumes that wikka is able to deal with
RedirectingPages, and doesn't adjust links pointing to the old page. It can be considered a rename handler.
<div
class=
"page">
<?php
if ($this->
page) {
if ($this->
UserIsOwner() ||
$this->
IsAdmin()) {
if ($newtag =
$_POST["newtag"]) {
if ($this->
LoadPage($newtag)) $error =
"Tag <b>".
$newtag.
"</b> already exists";
if (!
$error) {
$this->
Query("update ".
$this->
config["table_prefix"].
"links set from_tag = '".
$newtag.
"' where from_tag = '".
$this->
tag.
"'");
$this->
Query("update ".
$this->
config["table_prefix"].
"pages set comment_on = '".
$newtag.
"' where comment_on = '".
$this->
tag.
"'");
$this->
Query("update ".
$this->
config["table_prefix"].
"pages set tag = '".
$newtag.
"' where tag = '".
$this->
tag.
"'");
if ($_POST["forwarder"]) $this->
SavePage($this->
tag,
"=>[[".
$newtag.
"]]",
$this->
page["comment_on"],
"moved to ".
$newtag,
$this->
page["private"]);
$this->
SetMessage("Page has been moved!");
if ($_POST["forwarder"]) $this->
Redirect($this->
href());
else $this->
Redirect($this->
href("",
$newtag));
}
}
if ($error) print "<div class='error'>".
$error.
"</div>";
print $this->
FormOpen("move");
print "Move page to <input name='newtag' value='".
$newtag.
"' size='40' maxlength='50'> - Keep old page as forwarder <input type='checkbox' name='forwarder' value='1' checked><input type='submit' value='move'>";
print $this->
FormClose();
} else print "<em>You're not the owner of this page.</em>";
} else print "Page ".
$this->
tag.
" doesn't exist.";
?>
</div>
The above code didn't work for me as it uses
comment_on (not sure where that comes from...). The following code works in v1.1.5.3. I now have this integrated this with
PageAdmin.
<div
class=
"page">
<?php
if ($this->
page) {
if ($this->
UserIsOwner() ||
$this->
IsAdmin()) {
if ($newtag =
$_POST["newtag"]) {
if ($this->
LoadPage($newtag)) $error =
"Tag <b>".
$newtag.
"</b> already exists";
if (!
$error) {
$this->
Query("update ".
$this->
config["table_prefix"].
"links set from_tag = '".
$newtag.
"' where from_tag = '".
$this->
tag.
"'");
//$this->Query("update ".$this->config["table_prefix"]."pages set comment_on = '".$newtag."' where comment_on = '".$this->tag."'");
$this->
Query("update ".
$this->
config["table_prefix"].
"comments set page_tag = '".
$newtag.
"' where page_tag = '".
$this->
tag.
"'");
$this->
Query("update ".
$this->
config["table_prefix"].
"pages set tag = '".
$newtag.
"' where tag = '".
$this->
tag.
"'");
if ($_POST["forwarder"]) $this->
SavePage($this->
tag,
"=>[[".
$newtag.
"]]",
$this->
page["comment_on"],
"moved to ".
$newtag,
$this->
page["private"]);
$this->
SetMessage("Page has been moved!");
if ($_POST["forwarder"]) $this->
Redirect($this->
href());
else $this->
Redirect($this->
href("",
$newtag));
}
}
if ($error) print "<div class='error'>".
$error.
"</div>";
print $this->
FormOpen("move");
print "Move page to <input name='newtag' value='".
$newtag.
"' size='40' maxlength='50'> - Keep old page as forwarder <input type='checkbox' name='forwarder' value='1' checked><input type='submit' value='move'>";
print $this->
FormClose();
} else print "<em>You're not the owner of this page.</em>";
} else print "Page ".
$this->
tag.
" doesn't exist.";
?>
</div>
CategoryDevelopmentHandlers