跳转到内容

XForms/CKEditor

来自维基教科书,开放的书籍,开放的世界

您希望能够将 HTML 标记添加到 textarea 中。

我们将使用 CKEditor JavaScript 库。此演示使用的是版本 3.2。

步骤

  1. 从以下网站下载源代码:CKEditor 网站。
  2. 在您的本地文件系统上解压缩 zip 文件
  3. 将 HTML 文件中所有出现的 "&" 更改为 & a m p ; 并删除 & n b s p ;& c o p y ;,以使文件成为格式良好的 XHTML 文件,以便 eXist 可以索引它们。3.2 版本中的以下文件需要修改
    1. ckeditor/CHANGES.html
    2. ckeditor/_source/plugins/wsc/dialogs/ciframe.html
    3. ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html
    4. ckeditor/plugins/wsc/dialogs/ciframe.html
    5. ckeditor/plugins/wsc/dialogs/tmpFrameset.html
  4. 将主 ckeditor 文件夹拖入 eXist。它应该立即索引所有 html 文件并将所有非 XML 文件(javascript、css 等)存储为二进制文件。
  5. 注意:这似乎不可能。更改配置文件以不编码 XML。


未遵循上述步骤 3 将导致以下错误消息

   XMLDB exception caught:
   Failed to invoke method parse in class org.exist.xmlrpc.RpcConnection:
   org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.


可以通过编辑 config.js 文件来尝试(参见 配置文件参数 )

  1. 在 config.js 中添加以下行
    1. config.HtmlEncodeOutput = 'false';
  2. 用以下 sample_postdata.xq 替换 sample_postdata.php

示例 XQuery 用于回显 POST 数据

[编辑 | 编辑源代码]

在 _samples 文件夹中,您会发现几个关于如何使用 CKEditor 的示例。这些 HTML 文件中的每一个都包含一个包含以下行的 HTML 表单

<form action="sample_posteddata.xq" method="post">

以下程序可用作 sample_postdata.php 文件的替代品。

sample_postdata.xq

xquery version "1.0";
declare option exist:serialize "method=xml media-type=text/xml omit-xml-declaration=yes indent=yes";

(: Get the content of the editor1 parameter :)
let $editor1 := request:get-parameter('editor1', '')

(: wrap the content in a div to make sure we have well-formed XML :)
let $wrapped-content := concat('&lt;div&gt;', $editor1, '&lt;/div&gt;')

(: parse the escaped text so that we now have true XML markup :)
let $data-to-save := util:parse($wrapped-content)
return
<results>
  {$data-to-save}
</results>

XML 系统的配置文件

[编辑 | 编辑源代码]

CKEditor 有很多 配置选项。它们通过编辑主 CKEditor 目录中的 config.js 文件来设置。

对 CKEditor 配置文件进行以下更改应该可以工作,但似乎没有正确的行为。

config.js

CKEDITOR.editorConfig = function( config )
{
   // Define changes to default configuration here. For example:
   // config.language = 'fr';
   // config.uiColor = '#AADC6E';
	
   // This should turn off encoding of the XML files as they are sent to the server
   config.HtmlEncodeOutput = false;
   config.entities = false;
};
华夏公益教科书