Павел

Павел

Был в сети 22 июля 2020, 13:56
Заказы принимаю
Вот, как вариант набросал. Без Jevix теги не обрезает лишние. А вместе с ним все идеально работает, может пригодится кому:

Сниппет «Restext»;
<?php
$separator = array('?','!','.');// Разделители

    if(empty($len)){
        $len = '1000';
    }
    
    $string = substr($string, 0, $len);
    $i =strlen($string);
    
    do{
        $i--;
    }while(!in_array($string[$i], $separator) && $i >= 0);
    
    $string = substr($string, 0, $i);
    
    if(!empty($end)){
        return $string.$end;
    }else return $string;
Пример вызова:
[[!Restext? &string=`[[Jevix? &input=`[[+content]]` &cfgAllowTags=`br`]]` &len=`400` &end=`.`]]
Параметры: &string — текст для обработки, &len — максимальная длина, &end — добавляет любой символ в конце.

На ночь, много думать не хотелось, нужен результат, а он есть))
Может конечно, я что то не так делаю, но не выходит.
[[!summary? &text=`[[+content]]` &cut=`.` &len=`400`]]
Работает, но криво, берёт не последнею точку, а первую, хоть и написано, что работает обрезает +-100.

Но к примеру, я указал 400. 380 символ — точка, но есть также она и на 80 позиции, вот он до неё режет.
Скинуть сайт сюда не могу, если только в личку…
Проблему решил, скидываю код:

<script>
	function masonryFunc(){
            var $container = $('#mse2_results');
            $container.masonry({
                columnWidth: 280,
                itemSelector: '.grid_item',
                gutter: 30,
                isAnimated: true,
                
            });
        } 
        setTimeout(masonryFunc,300);
        
        $(document).on('mse2_load', function() {
           $('#mse2_results').masonry('destroy');
           setTimeout(masonryFunc(),300);
        });
</script>