0

ckeditor を使用してインライン CMS を作成しています。アイデアは次のとおりです。

  • クライアントは管理エリアにログインします
  • ログインはセッションです
  • クライアントは、定義済みの領域を編集できる Web サイトのページに誘導されます

領域は contenteditable 属性で指定されます。

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

クライアントがログインするとセッションが作成されるため、クライアントがログインしている場合に ckEditor とすべての CMS 機能を有効にすることを知っている PHP を作成しました。

私が抱えている問題は、ログインしていないときでもcontenteditable="true"、ブラウザのデフォルトの動作として WYSIWYG なしで div を編集できることです。明らかにこれは良くありません。ユーザーがページを編集できないようにするにはどうすればよいですか?

4

2 に答える 2

1

次のように div をセットアップできます。

<div data-contenteditable="true">

そして、JavaScript (管理者モードの場合) をすべての div (document.getElementsByTagName("div")) に渡して、それらに data-contenteditable がある場合は、実際の contenteditable を設定します。

それ以外の場合は、管理モードの場合、サーバーに contenteditable のみを含めるようにします

于 2013-09-24T19:58:30.847 に答える
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>
于 2013-09-24T20:11:25.313 に答える