2013-09-24 176 views
0

我使用ckeditor創建了一個內聯CMS。我們的想法是:contenteditable用ckEditor進行內聯編輯

  • 客戶端登錄到管理區
  • 登錄衆生會話
  • 指導客戶在其網站上的網頁,他們可以編輯預定義的區域

的區域與指定contenteditable屬性:

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

由於會話是在客戶端創建gs in,我已經寫了一些PHP,知道啓用ckEditor和所有的CMS功能,如果客戶端登錄。

我遇到的問題是,當沒有登錄,contenteditable="true" divs仍然允許您編輯它們沒有WYSIWYG作爲瀏覽器的默認行爲。顯然這不好。如何阻止用戶能夠編輯頁面?

+0

如果訪問者沒有在 – 2013-09-24 19:57:38

回答

1

,你可以設置的div這樣的:

<div data-contenteditable="true"> 

而且有一個JavaScript(如果在管理模式)去了所有div(document.getElementsByTagName(「格」)),如果他們有數據CONTENTEDITABLE設定真正的知足。

否則令服務器只包含在管理模式

+0

感謝記錄甚至不顯示div的,葉,我不知道爲什麼我沒有想到用jQuery做替換 – Coop

0

在PHP CONTENTEDITABLE如果:

首先創建如果用戶登錄,那麼,每個可編輯區域,則返回true(在視圖中的函數):

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

這有點乏味,但它應該工作。

或者jQuery中(如提出Moritz):

添加數據CONTENTEDITABLE =「真」您可編輯的節點,然後添加腳本到頁面的結束的時候,用戶登錄:

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

感謝您的答案。我應該提到,你的PHP方法就是我已經做的。問題是,這並不是那麼簡單,我需要讓CMS非常容易安裝,所以想讓它像向每個div添加一個類一樣簡單。所以我會用jQuery的方式來做。謝謝 – Coop

相關問題