Difference between revisions of "Copy.php"

From Organic Design wiki
m
(oops, submits attaches this in data not view)
Line 9: Line 9:
  
 
if ($target) {
 
if ($target) {
# Perform the operation if target defined
+
# Perform the operation if target defined (called on data event)
  
 
global $wgContLang,$wgArticlePath;
 
global $wgContLang,$wgArticlePath;
Line 26: Line 26:
 
$list = array('');
 
$list = array('');
 
if ($xml) ereg('^Xml:',$title)
 
if ($xml) ereg('^Xml:',$title)
? $msg .= "<li>Properties not copied, $olink is already a properties article!</li>"
+
? $msg .= "*Properties not copied, $olink is already a properties article!\n"
 
: array_push($list,'Xml:');
 
: array_push($list,'Xml:');
 
if ($talk) $ns & 1
 
if ($talk) $ns & 1
? $msg .= "<li>Talk page not copied, $olink is already a talk page!</li>"
+
? $msg .= "*Talk page not copied, $olink is already a talk page!\n"
 
: array_push($list,$wgContLang->getNsText($ns|1).':');
 
: array_push($list,$wgContLang->getNsText($ns|1).':');
 
foreach ($list as $i => $nstxt) {
 
foreach ($list as $i => $nstxt) {
 
$ot = Title::newFromText($nstxt.$title);
 
$ot = Title::newFromText($nstxt.$title);
 
$nt = Title::newFromText($nstxt.$target);
 
$nt = Title::newFromText($nstxt.$target);
if ($nt->getArticleID()) $msg .= $err = "<li><b>Could not copy to \"$nstxt$target\", already exists!</li>";
+
if ($nt->getArticleID()) $msg .= $err = "*'''Could not copy to \"$nstxt$target\", already exists!'''\n";
 
else {
 
else {
 
$oa = new Article($ot);
 
$oa = new Article($ot);
Line 43: Line 43:
 
}
 
}
 
else {
 
else {
if ($err = $ot->moveTo($nt)) $msg .= "<li><b>Move from $olink to $nlink failed:</b> $err</li>";
+
if ($err = $ot->moveTo($nt)) $msg .= "*'''Move from $olink to $nlink failed:''' $err\n";
 
else {
 
else {
$msg .= "<li>$olink successfully moved to $nlink</li>";
+
$msg .= "*$olink successfully moved to $nlink\n";
 
if ($action == 'rename') {
 
if ($action == 'rename') {
 
$dbw =& wfGetDB(DB_MASTER);
 
$dbw =& wfGetDB(DB_MASTER);
Line 57: Line 57:
 
if (($i == 0) && $err) { $msg = $err; break; } # bail if problem moving the main article
 
if (($i == 0) && $err) { $msg = $err; break; } # bail if problem moving the main article
 
}
 
}
$msg = "<ul>$msg</ul>";
+
$article = "$msg\n\n\n\n$article";
 
}
 
}
 
else {
 
else {
# Define the form
+
# Replace article content with form (called on view event bu xpath-query in button-url)
 
$msg = "<h3>Rename/copy article:</h3><form action=\"/wiki/index.php\">
 
$msg = "<h3>Rename/copy article:</h3><form action=\"/wiki/index.php\">
 
<input type=hidden name=title value=\"$title\">
 
<input type=hidden name=title value=\"$title\">
Line 91: Line 91:
 
The original title is left unaffected by this operation.<br>
 
The original title is left unaffected by this operation.<br>
 
</table></form>";
 
</table></form>";
 +
$article = preg_replace('/(?<=<!-- start content -->).+(?=<!-- end content -->)/s',$msg,$article);
 
}
 
}
  
$article = preg_replace('/(?<=<!-- start content -->).+(?=<!-- end content -->)/s',$msg,$article);
 
 
?>
 
?>

Revision as of 09:00, 25 October 2006

<?

  1. Get copy-target and summary-text from form

xwGetProperty($properties, 'copy/target', $target); xwGetProperty($properties, 'copy/summary', $summary); xwGetProperty($properties, 'copy/xml', $xml); # move/copy properties too? xwGetProperty($properties, 'copy/talk', $talk); # move/copy talk too? xwGetProperty($properties, 'copy/action', $action);

if ($target) { # Perform the operation if target defined (called on data event)

global $wgContLang,$wgArticlePath; if ($summary) $summary = " : $summary"; $target = ucfirst(str_replace(' ', '_', $target)); $ot = Title::newFromText($title); $nt = Title::newFromText($target); $ns = $ot->getNamespace(); $title = $ot->getText(); $target = $nt->getText(); $err = $msg = ; $link = str_replace('$1',,$wgArticlePath); $olink = "<a href=\"$link".$ns.$title.">$ns$title</a>"; $nlink = "<a href=\"$link".$ns.$target.">$ns$target</a>";

$list = array(); if ($xml) ereg('^Xml:',$title) ? $msg .= "*Properties not copied, $olink is already a properties article!\n" : array_push($list,'Xml:'); if ($talk) $ns & 1 ? $msg .= "*Talk page not copied, $olink is already a talk page!\n" : array_push($list,$wgContLang->getNsText($ns|1).':'); foreach ($list as $i => $nstxt) { $ot = Title::newFromText($nstxt.$title); $nt = Title::newFromText($nstxt.$target); if ($nt->getArticleID()) $msg .= $err = "*Could not copy to \"$nstxt$target\", already exists!\n"; else { $oa = new Article($ot); $na = new Article($nt); if ($action == 'copy') { $na->insertNewArticle($article, "Copied from $nstxt$title$summary", false, false); $msg .= "New copy of $olink successfully created as $nlink"; } else { if ($err = $ot->moveTo($nt)) $msg .= "*Move from $olink to $nlink failed: $err\n"; else { $msg .= "*$olink successfully moved to $nlink\n"; if ($action == 'rename') { $dbw =& wfGetDB(DB_MASTER); $dbw->delete('cur', array('cur_namespace' => $ns, 'cur_title' => $title)); $dbw->delete('old', array('old_namespace' => $ns, 'old_title' => $title)); $dbw->delete('recentchanges', array('rc_namespace' => $ns, 'rc_title' => $title)); } } } } if (($i == 0) && $err) { $msg = $err; break; } # bail if problem moving the main article } $article = "$msg\n\n\n\n$article"; } else { # Replace article content with form (called on view event bu xpath-query in button-url)

$msg = "

Rename/copy article:

<form action=\"/wiki/index.php\">

<input type=hidden name=title value=\"$title\"> <input type=hidden name=\"xpath:/properties:data\" value=\"$tTitle\"> <input type=hidden name=\"xpath:/properties:copy\">

New title:<input type=text name=\"xpath:/properties/copy:target\">
Reason:<input type=text name=\"xpath:/properties/copy:summary\">
Action: <input type=radio name=\"xpath:/properties/copy:action\" value=rename checked>Rename

  <input type=radio name=\"xpath:/properties/copy:action\" value=redir>Redirect   <input type=radio name=\"xpath:/properties/copy:action\" value=copy>Copy

<input type=checkbox checked=checked value=1 name=\"xpath:/properties/copy:xml\">

Also apply to properties

<input type=checkbox checked=checked value=1 name=\"xpath:/properties/copy:talk\">

Also apply to discussion

<input type=submit value=\" Commit \">



Help

Rename
Changes the title of the article applying to current content and all the history.
The original title becomes unused and all links to that title will become red creation links.

Redirect
Changes the title of the article applying to current content and all the history.
Any links referring to the original title are automatically redirected to the new title
(unless redir=no is included in the query-string).
This is the action MediaWiki takes when \"move\" is applied to an article.

Copy
Creates a new article with the same content as the original, but exhibiting no history.
The original title is left unaffected by this operation.

</form>";

$article = preg_replace('/(?<=).+(?=)/s',$msg,$article); }

?>