Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2011-02-21 17:36:18

phoenix
Участник
Откуда Украина
Зарегистрирован: 2011-01-20
Сообщений: 8
Рейтинг :   

Как удалить все теги в короткой новости ?

Здравствуйте !!!

Столкнулся с проблемой.

В короткой новости есть теги - как мне их стрипнуть функцией strip_tags перед выводом на экран ?

Изменено phoenix (2011-02-21 17:52:41)

Не в сети

#2 2011-02-22 02:37:31

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как удалить все теги в короткой новости ?

Что есть "теги"?
BB коды / HTML теги или что-то иное?

Не в сети

#3 2011-02-22 13:37:12

phoenix
Участник
Откуда Украина
Зарегистрирован: 2011-01-20
Сообщений: 8
Рейтинг :   

Re: Как удалить все теги в короткой новости ?

То есть в коротких новостях у меня содержаться ХТМЛ теги. Мне надо их поудалять, а в полной пусть будет как есть.

Изменено phoenix (2011-02-22 13:37:44)

Не в сети

#4 2011-02-22 14:06:42

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: Как удалить все теги в короткой новости ?

big_smile открываешь news.short.tpl и удаляешь все что тебе не нужно.

Не в сети

#5 2011-02-22 14:23:47

phoenix
Участник
Откуда Украина
Зарегистрирован: 2011-01-20
Сообщений: 8
Рейтинг :   

Re: Как удалить все теги в короткой новости ?

Хорошо - можит я непонятно объяснил !

Ок, как мне тогда в news.short.tpl вставить php код ?

Там есть тег вывода короткой новости: {short-story}

Вот мне надо его обработать - удалить из него все ХТМЛ-теги.

Такая контструкция не работает да и насколько я понимаю - она небезопасная.

<?php

strip_tags('{short-story}');

?>

Не в сети

#6 2011-02-22 14:33:40

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: Как удалить все теги в короткой новости ?

big_smile все равно ничего не ясно, что ты хочешь?

Может тебе надо, чтобы в краткой новости резались все HTML теги, типа: <b></b>, <span></span>, <div></div> и т.д.? Если да, то зачем в краткой ставить теги?

Не в сети

#7 2011-02-22 14:37:13

phoenix
Участник
Откуда Украина
Зарегистрирован: 2011-01-20
Сообщений: 8
Рейтинг :   

Re: Как удалить все теги в короткой новости ?

У меня тысячи новостей.
Для того, чтобы не отображать в короткой новости весь текст - я добавил в поле "content" разделитель 'more'.

Отсчитал 300 символов и вставил разделитель.

//update ng_news set content= INSERT(content, 300, 0, ' ...<!--more-->')

Но в первых 300 символах встречаются ХТМЛ-теги, которые ломают мне стиль страницы - мне их и надо поубивать.

Можит, Вы как то иначе решаете такие задачи - если да, то пожалуйста посоветуйте !

Изменено phoenix (2011-02-22 14:41:33)

Не в сети

#8 2011-02-22 14:44:03

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Как удалить все теги в короткой новости ?

\engine\includes\inc\functions.inc.php

~ 1220 строка

$tvars['vars']['short-story']	= $short;

заменить на $tvars['vars']['short-story']    = strip_tags($short);

Не в сети

#9 2011-02-22 15:15:26

phoenix
Участник
Откуда Украина
Зарегистрирован: 2011-01-20
Сообщений: 8
Рейтинг :   

Re: Как удалить все теги в короткой новости ?

Wolverine, спасибо большое - помогло !

Не в сети

#10 2011-02-22 15:29:40

phoenix
Участник
Откуда Украина
Зарегистрирован: 2011-01-20
Сообщений: 8
Рейтинг :   

Re: Как удалить все теги в короткой новости ?

Я импортирую тысячи новостей из DLE в NG CMS запросами MYSQL

Как лучше поступить при создании короткой новости в таком случае ?
В движке ДЛЕ есть поле для короткой новости и для полной новости, а в НГ ЦМС нету.

Соответственно приходится разделять ...

Запрос который я привёл:

//update ng_news set content= INSERT(content, 300, 0, ' ...<!--more-->')

не очень решает проблему так как он может разорвать урл например, но как по другому ?

Отдельно запускать скрипт который будет смотреть - ничего ли он не порвал таким образом если отделить именн 300 символов...
у кого то есть готовое решение ?

Не в сети

#11 2011-02-22 16:32:10

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Как удалить все теги в короткой новости ?

В чем проблема заполнять поле content как короткая_новость + more + полная новость? Если сейчас ты можешь свалить в одно поле два поля, то добавить третье (more) не должно быть большой занозой.

Не в сети

#12 2011-02-23 01:05:14

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как удалить все теги в короткой новости ?

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 теги в отсчёте длины учитываться не будут и обрезок визуально всегда будет одинаковой длины), все открытые (до точки обрезания) теги будут закрыты.
Как тебе такой вариант?

Не в сети

#13 2011-02-25 11:56:38

phoenix
Участник
Откуда Украина
Зарегистрирован: 2011-01-20
Сообщений: 8
Рейтинг :   

Re: Как удалить все теги в короткой новости ?

vitaly, второй вариант больше нравится.
Жалко его нельзя в МУСКЛ сделать smile но главное результат. Мне подходит !!!

СПАСИБО !:)

Не в сети

#14 2011-02-25 12:04:08

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Как удалить все теги в короткой новости ?

На мой вопрос можешь ответить?

Не в сети

Подвал раздела

Работает на FluxBB