[BETA] Cut parsed template

Здесь авторы могут постить бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!

Сообщение quazi 15.11.2005 22:07

Код: Выделить всё
class IgnoreWhiteSpaces
{

   function process($s)
   {
      // Temporary buffer
      $GLOBALS['__IgnoreWhiteSpaces__process__'] = array();

      // Save all problem parts
      $s = preg_replace_callback(
         "/(<(script|style)[^>]*?>((?!<\/\\2>).)*?<\/\\2>)/s",
         array('IgnoreWhiteSpaces', '_ob_parse'),
         $s
      );

      // Strip all white spaces
      $s = preg_replace('/\s+/', '', $s);

      // Restore all saved parts
      $s = preg_replace(
         array_values($GLOBALS['__IgnoreWhiteSpaces__process__']),
         array_keys($GLOBALS['__IgnoreWhiteSpaces__process__']),
         $s
      );

      // Destroy buffer
      unset($GLOBALS['__IgnoreWhiteSpaces__process__']);

      // Return result
      return $s;
   }

   function _ob_parse($matches)
   {
      // Generate hash of string
      $s = $matches[1];
      $md5 = md5($s);

      // Save this string
      $GLOBALS['__IgnoreWhiteSpaces__process__'][$s] = '/' . $md5 . '/';

      // Make here the more delicate handle of embed scripts

      // Return hash of saved string
      return $md5;
   }

}


[R: R@m$e$ :U], проверь у себя вот это

пользовать так
Код: Выделить всё
echo IgnoreWhiteSpaces::process($s);
quazi
phpBB 2.0.8
 
Сообщения: 310
Зарегистрирован: 15.03.2005 18:49


Сообщение [R: R@m$e$ :U] 15.11.2005 22:18

quazi
лучше тебе не видеть, что с форумом стало после этого... =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
 
Сообщения: 1503
Зарегистрирован: 16.01.2005 13:04
Откуда: Novosibirsk,RU

Сообщение quazi 16.11.2005 8:16

quazi, аффтар выпей иаду

[R: R@m$e$ :U]
вот это надо
Код: Выделить всё
      // Strip all white spaces
      $s = preg_replace(
            array('\r', '/(\s)\s+/'),
            array('', '\1'),
            $s);
quazi
phpBB 2.0.8
 
Сообщения: 310
Зарегистрирован: 15.03.2005 18:49

Сообщение Никто 02.04.2006 21:36

Хотелось уточнить. Класец запихнуть в template.php я так понимаю? А echo IgnoreWhiteSpaces::process($s); получается в футер чтоль? Или куда?
Долой edgar'a - самого тупого юзера на форуме!
Аватара пользователя
Никто
Advanced Lamers Team
 
Сообщения: 329
Зарегистрирован: 07.01.2006 22:35
Откуда: Химки

Сообщение Delestor 19.10.2006 11:23

quazi писал(а):quazi, аффтар выпей иаду



[R: R@m$e$ :U]

вот это надо

Код:

      // Strip all white spaces

      $s = preg_replace(

            array('\r', '/(\s)\s+/'),

            array('', '\1'),

            $s);

Так и не могу понять что к чему...
То, что на первой странице с явой работает неправильно.
Похоже проект умер?...

Добавлено спустя 9 часов 43 минуты 15 секунд:

Никто писал(а):в футер чтоль? Или куда?

Шаблон не выполняется, следовательно echo не сработает.
Пробовал кидать класс в template.php, в includes\function - чистая станица.

Добавлено спустя 1 час 40 минут 20 секунд:

Класс вставлять в includes\function\functions.php например в самый конец.

В templates.php после:
Код: Выделить всё
            {
               $code_lines[$i] = '$' . $retvar . '.= \'' . $code_lines[$i] . '\' . "\\n";';
            }


Добавляем:
Код: Выделить всё
//CTPT FQP4:A
$code_lines[$i]= IgnoreWhiteSpaces::process($code_lines[$i]);

На выходе получаем кашу, чем-то напоминающую PDA шаблоны.

quazi писал(а):[R: R@m$e$ :U]
вот это надо


Если в классе:
Код: Выделить всё
      // Strip all white spaces
      $s = preg_replace('/\s+/', '', $s);


Заменить на:
Код: Выделить всё
      // Strip all white spaces
      $s = preg_replace(
            array('\r', '/(\s)\s+/'),
            array('', '\1'),
            $s);

Тогда в браузере:
Код: Выделить всё
Warning: preg_replace(): Delimiter must not be alphanumeric or backslash in w:\home\mysite\www\forum\includes\functions.php on line 1064

В фантастическом количестве...
Естественно всё лишее осталось на месте.

1064 строка:
Код: Выделить всё
     
          $s = preg_replace(
                      array('\r', '/(\s)\s+/'),
                      array('', '\1'),
1064:                   $s);
Чувствую себя натуральной блондинкой...
Delestor
phpBB 1.4.1
 
Сообщения: 45
Зарегистрирован: 22.06.2006 13:29

Пред.

Вернуться в Бета-версии модов для phpBB 2.0.x

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0