diff options
author | Anika Henke <anika@selfthinker.org> | 2010-12-05 13:01:15 +0000 |
---|---|---|
committer | Anika Henke <anika@selfthinker.org> | 2010-12-05 13:01:15 +0000 |
commit | afe47fae3b5d4dbb4c209df698b72d4f2e716ad7 (patch) | |
tree | 2d10ce2685f345ab21c894d6a25d756dcceeb6f1 | |
parent | c21fe1fab827d3d35d3cf59b0f6403f005e86df2 (diff) | |
download | rpg-afe47fae3b5d4dbb4c209df698b72d4f2e716ad7.tar.gz rpg-afe47fae3b5d4dbb4c209df698b72d4f2e716ad7.tar.bz2 |
made template functions more flexible
* attention: incompatible to previous version!
* introduced _tpl_action() (wrapper similar to tpl_action())
* improved discussion and user page functions
* made them work independent from config
* added full control to how the page links are built (with placeholders @ID@ and @USER@)
* config option changes: removed 'discussNSreverse', renamed 'discussionNS' and 'userNS' to 'discussionPage' and 'userPage'
-rw-r--r-- | conf/default.php | 5 | ||||
-rw-r--r-- | conf/metadata.php | 5 | ||||
-rw-r--r-- | lang/en/settings.php | 5 | ||||
-rw-r--r-- | main.php | 8 | ||||
-rw-r--r-- | tpl_functions.php | 53 |
5 files changed, 42 insertions, 34 deletions
diff --git a/conf/default.php b/conf/default.php index e5bce5e9d..57b7bd581 100644 --- a/conf/default.php +++ b/conf/default.php @@ -5,8 +5,7 @@ */ $conf['tagline'] = 'This is the tagline - explaining what this site is about.'; -$conf['discussionNS'] = 'discussion'; -$conf['discussNSreverse'] = 0; -$conf['userNS'] = 'user'; +$conf['discussionPage'] = 'discussion:@ID@'; +$conf['userPage'] = 'user:@USER@:'; $conf['sidebarID'] = 'sidebar'; $conf['hideTools'] = 0; diff --git a/conf/metadata.php b/conf/metadata.php index 792c47ae2..88583bcd0 100644 --- a/conf/metadata.php +++ b/conf/metadata.php @@ -5,8 +5,7 @@ */ $meta['tagline'] = array('string'); -$meta['discussionNS'] = array('string'); -$meta['discussNSreverse'] = array('onoff'); -$meta['userNS'] = array('string'); +$meta['discussionPage'] = array('string'); +$meta['userPage'] = array('string'); $meta['sidebarID'] = array('string'); $meta['hideTools'] = array('onoff'); diff --git a/lang/en/settings.php b/lang/en/settings.php index e2fde20c4..356e95234 100644 --- a/lang/en/settings.php +++ b/lang/en/settings.php @@ -5,8 +5,7 @@ */ $lang['tagline'] = 'Tagline'; -$lang['discussionNS'] = 'Discussion namespace (leave empty to disable discussions)'; -$lang['discussNSreverse'] = 'Reverse discussion namespace? (e.g. "foo:bar:discussion" instead of "discussion:foo:bar")'; -$lang['userNS'] = 'User namespace (leave empty to disable user pages)'; +$lang['discussionPage'] = 'Discussion page (leave empty to disable discussions)'; +$lang['userPage'] = 'User page (leave empty to disable user pages)'; $lang['sidebarID'] = 'page name of page included in sidebar'; $lang['hideTools'] = 'Hide tools when not logged in?'; @@ -66,9 +66,7 @@ $showTools = !tpl_getConf('hideTools') || ( tpl_getConf('hideTools') && $_SERVER echo '</li>'; } tpl_action('admin', 1, 'li'); - if (tpl_getConf('userNS')) { - _tpl_userpage(tpl_getConf('userNS'),1,'li'); - } + _tpl_action('userpage', 1, 'li'); tpl_action('profile', 1, 'li'); tpl_action('login', 1, 'li'); ?> @@ -138,9 +136,7 @@ $showTools = !tpl_getConf('hideTools') || ( tpl_getConf('hideTools') && $_SERVER <ul> <?php tpl_action('edit', 1, 'li'); - if (tpl_getConf('discussionNS')) { - _tpl_discussion(tpl_getConf('discussionNS'),1,'li',tpl_getConf('discussNSreverse')); - } + _tpl_action('discussion', 1, 'li'); tpl_action('history', 1, 'li'); tpl_action('backlink', 1, 'li'); tpl_action('subscribe', 1, 'li'); diff --git a/tpl_functions.php b/tpl_functions.php index d258ed38b..fcd50585a 100644 --- a/tpl_functions.php +++ b/tpl_functions.php @@ -16,31 +16,26 @@ if (!defined('DOKU_INC')) die(); * * @author Anika Henke <anika@selfthinker.org> */ -function _tpl_discussion($discussNS='discussion',$link=0,$wrapper=0,$reverse=0) { +function _tpl_discussion($discussionPage,$title,$backTitle,$link=0,$wrapper=0) { global $ID; - if ($reverse) { - $discussPage = $ID.':'.$discussNS; - $isDiscussPage = substr($ID,-strlen($discussNS),strlen($discussNS))==$discussNS; - $backID = substr($ID,0,-strlen($discussNS)); - } else { - $discussPage = $discussNS.':'.$ID; - $isDiscussPage = substr($ID,0,strlen($discussNS))==$discussNS; - $backID = strstr($ID,':'); - } + $discussPage = str_replace('@ID@',$ID,$discussionPage); + $discussPageRaw = str_replace('@ID@','',$discussionPage); + $isDiscussPage = strpos($ID,$discussPageRaw)!==false; + $backID = str_replace($discussPageRaw,'',$ID); if ($wrapper) echo "<$wrapper>"; - if($isDiscussPage) { + if ($isDiscussPage) { if ($link) - tpl_pagelink($backID,tpl_getLang('back_to_article')); + tpl_pagelink($backID,$backTitle); else - echo html_btn('back2article',$backID,'',array(),0,0,tpl_getLang('back_to_article')); + echo html_btn('back2article',$backID,'',array(),0,0,$backTitle); } else { if ($link) - tpl_pagelink($discussPage,tpl_getLang('discussion')); + tpl_pagelink($discussPage,$title); else - echo html_btn('discussion',$discussPage,'',array(),0,0,tpl_getLang('discussion')); + echo html_btn('discussion',$discussPage,'',array(),0,0,$title); } if ($wrapper) echo "</$wrapper>"; @@ -51,23 +46,43 @@ function _tpl_discussion($discussNS='discussion',$link=0,$wrapper=0,$reverse=0) * * @author Anika Henke <anika@selfthinker.org> */ -function _tpl_userpage($userNS='user',$link=0,$wrapper=false) { +function _tpl_userpage($userPage,$title,$link=0,$wrapper=0) { if (!$_SERVER['REMOTE_USER']) return; global $conf; - $userPage = $userNS.':'.$_SERVER['REMOTE_USER'].':'.$conf['start']; + $userPage = str_replace('@USER@',$_SERVER['REMOTE_USER'],$userPage); if ($wrapper) echo "<$wrapper>"; if ($link) - tpl_pagelink($userPage,tpl_getLang('userpage')); + tpl_pagelink($userPage,$title); else - echo html_btn('userpage',$userPage,'',array(),0,0,tpl_getLang('userpage')); + echo html_btn('userpage',$userPage,'',array(),0,0,$title); if ($wrapper) echo "</$wrapper>"; } /** + * Wrapper around custom template actions + * + * @author Anika Henke <anika@selfthinker.org> + */ +function _tpl_action($type,$link=0,$wrapper=0) { + switch ($type) { + case 'discussion': + if (tpl_getConf('discussionPage')) { + _tpl_discussion(tpl_getConf('discussionPage'),tpl_getLang('discussion'),tpl_getLang('back_to_article'),$link,$wrapper); + } + break; + case 'userpage': + if (tpl_getConf('userPage')) { + _tpl_userpage(tpl_getConf('userPage'),tpl_getLang('userpage'),$link,$wrapper); + } + break; + } +} + +/** * Use favicon.ico from data/media root directory if it exists, otherwise use * the one in the template's image directory. * |