+ Ответить в теме
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Как правильно организовать хранение и вывод превью к статьям.

  1. #1

    Как правильно организовать хранение и вывод превью к статьям.

    Первый вариант,отдельное поле в бд для краткого описания, в котором будет храниться 1-2 обзаца чистого текста,
    при вывводе из бд, обрезаем его на пхп на нужное кол-во символов.

    Или второй вариант,делать все тоже самое только с полного текста + удаляем html тэги . Таким образом не нужно доп. поле в бд, для краткого описания.
    Но тут вопрос, насколько сильно увеличится нагрузка на сайт? Ведь таким образом идет запрос к полю "текст", с полной статьей + html тэги либо bbcode и размер ее существенно больше, чем у поля с кратким описанием.


    Как все же правильней делать,и на много ли увеличится нагрузка,если делать по второму варианту?
    Последний раз редактировалось Wins; 06.07.2013 в 11:59.

  2. #2
    Модератор Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Аватар для Den1xxx
    Регистрация
    24.05.2011
    Адрес
    Гомель
    Сообщений
    2,503
    Записей в дневнике
    9
    Мне кажется правильнее делать краткое описание и полное отдельно — у себя я делаю именно так.
    Полный контроль и минимум нагрузки на хостинг — выбираем только те поля что надо.
    Только у меня ещё есть поле автор, и два режима публикации — html и text (поддержка бб-кодов, смайлов и полный игнор html тегов).

    Публикация в режиме HTML:
    art_html.png

    Публикация в режиме Text:
    art_text.png
    Встречается ещё и вариант как в Вордпрессе (Вы его не упоминали).
    Делается тег <more>, движок его встречает и обрезает полный текст до этого тега.
    Тоже вариант, чо.

    А что касается Вашего второго варианта, то он слишком геморройный для реализации и я его вообще бы не рассматривал.
    Последний раз редактировалось Den1xxx; 06.07.2013 в 12:30.

  3. #3
    Местный alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее Аватар для alexdrob
    Регистрация
    08.09.2009
    Адрес
    Краснодарский край
    Сообщений
    6,488
    Вот что мне интересно :)

    Значит вырезание хтмл тегов отрезания куска текста - громоздко и даст нагрузку.

    А парсинг бб кодов каждый раз при выводе статьи это вообще не нагружает?)

    Имхо, да и не только по моему :) много где уже так, например на хабре, нужно забыть про ббкоды, вписывать разу хтмл код, при добавлении в бд отбрасывать запрещённые теги, атрибуты и значения атрибутов, но это будет делаться 1 раз, при сохранении документа, и потом выводить уже не парся бб коды.

    По поводу отбрасывания лишних тегов и так далее, гуглите по слову sanitize готовые библиотеки. Для пхп думаю тоже должны быть, всё таки самый распространённый язык дял сайтов.

    По поводу хранения... тут я согласен с Den1xxx, мне удобней два поля делать, первое поле 255 символов, я егос разу в мета тег выводу, там запрещён у меня любой хтмл.
    А второе поле это текст статьи уже.

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

  4. #4
    Да у меня тоже два поля было,потом попробывал убрать поле с кратким описанием,а после этого задумался правильно ли это.Теперь понял что не правильно,верну как было.

  5. #5
    Модератор Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Аватар для Den1xxx
    Регистрация
    24.05.2011
    Адрес
    Гомель
    Сообщений
    2,503
    Записей в дневнике
    9
    Цитата Сообщение от alexdrob Посмотреть сообщение
    Значит вырезание хтмл тегов отрезания куска текста - громоздко и даст нагрузку.
    А парсинг ББ-кодов каждый раз при выводе статьи это вообще не нагружает?)
    Не ёрничайте. Два режима публикации лучше чем один, и это дело админа чем пользоваться.
    Режим с ББ-кодами мне больше кстати нравится, потому что не надо в конце строки ставить <br />,
    проще глобально запихнуть в тег [img] скрипт лайтбокса, а в тег [url] — class="external" rel="nofollow",
    применить тег [hidden], скрывающий текст от незарегистрированных, применить расцветку кода с помощью [code].

    А как в вордпрессе я не стал бы делать, потому что нет полной свободы.
    В кратком описании я может хочу писать что-то другое, чем в начале полной статьи?
    На Хабре кстати тоже та же система — хабракат.

    Кстати есть плюс в этом подходе — поиск проще сделать, его по одному полю нужно делать.
    Если на сайте часто будет использоваться поиск, то наверное этот способ даже предпочтительней.
    Поиск по одному полю будет меньше нагружать БД.

  6. #6
    Местный alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее Аватар для alexdrob
    Регистрация
    08.09.2009
    Адрес
    Краснодарский край
    Сообщений
    6,488
    Цитата Сообщение от Den1xxx Посмотреть сообщение
    Не ёрничайте. Два режима публикации лучше чем один, и это дело админа чем пользоваться.
    Каким боком относятся два режима публикации к моей фразе? :)

    Wins написал
    Цитата Сообщение от Wins Посмотреть сообщение
    насколько сильно увеличится нагрузка на сайт?
    То етсь будет ли больше нагрузки при обрезании html кода.
    Я и сказал что при парсинге бб кодов есть практически та же нагрузка и, что выбирая между BBCODE и HTML, я предпочитаю HTML.
    Так как парсится 1 раз, на проверку XSS при создании записи.


    Цитата Сообщение от Den1xxx Посмотреть сообщение
    Режим с ББ-кодами мне больше кстати нравится
    Больше чем что? Чем режим html? Чем?


    Цитата Сообщение от Den1xxx Посмотреть сообщение
    потому что не надо в конце строки ставить <br />,
    А Вы сами что ли ставите? Я просто жму энтер и всё...
    http://ckeditor.com/demo
    http://mindmup.github.io/bootstrap-wysiwyg/
    Вы видите там br?

  7. #7
    Я вот тоже bbcode не пользуюсь, как то поставил посмтореть что с этого будет, и понял что для меня это как доп. наворот для сайта, в котором нет не обходимости, поэтому пользуюсь просто html.

    А по нагрузки, у меня к примеру на странице выводится десятки кратких описаний, вот я и подумал про нагрузку, я ж таким образом, где нужно вывести одно предложение или несколько слов, вытягиваю из бд целую статью на хххх символов, с тэгами, картинками, и режу ее на пример до 100 символов. Тут я и подумал не многовато ли будет,если у меня например 70 превью на странице, и получается я извлекаю из бд 70 полных статей и их режу до 100-200 символов)).

  8. #8
    Модератор Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Аватар для Den1xxx
    Регистрация
    24.05.2011
    Адрес
    Гомель
    Сообщений
    2,503
    Записей в дневнике
    9
    Цитата Сообщение от alexdrob Посмотреть сообщение
    Режим с ББ-кодами мне больше кстати нравится
    Больше чем что? Чем режим html? Чем?
    Вы читать не умеете?
    Я ясно расписал как у меня работают оба режима, и почему режим BB-кодов мне больше нравится.
    Читайте что написано. Спорить мне с Вами не о чем, как и незачем повторять ещё раз.

  9. #9
    Местный alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее Аватар для alexdrob
    Регистрация
    08.09.2009
    Адрес
    Краснодарский край
    Сообщений
    6,488
    Боже, кто спорит, я говорю что я за то что бы хранить html чем ббкоды.
    А вы говорите что лучше ббкоды чем просто текст...

    Естественно тут спорить не о чем, ибо мы о разных вещах говорим :)

    У меня тоже два поля, под описание, и под текст.
    И тоже есть два режима.

    можно так http://ybex.com/d/mnjhz7cm24ryiqcnex...f7n43l8lu.html
    а можно так http://ybex.com/d/rnf4v6x5q5z7r6xbpc...5gwxo73fc.html
    а можно вот так http://ybex.com/d/dclojfla514ybpfzp7...odut30ksl.html

    я просто спрашиваю, зачем хранить ббкоды и каждый раз при выводе их парсить, и зачем ставить <br> руками если есть куча редакторов, с горячими клавишами, очень быстро набирать не кликая мышкой :)

  10. #10
    Модератор Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Аватар для Den1xxx
    Регистрация
    24.05.2011
    Адрес
    Гомель
    Сообщений
    2,503
    Записей в дневнике
    9
    Цитата Сообщение от alexdrob Посмотреть сообщение
    я просто спрашиваю, зачем хранить ббкоды и каждый раз при выводе их парсить, и зачем ставить
    руками если есть куча редакторов, с горячими клавишами, очень быстро набирать не кликая мышкой :)
    А как надо — вводить текстом, в базу сохранять с HTML, выводить при редактировании тоже с тегами HTML?
    Хранить их нужно именно как вводили, и при выводе парсить.
    Иначе юзер как минимум удивится, вводишь одно — сохраняется другое.

    Руками никто их не ставит, вы что не видите кнопки в редакторе на скриншоте, который я опубликовал выше?
    Принцип такой же как на этом форуме — выделил текст, нажал на кнопку [b], получил обрамление <b>

    При выборе режима в селекте происходит переключение между редакторами — один выгружается, другой загружается.

    Кстати на самом деле есть ещё режимы bbcodes+HTML и PHP. Но я решил режим PHP не ставить в статьи, а только в статические страницы. Модулем статей пользуются слишком часто, и я побоялся ставить туда этот режим для незнающих, боясь что техподдержке надоест отвечать на вопросы, почему не работает :)
    Последний раз редактировалось Den1xxx; 07.07.2013 в 08:37.

+ Ответить в теме

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 21.02.2013, 15:15
  2. Ответов: 4
    Последнее сообщение: 12.03.2012, 13:20
  3. Ответов: 10
    Последнее сообщение: 28.05.2009, 16:57
  4. Хранение текста без БД
    от scva в разделе HTML
    Ответов: 8
    Последнее сообщение: 01.12.2008, 13:28

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения