From: Chad Horohoe Date: Wed, 23 Nov 2011 17:14:03 +0000 (+0000) Subject: (bug 29475) Remove "trackback" feature entirely from core. This has been disabled... X-Git-Tag: 1.31.0-rc.0~26322 X-Git-Url: http://git.cyclocoop.org/%22%2C%20generer_url_ecrire%28?a=commitdiff_plain;h=7914b2ee68fe2e02ce88ae10404bf835de2cb0c4;p=lhc%2Fweb%2Fwiklou.git (bug 29475) Remove "trackback" feature entirely from core. This has been disabled-by-default since its inception and nobody uses it. If someone really really wants this, they can write an extension. Language files need rebuilding, but I took care of En and messages.inc. --- diff --git a/RELEASE-NOTES-1.19 b/RELEASE-NOTES-1.19 index ed1df565b0..ad2d529045 100644 --- a/RELEASE-NOTES-1.19 +++ b/RELEASE-NOTES-1.19 @@ -156,6 +156,7 @@ production. * (bug 29747) eAccelerator shared memory caching has been removed since it is now disabled by default and is buggy. APC, XCache and WinCache are not affected. * Installer now refuses to install if php was not compiled with Ctype support. +* (bug 29475) Remove "trackback" feature entirely from core === API changes in 1.19 === * (bug 19838) siprop=interwikimap can now use the interwiki cache. diff --git a/includes/Article.php b/includes/Article.php index 92e6f06fbd..bb3ac3780f 100644 --- a/includes/Article.php +++ b/includes/Article.php @@ -857,7 +857,7 @@ class Article extends Page { * Show the footer section of an ordinary page view */ public function showViewFooter() { - global $wgOut, $wgUseTrackbacks; + global $wgOut; # check if we're displaying a [[User talk:x.x.x.x]] anonymous talk page if ( $this->getTitle()->getNamespace() == NS_USER_TALK && IP::isValid( $this->getTitle()->getText() ) ) { @@ -868,11 +868,6 @@ class Article extends Page { # chance to mark this new article as patrolled. $this->showPatrolFooter(); - # Trackbacks - if ( $wgUseTrackbacks ) { - $this->addTrackbacks(); - } - wfRunHooks( 'ArticleViewFooter', array( $this ) ); } @@ -1220,46 +1215,6 @@ class Article extends Page { '' . $link . ''; } - /** - * Builds trackback links for article display if $wgUseTrackbacks is set to true - */ - public function addTrackbacks() { - global $wgOut; - - $dbr = wfGetDB( DB_SLAVE ); - $tbs = $dbr->select( 'trackbacks', - array( 'tb_id', 'tb_title', 'tb_url', 'tb_ex', 'tb_name' ), - array( 'tb_page' => $this->mPage->getID() ) - ); - - if ( !$dbr->numRows( $tbs ) ) { - return; - } - - $wgOut->preventClickjacking(); - - $tbtext = ""; - foreach ( $tbs as $o ) { - $rmvtxt = ""; - - if ( $this->getContext()->getUser()->isAllowed( 'trackback' ) ) { - $delurl = $this->getTitle()->getFullURL( "action=deletetrackback&tbid=" . - $o->tb_id . "&token=" . urlencode( $this->getContext()->getUser()->getEditToken() ) ); - $rmvtxt = wfMsg( 'trackbackremove', htmlspecialchars( $delurl ) ); - } - - $tbtext .= "\n"; - $tbtext .= wfMsgNoTrans( strlen( $o->tb_ex ) ? 'trackbackexcerpt' : 'trackback', - $o->tb_title, - $o->tb_url, - $o->tb_ex, - $o->tb_name, - $rmvtxt ); - } - - $wgOut->wrapWikiMsg( "
\n$1\n
\n", array( 'trackbackbox', $tbtext ) ); - } - /** * Handle action=render */ @@ -1656,14 +1611,6 @@ class Article extends Page { } } - /** - * Removes trackback record for current article from trackbacks table - * @deprecated since 1.18 - */ - public function deletetrackback() { - return Action::factory( 'deletetrackback', $this )->show(); - } - /** * Info about this page * @deprecated since 1.19 diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index 8d2ec0eb82..307326a266 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -255,7 +255,6 @@ $wgAutoloadLocalClasses = array( # includes/actions 'CreditsAction' => 'includes/actions/CreditsAction.php', - 'DeletetrackbackAction' => 'includes/actions/DeletetrackbackAction.php', 'HistoryAction' => 'includes/actions/HistoryAction.php', 'HistoryPage' => 'includes/actions/HistoryAction.php', 'HistoryPager' => 'includes/actions/HistoryAction.php', diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index fd14eb402f..7ff3ce3345 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -3472,7 +3472,6 @@ $wgGroupPermissions['sysop']['movefile'] = true; $wgGroupPermissions['sysop']['unblockself'] = true; $wgGroupPermissions['sysop']['suppressredirect'] = true; #$wgGroupPermissions['sysop']['mergehistory'] = true; -#$wgGroupPermissions['sysop']['trackback'] = true; // Permission to change users' group assignments $wgGroupPermissions['bureaucrat']['userrights'] = true; @@ -4124,14 +4123,6 @@ $wgAggregateStatsID = false; */ $wgDisableCounters = false; -/** - * Support blog-style "trackbacks" for articles. See - * http://www.sixapart.com/pronet/docs/trackback_spec for details. - * - * If enabling this, you also need to grant the 'trackback' right to a group - */ -$wgUseTrackbacks = false; - /** * Parser test suite files to be run by parserTests.php when no specific * filename is passed to it. @@ -5250,7 +5241,6 @@ $wgMaxRedirectLinksRetrieved = 500; */ $wgActions = array( 'credits' => true, - 'deletetrackback' => true, 'history' => true, 'info' => true, 'markpatrolled' => true, diff --git a/includes/FakeTitle.php b/includes/FakeTitle.php index 88ee8084b6..448820d081 100644 --- a/includes/FakeTitle.php +++ b/includes/FakeTitle.php @@ -112,8 +112,6 @@ class FakeTitle extends Title { function touchLinks() { $this->error(); } function getTouched( $db = null ) { $this->error(); } function getNotificationTimestamp( $user = null ) { $this->error(); } - function trackbackURL() { $this->error(); } - function trackbackRDF() { $this->error(); } function getNamespaceKey( $prepend = 'nstab-' ) { $this->error(); } function isSpecialPage() { $this->error(); } function isSpecial( $name ) { $this->error(); } diff --git a/includes/OutputPage.php b/includes/OutputPage.php index 9d5c5a1f20..6b464ea931 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -2327,7 +2327,7 @@ $templates * @return String: The doctype, opening , and head element. */ public function headElement( Skin $sk, $includeStyle = true ) { - global $wgContLang, $wgUseTrackbacks; + global $wgContLang; $userdir = $this->getLanguage()->getDir(); $sitedir = $wgContLang->getDir(); @@ -2356,10 +2356,6 @@ $templates $this->getHeadItems() ) ); - if ( $wgUseTrackbacks && $this->isArticleRelated() ) { - $ret .= $this->getTitle()->trackbackRDF(); - } - $closeHead = Html::closeElement( 'head' ); if ( $closeHead ) { $ret .= "$closeHead\n"; diff --git a/includes/SkinLegacy.php b/includes/SkinLegacy.php index 855098e8b3..5d1f4bdc3b 100644 --- a/includes/SkinLegacy.php +++ b/includes/SkinLegacy.php @@ -284,7 +284,7 @@ class LegacyTemplate extends BaseTemplate { } function bottomLinks() { - global $wgOut, $wgUser, $wgUseTrackbacks; + global $wgOut, $wgUser; $sep = wfMsgExt( 'pipe-separator', 'escapenoentities' ) . "\n"; $s = ''; @@ -300,10 +300,6 @@ class LegacyTemplate extends BaseTemplate { $element[] = $this->whatLinksHere(); $element[] = $this->watchPageLinksLink(); - if ( $wgUseTrackbacks ) { - $element[] = $this->trackbackLink(); - } - $title = $this->getSkin()->getTitle(); if ( @@ -709,11 +705,6 @@ class LegacyTemplate extends BaseTemplate { } } - function trackbackLink() { - return '' - . wfMsg( 'trackbacklink' ) . ''; - } - function talkLink() { $title = $this->getSkin()->getTitle(); if ( NS_SPECIAL == $title->getNamespace() ) { diff --git a/includes/SkinTemplate.php b/includes/SkinTemplate.php index 2ab01bc0b7..03292c24aa 100644 --- a/includes/SkinTemplate.php +++ b/includes/SkinTemplate.php @@ -139,7 +139,7 @@ class SkinTemplate extends Skin { global $wgDisableCounters, $wgSitename, $wgLogo, $wgHideInterlanguageLinks; global $wgMaxCredits, $wgShowCreditsIfMax; global $wgPageShowWatchingUsers; - global $wgUseTrackbacks, $wgUseSiteJs, $wgDebugComments; + global $wgUseSiteJs, $wgDebugComments; global $wgArticlePath, $wgScriptPath, $wgServer; wfProfileIn( __METHOD__ ); @@ -215,13 +215,6 @@ class SkinTemplate extends Skin { $tpl->set( 'html5version', $wgHtml5Version ); $tpl->set( 'headlinks', $out->getHeadLinks() ); $tpl->set( 'csslinks', $out->buildCssLinks() ); - - if( $wgUseTrackbacks && $out->isArticleRelated() ) { - $tpl->set( 'trackbackhtml', $out->getTitle()->trackbackRDF() ); - } else { - $tpl->set( 'trackbackhtml', null ); - } - $tpl->set( 'pageclass', $this->getPageClasses( $this->getTitle() ) ); $tpl->set( 'skinnameclass', ( 'skin-' . Sanitizer::escapeClass( $this->getSkinName() ) ) ); } @@ -1120,7 +1113,6 @@ class SkinTemplate extends Skin { * @private */ protected function buildNavUrls() { - global $wgUseTrackbacks; global $wgUploadNavigationUrl; wfProfileIn( __METHOD__ ); @@ -1143,7 +1135,6 @@ class SkinTemplate extends Skin { $nav_urls['permalink'] = false; $nav_urls['whatlinkshere'] = false; $nav_urls['recentchangeslinked'] = false; - $nav_urls['trackbacklink'] = false; $nav_urls['contributions'] = false; $nav_urls['log'] = false; $nav_urls['blockip'] = false; @@ -1183,11 +1174,6 @@ class SkinTemplate extends Skin { 'href' => SpecialPage::getTitleFor( 'Recentchangeslinked', $this->thispage )->getLocalUrl() ); } - if ( $wgUseTrackbacks ) { - $nav_urls['trackbacklink'] = array( - 'href' => $out->getTitle()->trackbackURL() - ); - } } $user = $this->getRelevantUser(); @@ -1420,10 +1406,6 @@ abstract class BaseTemplate extends QuickTemplate { $toolbox['recentchangeslinked']['msg'] = 'recentchangeslinked-toolbox'; $toolbox['recentchangeslinked']['id'] = 't-recentchangeslinked'; } - if ( isset( $this->data['nav_urls']['trackbacklink'] ) && $this->data['nav_urls']['trackbacklink'] ) { - $toolbox['trackbacklink'] = $this->data['nav_urls']['trackbacklink']; - $toolbox['trackbacklink']['id'] = 't-trackbacklink'; - } if ( isset( $this->data['feeds'] ) && $this->data['feeds'] ) { $toolbox['feeds']['id'] = 'feedlinks'; $toolbox['feeds']['links'] = array(); diff --git a/includes/Title.php b/includes/Title.php index 4c2ccda8dc..d1d1e78231 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -3434,10 +3434,7 @@ class Title { $dbw->delete( 'page', array( 'page_id' => $newid ), __METHOD__ ); if ( !$dbw->cascadingDeletes() ) { $dbw->delete( 'revision', array( 'rev_page' => $newid ), __METHOD__ ); - global $wgUseTrackbacks; - if ( $wgUseTrackbacks ) { - $dbw->delete( 'trackbacks', array( 'tb_page' => $newid ), __METHOD__ ); - } + $dbw->delete( 'pagelinks', array( 'pl_from' => $newid ), __METHOD__ ); $dbw->delete( 'imagelinks', array( 'il_from' => $newid ), __METHOD__ ); $dbw->delete( 'categorylinks', array( 'cl_from' => $newid ), __METHOD__ ); @@ -4146,46 +4143,6 @@ class Title { return $this->mNotificationTimestamp[$uid]; } - /** - * Get the trackback URL for this page - * - * @return String Trackback URL - */ - public function trackbackURL() { - global $wgScriptPath, $wgServer, $wgScriptExtension; - - return "$wgServer$wgScriptPath/trackback$wgScriptExtension?article=" - . htmlspecialchars( urlencode( $this->getPrefixedDBkey() ) ); - } - - /** - * Get the trackback RDF for this page - * - * @return String Trackback RDF - */ - public function trackbackRDF() { - $url = htmlspecialchars( $this->getFullURL() ); - $title = htmlspecialchars( $this->getText() ); - $tburl = $this->trackbackURL(); - - // Autodiscovery RDF is placed in comments so HTML validator - // won't barf. This is a rather icky workaround, but seems - // frequently used by this kind of RDF thingy. - // - // Spec: http://www.sixapart.com/pronet/docs/trackback_spec - return ""; - } - /** * Generate strings used for xml 'id' names in monobook tabs * diff --git a/includes/User.php b/includes/User.php index 0546424466..f3a0c565a2 100644 --- a/includes/User.php +++ b/includes/User.php @@ -148,7 +148,6 @@ class User { 'suppressionlog', 'suppressredirect', 'suppressrevision', - 'trackback', 'unblockself', 'undelete', 'unwatchedpages', diff --git a/includes/WikiPage.php b/includes/WikiPage.php index 8bfc4e19fa..599cca42de 100644 --- a/includes/WikiPage.php +++ b/includes/WikiPage.php @@ -1651,7 +1651,7 @@ class WikiPage extends Page { public function doDeleteArticle( $reason, $suppress = false, $id = 0, $commit = true, &$error = '', User $user = null ) { - global $wgUseTrackbacks, $wgUser; + global $wgUser; $user = is_null( $user ) ? $wgUser : $user; wfDebug( __METHOD__ . "\n" ); @@ -1744,10 +1744,6 @@ class WikiPage extends Page { if ( !$dbw->cascadingDeletes() ) { $dbw->delete( 'revision', array( 'rev_page' => $id ), __METHOD__ ); - if ( $wgUseTrackbacks ) { - $dbw->delete( 'trackbacks', array( 'tb_page' => $id ), __METHOD__ ); - } - # Delete outgoing links $dbw->delete( 'pagelinks', array( 'pl_from' => $id ), __METHOD__ ); $dbw->delete( 'imagelinks', array( 'il_from' => $id ), __METHOD__ ); diff --git a/includes/actions/DeletetrackbackAction.php b/includes/actions/DeletetrackbackAction.php deleted file mode 100644 index 0efebdf54f..0000000000 --- a/includes/actions/DeletetrackbackAction.php +++ /dev/null @@ -1,54 +0,0 @@ -matchEditToken( $this->getRequest()->getVal( 'token' ) ) ) { - throw new ErrorPageError( 'sessionfailure-title', 'sessionfailure' ); - } - - return parent::checkCanExecute( $user ); - } - - public function onView() { - $db = wfGetDB( DB_MASTER ); - $db->delete( 'trackbacks', array( 'tb_id' => $this->getRequest()->getInt( 'tbid' ) ) ); - - $this->getOutput()->addWikiMsg( 'trackbackdeleteok' ); - $this->getTitle()->invalidateCache(); - } -} diff --git a/includes/installer/MysqlUpdater.php b/includes/installer/MysqlUpdater.php index 707c3d0fd9..38605c0e17 100644 --- a/includes/installer/MysqlUpdater.php +++ b/includes/installer/MysqlUpdater.php @@ -66,7 +66,6 @@ class MysqlUpdater extends DatabaseUpdater { array( 'addTable', 'user_newtalk', 'patch-usernewtalk2.sql' ), array( 'addTable', 'transcache', 'patch-transcache.sql' ), array( 'addField', 'interwiki', 'iw_trans', 'patch-interwiki-trans.sql' ), - array( 'addTable', 'trackbacks', 'patch-trackbacks.sql' ), // 1.6 array( 'doWatchlistNull' ), diff --git a/includes/installer/PostgresUpdater.php b/includes/installer/PostgresUpdater.php index 48fc1505df..f8f02dd8de 100644 --- a/includes/installer/PostgresUpdater.php +++ b/includes/installer/PostgresUpdater.php @@ -216,7 +216,6 @@ class PostgresUpdater extends DatabaseUpdater { array( 'changeFkeyDeferrable', 'revision', 'rev_page', 'page (page_id) ON DELETE CASCADE' ), array( 'changeFkeyDeferrable', 'revision', 'rev_user', 'mwuser(user_id) ON DELETE RESTRICT' ), array( 'changeFkeyDeferrable', 'templatelinks', 'tl_from', 'page(page_id) ON DELETE CASCADE' ), - array( 'changeFkeyDeferrable', 'trackbacks', 'tb_page', 'page(page_id) ON DELETE CASCADE' ), array( 'changeFkeyDeferrable', 'user_groups', 'ug_user', 'mwuser(user_id) ON DELETE CASCADE' ), array( 'changeFkeyDeferrable', 'user_newtalk', 'user_id', 'mwuser(user_id) ON DELETE CASCADE' ), array( 'changeFkeyDeferrable', 'user_properties', 'up_user', 'mwuser(user_id) ON DELETE CASCADE' ), diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index d4bd333df6..527e33bd9b 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -1975,7 +1975,6 @@ Your e-mail address is not revealed when other users contact you.', 'right-autopatrol' => "Have one's own edits automatically marked as patrolled", 'right-patrolmarks' => 'View recent changes patrol marks', 'right-unwatchedpages' => 'View a list of unwatched pages', -'right-trackback' => 'Submit a trackback', 'right-mergehistory' => 'Merge the history of pages', 'right-userrights' => 'Edit all user rights', 'right-userrights-interwiki' => 'Edit user rights of users on other wikis', @@ -2022,7 +2021,6 @@ Your e-mail address is not revealed when other users contact you.', 'action-patrol' => "mark others' edit as patrolled", 'action-autopatrol' => 'have your edit marked as patrolled', 'action-unwatchedpages' => 'view the list of unwatched pages', -'action-trackback' => 'submit a trackback', 'action-mergehistory' => 'merge the history of this page', 'action-userrights' => 'edit all user rights', 'action-userrights-interwiki' => 'edit user rights of users on other wikis', @@ -4273,15 +4271,6 @@ This confirmation code will expire at $4.', 'scarytranscludefailed' => '[Template fetch failed for $1]', 'scarytranscludetoolong' => '[URL is too long]', -# Trackbacks -'trackbackbox' => 'Trackbacks for this page:
-$1', -'trackback' => '; $4 $5: [$2 $1]', # only translate this message to other languages if you have to change it -'trackbackexcerpt' => '; $4 $5: [$2 $1]: $3', # only translate this message to other languages if you have to change it -'trackbackremove' => '([$1 Delete])', -'trackbacklink' => 'Trackback', -'trackbackdeleteok' => 'The trackback was successfully deleted.', - # Delete conflict 'deletedwhileediting' => "'''Warning''': This page was deleted after you started editing!", 'confirmrecreate' => "User [[User:$1|$1]] ([[User talk:$1|talk]]) deleted this page after you started editing with reason: diff --git a/maintenance/archives/patch-trackbacks.sql b/maintenance/archives/patch-trackbacks.sql deleted file mode 100644 index e3a47aae57..0000000000 --- a/maintenance/archives/patch-trackbacks.sql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE TABLE /*$wgDBprefix*/trackbacks ( - tb_id INTEGER AUTO_INCREMENT PRIMARY KEY, - tb_page INTEGER REFERENCES page(page_id) ON DELETE CASCADE, - tb_title VARCHAR(255) NOT NULL, - tb_url BLOB NOT NULL, - tb_ex TEXT, - tb_name VARCHAR(255), - - INDEX (tb_page) -); diff --git a/maintenance/fuzz-tester.php b/maintenance/fuzz-tester.php index 3df3aa4451..d87d628153 100644 --- a/maintenance/fuzz-tester.php +++ b/maintenance/fuzz-tester.php @@ -108,7 +108,6 @@ Wiki configuration for testing: $wgGroupPermissions['*']['reupload-shared'] = true; $wgGroupPermissions['*']['rollback'] = true; $wgGroupPermissions['*']['siteadmin'] = true; - $wgGroupPermissions['*']['trackback'] = true; $wgGroupPermissions['*']['unwatchedpages'] = true; $wgGroupPermissions['*']['upload'] = true; $wgGroupPermissions['*']['userrights'] = true; @@ -121,7 +120,6 @@ Wiki configuration for testing: error_reporting (E_ALL); // At a later date could be increased to E_ALL | E_STRICT $wgBlockOpenProxies = true; // Some block pages require this to be true in order to test. $wgEnableUploads = true; // enable uploads. - //$wgUseTrackbacks = true; // enable trackbacks; However this breaks the viewPageTest, so currently disabled. $wgDBerrorLog = "/root/mediawiki-db-error-log.txt"; // log DB errors, replace with suitable path. $wgShowSQLErrors = true; // Show SQL errors (instead of saying the query was hidden). $wgShowExceptionDetails = true; // want backtraces. @@ -1819,32 +1817,6 @@ class thumbTest extends pageTest { } } - -/** - ** a test for trackback.php - */ -class trackbackTest extends pageTest { - function __construct() { - $this->pagePath = "trackback.php"; - - $this->params = array ( - "url" => wikiFuzz::makeFuzz( 2 ), - "blog_name" => wikiFuzz::chooseInput( array( "80", wikiFuzz::randnum( 6000, -200 ), wikiFuzz::makeFuzz( 2 ) ) ), - "article" => wikiFuzz::chooseInput( array( "Main Page", wikiFuzz::makeFuzz( 2 ) ) ), - "title" => wikiFuzz::chooseInput( array( "Main Page", wikiFuzz::makeFuzz( 2 ) ) ), - "excerpt" => wikiFuzz::makeFuzz( 2 ), - ); - - // sometimes we don't want to specify certain parameters. - if ( wikiFuzz::randnum( 3 ) == 0 ) unset( $this->params["title"] ); - if ( wikiFuzz::randnum( 3 ) == 0 ) unset( $this->params["excerpt"] ); - - // page does not produce HTML. - $this->tidyValidate = false; - } -} - - /** ** a test for profileinfo.php */ @@ -2188,7 +2160,7 @@ class GeSHi_Test extends pageTest { /** ** selects a page test to run. * @param $count - * @return \api|\confirmEmail|\contributionsTest|\editPageTest|\imagelistTest|\imagepageTest|\ipblocklistTest|\listusersTest|\mimeSearchTest|\newImagesTest|\pageDeletion|\pageHistoryTest|\pageProtectionForm|\prefixindexTest|\profileInfo|\recentchangesTest|\redirectTest|\searchTest|\specialAllmessagesTest|\specialAllpagesTest|\specialBlockip|\specialBlockmeTest|\specialBooksourcesTest|\specialCategoryTree|\specialChemicalsourcesTest|\specialCitePageTest|\specialExportTest|\specialFilepathPageTest|\specialImportPageTest|\specialLinksearch|\specialLockdbPageTest|\specialLogTest|\specialMovePage|\specialNewpagesPageTest|\specialRenameuserPageTest|\specialRevisionDeletePageTest|\specialUndeletePageTest|\specialUnlockdbPageTest|\specialUserrights|\successfulUserLoginTest|\thumbTest|\trackbackTest|\userLoginTest|\viewPageTest|\watchlistTest + * @return \api|\confirmEmail|\contributionsTest|\editPageTest|\imagelistTest|\imagepageTest|\ipblocklistTest|\listusersTest|\mimeSearchTest|\newImagesTest|\pageDeletion|\pageHistoryTest|\pageProtectionForm|\prefixindexTest|\profileInfo|\recentchangesTest|\redirectTest|\searchTest|\specialAllmessagesTest|\specialAllpagesTest|\specialBlockip|\specialBlockmeTest|\specialBooksourcesTest|\specialCategoryTree|\specialChemicalsourcesTest|\specialCitePageTest|\specialExportTest|\specialFilepathPageTest|\specialImportPageTest|\specialLinksearch|\specialLockdbPageTest|\specialLogTest|\specialMovePage|\specialNewpagesPageTest|\specialRenameuserPageTest|\specialRevisionDeletePageTest|\specialUndeletePageTest|\specialUnlockdbPageTest|\specialUserrights|\successfulUserLoginTest|\thumbTest|\userLoginTest|\viewPageTest|\watchlistTest */ function selectPageTest( $count ) { @@ -2237,7 +2209,6 @@ function selectPageTest( $count ) { case 33: return new specialRevisionDeletePageTest(); case 34: return new specialImportPageTest(); case 35: return new thumbTest(); - case 36: return new trackbackTest(); case 37: return new profileInfo(); case 38: return new specialCitePageTest(); case 39: return new specialFilepathPageTest(); diff --git a/maintenance/ibm_db2/foreignkeys.sql b/maintenance/ibm_db2/foreignkeys.sql index 81a88eb93a..4f1450d9b6 100644 --- a/maintenance/ibm_db2/foreignkeys.sql +++ b/maintenance/ibm_db2/foreignkeys.sql @@ -93,11 +93,6 @@ ALTER TABLE oldimage ADD CONSTRAINT OLDIMAGE_NAME_FK FOREIGN KEY (oi_name) REFER ALTER TABLE watchlist ADD CONSTRAINT WATCHLIST_USER_FK FOREIGN KEY (wl_user) REFERENCES user(user_id) ON DELETE CASCADE ; --- good --- already in MySQL schema -ALTER TABLE trackbacks ADD CONSTRAINT TRACKBACKS_PAGE_FK FOREIGN KEY (tb_page) REFERENCES page(page_id) ON DELETE CASCADE -; - -- cannot contain null values -- ALTER TABLE protected_titles ADD CONSTRAINT PROTECTED_TITLES_USER_FK FOREIGN KEY (pt_user) REFERENCES user(user_id) ON DELETE SET NULL --; diff --git a/maintenance/ibm_db2/tables.sql b/maintenance/ibm_db2/tables.sql index 261a3a2b45..cd00bfe84c 100644 --- a/maintenance/ibm_db2/tables.sql +++ b/maintenance/ibm_db2/tables.sql @@ -523,22 +523,6 @@ CREATE INDEX log_user_type_time ON logging (log_user, log_type, log_timestamp); CREATE INDEX log_page_id_time ON logging (log_page,log_timestamp); - -CREATE TABLE trackbacks ( - tb_id INTEGER NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (START WITH 1), - --PRIMARY KEY DEFAULT nextval('trackbacks_tb_id_seq'), - -- foreign key also in MySQL - tb_page INTEGER, - -- REFERENCES page(page_id) ON DELETE CASCADE, - tb_title VARCHAR(255) NOT NULL, - tb_url CLOB(64K) INLINE LENGTH 4096 NOT NULL, - tb_ex CLOB(64K) INLINE LENGTH 4096, - tb_name VARCHAR(255) -); -CREATE INDEX trackback_page ON trackbacks (tb_page); - - - CREATE TABLE job ( job_id BIGINT NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (START WITH 1), --PRIMARY KEY DEFAULT nextval('job_job_id_seq'), diff --git a/maintenance/language/messageTypes.inc b/maintenance/language/messageTypes.inc index 946ae7de1e..09b947153c 100644 --- a/maintenance/language/messageTypes.inc +++ b/maintenance/language/messageTypes.inc @@ -393,8 +393,6 @@ $wgOptionalMessages = array( 'diff-with-additional', 'pagetitle-view-mainpage', 'backlinksubtitle', - 'trackback', - 'trackbackexcerpt', 'prefs-registration-date-time', 'prefs-memberingroups-type', 'shared-repo-name-wikimediacommons', diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index c58ebb34a4..156c1235b5 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -1140,7 +1140,6 @@ $wgMessageStructure = array( 'right-autopatrol', 'right-patrolmarks', 'right-unwatchedpages', - 'right-trackback', 'right-mergehistory', 'right-userrights', 'right-userrights-interwiki', @@ -1187,7 +1186,6 @@ $wgMessageStructure = array( 'action-patrol', 'action-autopatrol', 'action-unwatchedpages', - 'action-trackback', 'action-mergehistory', 'action-userrights', 'action-userrights-interwiki', @@ -3180,14 +3178,6 @@ $wgMessageStructure = array( 'scarytranscludefailed', 'scarytranscludetoolong', ), - 'trackbacks' => array( - 'trackbackbox', - 'trackback', - 'trackbackexcerpt', - 'trackbackremove', - 'trackbacklink', - 'trackbackdeleteok', - ), 'deleteconflict' => array( 'deletedwhileediting', 'confirmrecreate', @@ -3706,7 +3696,6 @@ Variants for Chinese language", 'all' => "'all' in various places, this might be different for inflected languages", 'confirmemail' => 'E-mail address confirmation', 'scarytransclusion' => 'Scary transclusion', - 'trackbacks' => 'Trackbacks', 'deleteconflict' => 'Delete conflict', 'unit-pixel' => '', 'purge' => 'action=purge', diff --git a/maintenance/mssql/tables.sql b/maintenance/mssql/tables.sql index dca64f17da..8c4d500876 100644 --- a/maintenance/mssql/tables.sql +++ b/maintenance/mssql/tables.sql @@ -642,16 +642,6 @@ CREATE UNIQUE INDEX /*$wgDBprefix*/ls_field_val ON /*$wgDBprefix*/log_search (ls CREATE INDEX /*$wgDBprefix*/ls_log_id ON /*$wgDBprefix*/log_search (ls_log_id); -CREATE TABLE /*$wgDBprefix*/trackbacks ( - tb_id INT PRIMARY KEY, - tb_page INT REFERENCES /*$wgDBprefix*/page(page_id) ON DELETE CASCADE, - tb_title NVARCHAR(255) NOT NULL, - tb_url NVARCHAR(255) NOT NULL, - tb_ex NVARCHAR(MAX), - tb_name NVARCHAR(255), -); -CREATE INDEX /*$wgDBprefix*/trackbacks_page ON /*$wgDBprefix*/trackbacks(tb_page); - -- Jobs performed by parallel apache threads or a command-line daemon CREATE TABLE /*$wgDBprefix*/job ( job_id INT NOT NULL PRIMARY KEY, diff --git a/maintenance/oracle/archives/patch_fk_rename_deferred.sql b/maintenance/oracle/archives/patch_fk_rename_deferred.sql index ce5be9af61..ca9c997f40 100644 --- a/maintenance/oracle/archives/patch_fk_rename_deferred.sql +++ b/maintenance/oracle/archives/patch_fk_rename_deferred.sql @@ -35,7 +35,6 @@ ALTER TABLE &mw_prefix.recentchanges ADD CONSTRAINT &mw_prefix.recentchanges_fk1 ALTER TABLE &mw_prefix.recentchanges ADD CONSTRAINT &mw_prefix.recentchanges_fk2 FOREIGN KEY (rc_cur_id) REFERENCES &mw_prefix.page(page_id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED; ALTER TABLE &mw_prefix.watchlist ADD CONSTRAINT &mw_prefix.watchlist_fk1 FOREIGN KEY (wl_user) REFERENCES &mw_prefix.mwuser(user_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED; ALTER TABLE &mw_prefix.logging ADD CONSTRAINT &mw_prefix.logging_fk1 FOREIGN KEY (log_user) REFERENCES &mw_prefix.mwuser(user_id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED; -ALTER TABLE &mw_prefix.trackbacks ADD CONSTRAINT &mw_prefix.trackbacks_fk1 FOREIGN KEY (tb_page) REFERENCES &mw_prefix.page(page_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED; ALTER TABLE &mw_prefix.redirect ADD CONSTRAINT &mw_prefix.redirect_fk1 FOREIGN KEY (rd_from) REFERENCES &mw_prefix.page(page_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED; ALTER TABLE &mw_prefix.page_restrictions ADD CONSTRAINT &mw_prefix.page_restrictions_fk1 FOREIGN KEY (pr_page) REFERENCES &mw_prefix.page(page_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED; diff --git a/maintenance/oracle/tables.sql b/maintenance/oracle/tables.sql index caa61284d8..6274582321 100644 --- a/maintenance/oracle/tables.sql +++ b/maintenance/oracle/tables.sql @@ -511,18 +511,6 @@ CREATE TABLE &mw_prefix.log_search ( ALTER TABLE &mw_prefix.log_search ADD CONSTRAINT log_search_pk PRIMARY KEY (ls_field,ls_value,ls_log_id); CREATE INDEX &mw_prefix.log_search_i01 ON &mw_prefix.log_search (ls_log_id); -CREATE SEQUENCE trackbacks_tb_id_seq; -CREATE TABLE &mw_prefix.trackbacks ( - tb_id NUMBER NOT NULL, - tb_page NUMBER, - tb_title VARCHAR2(255) NOT NULL, - tb_url VARCHAR2(255) NOT NULL, - tb_ex CLOB, - tb_name VARCHAR2(255) -); -ALTER TABLE &mw_prefix.trackbacks ADD CONSTRAINT &mw_prefix.trackbacks_pk PRIMARY KEY (tb_id); -ALTER TABLE &mw_prefix.trackbacks ADD CONSTRAINT &mw_prefix.trackbacks_fk1 FOREIGN KEY (tb_page) REFERENCES &mw_prefix.page(page_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED; -CREATE INDEX &mw_prefix.trackbacks_i01 ON &mw_prefix.trackbacks (tb_page); CREATE SEQUENCE job_job_id_seq; CREATE TABLE &mw_prefix.job ( diff --git a/maintenance/postgres/mediawiki_mysql2postgres.pl b/maintenance/postgres/mediawiki_mysql2postgres.pl index 9133477e4a..8f170abceb 100644 --- a/maintenance/postgres/mediawiki_mysql2postgres.pl +++ b/maintenance/postgres/mediawiki_mysql2postgres.pl @@ -417,7 +417,6 @@ SELECT setval('page_restrictions_pr_id_seq', 1+coalesce(max(pr_id) ,0),false) F SELECT setval('recentchanges_rc_id_seq', 1+coalesce(max(rc_id) ,0),false) FROM recentchanges; SELECT setval('revision_rev_id_seq', 1+coalesce(max(rev_id) ,0),false) FROM revision; SELECT setval('text_old_id_seq', 1+coalesce(max(old_id) ,0),false) FROM pagecontent; -SELECT setval('trackbacks_tb_id_seq', 1+coalesce(max(tb_id) ,0),false) FROM trackbacks; SELECT setval('user_user_id_seq', 1+coalesce(max(user_id),0),false) FROM mwuser; }; @@ -437,7 +436,6 @@ profiling objectcache ## Which tables to ignore depending on the version -VERSION 1.5: trackback VERSION 1.6: externallinks job templatelinks transcache VERSION 1.7: filearchive langlinks querycache_info VERSION 1.9: querycachetwo page_restrictions redirect diff --git a/maintenance/postgres/tables.sql b/maintenance/postgres/tables.sql index 0d7e961741..d86e18403e 100644 --- a/maintenance/postgres/tables.sql +++ b/maintenance/postgres/tables.sql @@ -16,7 +16,6 @@ DROP SEQUENCE IF EXISTS page_restrictions_id_seq CASCADE; DROP SEQUENCE IF EXISTS ipblocks_ipb_id_seq CASCADE; DROP SEQUENCE IF EXISTS recentchanges_rc_id_seq CASCADE; DROP SEQUENCE IF EXISTS logging_log_id_seq CASCADE; -DROP SEQUENCE IF EXISTS trackbacks_tb_id_seq CASCADE; DROP SEQUENCE IF EXISTS job_job_id_seq CASCADE; DROP SEQUENCE IF EXISTS category_cat_id_seq CASCADE; DROP FUNCTION IF EXISTS page_deleted() CASCADE; @@ -512,17 +511,6 @@ CREATE TABLE log_search ( ); CREATE INDEX ls_log_id ON log_search (ls_log_id); -CREATE SEQUENCE trackbacks_tb_id_seq; -CREATE TABLE trackbacks ( - tb_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('trackbacks_tb_id_seq'), - tb_page INTEGER REFERENCES page(page_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, - tb_title TEXT NOT NULL, - tb_url TEXT NOT NULL, - tb_ex TEXT, - tb_name TEXT -); -CREATE INDEX trackback_page ON trackbacks (tb_page); - CREATE SEQUENCE job_job_id_seq; CREATE TABLE job ( diff --git a/maintenance/sqlite/archives/initial-indexes.sql b/maintenance/sqlite/archives/initial-indexes.sql index c40df11640..73b008cce8 100644 --- a/maintenance/sqlite/archives/initial-indexes.sql +++ b/maintenance/sqlite/archives/initial-indexes.sql @@ -406,7 +406,6 @@ CREATE INDEX /*i*/type_time ON /*_*/logging (log_type, log_timestamp); CREATE INDEX /*i*/user_time ON /*_*/logging (log_user, log_timestamp); CREATE INDEX /*i*/page_time ON /*_*/logging (log_namespace, log_title, log_timestamp); CREATE INDEX /*i*/times ON /*_*/logging (log_timestamp); -CREATE INDEX /*i*/tb_page ON /*_*/trackbacks (tb_page); CREATE INDEX /*i*/job_cmd_namespace_title ON /*_*/job (job_cmd, job_namespace, job_title); CREATE INDEX /*i*/rd_ns_title ON /*_*/redirect (rd_namespace,rd_title,rd_from); CREATE INDEX /*i*/qcc_type ON /*_*/querycachetwo (qcc_type,qcc_value); diff --git a/maintenance/tables.sql b/maintenance/tables.sql index b3c5c80a7f..a4e107a17c 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -1247,17 +1247,6 @@ CREATE UNIQUE INDEX /*i*/ls_field_val ON /*_*/log_search (ls_field,ls_value,ls_l CREATE INDEX /*i*/ls_log_id ON /*_*/log_search (ls_log_id); -CREATE TABLE /*_*/trackbacks ( - tb_id int PRIMARY KEY AUTO_INCREMENT, - tb_page int REFERENCES /*_*/page(page_id) ON DELETE CASCADE, - tb_title varchar(255) NOT NULL, - tb_url blob NOT NULL, - tb_ex text, - tb_name varchar(255) -) /*$wgDBTableOptions*/; -CREATE INDEX /*i*/tb_page ON /*_*/trackbacks (tb_page); - - -- Jobs performed by parallel apache threads or a command-line daemon CREATE TABLE /*_*/job ( job_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT, diff --git a/trackback.php b/trackback.php deleted file mode 100644 index 1f88af7cda..0000000000 --- a/trackback.php +++ /dev/null @@ -1,92 +0,0 @@ - - - 0 - -XML; - exit; - } - - /** - * @param $err string - */ - private function XMLerror( $err = "Invalid request." ) { - header( "HTTP/1.0 400 Bad Request" ); - header( "Content-Type: application/xml; charset=utf-8" ); - echo << - - 1 - Invalid request: $err - -XML; - exit; - } - - public function __construct() { - global $wgUseTrackbacks, $wgRequest; - - if( !$wgUseTrackbacks ) - $this->XMLerror( "Trackbacks are disabled" ); - - $this->r = $wgRequest; - - if( !$this->r->wasPosted() ) { - $this->XMLerror( "Must be posted" ); - } - - $this->url = $wgRequest->getText( 'url' ); - $article = $wgRequest->getText( 'article' ); - - if( !$this->url || !$article ) { - $this->XMLerror( "Required field not specified" ); - } - - $this->title = Title::newFromText( $article ); - if( !$this->title || !$this->title->exists() ) { - $this->XMLerror( "Specified article does not exist." ); - } - } - - public function write() { - $dbw = wfGetDB( DB_MASTER ); - - $tbtitle = $this->r->getText( 'title' ); - $tbex = $this->r->getText( 'excerpt' ); - $tbname = $this->r->getText( 'blog_name' ); - - $dbw->insert('trackbacks', array( - 'tb_page' => $this->title->getArticleID(), - 'tb_title' => $tbtitle, - 'tb_url' => $this->url, - 'tb_ex' => $tbex, - 'tb_name' => $tbname - )); - - $dbw->commit(); - - $this->XMLsuccess(); - } -} - -$tb = new TrackBack(); -$tb->write(); diff --git a/trackback.php5 b/trackback.php5 deleted file mode 100644 index fe811760a7..0000000000 --- a/trackback.php5 +++ /dev/null @@ -1 +0,0 @@ -