Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Модули для DLE » В spoiler CODE /spoiler

В spoiler CODE /spoiler


     15.08.2014    spoiler, Экранирование    Модули для DLE    5269    3 комментария

Краткая информация о модуле (хаке)

Автор: D0Gmatist
Контакты: Skype - D0Gmatist
Условия продажи: Бесплатно
Цена: Бесплатно
Функция позволяет сделать автоматическое обрамление
[ code ] код [ / code ] в
[ spoiler ] [ code ] код [ / code ] [ / spoiler ]
При условии что между [ code ] [ / code ] символов будет больлше чем указанно в огранчении.
// Обрамление тегом spoiler если большой текст в code 
function codeAddSpoiler( $text, $charset, $sum ) {
  
    // удаляем спойлеры у code
    $text = preg_replace( "/\[spoiler\=?.*\]\s*\[code\]/i", "[ code ]", $text ); // убрать пробелы в [ code ]
    $text = preg_replace( "/\[\/code\]\s*\[\/spoiler\]/i", "[ / code ]", $text ); // убрать пробелы в [ / code ]

    // получаем двумерный масив с code
    preg_match_all("#\[code\](.*)\[/code\]#isuU", $text, $textCode);
    
    // сумма массива
    $textCodeC = count( $textCode[0] );

    // цыкл
    for ( $i = 0; $i < $textCodeC; $i++  ) {

      // определение кодировки и подсчёт символов в строке
      if ( strtolower($charset) == "utf-8") $textCodeSum = iconv_strlen( $textCode[1][$i], "utf-8" );
      else $textCodeSum = strlen( $textCode[1][$i] );

      // если символов больше то производим обрамление в spoiler
      if ( $textCodeSum > $sum ) {
        $text = str_replace( $textCode[0][$i], "[spoiler]" . $textCode[0][$i] . "[/spoiler]", $text );
      }

    }
    return $text;
}


// codeAddSpoiler ( текст, кодировка сайта, придел символов после которого идёт обрамление в спойлер)
$_POST['text'] = codeAddSpoiler( $_POST['text'], $config['charset'], "500" );

3 комментария

vitnet
PHP-developer

vitnet - 18 октября 2014 20:19 -

Отличный хак, его бы на https://dle-faq.ru/ а то порой такие посты бывают :)

ПафНутиЙ
Админ

ПафНутиЙ - 18 октября 2014 22:00 -

Будет немного по другому.

Каков вопрос - таков и ответ. Просто помните об этом.

D0Gmatist
Юзер

D0Gmatist - 18 октября 2014 22:15 -

Вообще этот хак и возник ради того что бы поставить его на dle-faq.ru. И мы ( я и ПафНутиЙ ) уже обсуждали как его сюда впихнуть но столкнулись с рядом изъянов .. но в близ лежащее время я вернусь к доработке данной функции.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх