124 lines
4.2 KiB
PHP
124 lines
4.2 KiB
PHP
<?php
|
|
|
|
|
|
/**
|
|
* @author Myron Turner <turnermm02@shaw.ca>
|
|
* @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
|
|
*/
|
|
|
|
require_once(DOKU_INC . 'lib/plugins/ckgedit/scripts/css6.php');
|
|
class admin_plugin_ckgedit extends DokuWiki_Admin_Plugin {
|
|
|
|
private $tpl_inc;
|
|
private $template;
|
|
private $alt;
|
|
function __construct() {
|
|
global $conf;
|
|
$this->template = $conf['template'];
|
|
$this->tpl_inc = tpl_incdir();
|
|
}
|
|
|
|
function handle() {
|
|
|
|
if (!isset($_REQUEST['cmd'])) return; // first time - nothing to do
|
|
|
|
$this->output = 'invalid';
|
|
|
|
if (!checkSecurityToken()) return;
|
|
if (!is_array($_REQUEST['cmd'])) return;
|
|
|
|
switch (key($_REQUEST['cmd'])) {
|
|
case 'stylesheet' : {
|
|
$this->alt = "";
|
|
$this->output = 'style_sheet_msg';
|
|
break;
|
|
}
|
|
case 'alt_stylesheet' : {
|
|
$this->alt = $_REQUEST['templates'];
|
|
$this->output = 'alt_style_sheet_msg';
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
* output appropriate html
|
|
*/
|
|
function html() {
|
|
ptln('<div id = "ckg_styl_sheet" style = "display:none">');
|
|
echo $this->locale_xhtml('style');
|
|
ptln('</div>');
|
|
ptln('<button type = "button" id = "Infobut" onclick="jQuery(\'#ckg_styl_sheet\').toggle(800,ckg_admininfo(this));">');
|
|
|
|
echo $this->getLang('stylesheet_oinfo');
|
|
ptln('</button>');
|
|
|
|
ptln('<form action="'.wl($ID).'" method="post">');
|
|
// output hidden values to ensure dokuwiki will return back to this plugin
|
|
ptln(' <input type="hidden" name="do" value="admin" />');
|
|
ptln(' <input type="hidden" name="page" value="'.$this->getPluginName().'" />');
|
|
formSecurityToken();
|
|
|
|
//Current style sheet
|
|
ptln('<p style = "line-height: 200%;">' . $this->getLang('default_stylesheet') . ': (' .$this->template . ')<br />');
|
|
ptln('<label for="ckg_save_ss">' .$this->getLang('checkbox').'</label>');
|
|
ptln('<input type="checkbox" name="ckg_save_ss"> ');
|
|
ptln('<input type="submit" name="cmd[stylesheet]" value="'.$this->getLang('style_sheet').'" /></p>');
|
|
|
|
// Other style sheet
|
|
$alt_val = isset($this->alt)?$this->alt: "" ;
|
|
ptln('<p style = "line-height: 200%;">' . $this->getLang('alt_stylesheet') .'<br />');
|
|
ptln('<select name="templates" style = "line-height:100%">');
|
|
echo $this->templates( $alt_val );
|
|
ptln('</select>');
|
|
ptln('<input type="submit" name="cmd[alt_stylesheet]" value="'.$this->getLang('style_sheet').'" />');
|
|
ptln('</form></p>');
|
|
|
|
if($this->output && $this->output == 'style_sheet_msg') {
|
|
$path = $this->tpl_inc;
|
|
ptln(htmlspecialchars($this->getLang($this->output)). " " .$this->template);
|
|
$retv = css_ckg_out($path);
|
|
$this->message($path, $retv);
|
|
|
|
}
|
|
else if($this->output && $this->output == 'alt_style_sheet_msg') {
|
|
ptln(htmlspecialchars($this->getLang($this->output)). " " .$this->alt);
|
|
$path = str_replace('tpl/'.$this->template, 'tpl/'.$this->alt,$this->tpl_inc);
|
|
$retv = css_ckg_out($path,$this->alt);
|
|
$this->message($path, $retv);
|
|
}
|
|
|
|
}
|
|
|
|
function message($path, $which) {
|
|
$messages = array(
|
|
"Stylesheet saved to $path" . 'Styles/_style.css',
|
|
"Failed to save stylesheet to $path" . 'Styles/_style.css'
|
|
);
|
|
$color = $which == 0? '#333': 'blue';
|
|
ptln('<br /><span style = "color:'.$color. ';">'.htmlspecialchars($messages[$which]).'</span>');
|
|
|
|
}
|
|
|
|
function templates($selected="") {
|
|
$dir = dirname($this->tpl_inc);
|
|
$files = scandir($dir);
|
|
$dir .= '/';
|
|
$list = "<option value='' >Select</option>";
|
|
foreach ($files AS $file) {
|
|
if($file == '.' || $file == '..' || $file == $this->template) continue;
|
|
$entry = $dir . $file;
|
|
if(!is_writable($entry)) continue;
|
|
if(is_dir ($entry ) ) {
|
|
if($file == $selected) {
|
|
$list .= "<option value='$file' selected>$file</option>";
|
|
}
|
|
else $list .= "<option value='$file' >$file</option>";
|
|
}
|
|
}
|
|
|
|
return $list;
|
|
}
|
|
}
|