Skip to content

Commit 59a621b

Browse files
committed
Add possibility to temporarily disable creating links
1 parent eb0e826 commit 59a621b

File tree

2 files changed

+51
-24
lines changed

2 files changed

+51
-24
lines changed

renderer/page.php

Lines changed: 18 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 pageFormat */
6970
protected $page = null;
7071
/** @var refIDCount */
@@ -308,6 +309,19 @@ public function finalize_ODTfile() {
308309
$this->doc = $this->docHandler->get();
309310
}
310311

312+
/**
313+
* Simple setter to enable creating links
314+
*/
315+
function enable_links() {
316+
$this->disable_links = false;
317+
}
318+
319+
/**
320+
* Simple setter to disable creating links
321+
*/
322+
function disable_links() {
323+
$this->disable_links = true;
324+
}
311325

312326
/**
313327
* This function does not really render the TOC but inserts a placeholder.
@@ -1608,7 +1622,7 @@ function _doLink($url,$name){
16081622
$url = $this->_xmlEntities($url);
16091623
if(is_array($name)){
16101624
// Images
1611-
if($url) $this->doc .= '<draw:a xlink:type="simple" xlink:href="'.$url.'">';
1625+
if($url && !$this->disable_links) $this->doc .= '<draw:a xlink:type="simple" xlink:href="'.$url.'">';
16121626

16131627
if($name['type'] == 'internalmedia'){
16141628
$this->internalmedia($name['src'],
@@ -1620,12 +1634,12 @@ function _doLink($url,$name){
16201634
$name['linking']);
16211635
}
16221636

1623-
if($url) $this->doc .= '</draw:a>';
1637+
if($url && !$this->disable_links) $this->doc .= '</draw:a>';
16241638
}else{
16251639
// Text
1626-
if($url) $this->doc .= '<text:a xlink:type="simple" xlink:href="'.$url.'">';
1640+
if($url && !$this->disable_links) $this->doc .= '<text:a xlink:type="simple" xlink:href="'.$url.'">';
16271641
$this->doc .= $name; // we get the name already XML encoded
1628-
if($url) $this->doc .= '</text:a>';
1642+
if($url && !$this->disable_links) $this->doc .= '</text:a>';
16291643
}
16301644
}
16311645

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
}
123136
return false;

0 commit comments

Comments
 (0)