Difference between revisions of "Create adsense ads for mediawiki"

From OpenTutorial
Jump to navigation Jump to search
(Quote html entities, so they appear correctly for copy/paste)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= How to Create an adsense Buttons 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>
 
 
= Code for file kdm_adsense.php =
 
 
 
Copy and paste the below code and place it in a file named "kdm_adsense.php".
 
 
 
<pre>
 
<nowiki>
 
 
<?php
 
<?php
 
/* kdm adsense WikiMedia extension
 
/* kdm adsense WikiMedia extension
Line 72: Line 65:
 
           $part2 = '';
 
           $part2 = '';
 
           if (!$kdm_adsense[$part1]) {
 
           if (!$kdm_adsense[$part1]) {
               print_r ('warning, specified adsense button not found, defaulting to button 1');
+
               print_r ('warning, specified adsense ad not found, defaulting to button 1');
 
               $part1 = 1;
 
               $part1 = 1;
 
               $part2 = $input;
 
               $part2 = $input;
Line 85: Line 78:
 
       if (is_numeric($part1)) {
 
       if (is_numeric($part1)) {
 
           if (!$kdm_adsense[$part1]) {
 
           if (!$kdm_adsense[$part1]) {
               print_r ('warning, specified adsense button not found, defaulting to button 1');
+
               print_r ('warning, specified adsense ad not found, defaulting to button 1');
 
               $part1 = 1;
 
               $part1 = 1;
 
           }
 
           }
Line 94: Line 87:
 
   }
 
   }
 
   $form=$kdm_adsense[$part1];
 
   $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 the kdm interface is available, then use the clean function which is defined there,  
 +
  // otherwise just clean the necessities...
 
   if (class_exists ('kdm')) {
 
   if (class_exists ('kdm')) {
 
       $input = $wgAuth->kdm->kdm->clean_value ($part2);
 
       $input = $wgAuth->kdm->kdm->clean_value ($part2);
 
   } else {
 
   } else {
       $part2 = str_replace( ">"            , "&gt;"         , $part2 );
+
       $part2 = str_replace( ">"            , "&amp;gt;"           , $part2 );
       $part2 = str_replace( "<"            , "&lt;"         , $part2 );
+
       $part2 = str_replace( "<"            , "&amp;lt;"           , $part2 );
       $part2 = str_replace( "\""          , "&quot;"       , $part2 );
+
       $part2 = str_replace( "\""          , "&amp;quot;"         , $part2 );
       $part2 = str_replace( "!"            , "&#33;"         , $part2 );
+
       $part2 = str_replace( "!"            , "&amp;#33;"         , $part2 );
       $part2 = str_replace( "'"            , "&#39;"         , $part2 );
+
       $part2 = str_replace( "'"            , "&amp;#39;"         , $part2 );
 
       $input = $part2;
 
       $input = $part2;
 
   }
 
   }
Line 109: Line 103:
 
}
 
}
 
?>
 
?>
 +
</nowiki></pre>
  
</nowiki>
+
== !!WARNING!! ==
</pre>
 
 
 
= !!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 125: Line 117:
  
  
 
+
== 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 136: 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 142: 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 =
 
<table>
 
<tr>
 
  <td>If you find this extension usefull, then perhaps you can donate a few bucks? ;)</td>
 
  <td><paypal></paypal></td>
 
</tr>
 
</table>
 
  
 +
== Donate ==
 +
If you find this extension usefull, then perhaps you can donate a few bucks? ;)
  
= Inspiration =
+
<paypal></paypal>
 +
 
 +
 
 +
== Example ==
 +
<nowiki><adsense></adsense></nowiki> Produces (Note: Sometimes this doesn't always how up, I don't know why)<br><adsense></adsense>
 +
 
 +
<nowiki><adsense>2</adsense></nowiki> Produces <br><adsense>2</adsense>
 +
 
 +
 
 +
 
 +
== 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)