Вы не вошли.
Здравствуйте !!!
Столкнулся с проблемой.
В короткой новости есть теги - как мне их стрипнуть функцией strip_tags перед выводом на экран ?
Отредактировано phoenix (2011-02-21 16:52:41)
Вне форума
Хорошо - можит я непонятно объяснил !
Ок, как мне тогда в news.short.tpl вставить php код ?
Там есть тег вывода короткой новости: {short-story}
Вот мне надо его обработать - удалить из него все ХТМЛ-теги.
Такая контструкция не работает да и насколько я понимаю - она небезопасная.
<?php
strip_tags('{short-story}');
?>Вне форума
:D все равно ничего не ясно, что ты хочешь?
Может тебе надо, чтобы в краткой новости резались все 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 13: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 теги в отсчёте длины учитываться не будут и обрезок визуально всегда будет одинаковой длины), все открытые (до точки обрезания) теги будут закрыты.
Как тебе такой вариант?
Вне форума
[ Сгенерировано за 0.017 сек, 7 запросов выполнено - Использовано памяти: 572.06 Кбайт (Пик: 593.06 Кбайт) ]