http://www.mediawiki.org/wiki/Special:Code/MediaWiki/88257

Revision: 88257
Author:   kipcool
Date:     2011-05-16 19:05:35 +0000 (Mon, 16 May 2011)
Log Message:
-----------
Added annotation statistics

Modified Paths:
--------------
    trunk/extensions/Wikidata/OmegaWiki/SpecialOWStatistics.php
    trunk/extensions/Wikidata/OmegaWiki/WikiDataAPI.php

Modified: trunk/extensions/Wikidata/OmegaWiki/SpecialOWStatistics.php
===================================================================
--- trunk/extensions/Wikidata/OmegaWiki/SpecialOWStatistics.php 2011-05-16 
18:18:28 UTC (rev 88256)
+++ trunk/extensions/Wikidata/OmegaWiki/SpecialOWStatistics.php 2011-05-16 
19:05:35 UTC (rev 88257)
@@ -20,7 +20,8 @@
                        . $this->linkHeader ( wfMsg('ow_DefinedMeaning'), "dm", 
$showstat ) . " — "
                        . $this->linkHeader ( wfMsg('ow_Definition'), "def", 
$showstat ) . " — "
                        . $this->linkHeader ( wfMsg('ow_Expression'), "exp", 
$showstat ) . " — "
-                       . $this->linkHeader ( "Syntrans", "syntrans", $showstat 
)
+                       . $this->linkHeader ( "Syntrans", "syntrans", $showstat 
) . " — "
+                       . $this->linkHeader ( wfMsg('ow_Annotation'), "annot", 
$showstat )
                        . "</big></div><br /><br />" ;
 
                $wgOut->addHTML( $headerText ) ;
@@ -33,6 +34,8 @@
                        $wgOut->addHTML( $this->getSyntransPerLanguage () );
                else if ( $showstat == 'exp' )
                        $wgOut->addHTML ( $this->getExpressionPerLanguage () ) ;
+               else if ( $showstat == 'annot' )
+                       $wgOut->addHTML ( $this->getAnnotationStats () ) ;
        }
 
        function linkHeader ( $text, $val , $showstat ) {
@@ -251,4 +254,33 @@
                return $output ;
        }
 
+       function getAnnotationStats () {
+               $dc = wdGetDataSetContext();
+               $dbr = wfGetDB( DB_SLAVE );
+
+               // at the moment only link attributes
+               $sql = "SELECT attribute_mid, count(DISTINCT value_id) as tot ";
+               $sql .= " FROM {$dc}_url_attribute_values" ;
+               $sql .= " WHERE remove_transaction_id IS NULL " ;
+               $sql .= " group by attribute_mid " ;
+
+               $queryResult = $dbr->query( $sql );
+
+               while ( $row = $dbr->fetchObject( $queryResult ) ) {
+                       $att = $row->attribute_mid ;
+                       $nbAtt[$att] = $row->tot ;
+               }
+               arsort ( $nbAtt ) ;
+
+               $table = "<center><table class=\"sortable\">" ;
+               $table .= "<tr><th><b>" . wfMsg('ow_Annotation') . 
"</b></th><th><b>" . '#' . "</b></th></tr>\n";
+               foreach ($nbAtt as $att => $nb) {
+                       $attname = definedMeaningExpression ( $att ) ;
+                       if ( $attname == "" ) $attname = $att ;
+                       $table .= "<tr><td alt=$att>$attname</td><td 
align=right>$nb</td></tr>\n" ;
+               }
+               $table .= "</table></center>" ;
+               $output = "<p>$table</p>"  ;
+               return $output ;
+       }
 }

Modified: trunk/extensions/Wikidata/OmegaWiki/WikiDataAPI.php
===================================================================
--- trunk/extensions/Wikidata/OmegaWiki/WikiDataAPI.php 2011-05-16 18:18:28 UTC 
(rev 88256)
+++ trunk/extensions/Wikidata/OmegaWiki/WikiDataAPI.php 2011-05-16 19:05:35 UTC 
(rev 88257)
@@ -1593,24 +1593,20 @@
        
        list( $definingExpressionId, $definingExpression, 
$definingExpressionLanguage ) = definingExpressionRow( $definedMeaningId );
        
-       if ( $definingExpressionLanguage == $userLanguageId && 
expressionIsBoundToDefinedMeaning( $definedMeaningId, $definingExpressionId ) )
-               return $definingExpression;
-       else {
-               if ( $userLanguageId > 0 )
-                       $result = definedMeaningExpressionForLanguage( 
$definedMeaningId, $userLanguageId );
-               else
-                       $result = "";
+       if ( $userLanguageId > 0 )
+               $result = definedMeaningExpressionForLanguage( 
$definedMeaningId, $userLanguageId );
+       else
+               $result = "";
+
+       if ( $result == "" ) {
+               // if no expression exists for the specified language : look 
for an expression in English
+               $result = definedMeaningExpressionForLanguage( 
$definedMeaningId, 85 );
                
                if ( $result == "" ) {
-                       // if no expression exists for the specified language : 
look for an expression in English
-                       $result = definedMeaningExpressionForLanguage( 
$definedMeaningId, 85 );
+                       $result = definedMeaningExpressionForAnyLanguage( 
$definedMeaningId );
                        
-                       if ( $result == "" ) {
-                               $result = 
definedMeaningExpressionForAnyLanguage( $definedMeaningId );
-                               
-                               if ( $result == "" )
-                                       $result = $definingExpression;
-                       }
+                       if ( $result == "" )
+                               $result = $definingExpression;
                }
        }
 


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to