Вы не зашли.
Здравствуйте !!!
Столкнулся с проблемой.
В короткой новости есть теги - как мне их стрипнуть функцией strip_tags перед выводом на экран ?
Изменено phoenix (2011-02-21 17:52:41)
Не в сети
Хорошо - можит я непонятно объяснил !
Ок, как мне тогда в news.short.tpl вставить php код ?
Там есть тег вывода короткой новости: {short-story}
Вот мне надо его обработать - удалить из него все ХТМЛ-теги.
Такая контструкция не работает да и насколько я понимаю - она небезопасная.
<?php
strip_tags('{short-story}');
?>
Не в сети
все равно ничего не ясно, что ты хочешь?
Может тебе надо, чтобы в краткой новости резались все HTML теги, типа: <b></b>, <span></span>, <div></div> и т.д.? Если да, то зачем в краткой ставить теги?
Не в сети
У меня тысячи новостей.
Для того, чтобы не отображать в короткой новости весь текст - я добавил в поле "content" разделитель 'more'.
Отсчитал 300 символов и вставил разделитель.
//update ng_news set content= INSERT(content, 300, 0, ' ...<!--more-->')
Но в первых 300 символах встречаются ХТМЛ-теги, которые ломают мне стиль страницы - мне их и надо поубивать.
Можит, Вы как то иначе решаете такие задачи - если да, то пожалуйста посоветуйте !
Изменено phoenix (2011-02-22 14:41:33)
Не в сети
\engine\includes\inc\functions.inc.php
~ 1220 строка
$tvars['vars']['short-story'] = $short;
заменить на $tvars['vars']['short-story'] = strip_tags($short);
Не в сети
Я импортирую тысячи новостей из DLE в NG CMS запросами MYSQL
Как лучше поступить при создании короткой новости в таком случае ?
В движке ДЛЕ есть поле для короткой новости и для полной новости, а в НГ ЦМС нету.
Соответственно приходится разделять ...
Запрос который я привёл:
//update ng_news set content= INSERT(content, 300, 0, ' ...<!--more-->')
не очень решает проблему так как он может разорвать урл например, но как по другому ?
Отдельно запускать скрипт который будет смотреть - ничего ли он не порвал таким образом если отделить именн 300 символов...
у кого то есть готовое решение ?
Не в сети
В чем проблема заполнять поле content как короткая_новость + more + полная новость? Если сейчас ты можешь свалить в одно поле два поля, то добавить третье (more) не должно быть большой занозой.
Не в сети
phoenix, вообще в NGCMS короткая и длинная новость объединены в одно единственное поле "content" и на лету разрезается на короткую и полную часть тегом <!--more-->.
С точки зрения программирования разницы нет - одно это поле или несколько.
Если у тебя в DLE короткая и полная новости лежат в разных полях, то можешь просто объединить их (вставив между ними <!--more-->) и всё.
Дальше больше - поставь более чёткую задачу:
1. Тебе надо убрать HTML теги из кода ибо "так хочется"
2. Тебе надо убрать HTML теги из кода ибо при разрезании (по длине) строчки может получиться обрезок HTML'я.
Вот вторая задача достаточно легко решается функцией truncateHTML() из класса parse (engine/includes/classes/parse.class.php).
Вызвать можно так:
$parse = new parse;
$truncated = $parse->truncateHTML($need_to_truncate, 500, '');
При этом в $truncated у тебя окажется первые 500 печатаемых символов из переменной $need_to_truncate (т.е. сами HTML теги в отсчёте длины учитываться не будут и обрезок визуально всегда будет одинаковой длины), все открытые (до точки обрезания) теги будут закрыты.
Как тебе такой вариант?
Не в сети