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

Revision: 70106
Author:   mah
Date:     2010-07-28 20:00:02 +0000 (Wed, 28 Jul 2010)

Log Message:
-----------
Since script ordering matters, follow up r70100 with a way to load js files 
after the LQT support has been loaded.

Modified Paths:
--------------
    trunk/extensions/LiquidThreads/classes/View.php
    trunk/extensions/LiquidThreads/pages/NewUserMessagesView.php

Modified: trunk/extensions/LiquidThreads/classes/View.php
===================================================================
--- trunk/extensions/LiquidThreads/classes/View.php     2010-07-28 19:38:59 UTC 
(rev 70105)
+++ trunk/extensions/LiquidThreads/classes/View.php     2010-07-28 20:00:02 UTC 
(rev 70106)
@@ -25,7 +25,7 @@
 
        protected $sort_order = LQT_NEWEST_CHANGES;
 
-       static $stylesAndScriptsDone = false;
+       static $stylesAndScriptsDone = array();
 
        function __construct( &$output, &$article, &$title, &$user, &$request ) 
{
                $this->article = $article;
@@ -1182,8 +1182,19 @@
        * Output methods                 *
        *************************/
 
-       static function addJSandCSS() {
-               if ( self::$stylesAndScriptsDone ) {
+       static function sendMoreScripts( $scripts = array() ) {
+               global $wgOut;
+               foreach( $scripts as $file ) {
+                       if( !in_array( $file, self::$stylesAndScriptsDone ) ) {
+                               $wgOut->addScriptFile( $file );
+                               self::$stylesAndScriptsDone[] = $file;
+                       }
+               }
+       }
+
+       static function addJSandCSS( $scripts = array() ) {
+               if ( count( self::$stylesAndScriptsDone ) ) {
+                       self::sendMoreScripts( $scripts );
                        return;
                }
 
@@ -1193,22 +1204,22 @@
 
                LqtHooks::$scriptVariables['wgLqtMessages'] = 
self::exportJSLocalisation();
 
+
+               $wgOut->addExtensionStyle( 
"$wgLiquidThreadsExtensionPath/jquery/jquery-ui-1.7.2.css" );
+               $wgOut->addExtensionStyle( 
"$wgLiquidThreadsExtensionPath/lqt.css?{$wgStyleVersion}" );
+
+               array_unshift( $scripts, 
"$wgLiquidThreadsExtensionPath/js/lqt.toolbar.js" );
+               array_unshift( $scripts, 
"$wgLiquidThreadsExtensionPath/jquery/jquery.autogrow.js" );
+               array_unshift( $scripts, "$wgLiquidThreadsExtensionPath/lqt.js" 
);
+
                if ( method_exists( $wgOut, 'includeJQuery' ) ) {
                        $wgOut->includeJQuery();
-                       $wgOut->addScriptFile( 
"$wgLiquidThreadsExtensionPath/jquery/plugins.js" );
+                       array_unshift( $scripts, 
"$wgLiquidThreadsExtensionPath/jquery/plugins.js" );
                } else {
-                       $wgOut->addScriptFile( 
"$wgLiquidThreadsExtensionPath/jquery/js2.combined.js" );
+                       array_unshift( $scripts, 
"$wgLiquidThreadsExtensionPath/jquery/js2.combined.js" );
                }
 
-               $wgOut->addExtensionStyle( 
"$wgLiquidThreadsExtensionPath/jquery/jquery-ui-1.7.2.css" );
-
-               $wgOut->addScriptFile( 
"$wgLiquidThreadsExtensionPath/jquery/jquery.autogrow.js" );
-
-               $wgOut->addScriptFile( "$wgLiquidThreadsExtensionPath/lqt.js" );
-               $wgOut->addScriptFile( 
"$wgLiquidThreadsExtensionPath/js/lqt.toolbar.js" );
-               $wgOut->addExtensionStyle( 
"$wgLiquidThreadsExtensionPath/lqt.css?{$wgStyleVersion}" );
-
-               self::$stylesAndScriptsDone = true;
+               self::sendMoreScripts( $scripts );
        }
 
        static function exportJSLocalisation() {
@@ -1888,7 +1899,8 @@
 
                $html = '';
                if ( wfRunHooks( 'EditPageBeforeEditToolbar', array( &$html ) ) 
) {
-                       self::addJSandCSS();
+                       $scripts = isset( $options['addScripts'] ) ? 
$options['addScripts'] : array();
+                       self::addJSandCSS( $scripts );
                }
 
                $class = $this->threadDivClass( $thread );

Modified: trunk/extensions/LiquidThreads/pages/NewUserMessagesView.php
===================================================================
--- trunk/extensions/LiquidThreads/pages/NewUserMessagesView.php        
2010-07-28 19:38:59 UTC (rev 70105)
+++ trunk/extensions/LiquidThreads/pages/NewUserMessagesView.php        
2010-07-28 20:00:02 UTC (rev 70106)
@@ -85,13 +85,6 @@
        function showOnce() {
                NewMessages::recacheMessageCount( $this->user->getId() );
 
-               static $scriptDone = false;
-
-               if ( !$scriptDone ) {
-                       global $wgOut, $wgLiquidThreadsExtensionPath;
-                       $wgOut->addScriptFile( 
"$wgLiquidThreadsExtensionPath/newmessages.js" );
-               }
-
                $this->user->setNewtalk( false );
 
                if ( $this->methodApplies( 'mark_as_unread' ) ) {
@@ -207,8 +200,9 @@
 
                $mustShowThreads = $this->targets[$t->id()];
 
-               $this->showThread( $t, 1, 1, array( 'mustShowThreads' => 
$mustShowThreads ) );
-
+               global $wgLiquidThreadsExtensionPath;
+               $this->showThread( $t, 1, 1, array( 'mustShowThreads' => 
$mustShowThreads,
+                               'addScripts' => array( 
"$wgLiquidThreadsExtensionPath/newmessages.js" ) ) );
                $this->output->addHTML( "</td></tr>" );
        }
 



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

Reply via email to