exit(1);
}
-$_OpenXPlugin_Script = <<<ENDOFSCRIPT
-var m3_u = '%s';
-var m3_r = Math.floor(Math.random()*99999999999);
-if (!document.MAX_used) document.MAX_used = ',';
-document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
-document.write ("?zoneid=%s");
-document.write ('&cb=' + m3_r);
-if (document.MAX_used != ',') document.write ("&exclude=" + document.MAX_used);
-document.write (document.charset ? '&charset='+document.charset : (document.characterSet ? '&charset='+document.characterSet : ''));
-document.write ("&loc=" + escape(window.location));
-if (document.referrer) document.write ("&referer=" + escape(document.referrer));
-if (document.context) document.write ("&context=" + escape(document.context));
-if (document.mmm_fo) document.write ("&mmm_fo=1");
-document.write ("'><\/scr"+"ipt>");
-ENDOFSCRIPT;
-
/**
* Plugin for OpenX Ad Server
*
*
* @seeAlso UAPPlugin
*/
-
class OpenXPlugin extends UAPPlugin
{
public $adScript = null;
+ function initialize()
+ {
+ parent::initialize();
+
+ // A little bit of chicanery so we avoid overwriting values that
+ // are passed in with the constructor
+ foreach (array('mediumRectangle', 'rectangle', 'leaderboard', 'wideSkyscraper', 'adScript') as $setting) {
+ $value = common_config('openx', $setting);
+ if (!empty($value)) { // not found
+ $this->$setting = $value;
+ }
+ }
+
+ return true;
+ }
+
/**
* Show a medium rectangle 'ad'
*
*
* @return void
*/
-
protected function showMediumRectangle($action)
{
$this->showAd($action, $this->mediumRectangle);
*
* @return void
*/
-
protected function showRectangle($action)
{
$this->showAd($action, $this->rectangle);
*
* @return void
*/
-
protected function showWideSkyscraper($action)
{
$this->showAd($action, $this->wideSkyscraper);
*
* @return void
*/
-
protected function showLeaderboard($action)
{
$this->showAd($action, $this->leaderboard);
*
* @return void
*/
-
protected function showAd($action, $zone)
{
- global $_OpenXPlugin_Script;
+$scr = <<<ENDOFSCRIPT
+var m3_u = '%s';
+var m3_r = Math.floor(Math.random()*99999999999);
+if (!document.MAX_used) document.MAX_used = ',';
+document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
+document.write ("?zoneid=%d");
+document.write ('&cb=' + m3_r);
+if (document.MAX_used != ',') document.write ("&exclude=" + document.MAX_used);
+document.write (document.charset ? '&charset='+document.charset : (document.characterSet ? '&charset='+document.characterSet : ''));
+document.write ("&loc=" + escape(window.location));
+if (document.referrer) document.write ("&referer=" + escape(document.referrer));
+if (document.context) document.write ("&context=" + escape(document.context));
+if (document.mmm_fo) document.write ("&mmm_fo=1");
+document.write ("'><\/scr"+"ipt>");
+ENDOFSCRIPT;
+
+ $action->inlineScript(sprintf($scr, $this->adScript, $zone));
+ return true;
+ }
+
+ function onRouterInitialized($m)
+ {
+ $m->connect('admin/openx',
+ array('action' => 'openxadminpanel'));
+
+ return true;
+ }
+
+ function onAutoload($cls)
+ {
+ $dir = dirname(__FILE__);
- $action->inlineScript(sprintf($_OpenXPlugin_Script, $this->adScript, $zone));
+ switch ($cls)
+ {
+ case 'OpenxadminpanelAction':
+ require_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php';
+ return false;
+ default:
+ return true;
+ }
+ }
+
+ function onEndAdminPanelNav($menu) {
+ if (AdminPanelAction::canAdmin('openx')) {
+ // TRANS: Menu item title/tooltip
+ $menu_title = _m('OpenX configuration');
+ // TRANS: Menu item for site administration
+ $menu->out->menuItem(common_local_url('openxadminpanel'), _m('OpenX'),
+ $menu_title, $action_name == 'openxadminpanel', 'nav_openx_admin_panel');
+ }
return true;
}
-}
\ No newline at end of file
+
+ /**
+ * Add our version information to output
+ *
+ * @param array &$versions Array of version-data arrays
+ *
+ * @return boolean hook value
+ */
+ function onPluginVersion(&$versions)
+ {
+ $versions[] = array('name' => 'OpenX',
+ 'version' => STATUSNET_VERSION,
+ 'author' => 'Evan Prodromou',
+ 'homepage' => 'http://status.net/wiki/Plugin:OpenX',
+ 'rawdescription' =>
+ // TRANS: Plugin description.
+ _m('Plugin for <a href="http://www.openx.org/">OpenX Ad Server</a>.'));
+ return true;
+ }
+}