Difference between revisions of "Create adsense ads for mediawiki"

From OpenTutorial
Jump to navigation Jump to search
(How to Create an adsense Buttons Extension for Mediawiki)
(Quote html entities, so they appear correctly for copy/paste)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= How to Create a Google Adsense Extension for Mediawiki =
+
'''How to Create a Google Adsense Extension for Mediawiki''' - kdm adsense is a Mediawiki Extension which adds a new <nowiki><adsense></nowiki> tag which allows you to add an adsense button to your wiki pages.
 
 
kdm adsense is a Mediawiki Extension which adds a new <nowiki><adsense></nowiki> tag which allows you to add an adsense button to your wiki pages.
 
  
 +
== The Code ==
 
<pre><nowiki>
 
<pre><nowiki>
 
<?php
 
<?php
Line 93: Line 92:
 
       $input = $wgAuth->kdm->kdm->clean_value ($part2);
 
       $input = $wgAuth->kdm->kdm->clean_value ($part2);
 
   } else {
 
   } else {
       $part2 = str_replace( ">"            , ">"         , $part2 );
+
       $part2 = str_replace( ">"            , "&amp;gt;"           , $part2 );
       $part2 = str_replace( "<"            , "<"         , $part2 );
+
       $part2 = str_replace( "<"            , "&amp;lt;"           , $part2 );
       $part2 = str_replace( "\""          , """        , $part2 );
+
       $part2 = str_replace( "\""          , "&amp;quot;"        , $part2 );
       $part2 = str_replace( "!"            , "!"         , $part2 );
+
       $part2 = str_replace( "!"            , "&amp;#33;"         , $part2 );
       $part2 = str_replace( "'"            , "'"         , $part2 );
+
       $part2 = str_replace( "'"            , "&amp;#39;"         , $part2 );
 
       $input = $part2;
 
       $input = $part2;
 
   }
 
   }
Line 106: Line 105:
 
</nowiki></pre>
 
</nowiki></pre>
  
{{adsense2}}
+
== !!WARNING!! ==
 
 
= !!WARNING!! =
 
 
If the text that you place between the single quotes in the $kdm_adsense[1] variable has any single quotes in it then you must escape them otherwise IT WILL NOT WORK.
 
If the text that you place between the single quotes in the $kdm_adsense[1] variable has any single quotes in it then you must escape them otherwise IT WILL NOT WORK.
  
Line 119: Line 116:
 
** will crash your wiki
 
** will crash your wiki
  
= Installation =
+
 
 +
== Installation ==
 
* create a directory kdm in the extensions directory
 
* create a directory kdm in the extensions directory
 
* place kdm_adsense.php in the extensions/kdm directory (see code below)
 
* place kdm_adsense.php in the extensions/kdm directory (see code below)
Line 129: Line 127:
 
* in the function wfadsenseExtension, place the code for your adsense-buttons in the variable $kdm_adsense.
 
* in the function wfadsenseExtension, place the code for your adsense-buttons in the variable $kdm_adsense.
  
= Usage =
+
 
 +
== Usage ==
 
* the tag <nowiki><adsense></nowiki> is translated to the button defined in $kdm_adsense[1].
 
* the tag <nowiki><adsense></nowiki> is translated to the button defined in $kdm_adsense[1].
 
* the tag <nowiki><adsense>2</adsense></nowiki> is translated to the button defined in $kdm_adsense[2].
 
* the tag <nowiki><adsense>2</adsense></nowiki> is translated to the button defined in $kdm_adsense[2].
Line 135: Line 134:
 
* the tag <nowiki><adsense>description</adsense></nowiki> is translated to the button defined in $kdm_adsense[1], additionaly the text 'description' is placed next to the adsense button.
 
* the tag <nowiki><adsense>description</adsense></nowiki> is translated to the button defined in $kdm_adsense[1], additionaly the text 'description' is placed next to the adsense button.
  
= Donate =
+
 
 +
== Donate ==
 
If you find this extension usefull, then perhaps you can donate a few bucks? ;)
 
If you find this extension usefull, then perhaps you can donate a few bucks? ;)
  
 
<paypal></paypal>
 
<paypal></paypal>
  
= Example =
+
 
 +
== Example ==
 
<nowiki><adsense></adsense></nowiki> Produces (Note: Sometimes this doesn't always how up, I don't know why)<br><adsense></adsense>  
 
<nowiki><adsense></adsense></nowiki> Produces (Note: Sometimes this doesn't always how up, I don't know why)<br><adsense></adsense>  
  
Line 147: Line 148:
  
  
= Inspiration =
+
== Inspiration ==
 
This extension was inspired by the [http://www.ipbwiki.com/index.php/IpbWiki_Paypal_Extension IpbWiki Paypal Extension]
 
This extension was inspired by the [http://www.ipbwiki.com/index.php/IpbWiki_Paypal_Extension IpbWiki Paypal Extension]
  
{{incomplete}}
+
 
 +
== See also ==
 +
* [[Create paypal buttons for mediawiki]]
 +
* [[Hack mediawiki isbn for affiliates]]
 +
 
 +
 
 +
 
 +
== Bibliography ==
 +
 
 +
* (ISBN 0470043997) "Wikis For Dummies (For Dummies (Computer/Tech))" by Dan Woods
 +
* (ISBN 020171499X) "The Wiki Way: Quick Collaboration on the Web" by Bo Leuf, Ward Cunningham
 +
* (ISBN 3540259953) "Wiki : Web Collaboration" by Anja Ebersbach, Markus Glaser, Richard Heigl, G. Dueck (Foreword), Andrea Adelung (Translator)
 +
 
 +
 
 +
 
 
[[category:software]]
 
[[category:software]]
 
[[category:mediawiki]]
 
[[category:mediawiki]]

Latest revision as of 10:10, 1 October 2009

How to Create a Google Adsense Extension for Mediawiki - kdm adsense is a Mediawiki Extension which adds a new <adsense> tag which allows you to add an adsense button to your wiki pages.

The Code

<?php
/* kdm adsense WikiMedia extension
** kdm (c) 2006
** Add the following line to LocalSettings.php
** require_once('extensions/kdm/kdm_adsense.php');  // kdm adsense Extension
*/

$wgExtensionFunctions[] = "wfadsenseExtension";

function wfadsenseExtension() {
   global $wgParser;
   global $kdm_adsense;
   # register the extension with the WikiText parser
   $wgParser->setHook( "adsense", "renderadsense" );

   $kdm_adsense = array();
   # CHANGE THE LINES BELOW TO REFLECT TO YOUR ADSENSE ADS!!! (there's no limit on the number of ads you define)
   $kdm_adsense[1] = '
<script type="text/javascript">
<!-- google_ad_client = "pub-4452383759975954";
google_ad_width = 468;
google_ad_height = 15;
google_ad_format = "468x15_0ads_al";
google_ad_channel ="6604887705";
google_color_border = "FFFFCC";
google_color_bg = "FFFFFF";
google_color_link = "000000";
google_color_url = "336699";
google_color_text = "333333";
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
';


   $kdm_adsense[2] = '
<script type="text/javascript"><!--
google_ad_client = "pub-4452383759975954";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel ="1172885669";
google_color_border = "C3D9FF";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_url = "008000";
google_color_text = "000000";
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
';
}

# The callback function for converting the input text to HTML output
function renderadsense( $input, $argv ) {
   global $kdm_adsense;
   global $wgAuth;
   $pos_space=strpos($input,' ');
   if (!$pos_space) {
       if (is_numeric($input)) {  // format <adsense>number</adsense>
           $part1 = $input;
           $part2 = '';
           if (!$kdm_adsense[$part1]) {
               print_r ('warning, specified adsense ad not found, defaulting to button 1');
               $part1 = 1;
               $part2 = $input;
           }
       } else {                   // format <adsense>text</adsense> & format <adsense></adsense>
           $part1 = 1;
           $part2 = $input;
       }
   } else {                       // format <adsense>number text</adsense>
       $part1=substr($input,0,$pos_space);
       $part2=substr($input,$pos_space+1);
       if (is_numeric($part1)) {
           if (!$kdm_adsense[$part1]) {
               print_r ('warning, specified adsense ad not found, defaulting to button 1');
               $part1 = 1;
           }
       } else {                 // format <adsense>text</adsense>
           $part1 = 1;
           $part2 = $input;
       }
   }
   $form=$kdm_adsense[$part1];
   // if the kdm interface is available, then use the clean function which is defined there, 
   // otherwise just clean the necessities...
   if (class_exists ('kdm')) {
       $input = $wgAuth->kdm->kdm->clean_value ($part2);
   } else {
       $part2 = str_replace( ">"            , "&gt;"           , $part2 );
       $part2 = str_replace( "<"            , "&lt;"           , $part2 );
       $part2 = str_replace( "\""           , "&quot;"         , $part2 );
       $part2 = str_replace( "!"            , "&#33;"          , $part2 );
       $part2 = str_replace( "'"            , "&#39;"          , $part2 );
       $input = $part2;
   }
   $output = '<table border=0><tr><td>'.$form.'</td><td valign=center>'.$input.'</td></tr></table>';
   return $output;
}
?>

!!WARNING!!

If the text that you place between the single quotes in the $kdm_adsense[1] variable has any single quotes in it then you must escape them otherwise IT WILL NOT WORK.

You will get an error like similar to "Parse error: parse error, unexpected '}' in /home/content/O/p/e/OpenTutorial/html/extensions/kdm/kdm_adsense.php on line 21"

Example:

  • $kdm_adsense[2] = '<form action="https://... - it\'s fast, free and secure!"></form>'
    • works just fine
  • $kdm_adsense[2] = '<form action="https://... - it's fast, free and secure!"></form>'
    • will crash your wiki


Installation

  • create a directory kdm in the extensions directory
  • place kdm_adsense.php in the extensions/kdm directory (see code below)
  • open the file LocalSettings.php, search for:
?>

and change this to:

    require_once('extensions/kdm/kdm_adsense.php');  // kdm adsense Extension
?>
  • in the function wfadsenseExtension, place the code for your adsense-buttons in the variable $kdm_adsense.


Usage

  • the tag <adsense> is translated to the button defined in $kdm_adsense[1].
  • the tag <adsense>2</adsense> is translated to the button defined in $kdm_adsense[2].
  • the tag <adsense>2 description</adsense> is translated to the button defined in $kdm_adsense[2], additionaly the text 'description' is placed next to the adsense button.
  • the tag <adsense>description</adsense> is translated to the button defined in $kdm_adsense[1], additionaly the text 'description' is placed next to the adsense button.


If you find this extension usefull, then perhaps you can donate a few bucks? ;)

<paypal></paypal>


Example

<adsense></adsense> Produces (Note: Sometimes this doesn't always how up, I don't know why)

<adsense>2</adsense> Produces


Inspiration

This extension was inspired by the IpbWiki Paypal Extension


See also


Bibliography

  • (ISBN 0470043997) "Wikis For Dummies (For Dummies (Computer/Tech))" by Dan Woods
  • (ISBN 020171499X) "The Wiki Way: Quick Collaboration on the Web" by Bo Leuf, Ward Cunningham
  • (ISBN 3540259953) "Wiki : Web Collaboration" by Anja Ebersbach, Markus Glaser, Richard Heigl, G. Dueck (Foreword), Andrea Adelung (Translator)