Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранение и вывод новости 
:(
    Опции темы
BIG BROTHER
Дата 13.1.2006, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 9.12.2004
Где: Россия, Москва

Репутация: 1
Всего: 4



Есть текст новости. Идея такова - есть 2 "версии" новости - короткая и полная. Короткую выводим в списке новостей, полная - при клике на "Подробнее"

Собственно проблема, не проблема, а загвоздка в том как хранить эти 2 "версии". Все это усугубляется тем, что текст новости - HTML код.

Раньше делал так: 2 поля в базе - полная(вся новость минус начало, что ушло в короткую) и короткая, а при постинге новости делал вот что:
Код

function get_short_text($text, $max_symbols) {
       if(strlen($text)<$max_symbols) return $text;
       $text = substr($text, 0, $max_symbols);
       if(strrpos($text, "\n") !== FALSE) { $text = substr($text, 0, strrpos($text , "\n")+1);  }
       elseif(strrpos($text, ".") !== FALSE) { $text = substr($text,0, strrpos($text , ".")+1);  }
       elseif( strrpos( $text , " " ) !== FALSE ) { $text = substr($text, 0, strrpos($text," ")); }
       return $text;
       }


Но при таком подходе может происходить "разрыв" HTML тегов и открывающий оказывается в короткой, а закрывающий в конце. При показе полной версии это еще ничего, а вот в списке новостей дизайн всей страницы может просто сорвать.

Подскажите ваши соображения по этому вопросу...

Это сообщение отредактировал(а) BIG BROTHER - 13.1.2006, 23:21
--------------------
Mess with the best, die like the rest
PM MAIL ICQ   Вверх
TIGERоX
Дата 14.1.2006, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


начинающий...
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 7.9.2005

Репутация: нет
Всего: 1



Лично я храню самари в отдельном поле а содержание в др.
в конце ссылка читать далее и открываем содержание

Это сообщение отредактировал(а) TIGERоX - 14.1.2006, 01:34
PM MAIL   Вверх
Mal Hack
Дата 14.1.2006, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Хранить одну большую версию, а при выводе резать.
Я вообще сторонник такой политики.
Храним и хтмл код и всю новость в бб-кодах. Режем на главной из бб кодов, выводим полную из html.
PM ICQ   Вверх
BIG BROTHER
Дата 14.1.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 9.12.2004
Где: Россия, Москва

Репутация: 1
Всего: 4



У меня в принципе нет BB-кодов - у меня приходит HTML прям из формы.

Так как быть с разрывом тегов при резке на короткую и полную? из короткой пролностью убрать HTML код? Но это помоему не совсем правильно
--------------------
Mess with the best, die like the rest
PM MAIL ICQ   Вверх
Mal Hack
Дата 14.1.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Читаем полную новость, режем весь html, обрезаем текст и показываем.
Если структура текста - имеет какие-то шаблонные формы, то можно отталкиваться от нее.

Это сообщение отредактировал(а) Mal Hack - 14.1.2006, 19:04
PM ICQ   Вверх
BIG BROTHER
Дата 15.1.2006, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 9.12.2004
Где: Россия, Москва

Репутация: 1
Всего: 4



Цитата(Mal Hack @ 14.1.2006, 19:03 Найти цитируемый пост)

Если структура текста - имеет какие-то шаблонные формы, то можно отталкиваться от нее.

Что ты имеешь ввиду?
--------------------
Mess with the best, die like the rest
PM MAIL ICQ   Вверх
Mal Hack
Дата 15.1.2006, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Ну к примеру резать первый абзац по <p></p>
PM ICQ   Вверх
Illuminaty
Дата 15.1.2006, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: нет
Всего: 56



Я делаю так:
При вводе текста делаю два поля: одно для препросмотра, другое для остального текста. Все хранится в разных полях таблицы. При просмотре всего текста - соединяем содержимое двух полей в один текст.
Если резать текст по какому-нибудь критерию, можно нарушить логику текста. Прервать изложение на полуслове, к примеру. Да пользователи при таком вводе организуют текст более грамотно. Выносят содержание новости в начало, что облегчает пользователям сайта ориентироваться в текстах.
PM MAIL ICQ   Вверх
IZ@TOP
Дата 16.1.2006, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 2
Всего: 73



Мне нравится вариант Mal-Hack'a. В данный момент сам юзаю на сайте несколько вариантов. В некоторых случаях достаточно вырезать по определенному количетву слов.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 16.1.2006, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(IZ@TOP @ 16.1.2006, 02:39 Найти цитируемый пост)

В некоторых случаях достаточно вырезать по определенному количетву слов.
Я ообще делал так. Резал по абзацам, которые укладывались в энное кол-во символов, затем по предложениям, затем по словам...
PM ICQ   Вверх
IZ@TOP
Дата 16.1.2006, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 2
Всего: 73



Mal Hack, в идеале конечно следует делать интересное описание для чего-то, а основной текст отдельно. Так сказать вступление. Но тут играет немаловажную роль что порой текста идут без этих самых вступлений а юзерам очень лень их писать...


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
BIG BROTHER
Дата 16.1.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 9.12.2004
Где: Россия, Москва

Репутация: 1
Всего: 4



Цитата(Mal Hack @ 16.1.2006, 19:25 Найти цитируемый пост)

Я ообще делал так. Резал по абзацам, которые укладывались в энное кол-во символов, затем по предложениям, затем по словам...

А ты глянь функцию в первом сообщении моем...ничего не узнаешь? ;)

Цитата(IZ@TOP @ 16.1.2006, 22:30 Найти цитируемый пост)

Но тут играет немаловажную роль что порой текста идут без этих самых вступлений а юзерам очень лень их писать...

Вот именно по этому и не хочу так делать

Можно конечно просто из всего текста вырезать начало и очищать от тегов. Но вот тут встает другой вопрос, а именно определение есть-ли у новости вообще продолжение и стоит-ли выводить ссылку "Подробнее", а то вдруг это коротенькая заметка. И получиться что короткая от полной отличается лишь тегами
--------------------
Mess with the best, die like the rest
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0816 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.