CMS редактор контента / просмотрщик - PullRequest
0 голосов
/ 27 июля 2011

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

Для доставки контента я использую модель наблюдателя для доставки контента, и это прекрасно работает. Страница содержит (как минимум) 3 серверных элемента управления; поставщик данных (CMS), контроллер (субъект) и контейнер (наблюдатель). Контейнер будет содержать одну из двух панелей контента (редактировать или просматривать), которые будут отображаться на экране соответствующим образом с данными, извлекаемыми из контроллера.

Однако теперь мне нужно иметь возможность переключаться между панелями редактора и средства просмотра (чтобы можно было предварительно просмотреть изменения) и иметь возможность публиковать отредактированный контент в поставщике данных (CMS), но я продолжаю терять отредактированный контент на постбэк Я попытался переопределить метод «SaveViewState», но поскольку панель содержимого создается после во время предварительного визуализации (поскольку это зависит от свойства ViewState), коллекция элементов управления всегда показывает объект, созданный ранее (т. Е. Когда панель редактирования показанный объект в коллекции элементов управления является панелью предварительного просмотра).

Я не хочу идти по пути рендеринга обоих элементов управления из-за проблем с производительностью; Я подумываю о создании третичного компонента (возможно, скрытого поля), в котором будет храниться отредактированный текст, но надеялся, что кто-то здесь сможет лучше понять, как его структурировать?

Ответы [ 2 ]

0 голосов
/ 05 августа 2011

кажется, что вы помогли мне, я могу сделать предложение:

имеет обычный вид и вид редактирования на странице, если пользователь имеет правильный уровень пользователя.

имеет кнопку под обычным представлением с надписью edit и кнопку под представлением редактирования под названием preview.

при нажатии кнопки предварительного просмотра:

$(".previewbutt").live("click",function(){ code to update database and update div content });

вышеуказанный код должен быть использован для первого заполнения формы

$.ajax({async:false, url:'',data:});

затем сделайте еще один вызов, чтобы получить содержимое, обновите обычный div отображения, установите editordiv в значение hidden

 $('.normalview').show('slow');
 $('.editor').hide('slow');

будет короткая анимация, но она охватит всю основу.

просто идея / опция

0 голосов
/ 27 июля 2011

Лучше всего было бы сделать редактор отдельной страницей - объединение всех вместе создает множество проблем, немного опасности (откуда вы знаете, что публика не может редактировать ее) и создает проблемы долгосрочного обслуживания.

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