Svnt
1
Hello,
I have a blogpost template that gets “advertisments” from another page like:
<?= page("werbung/".$page->advertisment())->text()->kirbytext() ?>
This works most of the times. Also images are rendered as expected but…
If the text contains tags i handle with a plugin the image URL is wrong then:
The text looks like:
bla
(image: webinar-projektcontrolling.png alt:bild) <- works
(center...)(image: webinar-projektcontrolling.png alt:bild)(...center) <- nope... wrong URL
blub
and here is the plugin code:
<?php
/* Center Plugin
*
* @author Jimmy Rittenborg <jimmy@sitemarina.com>
* @version 1.0.0
*/
kirbytext::$pre[] = function($kirbytext, $text) {
$text = preg_replace_callback('!\(center(…|\.{3})\)(.*?)\((…|\.{3})center\)!is', function($matches) use($kirbytext) {
$html = kirbytext($matches[2]);
return '<div class="' . c::get('center.class', 'text-center') . '">' . $html . '</div>';
}, $text);
return $text;
};
Any suggestions how i can fix this?
thx,
Svnt
texnixe
2
I think the page context is missing, better do it the way the columns plugin handles this, I guess.
<?php
/* Center Plugin
*
* @author Jimmy Rittenborg <jimmy@sitemarina.com>
* @version 1.0.0
*/
kirbytext::$pre[] = function($kirbytext, $text) {
$text = preg_replace_callback('!\(center(…|\.{3})\)(.*?)\((…|\.{3})center\)!is', function($matches) use($kirbytext) {
$match = $matches[2];
$field = new Field($kirbytext->field->page, null, $match);
$html = '<div class="' . c::get('center.class', 'text-center') . '">' . kirbytext($field) . '</div>';
return $html;
}, $text);
return $text;
};
1 Like
Svnt
3
kirbytext::$pre[] = function($kirbytext, $text) {
$text = preg_replace_callback('!\(center(…|\.{3})\)(.*?)\((…|\.{3})center\)!is', function($matches) use($kirbytext) {
$html = new Field($kirbytext->field->page, null, trim($matches[2]));
return '<div class="' . c::get('center.class', 'text-center') . '">' . kirbytext($html) . '</div>';
}, $text);
return $text;
};
Yes! Fixed! Thank you so much!
@JimmyRittenborg: FYI, maybe you can include this fix into your plugin. BTW., is it on github?