Снипет для оберзки текста
Данный снипет
или
- обрезает текст до последнего пробела
- очищает от тегов
- Добавляет точки в конец если обрезка произошла
[[!cutstr? &text=`[[*introtext]]` &q=`150` &tag=`1` &dot=1]]
или
[[*introtext:cutstr=`q=150&tag=1&dot=1`]]
<?php
/**
* @name_snipet [[cutstr]]
* режем текст до последнего пробела
* $text - текст
* $q - количество символов
* $tag - очищать ли теги
* $dot - добавлять ли точки в конец
* [[!cutstr? &text=`[[*introtext]]` &q=`150` &tag=`1` &dot=1]]
* [[*introtext:cutstr=`q=150&tag=1&dot=1`]]
*/
if (isset($options)) {
foreach (explode('&', $options) as $O) {
if (explode('=', $O)['0'] == 'tag') {
$tag = explode('=', $O)['1'];
}
if (explode('=', $O)['0'] == 'q') {
$q = explode('=', $O)['1'];
}
if (explode('=', $O)['0'] == 'dot') {
$dot = explode('=', $O)['1'];
}
}
}
if (isset($input)) {
$text = $input;
}
if (!isset($q)) {
$q = 150;
}
if (!isset($dot)) {
$dot = false;
}
if (!isset($tag)) {
$tag = false;
}
if (!isset($tag)) {
$tag = false;
}
if ($tag) {
$out = strip_tags($text);
}
$out = substr($out, 0, $q);
$out = substr($out, 0, strrpos($out, ' ' ));
if ($dot && (strlen($text) > strlen($out))) {
$out = $out.'...';
}
return $out;
- admin,
- 16 октября 2021, 01:23
Комментарии (0)