*/
if (!defined('DOKU_INC')) {
define('DOKU_INC', realpath(dirname(__FILE__) . '/../../') . '/');
}
if (!defined('DOKU_PLUGIN')) {
define('DOKU_PLUGIN', DOKU_INC . 'lib/plugins/');
}
require_once(DOKU_PLUGIN . 'admin.php');
include_once(DOKU_PLUGIN . 'googleads/code.php');
/**
* All DokuWiki plugins to extend the admin function
* need to inherit from this class
*/
class admin_plugin_googleads extends DokuWiki_Admin_Plugin
{
public $state = 0;
public $googleads = '';
/**
* Constructor
*/
public function admin_plugin_googleads()
{
$this->setupLocale();
}
/**
* handle user request
*/
public function handle()
{
$this->state = 0;
if (!isset($_REQUEST['cmd']) || !is_array($_REQUEST['cmd'])) {
return;
}
$this->googleads = $_REQUEST['googleads'];
if (is_array($this->googleads)) {
$this->state = 1;
}
}
/**
* output appropriate html
*/
public function html()
{
global $conf;
global $gads_loaded, $gads_settings;
if ($this->state != 0) {
$gads_settings['code'] = $this->googleads != null && array_key_exists('code', $this->googleads) ? addslashes($this->googleads['code']) : '';
$gads_settings['dontcountadmin'] = $this->getIsValueOn($this->googleads, 'dontcountadmin') ? 1 : 0;
$gads_settings['dontcountmanager'] = $this->getIsValueOn($this->googleads, 'dontcountmanager') ? 1 : 0;
$gads_settings['dontcountusers'] = $this->getIsValueOn($this->googleads, 'dontcountusers') ? 1 : 0;
gads_save();
}
print $this->locale_xhtml('intro');
print $this->getForm();
print '
';
print $this->locale_xhtml('outtro');
}
protected function getIsValueOn($map, $key)
{
$result = false;
if ($map != null && array_key_exists($key, $map)) {
$result = $map[$key] == 1 || $map[$key] === 'on' || $map[$key] === 'checked';
}
return $result;
}
/**
* Create the preference form
*
* @return string
*/
protected function getForm()
{
global $ID;
global $gads_settings;
$form = new \dokuwiki\Form\Form([
'method' => 'POST',
'action' => wl($ID, ['do' => 'admin', 'page' => $this->getPluginName(), 'cmd[googleads]' => 'true'], false, '&')
]);
$form->addFieldsetOpen($this->getLang('components'));
$ta = $form->addTextarea('googleads[code]', $this->getLang('gads_googleads_code'));
if ($gads_settings != null && array_key_exists('code', $gads_settings)) {
$ta->val(stripslashes($gads_settings['code']));
}
$cb = $form->addCheckbox("googleads[dontcountadmin]", $this->getLang('gads_dont_count_admin'))->useInput(false)->addClass('block');
if ($this->getIsValueOn($gads_settings, 'dontcountadmin')) {
$cb->attr('checked', 'checked');
}
$cb = $form->addCheckbox("googleads[dontcountmanager]", $this->getLang('gads_dont_count_manager'))->useInput(false)->addClass('block');
if ($this->getIsValueOn($gads_settings, 'dontcountmanager')) {
$cb->attr('checked', 'checked');
}
$cb = $form->addCheckbox("googleads[dontcountusers]", $this->getLang('gads_dont_count_users'))->useInput(false)->addClass('block');
if ($this->getIsValueOn($gads_settings, 'dontcountusers')) {
$cb->attr('checked', 'checked');
}
$form->addButton('save', $this->getLang('gads_save'));
return $form->toHTML();
}
}