Переводя джумловские шаблоны под друпал столкнулся с необходимостью выделять первое слово заголовка блока другим цветом, собсна его нужно обернуть в span, тут не нашел этого решения, поэтому сильвупле:
в template.php добавляем функцию:
function wordlimit($string, $length = 50, $ellipsis = "...") {
$words = explode(' ', strip_tags($string));
if (count($words) > $length)
return implode(' ', array_slice($words, 0, $length)) . $ellipsis;
else
return $string;
}
$words = explode(' ', strip_tags($string));
if (count($words) > $length)
return implode(' ', array_slice($words, 0, $length)) . $ellipsis;
else
return $string;
}
а внутри block.tpl.php выводим заголовок так:
...
<?php
$firstword = wordlimit($block->subject, 1, '');
$block->subject = str_replace($firstword, '<span class="first-word">'. $firstword .'</span>', $block->subject);
...
?>
<h3 class="s5_mod_h3"><?php print $block->subject ?></h3>
<?php
$firstword = wordlimit($block->subject, 1, '');
$block->subject = str_replace($firstword, '<span class="first-word">'. $firstword .'</span>', $block->subject);
...
?>
<h3 class="s5_mod_h3"><?php print $block->subject ?></h3>
ну и конечно в style.css добавляем:
.first-word {color:#0099FF;}
Комментарии
Вам не кажется, что быстрее будет порезать строчку substr`ом, чем распарсивать её в массив, а потом собирать обратно? Я, конечно, понимаю, что прирост в производительности заметить будет сложно, но оптимазация должна быть оптимальной, не так ли?
Аналогично переделывал с джумловских... только это... оно там на jQuery спанами обтягивается Тоже делал на пхп, но потом одумался (случайно заметил задержку выделения первого слова при торможении браузера)... да и как-то неправильно нагружать сервер такой фигней
var hd = jQuery(this).html();
var index = hd.indexOf(' ');
if(index == -1) {
index = hd.length;
}
jQuery(this).html('<span>' + hd.substring(0, index) + '</span>' + hd.substring(index, hd.length));
});
спасибо то что искал... а если юзать вариант через скрипт jquery его надо в отдельный файл прописывать а потом подключать через theme.info или есть более правильные варианты?