CMS内容编辑器/查看器
本文关键字:编辑器 CMS | 更新日期: 2023-09-27 18:03:48
我们的一个用户决定他们需要能够编辑我们主网站上的内容部分,我已经完成了实现它的任务。基础模型是页面中的一个或多个div将从CMS填充其内容。
为了交付内容,我使用观察者模型来交付内容,这工作得很好。页面包含(至少)3个服务器控件;数据提供者(CMS)、控制器(主体)和容器(观察者)。容器将包含两个内容面板(编辑或视图)中的一个,它们将在屏幕上适当地呈现从控制器推送的数据。
但是,现在我需要能够在编辑器和查看器面板之间切换(因此可以预览更改),并且能够将编辑过的内容发布到数据提供程序(CMS),但是我在回发时总是丢失编辑过的内容。我试图覆盖'SaveViewState'方法,但因为内容面板是在预呈现(因为它取决于ViewState属性)之后创建的,控件集合总是显示之前创建的对象(即,当编辑面板被显示时,控件集合中的对象是预览面板)。
我不想走这条路有两个控件渲染性能问题;我正在考虑创建一个三级组件(可能是一个隐藏的字段),将存储编辑过的文本,但希望有人在这里可能有一个更好的想法如何构建这个?
最好的办法是让编辑器成为一个单独的页面——把所有这些放在一起会带来很多挑战和一点危险(你怎么知道公众不能编辑它),并且会产生长期的维护问题。
既然你帮了我,我可以提个建议吗?
如果用户的用户级别正确,在页面上有正常视图和编辑视图。
在普通视图下有一个按钮表示编辑,在编辑视图下有一个按钮称为预览。
当预览按钮被点击时:
$(".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');
将有一个简短的动画,但将涵盖所有基础。
只是一个想法/选项