diff options
Diffstat (limited to 'wiki/lib/plugins/styling/admin.php')
-rw-r--r-- | wiki/lib/plugins/styling/admin.php | 211 |
1 files changed, 0 insertions, 211 deletions
diff --git a/wiki/lib/plugins/styling/admin.php b/wiki/lib/plugins/styling/admin.php deleted file mode 100644 index 055ac22..0000000 --- a/wiki/lib/plugins/styling/admin.php +++ /dev/null @@ -1,211 +0,0 @@ -<?php -/** - * DokuWiki Plugin styling (Admin Component) - * - * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html - * @author Andreas Gohr <andi@splitbrain.org> - */ - -// must be run within Dokuwiki -if(!defined('DOKU_INC')) die(); - -class admin_plugin_styling extends DokuWiki_Admin_Plugin { - - public $ispopup = false; - - /** - * @return int sort number in admin menu - */ - public function getMenuSort() { - return 1000; - } - - /** - * @return bool true if only access for superuser, false is for superusers and moderators - */ - public function forAdminOnly() { - return true; - } - - /** - * handle the different actions (also called from ajax) - */ - public function handle() { - global $INPUT; - $run = $INPUT->extract('run')->str('run'); - if(!$run) return; - $run = "run_$run"; - $this->$run(); - } - - /** - * Render HTML output, e.g. helpful text and a form - */ - public function html() { - $class = 'nopopup'; - if($this->ispopup) $class = 'ispopup page'; - - echo '<div id="plugin__styling" class="'.$class.'">'; - ptln('<h1>'.$this->getLang('menu').'</h1>'); - $this->form(); - echo '</div>'; - } - - /** - * Create the actual editing form - */ - public function form() { - global $conf; - global $ID; - - $styleUtil = new \dokuwiki\StyleUtils(); - $styleini = $styleUtil->cssStyleini($conf['template'], true); - $replacements = $styleini['replacements']; - - if($this->ispopup) { - $target = DOKU_BASE.'lib/plugins/styling/popup.php'; - } else { - $target = wl($ID, array('do' => 'admin', 'page' => 'styling')); - } - - if(empty($replacements)) { - echo '<p class="error">'.$this->getLang('error').'</p>'; - } else { - echo $this->locale_xhtml('intro'); - - echo '<form class="styling" method="post" action="'.$target.'">'; - - echo '<table><tbody>'; - foreach($replacements as $key => $value) { - $name = tpl_getLang($key); - if(empty($name)) $name = $this->getLang($key); - if(empty($name)) $name = $key; - - echo '<tr>'; - echo '<td><label for="tpl__'.hsc($key).'">'.$name.'</label></td>'; - echo '<td><input type="text" name="tpl['.hsc($key).']" id="tpl__'.hsc($key).'" value="'.hsc($value).'" '.$this->colorClass($key).' dir="ltr" /></td>'; - echo '</tr>'; - } - echo '</tbody></table>'; - - echo '<p>'; - echo '<button type="submit" name="run[preview]" class="btn_preview primary">'.$this->getLang('btn_preview').'</button> '; - echo '<button type="submit" name="run[reset]">'.$this->getLang('btn_reset').'</button>'; #FIXME only if preview.ini exists - echo '</p>'; - - echo '<p>'; - echo '<button type="submit" name="run[save]" class="primary">'.$this->getLang('btn_save').'</button>'; - echo '</p>'; - - echo '<p>'; - echo '<button type="submit" name="run[revert]">'.$this->getLang('btn_revert').'</button>'; #FIXME only if local.ini exists - echo '</p>'; - - echo '</form>'; - - echo tpl_locale_xhtml('style'); - - } - } - - /** - * set the color class attribute - */ - protected function colorClass($key) { - static $colors = array( - 'text', - 'background', - 'text_alt', - 'background_alt', - 'text_neu', - 'background_neu', - 'border', - 'highlight', - 'background_site', - 'link', - 'existing', - 'missing', - ); - - if(preg_match('/colou?r/', $key) || in_array(trim($key,'_'), $colors)) { - return 'class="color"'; - } else { - return ''; - } - } - - /** - * saves the preview.ini (alos called from ajax directly) - */ - public function run_preview() { - global $conf; - $ini = $conf['cachedir'].'/preview.ini'; - io_saveFile($ini, $this->makeini()); - } - - /** - * deletes the preview.ini - */ - protected function run_reset() { - global $conf; - $ini = $conf['cachedir'].'/preview.ini'; - io_saveFile($ini, ''); - } - - /** - * deletes the local style.ini replacements - */ - protected function run_revert() { - $this->replaceini(''); - $this->run_reset(); - } - - /** - * save the local style.ini replacements - */ - protected function run_save() { - $this->replaceini($this->makeini()); - $this->run_reset(); - } - - /** - * create the replacement part of a style.ini from submitted data - * - * @return string - */ - protected function makeini() { - global $INPUT; - - $ini = "[replacements]\n"; - $ini .= ";These overwrites have been generated from the Template styling Admin interface\n"; - $ini .= ";Any values in this section will be overwritten by that tool again\n"; - foreach($INPUT->arr('tpl') as $key => $val) { - $ini .= $key.' = "'.addslashes($val).'"'."\n"; - } - - return $ini; - } - - /** - * replaces the replacement parts in the local ini - * - * @param string $new the new ini contents - */ - protected function replaceini($new) { - global $conf; - $ini = DOKU_CONF."tpl/".$conf['template']."/style.ini"; - if(file_exists($ini)) { - $old = io_readFile($ini); - $old = preg_replace('/\[replacements\]\n.*?(\n\[.*]|$)/s', '\\1', $old); - $old = trim($old); - } else { - $old = ''; - } - - io_makeFileDir($ini); - io_saveFile($ini, "$old\n\n$new"); - } - -} - -// vim:ts=4:sw=4:et: |