00001 <?php
00011 class AncientPagesPage extends QueryPage {
00012
00013 function getName() {
00014 return "Ancientpages";
00015 }
00016
00017 function isExpensive() {
00018 return true;
00019 }
00020
00021 function isSyndicated() { return false; }
00022
00023 function getSQL() {
00024 global $wgDBtype;
00025 $db = wfGetDB( DB_SLAVE );
00026 $page = $db->tableName( 'page' );
00027 $revision = $db->tableName( 'revision' );
00028
00029 switch ($wgDBtype) {
00030 case 'mysql':
00031 $epoch = 'UNIX_TIMESTAMP(rev_timestamp)';
00032 break;
00033 case 'ibm_db2':
00034
00035 $epoch = 'rev_timestamp';
00036 break;
00037 case 'oracle':
00038 $epoch = '((trunc(rev_timestamp) - to_date(\'19700101\',\'YYYYMMDD\')) * 86400)';
00039 break;
00040 case 'sqlite':
00041 $epoch = 'rev_timestamp';
00042 break;
00043 default:
00044 $epoch = 'EXTRACT(epoch FROM rev_timestamp)';
00045 }
00046
00047 return
00048 "SELECT 'Ancientpages' as type,
00049 page_namespace as namespace,
00050 page_title as title,
00051 $epoch as value
00052 FROM $page, $revision
00053 WHERE page_namespace=".NS_MAIN." AND page_is_redirect=0
00054 AND page_latest=rev_id";
00055 }
00056
00057 function sortDescending() {
00058 return false;
00059 }
00060
00061 function formatResult( $skin, $result ) {
00062 global $wgLang, $wgContLang;
00063
00064 $d = $wgLang->timeanddate( wfTimestamp( TS_MW, $result->value ), true );
00065 $title = Title::makeTitle( $result->namespace, $result->title );
00066 $link = $skin->linkKnown(
00067 $title,
00068 htmlspecialchars( $wgContLang->convert( $title->getPrefixedText() ) )
00069 );
00070 return wfSpecialList($link, htmlspecialchars($d) );
00071 }
00072 }
00073
00074 function wfSpecialAncientpages() {
00075 list( $limit, $offset ) = wfCheckLimits();
00076
00077 $app = new AncientPagesPage();
00078
00079 $app->doQuery( $offset, $limit );
00080 }