From: Brion Vibber Date: Fri, 18 Feb 2005 11:27:10 +0000 (+0000) Subject: Move some of Magnus's experiments out of the main tree: Special:Data and Special... X-Git-Tag: 1.5.0alpha1~726 X-Git-Url: http://git.cyclocoop.org/%24image?a=commitdiff_plain;h=f7970a5e6f21b84da14077317220dbfc752ef94c;p=lhc%2Fweb%2Fwiklou.git Move some of Magnus's experiments out of the main tree: Special:Data and Special:Validate --- diff --git a/includes/SpecialData.php b/includes/SpecialData.php deleted file mode 100644 index 1988ed23d7..0000000000 --- a/includes/SpecialData.php +++ /dev/null @@ -1,280 +0,0 @@ -{$value}" ; - $s .= $value . $y[1] ; - } - else $s .= $x ; - } - return $s ; - } - -/** @todo document */ -function wfDataView ( $dt ) # $dt = data type - { - if ( $dt == '' ) return ; - global $wgParser, $wgTitle; - global $wgOut , $wgUser ; - $nsdata = 20 ; - $s = "

{$dt}

" ; - - # Read from source - $dbr =& wfGetDB( DB_SLAVE ); - $sql = "SELECT * FROM cur WHERE cur_namespace={$nsdata} AND cur_title=\"{$dt}\""; - $res1 = $dbr->query( $sql, "wfDataEdit" ); - $data = $dbr->fetchObject( $res1 ) ; - - $sql = "SELECT * FROM data_rev WHERE rev_cur_id={$data->cur_id} GROUP BY rev_masterkey ORDER BY rev_masterkey" ; - $r = $dbr->query( $sql, "wfDataEdit" ); - $mk = array () ; - while ( ($d = $dbr->fetchObject( $r )) ) $mk[] = $d->rev_masterkey ; - foreach ( $mk AS $x ) - { - $s .= "
  • {$x}
  • " ; - } - - $wgOut->AddHTML ( $s ) ; - } - -/** @todo document */ -function wfDataEdit ( $dt ) # $dt = data type - { - if ( $dt == '' ) return ; - global $wgParser, $wgTitle; - global $wgOut , $wgUser ; - $nsdata = 20 ; - $s = "

    {$dt}

    " ; - - if ( isset ( $_POST['revision'] ) ) $revision = $_POST['revision'] ; - else if ( isset ( $_GET['revision'] ) ) $revision = $_GET['revision'] ; - else $revision = "" ; - - if ( isset ( $_POST['masterkey'] ) ) $masterkey = $_POST['masterkey'] ; - else $masterkey = "" ; - - if ( isset ( $_POST['comment'] ) ) $comment = $_POST['comment'] ; - else $comment = '' ; - - # Read form source - $dbr =& wfGetDB( DB_SLAVE ); - $sql = "SELECT * FROM cur WHERE cur_namespace={$nsdata} AND cur_title=\"{$dt}\""; - $res1 = $dbr->query( $sql, "wfDataEdit" ); - $data = $dbr->fetchObject( $res1 ) ; - - # Pre-render - $parserOutput = $wgParser->parse( $data->cur_text, $wgTitle, $wgOut->mParserOptions, true ); - $t = $parserOutput->getText() ; - - # Read from last form - if ( isset ( $_POST['dk'] ) ) $dk = $_POST['dk'] ; - - # Store new version - if ( isset ( $_POST['doit'] ) && $dk[$masterkey] ) - { - # Get next revision number - $dbw =& wfGetDB( DB_MASTER ); # Maybe DB_SLAVE didn't update yet - $sql = "SELECT MAX(rev_id) AS m FROM data_rev WHERE rev_cur_id={$data->cur_id} AND rev_masterkey=\"" . $dk[$masterkey] . "\"" ; - $r = $dbw->query( $sql, "wfDataEdit" ); - $newrev = $dbr->fetchObject( $r ) ; - if ( isset ( $newrev ) AND isset ( $newrev->m ) ) $newrev = $newrev->m ; - else $newrev = '' ; - if ( $newrev == '' ) $newrev = 1 ; - - # Generate SQL - $dbw->query( "BEGIN", "wfDataEdit" ); - $sql = "INSERT INTO data_rev (rev_cur_id,rev_id,rev_masterkey,rev_user_id,rev_user_text,rev_comment,rev_time) VALUES (" . - "\"{$data->cur_id}\"," . - "\"{$newrev}\",". - "\"" . $dk[$masterkey] . "\"," . - "\"" . $wgUser->getID() . "\",". - "\"" . $wgUser->getName() . "\",". - "\"{$comment}\",". - "\"" . time() . "\");" ; - $dbw->query( $sql, "wfDataEdit" ); - - foreach ( $dk AS $k => $v ) - { - $sql = "INSERT INTO data (data_cur_id,data_revision,data_key,data_value) VALUES (" . - "\"" . $data->cur_id . "\"," . - "\"" . $newrev . "\"," . - "\"" . $k . "\"," . - "\"" . $v . "\");" ; - $dbw->query( $sql, "wfDataEdit" ); - } - $dbw->query( "COMMIT", "wfDataEdit" ); - - $s .= "Action complete.
    \n" ; - $s .= wfDataPreview ( $t , $dk ) ; - $wgOut->AddHTML ( $s ) ; - - return ; - } - - # Preview - if ( isset ( $_POST['preview'] ) ) $s .= wfDataPreview ( $t , $dk ) . "\n
    \n" ; - - # Editing - $t = explode ( '((' , $t ) ; - $s .= "
    " ; - foreach ( $t AS $x ) - { - $y = explode ( '))' , $x ) ; - if ( count ( $y ) == 2 ) - { - $z = explode ( "/" , $y[0] ) ; - $keyname = $z[0] ; - $isMasterKey = false ; - if ( substr ( $keyname , 0 , 1 ) == "!" ) - { - $keyname = substr ( $keyname , 1 ) ; - $isMasterKey = true ; - } - - $value = '' ; - if ( isset ( $dk[$keyname] ) ) $value= $dk[$keyname] ; - if ( $isMasterKey ) - { - $masterkey = $keyname ; - $masterkeyvalue = $value ; - } - - $input = '' ; - $name = 'dk[' . $keyname . ']' ; - - if ( count ( $z ) == 1 ) $z[] = "line" ; # Default - $type = strtolower ( $z[1] ) ; - if ( $type == "line" ) $input = "" ; - else if ( $type == "multiline" ) $input = "" ; - else if ( $type == "number" ) $input = "" ; - else if ( $type == "date" ) $input = "" ; - else if ( $type == "dropdown" ) - { - $s .= "" ; - } - if ( $isMasterKey AND $revision != '' ) $input = "{$value}" ; - - $s .= "{$input}" ; - $s .= $y[1] ; - } - else $s .= $x ; - } - $s .= "
    Comment : " ; - $s .= "   " ; - $s .= "" ; - if ( $masterkey ) $s .= "" ; - $s .= "" ; - $s .= " " ; - $s .= "" ; - $s .= "
    " ; - - $wgOut->AddHTML ( $s ) ; - } - -/** @todo document */ -function wfSpecialData() { - global $wgUseData ; - if ( !$wgUseData ) return '' ; - - global $wgOut ; - if ( isset ( $_GET['data_action'] ) ) $data_action = $_GET['data_action'] ; - else $data_action = '' ; - if ( isset ( $_POST['add_data'] ) ) $data_action = "add_data" ; - if ( isset ( $_POST['view_data'] ) ) $data_action = "view_data" ; - $nsdata = 20 ; - - $last = "
    Back to data" ; - - if ( $data_action == '' ) - { - $s = ''; - - $s .= '
    ' ; - $s .= 'Data type ' ; - $dbr =& wfGetDB( DB_SLAVE ); - $sql = "SELECT cur_id,cur_title FROM cur WHERE cur_namespace={$nsdata}"; - $res1 = $dbr->query( $sql, "wfSpecialData" ); - $s .= "
    \n" ; - $s .= " " ; - $s .= " " ; - $s .= "
    \nTo add a new data type Stuff, edit the page Data:Stuff." ; - $s .= "
    " ; - - $wgOut->AddHTML ( $s ) ; - $last = '' ; - } - else if ( $data_action == 'add_data' ) - { - wfDataEdit ( $_POST['data_type'] ) ; - } - else if ( $data_action == 'view_data' ) - { - wfDataView ( $_POST['data_type'] ) ; - } - - if ( $last ) $wgOut->AddHTML ( $last ) ; - - return '' ; - } -?> \ No newline at end of file diff --git a/includes/SpecialValidate.php b/includes/SpecialValidate.php deleted file mode 100644 index b1b16f7a2a..0000000000 --- a/includes/SpecialValidate.php +++ /dev/null @@ -1,552 +0,0 @@ - -# http://www.mediawiki.org/ -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# http://www.gnu.org/copyleft/gpl.html - -/** - * - * @package MediaWiki - * @subpackage SpecialPage - */ - -/** - * - * @package MediaWiki - * @subpackage SpecialPage - */ -class Validation { - - function find_this_version( $article_title , &$article_time , &$id , &$tab ) { - $id = ""; - $tab = ""; - $sql = "SELECT cur_id,cur_timestamp FROM cur WHERE cur_namespace=".NS_MAIN." AND cur_title='" . wfStrencode( $article_title ) . "'"; - $res = wfQuery( $sql, DB_READ ); - if( $s = wfFetchObject( $res ) ) { - if ( $article_time == "" ) { - # No timestamp = current version - $article_time = $s->cur_timestamp; - } elseif ( $article_time == $s->cur_timestamp ) { - # Means current version - $tab = "cur"; - $id = $s->cur_id; - } - } - - if ( $id == "" ) { - $sql = "SELECT old_id FROM old WHERE old_namespace=".NS_MAIN." AND old_title='" . wfStrencode( $article_title ) . - "' AND old_timestamp='" . wfStrencode( $article_time ) . "'"; - $res = wfQuery( $sql, DB_READ ); - if( $s = wfFetchObject( $res ) ) { - $tab = "old"; - $id = $s->old_id; - } - } - } - - function get_prev_data( $user_id , $article_title , $article_timestamp = "" ) { - $ret = array (); - $sql = "SELECT * FROM validate WHERE val_user='" . wfStrencode( $user_id ) . - "' AND val_title='" . wfStrencode( $article_title ) . "'"; - if ( $article_timestamp != "" ) { - $sql .= " AND val_timestamp='" . wfStrencode( $article_timestamp ) . "'"; - } - $res = wfQuery( $sql, DB_READ ); - while( $s = wfFetchObject( $res ) ) { - $ret[$s->val_timestamp][$s->val_type] = $s; - } - return $ret; - } - - function validate_form( $article_title = "" ) { - global $wgOut, $wgLang, $wgUser, $wgArticle, $wgRequest; - - if ( $wgUser->getID() == 0 ) { - # Anon - $wgOut->addHTML( htmlspecialchars( wfMsg( 'val_no_anon_validation' ) ) . - $this->getPageStatistics ( $article_title ) ) ; - return; - } - - $validationtypes = $wgLang->getValidationTypes(); - if ( $article_title == "" ) { - $article_title = $wgRequest->getVal( 'article_title' ); - $heading = "

    " . htmlspecialchars( $article_title ) . "

    \n"; - } else { - $heading = ""; - } - $article_time = ""; - $article_time = $wgRequest->getVal( 'timestamp' ); - $article = Title::newFromText( $article_title ); - if( is_null( $article ) ) { - $wgOut->errorpage( "badtitle", "badtitletext" ); - return; - } - - # Now we get all the "votes" for the different versions of this article for this user - $val = $this->get_prev_data( $wgUser->getID() , $article_title ); - - # No votes for this version, initial data - if( !isset( $val[$article_time] ) ) { - if( $article_time == "" ) { - $res = wfQuery( "select cur_timestamp FROM cur WHERE cur_title='" . - wfStrencode( $article_title ) . "' AND cur_namespace=".NS_MAIN, DB_READ ); - if( $s = wfFetchObject( $res ) ) { - $article_time = $s->cur_timestamp; - } - } - $val[$article_time] = array(); - } - - # Newest versions first - krsort( $val ); - - # User has clicked "Doit" before, so evaluate form - if( $wgRequest->wasPosted() ) { - $oldtime = StrVal( $wgRequest->getVal( 'oldtime' ) ); - if( !isset ( $val[$oldtime] ) ) { - $val[$oldtime] = array(); - } - - # Reading postdata - $postrad = array(); - $poscomment = array(); - for( $idx = 0 ; $idx < count( $validationtypes) ; $idx++ ) { - $postrad[$idx] = $wgRequest->getVal( "rad{$idx}" ); - $postcomment[$idx] = $wgRequest->getText( "comment{$idx}" ); - } - - # Merge others into this one - if( $wgRequest->getCheck( 'merge_other' ) ) { - foreach( $val as $time => $stuff ) { - if( $time != $article_time ) { - for( $idx = 0; $idx < count( $validationtypes ); $idx++ ) { - $rad = $postrad[$idx]; - if( isset ( $stuff[$idx] ) && $stuff[$idx]->val_value != -1 && $rad == -1 ) { - $postrad[$idx] = $stuff[$idx]->val_value; - $postcomment[$idx] = $stuff[$idx]->val_comment; - } - } - } - } - } - - # Clear all others - if( $wgRequest->getCheck( 'clear_other' ) ) { - $sql = "DELETE FROM validate WHERE val_title='" . wfStrencode( $article_title ) . - "' AND val_timestamp<>'" . wfStrencode( $oldtime ) . "' AND val_user='"; - $sql .= wfStrencode( $wgUser->getID() ) . "'"; - wfQuery( $sql, DB_WRITE ); - $val2 = $val[$oldtime]; # Only version left - $val = array(); # So clear others - $val[$oldtime] = $val2; - } - - # Delete old "votes" for this version - $sql = "DELETE FROM validate WHERE val_title='" . wfStrencode( $article_title ) . - "' AND val_timestamp='" . wfStrencode( $oldtime ) . "' AND val_user='"; - $sql .= wfStrencode( $wgUser->getID() ) . "'"; - wfQuery( $sql, DB_WRITE ); - - # Incorporate changes - for( $idx = 0; $idx < count( $validationtypes ); $idx++ ) { - $comment = $postcomment[$idx] ; - $rad = $postrad[$idx] ; - if ( !isset( $val[$oldtime][$idx] ) ) { - $val[$oldtime][$idx] = ""; - } - $val[$oldtime][$idx]->val_value = $rad; - $val[$oldtime][$idx]->val_comment = $comment; - if( $rad != -1 ) { - # Store it in the database - $sql = "INSERT INTO validate (val_user,val_title,val_timestamp,val_type,val_value,val_comment) " . - "VALUES ( '" . wfStrencode( $wgUser->getID() ) . "','" . - wfStrencode( $article_title ) . "','" . - wfStrencode( $oldtime ) . "','" . - wfStrencode( $idx ) . "','" . - wfStrencode( $rad ) . "','" . - wfStrencode( $comment ) . "')"; - wfQuery( $sql, DB_WRITE ); - } - } - $wgArticle->showArticle( "Juhuu", wfMsg( 'val_validated' ) ); - return; # Show article instead of validation page - } - - # Generating HTML - $html = ""; - - $skin = $wgUser->getSkin(); - $staturl = $skin->makeSpecialURL( "validate" , "mode=stat_page&article_title=" . urlencode( $article_title ) ); - $listurl = $skin->makeSpecialURL( "validate" , "mode=list_page" ); - $html .= "" . wfMsg('val_stat_link_text') . " \n"; - $html .= "" . wfMsg('val_article_lists') . "
    \n"; - $html .= "" . wfMsg('val_form_note') . "
    \n"; - - # Generating data tables - $tabsep = ""; - $topstyle = "style='border-top:2px solid black'"; - foreach( $val as $time => $stuff ) { - $tablestyle = "cellspacing='0' cellpadding='2'"; - if ( $article_time == $time ) { - $tablestyle .=" style='border: 2px solid red'"; - } - $html .= "

    " . wfMsg( 'val_version_of', gmdate( "F d, Y H:i:s", wfTimestamp( TW_UNIX, $time ) ) ); - $this->find_this_version ( $article_title , $time , $table_id , $table_name ); - if( $table_name == "cur" ) { - $html .= " (" . wfMsg( 'val_this_is_current_version' ) . ")"; - } - $html .= "

    \n" ; - $html .= "
    \n" ; - $html .= "" ; - $html .= "\n" ; - $html .= wfMsg( 'val_table_header', $tabsep ); - for( $idx = 0; $idx < count( $validationtypes ); $idx++ ) { - $x = explode( "|" , $validationtypes[$idx] , 4 ); - if( isset ( $stuff[$idx] ) ) { - $choice = $stuff[$idx]->val_value; - } else { - $choice = -1; - } - if( isset( $stuff[$idx] ) ) { - $comment = $stuff[$idx]->val_comment; - } else { - $comment = ""; - } - $html .= "{$tabsep}" - . ""; - $html .= "\n"; - } - $html .= ""; - $html .= "
    {$x[0]}{$x[1]}" ; - for( $cnt = 0 ; $cnt < $x[3] ; $cnt++) { - $html .= "{$tabsep}"; - $html .= "
    "; - - # link to version - $title = Title::newFromDBkey( $article_title ); - if ( $table_name == "cur" ) { - $link_version = $title->getLocalURL( "" ); - } else { - $link_version = $title->getLocalURL( "oldid={$table_id}" ); - } - $link_version = "" . wfMsg ( 'val_view_version' ) . ""; - $html .= $link_version; - $html .= ""; - $html .= ""; - $html .= wfMsg( 'val_merge_old' ); - $html .= "
    "; - $html .= wfMsg( 'val_clear_old', $skin->makeKnownLinkObj( $article ) ); - $html .= "
    \n"; - } - - $html .= "

    " . wfMsg( 'preview' ) . "

    "; - $wgOut->addHTML( $html ); - $wgOut->addWikiText( $wgArticle->getContent( true ) ); - } - - function getData( $user = -1 , $title = "" , $type = -1 ) { - $ret = array(); - $sql = array(); - if( $user != -1 ) { - $sql[] = "val_user='" . wfStrencode( $user ) . "'"; - } - if( $type != -1 ) { - $sql[] = "val_type='" . wfStrencode( $type ) . "'"; - } - if( $title != "" ) { - $sql[] = "val_title='" . wfStrencode( $title ) . "'"; - } - $sql = implode( " AND " , $sql ); - if( $sql != "" ) { - $sql = " WHERE " . $sql; - } - $sql = "SELECT * FROM validate" . $sql; - $res = wfQuery( $sql, DB_READ ); - while( $s = wfFetchObject( $res ) ) { - $ret["{$s->val_title}"]["{$s->val_timestamp}"]["{$s->val_type}"][] = $s; - } - return $ret; - } - - # Show statistics for the different versions of a single article - function getPageStatistics( $article_title = "" ) { - global $wgLang, $wgUser, $wgOut, $wgRequest; - $validationtypes = $wgLang->getValidationTypes(); - if( $article_title == "" ) { - $article_title = $wgRequest->getVal( 'article_title' ); - } - $d = $this->getData( -1 , $article_title , -1 ); - if( count ( $d ) ) { - $d = array_shift ( $d ) ; - } else { - $d = array(); - } - krsort( $d ); - - # Getting table data (cur_id, old_id etc.) for each version - $table_id = array(); - $table_name = array(); - foreach( $d as $version => $data ) { - $this->find_this_version( $article_title, $version, $table_id[$version], $table_name[$version] ); - } - - # Generating HTML - $title = Title::newFromDBkey( $article_title ); - $wgOut->setPageTitle( wfMsg( 'val_page_validation_statistics' , $title->getPrefixedText() ) ); - $html = ""; - $skin = $wgUser->getSkin(); - $listurl = $skin->makeSpecialURL( "validate" , "mode=list_page" ); - $html .= "" . wfMsg( 'val_article_lists' ) . "

    \n"; - - $html .= "\n"; - $html .= ""; - foreach( $validationtypes as $idx => $title ) { - $title = explode ( "|" , $title ); - $html .= ""; - } - $html .= ""; - $html .= "\n"; - foreach( $d as $version => $data ) { - # Preamble for this version - $title = Title::newFromDBkey( $article_title ); - $version_date = $wgLang->timeanddate( $version ); - $version_validate_link = $title->escapeLocalURL( "action=validate×tamp={$version}" ); - $version_validate_link = "" . wfMsg('val_validate_version') . ""; - if( $table_name[$version] == 'cur' ) { - $version_view_link = $title->escapeLocalURL( "" ); - } else { - $version_view_link = $title->escapeLocalURL( "oldid={$table_id[$version]}" ); - } - $version_view_link = "" . wfMsg('val_view_version') . ""; - $html .= ""; - $html .= ""; - - # Individual data - $vmax = array(); - $vcur = array(); - $users = array(); - foreach( $data as $type => $x2 ) { - if ( !isset ( $vcur[$type] ) ) $vcur[$type] = 0 ; - if ( !isset ( $vmax[$type] ) ) $vmax[$type] = 0 ; - if ( !isset ( $users[$type] ) ) $users[$type] = 0 ; - foreach( $x2 as $user => $x ) { - $vcur[$type] += $x->val_value; - $temp = explode( "|" , $validationtypes[$type] ); - $vmax[$type] += $temp[3] - 1; - $users[$type] += 1; - } - } - - $total_count = 0; - $total_percent = 0; - foreach( $validationtypes as $idx => $title ) { - if( isset ( $vcur[$idx] ) ) { - $average = 100 * $vcur[$idx] / $vmax[$idx] ; - $total_count += 1; - $total_percent += $average; - if( $users[$idx] > 1 ) { - $msgid = "val_percent"; - } else { - $msgid = "val_percent_single"; - } - $html .= ""; - } - - if( $total_count > 0 ) { - $total = $total_percent / $total_count; - $total = number_format( $total , 2 ) . " %"; - } else { - $total = ""; - } - $html .= ""; - - $html .= ""; - } - $html .= "
    " . wfMsg('val_version') . "{$title[0]}" . wfMsg('val_total') . "
    {$version_date}
    {$version_view_link}
    {$version_validate_link}
    " . - wfMsg( $msgid, number_format( $average, 2 ) , - $vcur[$idx] , $vmax[$idx] , $users[$idx] ); - } else { - $html .= ""; - $html .= "(" . wfMsg ( "val_noop" ) . ")"; - } - $html .= "{$total}
    \n"; - return $html ; - } - - function countUserValidations( $userid ) { - $sql = "SELECT count(DISTINCT val_title) AS num FROM validate WHERE val_user=" . IntVal( $userid ); - $res = wfQuery( $sql, DB_READ ); - if ( $s = wfFetchObject( $res ) ) { - $num = $s->num; - } else { - $num = 0; - } - return $num; - } - - function getArticleList() { - global $wgLang, $wgOut; - $validationtypes = $wgLang->getValidationTypes(); - $wgOut->setPageTitle( wfMsg( 'val_article_lists' ) ); - $html = ""; - - # Choices - $choice = array (); - $maxw = 0; - foreach( $validationtypes as $idx => $data ) { - $x = explode( "|" , $data , 4 ); - if( $x[3] > $maxw ) { - $maxw = $x[3]; - } - } - foreach( $validationtypes as $idx => $data ) { - $choice[$idx] = array(); - for( $a = 0 ; $a < $maxw ; $a++ ) { - $var = "cb_{$idx}_{$a}"; - if( isset ( $_POST[$var] ) ) $choice[$idx][$a] = $_POST[$var] ; # Selected - else if ( !isset ( $_POST["doit"] ) ) $choice[$idx][$a] = 1 ; # First time - else $choice[$idx][$a] = 0 ; # De-selected - } - } - - # The form - $html .= "
    \n"; - $html .= "" ; - foreach( $validationtypes as $idx => $data ) { - $x = explode ( "|" , $data , 4 ); - - $html .= ""; - $html .= ""; - $html .= ""; - - for( $a = 0; $a < $maxw; $a++ ) { - if( $a < $x[3] ) { - $td = "\n"; - $html .= ""; - $html .= "
    {$x[0]}{$x[1]}
    \n"; - $html .= "
    \n"; - - # The query - $articles = array(); - $sql = "SELECT DISTINCT val_title,val_timestamp,val_type,avg(val_value) AS avg FROM validate GROUP BY val_title,val_timestamp,val_type"; - $res = wfQuery( $sql, DB_READ ); - while( $s = wfFetchObject( $res ) ) { - $articles[$s->val_title][$s->val_timestamp][$s->val_type] = $s; - } - - # The list - $html .= "\n"; - return $html; - } - - function getVersionLink( &$title , $timestamp ) { - global $wgLang; - $dbkey = $title->getDBkey(); - $this->find_this_version( $dbkey, $timestamp, $table_id, $table_name ); - if( $table_name == 'cur' ) { - $link = $title->getLocalURL( "" ); - } else { - $link = $title->getLocalURL( "action=validate×tamp={$table_id}" ); - } - $linktitle = wfMsg( 'val_version_of', $wgLang->timeanddate( $timestamp ) ); - $link = "" . $linktitle . ""; - if( $table_name == 'cur' ) { - $link .= " (" . wfMsg ( 'val_this_is_current_version' ) . ")"; - } - - $vlink = wfMsg( 'val_tab' ); - $vlink = "[escapeLocalURL( "action=validate×tamp={$timestamp}" ) . "\">{$vlink}] " . $link; - return $vlink ; - } - -} - -/** - * constructor - */ -function wfSpecialValidate( $page = '' ) { - global $wgOut, $wgRequest, $wgUseValidation; - - if( !$wgUseValidation ) { - $wgOut->errorpage( "nosuchspecialpage", "nospecialpagetext" ); - return; - } - - $mode = $wgRequest->getVal( 'mode', 'form' ); - $v = new Validation; - $html = "" ; -/* if( $mode == "form" ) { - $html = $v->validate_form () ; - } else */ - if( $mode == "stat_page" ) { - $html = $v->getPageStatistics(); - } else if( $mode == "list_page" ) { - $html = $v->getArticleList(); - } - - $wgOut->addHTML( $html ); -} - -?>