Подсчет символов в DLE

S
На сайте с 13.02.2011
Offline
0
935

Есть вывод новости на главной {short-story} . Подскажите, как написать функцию для подстчета символов текста без символов, обозначающих теги. Например, ссылка, потом картинка, потом текст, нужно подсчитать символы только в тексте.

nokto
На сайте с 04.06.2009
Offline
17
#1

В файле engine/modules/shor.story нужно править. В общем сначала обрабатуем новость функцией strip_tags и то что получается считаем с помощью strlen

S
На сайте с 13.02.2011
Offline
0
#2

Мне нужно сделать следующее.. на главной будет вывиодться краткие описания, в них будет только картинка и текст. Я хочу сделать фиксированной высты блоки, и нужно сделать ограниччение по символам - если их больше 2-х тысяч - должны обрезаться и ставиться "...".

Сделал подсчет символов, обрезание.. но все выводиться без картинки, потому что там картинка удаляется для подсчета. Не знаю как е приклеить назад :(

вот код мой


$a = preg_replace("~[^\w\.\,\ \-\"\«\»]~", "", strip_tags($row['short_story']));

if(strlen($a) > 2000){
$row['short_story'] = substr($a, 0, 2000);
$tpl->set( '{short-story}', stripslashes( "<div id=\"news-id-" . $row['id'] . "\" style=\"display:inline;\">" . $row['short_story'] . "...</div>" ) );
}
else{
$tpl->set( '{short-story}', stripslashes( "<div id=\"news-id-" . $row['id'] . "\" style=\"display:inline;\">" . $row['short_story'] . "</div>" ) );
}
vandamme
На сайте с 30.11.2008
Offline
675
#3

а не проще тег шаблон custom а в нем вызвать функцию из папки модулей?

я так сделал

S
На сайте с 13.02.2011
Offline
0
#4

все, сделал :)

тему можно закрыть.

nokto - спасибо за помощь

severnoesijanie добавил 14.02.2011 в 01:51

vandamme:
а не проще тег шаблон custom а в нем вызвать функцию из папки модулей?

я так сделал

немного не понялл о чем вы :) я с дле только начинаю разбираться

severnoesijanie добавил 14.02.2011 в 02:21

А почему может код на локальной машине работать, а на сервере - нет?

severnoesijanie добавил 14.02.2011 в 02:39


$a = preg_replace("~[^\w\.\,\ \-\"\«\»\?\!]~", "", strip_tags($row['short_story']));
$b = array();
preg_match("~<div align=(.*)>(.*)</div>~Uis", $row['short_story'], $b);

if(strlen($a) > 500){
$b[0] .= substr($a, 0, 450);
$tpl->set( '{short-story}', stripslashes( "<div id=\"news-id-" . $row['id'] . "\" style=\"display:inline;\">" . $b[0] . "...</div>" ) );
}
else{
$tpl->set( '{short-story}', stripslashes( "<div id=\"news-id-" . $row['id'] . "\" style=\"display:inline;\">" . $row['short_story'] . "</div>" ) ); //только эта строка была
}

вот это на сервере не работает :(

S
На сайте с 13.02.2011
Offline
0
#5

помогите :)

siv1987
На сайте с 02.04.2009
Offline
427
#6

Потерто............

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий