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

Revision: 73565
Author:   awjrichards
Date:     2010-09-22 20:09:59 +0000 (Wed, 22 Sep 2010)

Log Message:
-----------
Fixed rightly spelled 'referrer' to use wrongly spelled yet correct 'referer' 
for HTTP header; Added a programatic way to add a link to the sidebar 
navigation that contains a query string

Modified Paths:
--------------
    trunk/extensions/VariablePage/VariablePage.body.php
    trunk/extensions/VariablePage/VariablePage.i18n.php
    trunk/extensions/VariablePage/VariablePage.php

Modified: trunk/extensions/VariablePage/VariablePage.body.php
===================================================================
--- trunk/extensions/VariablePage/VariablePage.body.php 2010-09-22 20:07:54 UTC 
(rev 73564)
+++ trunk/extensions/VariablePage/VariablePage.body.php 2010-09-22 20:09:59 UTC 
(rev 73565)
@@ -13,13 +13,13 @@
 
        public function execute() {
                global $wgOut, $wgRequest;
-               global $wgVariablePagePossibilities, $wgVariablePageUtmMedium;
+               global $wgVariablePagePossibilities;
 
                $lang = ( preg_match( '/^[A-Za-z-]+$/', $wgRequest->getVal( 
'lang' ) ) ) ? $wgRequest->getVal( 'lang' ) : 'en' ;
                $utm_source = $wgRequest->getVal( 'utm_source' );
-               $utm_medium = ( strlen($wgVariablePageUtmMedium )) ? 
$wgVariablePageUtmMedium : $wgRequest->getVal( 'utm_medium' );
+               $utm_medium = $wgRequest->getVal( 'utm_medium' );
                $utm_campaign = $wgRequest->getVal( 'utm_campaign' );
-               $referrer = $wgRequest->getHeader( 'referrer' );
+               $referrer = ( $wgRequest->getVal( 'referrer' )) ? 
$wgReqeust->getVal( 'referrer' ) : $wgRequest->getHeader( 'referer' );
        
                $query = array();
                if ( strlen( $lang ) ) $query[ 'language' ] = $lang;

Modified: trunk/extensions/VariablePage/VariablePage.i18n.php
===================================================================
--- trunk/extensions/VariablePage/VariablePage.i18n.php 2010-09-22 20:07:54 UTC 
(rev 73564)
+++ trunk/extensions/VariablePage/VariablePage.i18n.php 2010-09-22 20:09:59 UTC 
(rev 73565)
@@ -13,8 +13,9 @@
  * @author Arthur Richards
  */
 $messages['en'] = array(
+       'variablepage' => 'VariablePage',
+       'variablepage-navlink_text' => 'Donate',
        'variablepage-desc' => 'Lightweight variable page redirection',
-       'variablepage-randomurl' => 'Special:VariablePage',
 );
 
 /** Bosnian (Bosanski)

Modified: trunk/extensions/VariablePage/VariablePage.php
===================================================================
--- trunk/extensions/VariablePage/VariablePage.php      2010-09-22 20:07:54 UTC 
(rev 73564)
+++ trunk/extensions/VariablePage/VariablePage.php      2010-09-22 20:09:59 UTC 
(rev 73565)
@@ -34,29 +34,58 @@
  *                     'http://foo.com/bar' => 90,
  *             );
  */
-$wgVariablePagePossibilities = array(
-       'http://wikimediafoundation.org/wiki/Support_Wikipedia' => 100
-);
+$wgVariablePagePossibilities = array();
 
 /**
- * You may set a custom utm_medium to be used for pages reached via 
VariablePage
- *
- * This can be set to whatever string you wish to use for utm_medium
- */
-$wgVariablePageUtmMedium = '';
-
-/**
  * The default URL to send a user to in the event that one of the URLs in 
  * $wgVariablePagePossibilities not selected.
  *
  * Either this must be set or the probabilities in $wgVariablePagePossibiliites
  * must add up to 100.
  */
-$wgVariablePageDefault = '';
+$wgVariablePageDefault = 
'http://wikimediafoundation.org/wiki/Support_Wikipedia';
 
+/** 
+ * If this is set to TRUE, a sidebar nav link to Special:VariablePage will be 
displayed
+ */
+$wgVariablePageShowSidebarLink = false;
+
+/**
+ * If you need to add a query to the sidebar nav link, set them with this.
+ *
+ * array( $key => $value ) will become ?key=value
+ */
+$wgVariablePageSidebarLinkQuery = array();
+
+/**
+ * Edit the sidebar navigation
+ */
+$wgHooks['SkinBuildSidebar'][] = 'efVariablePageSidebarLink';
+
 $dir = dirname( __FILE__ ) . '/';
 
 $wgAutoloadClasses[ 'SpecialVariablePage' ] = $dir . 'VariablePage.body.php';
 $wgExtensionMessagesFiles[ 'VariablePage' ] = $dir . 'VariablePage.i18n.php';
 $wgSpecialPages[ 'VariablePage' ] = 'SpecialVariablePage';
 $wgSpecialPageGroups[ 'VariablePage' ] = 'contribution';
+
+/**
+ * Place a link to Special:VariablePage in the navigation sidebar
+ * @return bool
+ */
+function efVariablePageSidebarLink( $skin, &$bar ) {
+       global $wgVariablePageShowSidebarLink, $wgVariablePageSidebarLinkQuery;
+
+       // make sure that we should be showing a sidebar link
+       if ( $wgVariablePageShowSidebarLink ) {
+               $url = Title::makeTitle( NS_SPECIAL, wfMsg( 'variablepage' 
))->getLocalUrl();
+               $bar[ "navigation" ][] = array(
+                       "text" => wfMsg( 'variablepage-navlink_text' ),
+                       "href" => wfAppendQuery( $url, 
$wgVariablePageSidebarLinkQuery ),
+                       "id" => 'n-variablepage',
+                       "active" => true,
+               );
+       }
+
+       return true;
+}



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

Reply via email to