1872edc7cSRené Corinth<?php 2872edc7cSRené Corinth// must be run within Dokuwiki 30cfde7e9SMichael Großeif (!defined('DOKU_INC')) { 40cfde7e9SMichael Große die(); 50cfde7e9SMichael Große} 6872edc7cSRené Corinth 7872edc7cSRené Corinthclass admin_plugin_tagging extends DokuWiki_Admin_Plugin { 8872edc7cSRené Corinth 98a1a3846SAndreas Gohr /** @var helper_plugin_tagging */ 10872edc7cSRené Corinth private $hlp; 11872edc7cSRené Corinth 128a1a3846SAndreas Gohr public function __construct() { 13872edc7cSRené Corinth $this->hlp = plugin_load('helper', 'tagging'); 148a1a3846SAndreas Gohr } 15872edc7cSRené Corinth 168a1a3846SAndreas Gohr /** 178a1a3846SAndreas Gohr * We allow use by managers 188a1a3846SAndreas Gohr * 198a1a3846SAndreas Gohr * @return bool always false 208a1a3846SAndreas Gohr */ 218a1a3846SAndreas Gohr function forAdminOnly() { 228a1a3846SAndreas Gohr return false; 238a1a3846SAndreas Gohr } 248a1a3846SAndreas Gohr 258a1a3846SAndreas Gohr /** 2631396860SSzymon Olewniczak * Handle tag actions 27fece5bdcSAnna Dabrowska * 28fece5bdcSAnna Dabrowska * FIXME remove obsolete actions 298a1a3846SAndreas Gohr */ 308a1a3846SAndreas Gohr function handle() { 3131396860SSzymon Olewniczak global $ID, $INPUT; 3231396860SSzymon Olewniczak 338e9d0162SSzymon Olewniczak //by default sort by tag name 34ca455b8eSMichael Große if (!$INPUT->has('sort')) { 35ca455b8eSMichael Große $INPUT->set('sort', 'tid'); 36ca455b8eSMichael Große } 378e9d0162SSzymon Olewniczak 3831396860SSzymon Olewniczak //now starts functions handle 39ca455b8eSMichael Große if (!$INPUT->has('fn')) { 40ca455b8eSMichael Große return false; 41ca455b8eSMichael Große } 42ca455b8eSMichael Große if (!checkSecurityToken()) { 43ca455b8eSMichael Große return false; 44ca455b8eSMichael Große } 4531396860SSzymon Olewniczak 4631396860SSzymon Olewniczak // extract the command and any specific parameters 4731396860SSzymon Olewniczak // submit button name is of the form - fn[cmd][param(s)] 4831396860SSzymon Olewniczak $fn = $INPUT->param('fn'); 4931396860SSzymon Olewniczak 5031396860SSzymon Olewniczak if (is_array($fn)) { 5131396860SSzymon Olewniczak $cmd = key($fn); 5231396860SSzymon Olewniczak $param = is_array($fn[$cmd]) ? key($fn[$cmd]) : null; 5331396860SSzymon Olewniczak } else { 5431396860SSzymon Olewniczak $cmd = $fn; 5531396860SSzymon Olewniczak $param = null; 5631396860SSzymon Olewniczak } 5731396860SSzymon Olewniczak 5831396860SSzymon Olewniczak switch ($cmd) { 598e9d0162SSzymon Olewniczak case 'rename': 608e9d0162SSzymon Olewniczak $this->hlp->renameTag($INPUT->str('old'), $INPUT->str('new')); 618e9d0162SSzymon Olewniczak break; 628e9d0162SSzymon Olewniczak case 'delete': 638e9d0162SSzymon Olewniczak $this->hlp->deleteTags(array_keys($INPUT->arr('tags')), $INPUT->str('filter')); 648e9d0162SSzymon Olewniczak break; 658e9d0162SSzymon Olewniczak case 'sort': 668e9d0162SSzymon Olewniczak $INPUT->set('sort', $param); 678e9d0162SSzymon Olewniczak break; 688e9d0162SSzymon Olewniczak 69872edc7cSRené Corinth } 70872edc7cSRené Corinth } 71872edc7cSRené Corinth 728a1a3846SAndreas Gohr /** 738a1a3846SAndreas Gohr * Draw the interface 748a1a3846SAndreas Gohr */ 75*89ed97adSAnna Dabrowska public function html() { 768a1a3846SAndreas Gohr echo $this->locale_xhtml('intro'); 77*89ed97adSAnna Dabrowska echo $this->hlp->html_table(); 788f630140SSzymon Olewniczak } 79872edc7cSRené Corinth} 80