Skip to content

Commit a192133

Browse files
committed
Merge pull request #54 from RnBConsulting/feature_disablelinks
Add possibility to temporarily disable creating links
2 parents b634e41 + a071673 commit a192133

File tree

3 files changed

+56
-24
lines changed

3 files changed

+56
-24
lines changed

renderer/book.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ public function document_start() {
6565
*/
6666
public function document_end() {
6767
//ODT file creation is performed by finalize_ODTfile()
68+
// Switch links back on in case they were disabled at some point
69+
$this->enable_links();
6870
}
6971

7072
/**

renderer/page.php

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class renderer_plugin_odt_page extends Doku_Renderer {
6565
protected $quote_depth = 0;
6666
protected $quote_pos = 0;
6767
protected $div_z_index = 0;
68+
protected $disable_links = false;
6869
/** @var Current pageFormat */
6970
protected $page = null;
7071
/** @var Array of used page styles. Will stay empty if only A4-portrait is used */
@@ -286,6 +287,9 @@ function document_end(){
286287
//$this->doc .= 'Path: '.$conf['mediadir'].'/'.$this->getConf("tpl_dir")."/".$this->template;
287288
//$this->p_close();
288289

290+
// Switch links back on
291+
$this->enable_links();
292+
289293
// Insert TOC (if required)
290294
$this->insert_TOC();
291295

@@ -436,6 +440,19 @@ public function finalize_ODTfile() {
436440
$this->doc = $this->docHandler->get();
437441
}
438442

443+
/**
444+
* Simple setter to enable creating links
445+
*/
446+
function enable_links() {
447+
$this->disable_links = false;
448+
}
449+
450+
/**
451+
* Simple setter to disable creating links
452+
*/
453+
function disable_links() {
454+
$this->disable_links = true;
455+
}
439456

440457
/**
441458
* This function does not really render the TOC but inserts a placeholder.
@@ -1767,7 +1784,7 @@ function _doLink($url,$name){
17671784
$url = $this->_xmlEntities($url);
17681785
if(is_array($name)){
17691786
// Images
1770-
if($url) $this->doc .= '<draw:a xlink:type="simple" xlink:href="'.$url.'">';
1787+
if($url && !$this->disable_links) $this->doc .= '<draw:a xlink:type="simple" xlink:href="'.$url.'">';
17711788

17721789
if($name['type'] == 'internalmedia'){
17731790
$this->internalmedia($name['src'],
@@ -1779,12 +1796,12 @@ function _doLink($url,$name){
17791796
$name['linking']);
17801797
}
17811798

1782-
if($url) $this->doc .= '</draw:a>';
1799+
if($url && !$this->disable_links) $this->doc .= '</draw:a>';
17831800
}else{
17841801
// Text
1785-
if($url) $this->doc .= '<text:a xlink:type="simple" xlink:href="'.$url.'">';
1802+
if($url && !$this->disable_links) $this->doc .= '<text:a xlink:type="simple" xlink:href="'.$url.'">';
17861803
$this->doc .= $name; // we get the name already XML encoded
1787-
if($url) $this->doc .= '</text:a>';
1804+
if($url && !$this->disable_links) $this->doc .= '</text:a>';
17881805
}
17891806
}
17901807

syntax.php

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -98,26 +98,39 @@ public function render($format, Doku_Renderer $renderer, $data) {
9898
} else { // Extended info
9999

100100
list($info_type, $info_value) = $data;
101-
if($info_type == "template") { // Template-based export
102-
if($format == 'odt') {
103-
/** @var renderer_plugin_odt_page $renderer */
104-
$renderer->template = $info_value;
105-
106-
} elseif($format == 'metadata') {
107-
/** @var Doku_Renderer_metadata $renderer */
108-
$renderer->meta['relation']['odt']['template'] = $info_value;
109-
}
110-
}
111-
if($info_type == "toc") { // Insert TOC in exported ODT file
112-
if($format == 'odt') {
113-
/** @var renderer_plugin_odt_page $renderer */
114-
$renderer->toc_settings = $info_value;
115-
$renderer->render_TOC();
116-
117-
} elseif($format == 'metadata') {
118-
/** @var Doku_Renderer_metadata $renderer */
119-
$renderer->meta['relation']['odt']['toc'] = $info_value;
120-
}
101+
switch($info_type)
102+
{
103+
case 'template': // Template-based export
104+
if($format == 'odt') {
105+
/** @var renderer_plugin_odt_page $renderer */
106+
$renderer->template = $info_value;
107+
108+
} elseif($format == 'metadata') {
109+
/** @var Doku_Renderer_metadata $renderer */
110+
$renderer->meta['relation']['odt']['template'] = $info_value;
111+
}
112+
break;
113+
case 'toc': // Insert TOC in exported ODT file
114+
if($format == 'odt') {
115+
/** @var renderer_plugin_odt_page $renderer */
116+
$renderer->toc_settings = $info_value;
117+
$renderer->render_TOC();
118+
119+
} elseif($format == 'metadata') {
120+
/** @var Doku_Renderer_metadata $renderer */
121+
$renderer->meta['relation']['odt']['toc'] = $info_value;
122+
}
123+
break;
124+
case 'disablelinks': // Disable creating links and only show the text instead
125+
if($format == 'odt') {
126+
$renderer->disable_links();
127+
}
128+
break;
129+
case 'enablelinks': // Re-enable creating links
130+
if($format == 'odt') {
131+
$renderer->enable_links();
132+
}
133+
break;
121134
}
122135
if($info_type == "page") { // Set/change page format in exported ODT file
123136
if($format == 'odt') {

0 commit comments

Comments
 (0)