summaryrefslogtreecommitdiff
path: root/inc/html.php
diff options
context:
space:
mode:
authorBen Coburn <btcoburn@silicodon.net>2006-05-22 08:00:04 +0200
committerBen Coburn <btcoburn@silicodon.net>2006-05-22 08:00:04 +0200
commit35dae8b08b9fb243b06bc972c20a0b00a8d97f0b (patch)
treeef27f982d48a7f1c950d67feeeda06888b93e59b /inc/html.php
parent6c48a22e4902b77e1397e8e9132632b2cf0c7400 (diff)
downloadrpg-35dae8b08b9fb243b06bc972c20a0b00a8d97f0b.tar.gz
rpg-35dae8b08b9fb243b06bc972c20a0b00a8d97f0b.tar.bz2
decouple section edit from header in renderer
This patch achieves a partial decoupling of the section edit buttons from the header syntax. A new 'section_edit' instruction is added to the instruction list. The default set of these instructions is generated from the header handler and the _finalize function. A generic 'section_edit' renderer is now part of the renderer. To rewrite the section semantics, add, or remove section edit buttons the header handler and renderer no longer need to be modified. Changes can be dynamically made to the section edit buttons through the 'PARSER_HANDLER_DONE' action event. An action plugin that registers this event can then modify the calls list of the handler object before it is rendered. In short, this patch makes it possible to change the behavior of the section edit buttons without having to change unrelated code. This patch should be entirely transparent to DokuWiki users and cleanly written plugins. darcs-hash:20060522060004-05dcb-8e6b5215e1b610877f126ca0b9e1e5bc21cc6469.gz
Diffstat (limited to 'inc/html.php')
-rw-r--r--inc/html.php30
1 files changed, 16 insertions, 14 deletions
diff --git a/inc/html.php b/inc/html.php
index d31c97724..09e871b67 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -130,23 +130,21 @@ function html_editbutton(){
/**
* prints a section editing button
+ * used as a callback in html_secedit
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function html_secedit_button($section,$p){
+function html_secedit_button($matches){
global $ID;
global $lang;
- global $INFO;
$secedit = '';
-# if($p) $secedit .= "</p>\n";
$secedit .= '<div class="secedit">';
$secedit .= html_btn('secedit',$ID,'',
array('do' => 'edit',
'lines' => "$section",
'rev' => $INFO['lastmod']),
- 'post');
+ 'post', $name);
$secedit .= '</div>';
-# if($p) $secedit .= "\n<p>";
return $secedit;
}
@@ -157,16 +155,14 @@ function html_secedit_button($section,$p){
*/
function html_secedit($text,$show=true){
global $INFO;
+
if($INFO['writable'] && $show && !$INFO['rev']){
- $text = preg_replace('#<!-- SECTION \[(\d+-\d+)\] -->#e',
- "html_secedit_button('\\1',true)",
- $text);
- $text = preg_replace('#<!-- SECTION \[(\d+-)\] -->#e',
- "html_secedit_button('\\1',false)",
- $text);
+ $text = preg_replace_callback('#<!-- SECTION "(.*?)" \[(\d+-\d*)\] -->#',
+ 'html_secedit_button', $text);
}else{
- $text = preg_replace('#<!-- SECTION \[(\d*-\d*)\] -->#e','',$text);
+ $text = preg_replace('#<!-- SECTION "(.*?)" \[(\d+-\d*)\] -->#','',$text);
}
+
return $text;
}
@@ -214,16 +210,18 @@ function html_backtomedia_button($params,$akey=''){
/**
* Displays a button (using its own form)
+ * If tooltip exists, the access key tooltip is replaced.
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function html_btn($name,$id,$akey,$params,$method='get'){
+function html_btn($name,$id,$akey,$params,$method='get',$tooltip=''){
global $conf;
global $lang;
$label = $lang['btn_'.$name];
$ret = '';
+ $tip = '';
//filter id (without urlencoding)
$id = idfilter($id,false);
@@ -250,9 +248,13 @@ function html_btn($name,$id,$akey,$params,$method='get'){
$ret .= '<input type="submit" value="'.htmlspecialchars($label).'" class="button" ';
if($akey){
- $ret .= 'title="[ALT+'.strtoupper($akey).']" ';
+ $tip = '[ALT+'.strtoupper($akey).']';
$ret .= 'accesskey="'.$akey.'" ';
}
+ if ($tooltip!='') {
+ $tip = htmlspecialchars($tooltip);
+ }
+ $ret .= 'title="'.$tip.'" ';
$ret .= '/>';
$ret .= '</div></form>';