「軽い」コンテンツ管理システムの例:
それらに共通しているのは、編集可能にしたい Web ページの部分に特定のクラス名を追加するだけであるということです。バックエンドでは、編集したスニペットを編集したファイル (データベースなし) に保存します。
オリジナルコンテンツと編集コンテンツの例:
元の HTML コード
<div class="editable">
<ul>
<li>an</li>
<li>unordered list</li>
</ul>
</div>
編集された HTML コード
<div class="editable">
<ol>
<li>an</li>
<li>ordered list</li>
</ol>
</div>
フロントエンドはかなり明確ですが、バックエンド (PHP) についてはどうすればよいでしょうか?
動的な PHP コードが引き続き機能するようにする必要があるため、ファイル全体を更新するだけでは不十分です。
この手法を検索しましたが、これを行うための詳細なアイデアや方法が見つからなかったため、リソースやポインターは大歓迎です。
上記のライト コンテンツ管理システムはオープン ソースではないため、ソースから学ぶこともできません。
編集
PHP DOM を使用したくないと述べましたが、状況が変わりました。Surreal CMS と CushyCMS の両方がそれを使用しています。これは、それが進むべき道であることを示しています。
PHP DOM で私が経験している問題は、ユーザーが編集した元のドキュメントの一部だけを置き換えることができないことです。元のファイルをロードするとき、 PHP DOM は、メタ タグを変更したり、一重引用符を二重引用符に変換したりするなど、文書に対して不要なこと
を行います
。ドキュメントはそのままにしておく必要があるためです (ユーザーはこれを編集していません)。
Cushy と Surreal はどちらも、PHP DOM がドキュメントの残りの部分に触れないようにする方法を知っているようですが、私は知りません。知っているなら、私に知らせてください。