Difference between revisions of "Create adsense ads for mediawiki"
m |
Billstclair (talk | contribs) (Quote html entities, so they appear correctly for copy/paste) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | '''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. | |
− | [[category: | + | |
+ | == The Code == | ||
+ | <pre><nowiki> | ||
+ | <?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; | ||
+ | } | ||
+ | ?> | ||
+ | </nowiki></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. | ||
+ | |||
+ | 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: | ||
+ | *<pre>$kdm_adsense[2] = '<form action="https://... - it\'s fast, free and secure!"></form>'</pre> | ||
+ | ** works just fine | ||
+ | *<pre>$kdm_adsense[2] = '<form action="https://... - it's fast, free and secure!"></form>'</pre> | ||
+ | ** 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<br> | ||
+ | ?> | ||
+ | * in the function wfadsenseExtension, place the code for your adsense-buttons in the variable $kdm_adsense. | ||
+ | |||
+ | |||
+ | == Usage == | ||
+ | * 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 description</adsense></nowiki> is translated to the button defined in $kdm_adsense[2], 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 == | ||
+ | If you find this extension usefull, then perhaps you can donate a few bucks? ;) | ||
+ | |||
+ | <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] | ||
+ | |||
+ | |||
+ | == 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: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.
Contents
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( ">" , ">" , $part2 ); $part2 = str_replace( "<" , "<" , $part2 ); $part2 = str_replace( "\"" , """ , $part2 ); $part2 = str_replace( "!" , "!" , $part2 ); $part2 = str_replace( "'" , "'" , $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.
Donate
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)