Общий подход к сайту блога, отображение краткой версии поста и полной версии - PullRequest
0 голосов
/ 06 октября 2010

Я пытаюсь разработать веб-приложение (php / mysql), своего рода блог-сайт, где ~ 10 сообщений перечислены на первой странице. Отображаются только первые 4-5 строк каждого сообщения, и когда пользователь щелкает заголовок, он открывает новую страницу с полным отображением сообщения.

Пользователи будут использовать TinyMCE для публикации с очень ограниченными функциональными возможностями, поэтому только списки жирным шрифтом, курсивом, подчеркиванием, отменой / повтором и маркированными списками. Нет просмотра HTML, ссылок и изображений, так что ничего особенного.

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

  • когда пользователь отправляет сообщение, я должен очистить его с помощью чего-то вроде HTMLPurifier и сохранить одну полную версию в базе данных. Затем отрежьте первые 4-5 строк и снова очистите его с помощью HTMLPurifier, чтобы убедиться, что все теги закрыты правильно. Это сделано для того, чтобы текст, который я вырезал, не заканчивался HTML-тегом, разрезанным пополам, а был верным (x) HTML-кодом, правильно закрытым. Я бы снова сохранил эту сокращенную версию главной страницы где-нибудь в базе данных. Таким образом, у меня будет две версии в готовой базе данных, полная версия поста и сокращенная версия на первой странице. Затем, когда кто-то заходит на сайт и показывает первую страницу с 10 сообщениями, их просто нужно прочитать из базы данных и отобразить. Не нужно читать полную версию, обрезать ее верх, проверять, чтобы все теги были правильно закрыты и т. Д. И т. Д. Для всех 10 сообщений каждый раз, когда кто-то открывает сайт. Кажется очевидной проблемой то, что часть контента удваивается в базе данных, поэтому полная версия и короткая версия.

  • Другой вариант, о котором я думал, это когда пользователь отправляет сообщение, очищает его с помощью HTMLPurifier и сохраняет только полную версию в базе данных. Затем, когда кто-то заходит на сайт, обрежьте верхнюю часть каждого поста в блоге, очистите его с помощью HTML-очистителя (снова!), Чтобы убедиться, что все он действителен, теги закрыты и т. Д. И отображаются на первой странице. Теперь кажется, что проблема заключается в том, что HTMLPurifier должен запускаться и очищаться каждый раз, когда кто-то получает доступ к короткой версии сообщения, например, 10x за фасад для каждого посещения и т. Д.

Я использовал приведенный выше HTMLPurifier только в качестве примера, так как я уверен, что есть другие инструменты, которые делают то же самое, поэтому, пожалуйста, посоветуйте, если что-нибудь еще будет более подходящим в моей ситуации. Также я, возможно, позволю пользователям отображать более 10 сообщений на странице.

Хорошо, я уверен, что есть какой-то общий шаблон для работы с такого рода сайтами, и если да, то, пожалуйста, дайте мне представление о том, как это сделать, так как моя мысль, приведенная выше, кажется, имеет много очевидных проблем. Как всегда, ваша помощь очень ценится.

РЕДАКТИРОВАТЬ: Я должен был уточнить .. Это больше похоже на упражнение для меня, и я хотел узнать, как этот сайт должен быть сделан. Та же концепция может быть реализована на других сайтах, так что реклама, форумы и т. Д. Все, что с размещением действительно. Для ведения блога я мог бы использовать что-то готовое, но на этот раз я хотел научиться.

1 Ответ

0 голосов
/ 06 октября 2010

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

При просмотре поста у вас будет два вида просмотров - отрывок и полный. Выдержка будет только первые 4-5 строк поста. Чтобы получить это, вы должны TRUNCATE пост, прежде чем выводить его. Для этого вам нужно создать функцию усечения, которая будет ограничивать количество слов / символов.

Вам не нужно вставлять сообщение дважды (полное и полное) в базу данных.

Например:

// Excerpt Post 
echo $postTitle;
echo truncate($postBody); // where truncate is the function you used to trim

// Full Post
echo $postTitle;
echo $postBody;

Надеюсь, это поможет вам начать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...