Die Erweiterung "Markdown & Shortcodes" ergänzt die Klasse oxutils um die neue Funktion markdown($text='').
Möchten Sie nun Markdown auch für Textfelder ihrer eigenen OXID-Erweiterung nutzen so ist dies sehr einfach umzusetzen.
1. Sie müssen ein Objekt der Klasse oxutils erzeugen:
$oUtils = oxRegistry::getUtils(); // Klasse oxutils instanziieren
2. Dann müssen Sie nur noch Ihre Daten an die Funktion markdown übergeben:
...
$oYourTextfield = $oUtils->markdown($oYourTextfield);
return $oYourTextfield;
...
Sie können selbst individuelle Shortcodes erstellen und so einen Baukasten für ihre Produktpfleger bzw. Autoren erstellen.
Dafür müssen Sie zwei Dateien anpassen:
1. /modules/tmedia/oxcmarkdown/application/models/ParsedownShortcodes.php
2. /modules/tmedia/oxcmarkdown/application/models/Shortcode_Functions.php
Anhand eines Beispiel möchte ich Ihnen zeigen wie einfach es ist eigene Shortcodes zu integrieren.
In Bootstrap gibt es das Element "Progress bars", welches wir nun als Shortcode umsetzen.
Die einfachste Variante sieht im HTML Quelltext wie folgt aus:
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100" style="width:70%">
<span class="sr-only">70% Complete</span>
</div>
</div>
HTML-Ausgabe:
|
Das es hier nur darum geht zu veranschaulichen wie Shortcodes erstellt werden, belassen wir es bei diesem einfachen Beispiel und verwenden als einzige Parameter die Prozentzahl des Farbbalkens und der Parameter notext um die Labelanzeige zu unterdrücken oder anzuzeigen.
Die Funktion dafür sieht wie folgt aus:
function sc_progress($attributes, $content) {
extract($attributes);
if (!isset($percent)) $percent = "100";
if (isset($notext)) $notext = ' class="sr-only"';
return '<div class="progress"> <div class="progress-bar" role="progressbar" aria-valuenow="'.$percent.'" aria-valuemin="0" aria-valuemax="100" style="width:'.$percent.'%"> <span '.$notext.'>'.$content.'</span> </div> </div>';
}
Diese Funktion fügen Sie nun der Datei Shortcode_Functions.php an.
...
$this->sc->add('button', 'sc_bootstrap_button');
$this->sc->add('alert', 'sc_bootstrap_alert');
$this->sc->add('icon', 'sc_icon');
$this->sc->add('progress', 'sc_progress');
// Parse Shortcodes
$text = $this->sc->parse($text);
Ab sofort ist der Shortcode nun einsatzbereit! Beispiel: {progress percent="70" notext="1"} Dieser Text ist unsichtbar... {/progress}