wiki.techinc.nl/trackback.php

62 lines
1.3 KiB
PHP
Raw Normal View History

2005-07-23 05:47:25 +00:00
<?php
/**
* Provide functions to handle article trackbacks.
* @file
* @ingroup SpecialPage
2005-07-23 05:47:25 +00:00
*/
require_once( './includes/WebStart.php' );
2005-07-23 05:47:25 +00:00
function XMLsuccess() {
header( "Content-Type: application/xml; charset=utf-8" );
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
2005-07-23 05:47:25 +00:00
<response>
<error>0</error>
</response>
";
exit;
}
function XMLerror( $err = "Invalid request." ) {
header( "HTTP/1.0 400 Bad Request" );
header( "Content-Type: application/xml; charset=utf-8" );
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
2005-07-23 05:47:25 +00:00
<response>
<error>1</error>
<message>Invalid request: $err</message>
</response>
";
exit;
}
if( !$wgUseTrackbacks )
2005-07-23 05:47:25 +00:00
XMLerror("Trackbacks are disabled.");
if( !isset( $_POST['url'] )
|| !isset( $_REQUEST['article'] ) )
2005-07-23 05:47:25 +00:00
XMLerror("Required field not specified");
$dbw = wfGetDB( DB_MASTER );
2005-07-23 05:47:25 +00:00
$tbtitle = strval( @$_POST['title'] );
$tbex = strval( @$_POST['excerpt'] );
$tburl = strval( $_POST['url'] );
$tbname = strval( @$_POST['blog_name'] );
$tbarticle = strval( $_REQUEST['article'] );
2005-07-23 05:47:25 +00:00
$title = Title::newFromText($tbarticle);
if( !$title || !$title->exists() )
XMLerror( "Specified article does not exist." );
2005-07-23 05:47:25 +00:00
$dbw->insert('trackbacks', array(
2005-07-23 06:30:26 +00:00
'tb_page' => $title->getArticleID(),
'tb_title' => $tbtitle,
'tb_url' => $tburl,
'tb_ex' => $tbex,
'tb_name' => $tbname
2005-07-23 05:47:25 +00:00
));
$dbw->commit();
2005-07-23 05:47:25 +00:00
XMLsuccess();