Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Platzhalter welche von diesem Codepaket ausgetaucht werden sollen, müssen innerhalb von zwei geschweiften Klammern eingeschlossen sein. Es können beliebig viele Platzhalter in einem Text platziert werden.

Codeblock
languagetext
themeRDark
... {{ [Platzhalterdefinition] [Option="Wert"] [Option=123] [Option=false] }} ...

Auf diese Weise definierte Texte können mithilfe des nachfolgenden Codes bearbeitet werden um die Platzhalter mit ihren echten Werten auszutauschen.

Codeblock
languagephpthemeRDark
use Brandbox\Framework\Brandbox\Placeholder;

// Variablen welche dem Platzhaltercode zur Verfügung stehen
$context = [
    'something' => 'strange',
    'person' => [
        'firstname' => 'Max',
        'lastname' => 'Mustermann',
    ],
];

$source = 'Das ist ein Beispieltext mit einem {{ [Platzhalterdefinition] }!';

$content = $this
    ->staticController(Placeholder\Manager::class)
    ->get($source, $context)
;

// $content enthält nun den Text aus $source mit ersetztem Platzhalter

...

Manchen Platzhaltern können Variablen mitgegeben werden um bspw. den Inhalt für den Platzhalter zu definieren. Diese Variablen können als array oder object der Manager-Methode aus dem o.g. Beispiel mitgegeben werden. Die Variablen werden dann innerhalb eines Platzhalters mit ihren Namen oder Indexen aus dem Kontext angesprochen. Verschachtelte Informationen werden mit einem Punkt (.) getrennt. Alle Variablen müssen mit einem Dollarzeichen ($) beginnen. Neben den Variablen können auch statische Parameter gesetzt werden. Ein string muss in Anführungszeichen (") eingeschlossen werden, true und false werden als boolean interpretiert und Zahlen als integer oder float.

Platzhalterdefinition

Beschreibung

{{ i18n=[Variable oder Parameter] }}

Versucht die übergebene Variable oder Parameter mithilfe des TranslationManager zu übersetzen. Der Parameter oder die Variable müssen hierzu dem Format Paketname.Übersetzungsidentifikator entsprechen.

{{ output=[Variable oder Parameter] }}

Gibt die übergebene Variable ohne eine Veränderung aus.

{{ readable=[Variable oder Parameter] }}

Versucht die übergebene Variable mithilfe von Brandbox/Casting in einen menschenlesbares Format zu bringen. Hierzu muss die Variable innerhalb eines Objektes sein welches das EntityInterface von Brandbox/Dbal implementiert.

{{ number=[Variable oder Parameter] }}

Formatiert die übergebene Variable oder Parameter als Zahl unter Berücksichtigung der aktuellen Sprache und des Landes. Es können nachfolgende Optionen übergeben werden um die Formatierung zu beeinflussen.

OptionsnameBeschreibung
styleLegt die Art der Formatierung fest. Es kann zwischen decimal, currency, percentage und scientific gewählt werden.
decimalsLegt die Anzahl der Nachkommastellen fest. Falls nicht angegeben werden keine Nachkommastellen dargestellt.
zerofillFalls diese Option festgelegt wurde und die übergebene Zahl 0 ist, wird der Platzhalter mit dem Wert dieser Option ersetzt.
currencyDefiniert den ISO-Währungscode der für die currency-Formatierung genutzt wird. Falls diese Option nicht gesetzt wurde, wird der Währungscode aus dem aktuellen Land bezogen.
decimal_zerofillÄhnlich zu zerofill, allerdings werden nur die Nachkommastellen ersetzt.


{{ php=[Name der PHP-Funktion] }}

Neben spezifischen Platzhaltern können auch native PHP-Funktionen aufgerufen werden. Hierbei werden neben dem Namen der gewünschten PHP-Funktion auch die entsprechenden Parameter für diese Funktion benannt und befüllt. Die Namen der Parameter entsprechen hierbei den echten Parameternamen der PHP-Funktion.

code

title
Beispiel anhand von number_format
Codeblock
{{ php=number_format num=$input decimals=3 decimal_separator=", " }}

Die aktuell freigegeben PHP-Funktionen sind: strlen, strcmp, strncmp, strcasecmp, strncasecmp, bcadd, bcsub, bcmul, bcdiv, bcmod, bcpowmod, bcpow, bcsqrt, bccomp, cal_days_in_month, cal_to_jd, easter_date, easter_days, frenchtojd, gregoriantojd, jddayofweek, jdmonthname, jdtofrench, jdtogregorian, jdtojewish, jdtojulian, jdtounix, jewishtojd, juliantojd, unixtojd, strtotime, date, idate, gmdate, mktime, gmmktime, strftime, gmstrftime, time, filter_var, hash, hash_file, hash_hmac, hash_hmac_file, hash_pbkdf2, hash_hkdf, mhash_get_block_size, mhash_get_hash_name, mhash_keygen_s2k, mhash, iconv_strlen, iconv_substr, iconv_strpos, iconv_strrpos, iconv_mime_encode, iconv_mime_decode, iconv, preg_replace, preg_filter, preg_quote, count, sizeof, min, max, base64_encode, base64_decode, constant, ip2long, long2ip, crc32, crypt, lcg_value, md5, md5_file, sha1, sha1_file, metaphone, htmlspecialchars, htmlspecialchars_decode, html_entity_decode, htmlentities, bin2hex, hex2bin, strspn, strcspn, strcoll, trim, rtrim, chop, ltrim, wordwrap, implode, join, strtok, strtoupper, strtolower, basename, dirname, stristr, strstr, strchr, strpos, stripos, strrpos, strripos, strrchr, chunk_split, substr, substr_replace, quotemeta, ord, chr, ucfirst, lcfirst, ucwords, strtr, strrev, similar_text, addcslashes, addslashes, stripcslashes, stripslashes, str_replace, str_ireplace, hebrev, nl2br, strip_tags, str_repeat, strnatcmp, strnatcasecmp, substr_count, str_pad, str_rot13, str_shuffle, strpbrk, substr_compare, utf8_encode, utf8_decode, escapeshellcmd, escapeshellarg, sprintf, levenshtein, abs, ceil, floor, round, sin, cos, tan, asin, acos, atan, atanh, atan2, sinh, cosh, tanh, asinh, acosh, expm1, log1p, pi, intdiv, pow, exp, log, log10, sqrt, hypot, deg2rad, rad2deg, bindec, hexdec, octdec, decbin, decoct, dechex, base_convert, number_format, fmod, fdiv, pack, password_hash, quoted_printable_decode, quoted_printable_encode, rand, mt_rand, mt_getrandmax, getrandmax, random_bytes, random_int, soundex, gettype, intval, floatval, doubleval, boolval, strval, uniqid, urlencode, urldecode, rawurlencode, rawurldecode, convert_uuencode, convert_uudecode, serialize, version_compare, zlib_encode, zlib_decode, gzdeflate, gzencode, gzcompress, gzinflate, gzdecode, gzuncompress, mb_strlen, mb_strpos, mb_strrpos, mb_stripos, mb_strripos, mb_strstr, mb_strrchr, mb_stristr, mb_strrichr, mb_substr_count, mb_substr, mb_strcut, mb_strwidth, mb_strimwidth, mb_convert_encoding, mb_convert_case, mb_strtoupper, mb_strtolower, mb_detect_encoding, mb_encode_mimeheader, mb_decode_mimeheader, mb_convert_kana, mb_scrub, mb_ord, mb_chr, mb_ereg_replace, mb_eregi_replace


Programmatische Erweiterung

Dieses Codepaket stellt die folgenden Events zur Verfügung um das Verhalten zu beeinflussen:

Eventname

Beschreibung

OnPopulatePlaceholder

Wird für jede Stelle innerhalb des $source-Parameters ausgelöst, welche innerhalb von geschweiften Klammern ({{ ... }}) eingeschlossen ist.