static function extractHead($text, $title = null) { $text = trim($text); if (strlen($text) < NEWS_HEAD_LENGTH) { return $text; } $suffix = ' [...[[' . $title->getPrefixedText() . ']]...]'; $t = preg_replace('/^(.*?)<!--\\s*summary\\s+end\\s*-->.*$/si', '\\1', $text); if ($t != $text) { return trim($t) . $suffix; } if ($t = NewsRenderer::cutHead($text, array("\r", "\n"), $suffix)) { return $t; } if ($t = NewsRenderer::cutHead($text, array("."), $suffix)) { return $t; } if ($t = NewsRenderer::cutHead($text, array(" ", "\t"), $suffix)) { return $t; } $text = substr($text, 0, 512) . $suffix; return $text; }