Вы не вошли.
Страницы 1
В движок планируется включить такую полезную вещь как черновики тем.
Возможно есть смысл ограничить такую возможность только блогами и статьями (нужны ли еще и форумы?). Однозначно не нужны черновики комментариев к файлам и галерей.
Черновики ответов к чему-либо считаю не нужными. Да и в большинстве случаев, за исключением разве что полных ответов, претендующих на то, чтобы быть отдельной статьей, они бессмысленны: либо кто-нибудь уже выскажет схожую мысль, либо пользователь сам забудет про сохраненный черновик, либо ответ станет не актуальным по прошествии времени.
Возникли разночтения в том, как должны быть реализованы черновики. Поэтому ниже опишу все варианты.
Мы нажимаем "создать тему", пишем сообщение, в какой-то момент возникает необходимость прерваться и сохранить изменения, жмем на "сохранить в черновики", и после этого сообщение сохраняется...
Черновики представляют собой отдельную сущность.
Почему мне нравится этот подход:
Черновики сразу исключаются из результатов поиска по сайту
Мы можем в одной строке одной таблицы хранить атрибуты, присущие как теме (таблица topics) так и сообщению (таблица posts), и при этом исключить лишнюю информацию (например, количество просмотров и ответов, последнее сообщение в теме и т.д.)
Т.к. черновик заранее привязан к конкретному пользователю, то проверка есть доступ/нет доступа сводится к проверке id пользователя. И такая проверка необходима лишь в местах, непосредственно работающих с черновиками (profile.php, post.php, edit.php)
Лично мне кажется более естественным подход, когда после публикации черновика, он перестает быть черновиком и является полноценной статьей. Статью позже можно дополнять и исправлять. И прятать ее вновь в черновики мне кажется нелогичным.
Мы создаем отдельный тип контента, который имеет особый путь доступа (как, например, комментарии к файлам).
Предполагается возможность тему сделать вновь черновиком.
Подводные камни:
Нужно позаботиться об исключении всех черновиков (и комментариев к ним) из поиска по сайту.
Необходимо где-то хранить дополнительную информацию, в какую доску переместить черновик при публикации (физически он будет располагаться в доске черновиков).
Что делать со счетчиками сообщений у пользователей успевших ответить на тему до того, как она вернулась в состояние черновика?
Позаботиться о запрете доступа к черновикам другими пользователями.
Предусмотреть средство для админа по работе с черновиками, оставшимися от удаленного пользователя.
Для каждой темы мы добавляем свойство "черновик/не черновик".
Черновики сохраняются также как и обычные темы, только имеют особую пометку.
Предполагается возможность тему сделать вновь черновиком.
Подводные камни:
Нужно позаботиться об исключении всех черновиков (и комментариев к ним) из поиска по сайту.
Учитывать черновики при обновлении счетчиков (количество тем/сообщений доски, количество сообщений пользователя). Кроме того, что делать при переносе темы обратно в черновики - уменьшать количество сообщений у доски и у пользователя(лей)?
Позаботиться о запрете доступа к черновикам другими пользователями.
Предусмотреть средство для админа по работе с черновиками, оставшимися от удаленного пользователя.
Что делать с черновиками в доске, которую по какой-либо причине удаляют? (в двух других случаях черновик физически лежит вне такой доски, а значит пользователь может просто самостоятельно выбрать новую доску в момент публикации)
Все-равно потребуется отдельный инструмент для самого пользователя, чтобы видеть все свои черновики. Кроме того, думаю будет логично, если даже сам пользователь не будет видеть своих же черновиков в досках, куда он их собирался постить
_________________________________
Во всех трех случаях также возникает вопрос, должен ли админ видеть черновики?
Теоретически - нет.
Но если в первом случае с этим не возникает вопросов, то во втором и третьем вариантах такой подход противоречит правилу: админ может видеть все темы на сайте.
посовещавшись с Юрой решили:
1) надо делать отдельную таблицу для хранения черновиков ПОСТОВ(и тем), и можно хранить хоть 20 вариантов постов, для истории и возможности трезво судить.
2) лучше не давать возможность скрыть тему в черновик ПОСЛЕ её публикации - правьте в реальном времени и не стесняйтесь факта правки.
Страницы 1
[ Сгенерировано за 0.013 сек, 8 запросов выполнено - Использовано памяти: 1.88 MiB (Пик: 1.93 MiB) ]