适用于使用ckEditor进行内联编辑

时间:2013-09-24 19:53:59

标签: php html ckeditor

我正在使用ckeditor创建内联CMS。这个想法是:

  • 客户登录管理区域
  • 登录会员
  • 客户被定向到他们网站上可以编辑预定义区域的页面

使用contenteditable属性指定区域:

<div contenteditable="true">
  safsdfdfsdfdfsdfsdfds
</div>

由于会话是在客户端登录时创建的,因此我写了一些知道如果客户端已登录就知道启用ckEditor和所有CMS功能的PHP。

我遇到的问题是,当没有登录时,div上的contenteditable="true"仍允许您编辑它们而不使用WYSIWYG作为浏览器的默认行为。显然这不好。如何阻止用户编辑页面?

2 个答案:

答案 0 :(得分:1)

您可以像这样设置div:

<div data-contenteditable="true">

有一个JavaScript(如果处于管理模式)遍历所有div(document.getElementsByTagName(“div”)),如果他们有数据contenteditable设置真正的contenteditable。

否则,如果处于管理模式

,则只允许服务器包含contenteditable

答案 1 :(得分:0)

在PHP中:

首先创建一个函数,如果用户已登录则返回true,然后,对于每个可编辑区域(在视图中):

<div<?php if (your_login_check_function()) echo ' contenteditable="true"'; ?>>Lorem ipsum</div>

这有点乏味但它应该有效。

或者在jQuery中(由Moritz提出):

data-contenteditable =“true”添加到可编辑节点,然后在用户登录时将脚本添加到页面末尾:

<script>$('[data-contenteditable]').attr('contenteditable', true);</script>