Итак, что я предлагаю для нормальной реализации анонсов и самих материалов:
Все сказанное ниже не отменяет наработанного функуионала, а только дополняет его и расширяет. Отмена может коснуться только тегов для анонса, но это на усмотрение разработчика.
В базе:
Добавляем 3 колонки.
1 - собственно колонка самого анонса
2 - колонка метки выводить анонс в полной статье или не
3 - колонка делить на анонс и полную статью или нет (нужно для работы полей, если можно будет как то по другому то скажите как)
В админке:
Параметр выбора по умолчанию: Выводить анонс в полоной статье или нет
Параметр выбора по умолчанию: Делить на анонс и статью или нет
В настройках прав пользователей можно добавить кто может управлять этими параметрами уже при добавлении статьи.
В шаблонах:
Поле анонса которое можно было бы скрыть или открыть по желанию нажатием одной кнопки
Поле добавлять анонс к полной статье или нет, скрывается или отрывается все той же кнопкой что и поле анонса
подсчет символов введенных пользователем и ограничение полей по количеству. соответствующие поля уже есть в админке.
В структуре сайта:
Я бы добавил специальную метку для анонса, например {anons}, ну либо любую другую на усмотрение разработчика.
Принцип действия:
Вариант1
Итак допустим что у нас стоит по умолчанию что материал делится на анонс и статью и при этом анонс выводится в основной статье.
При добавлении статьи пользователь видит вот такую картину:
как мы видим пользователь всегда может отказаться от заполнения поля с анонсом (если на то будут права), и также может не выводить анонс в основном материали (опять же если будут у него на то права)
При поступлении статьи в базу анонс падает в свою колонку, статья падает в свою, при этом заполняются метки про вывод анонса в статье и про разделение на анонс и статью.
При запросе статьи из базы:
на страницу полного материала будет попадать либо сложенная статья Анонс + статья , либо только статья, в зависимости от метки вывода анонса.
На страницу краткой новости будет соответственно выводиться только из поля анонс.
Вариант 2
Стоит по умолчанию не разделять на анонс и полную статью. Пользователь видит следующую картину:
При добавлении в базу формировать тело анонса по параметрам из настройки админки (там где указано количество символов попадающих в анонс) и класть его в свою колонку. Соответственно заполняются метки, при этом метка показывать или не показывать анонс в полной статье игнорируется. (Хотя можно ее и не игнорировать, обсуждаемо) В колонку статьи записываем тело статьи без обрезанного анонса.
При выводе статьи из базы все точно так же как и в первом варианте. Анонс выводится там где надо, статья, в зависимости от заполненого параметра вывода анонса либо только статья, либо анонс + статья. Если данная настройка ибудет игнорироваться то всегда анонс+статья
Для всех случаев При редактировании статьи соответственно опираться на то какие метки заданы были пользователем. Либо с делением на статью и анонс, либо без деления.
если с делением то показывается 2 поля,статья и анонс, и отдельно редактируется полная статья и анонс.
Если стоит параметр без деления то выводится только поле статьи в котором показывается анонс+статья. При редактировании пользователь не заметит никакого подвоха и сможет ее полностью подредактировать. При запись в базу она опять разобьется на статью и анонс.
Если пользователь захочет отделить анонс от статьи то просто нажмет кнопку и появится пустое поле анонса в которое он сможет перенести текст для анонса.
При этом из плюсов мы получаем деление на анонс и не анонс, гибкие настройки для анонсов и статей.
В минусы пишем немного разросшуюся базу.
p.s. почему при неделении на статью и анонс стоит игнорировать галочку показывать анонс в полной статье: лучше в этом случае ее держать всегда заполненной по умолчанию, а то может произойти такая глупость что анонс вроде как есть, а из-за нее он не будет показываться в теле статьи. ну или как то так...
итак, кто что по этому поводу думает?
Все мое имхо...
------
Не флуди и не да зафлудим будешь!
А тебе не кажется, что текущие теги дают точно такие же возможности, но без целой кучи гимора с настройками прав и разделением полей?
Вот не вижу я в твоем примере задачи, с которой бы не справились текущие теги. При чем тегами можно вырвать анонс не только из начала, а хоть с конца статьи. Выходит, что теги даже более гибкий инструмент. А скоро я сделаю удобные кнопки для бб кодов и будет вообще удобство выше крыши).
Спасибо за подробное предложение. Вот так надо оформлять свои предложения, четко и ясно, на каждом этапе. ))
ну тогда хоть сделай чекбокс не показывать анонс в полной статье.
просто реально иногда надо сделать анонс таким образом что бы в полной статье было ну все по другому.
соответственно обработка в таком случае будет следующим образом:
в анонсе будет выводиться так же как и сейчас.
В полной статье: при включенном чекбоксе выводить анонс в статье все так же как и сейчас.
при выключенном чекбоксе выводить анонс в статьях - выводить весь материал кроме того что в тегах.
Соответственно в админку на страницу настройка для модуля поместить настройку как будет по умолчанию с выводом анонса или без.
В группы можно засунуть кто может менять данный параметр, хотя я наверно дал бы всем данную возможность.
Все мое имхо...
------
Не флуди и не да зафлудим будешь!