| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <html> |
| <head> |
| <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <meta content="Apache Forrest" name="Generator"> |
| <meta name="Forrest-version" content="0.9-dev"> |
| <meta name="Forrest-skin-name" content="pelt"> |
| <title>Bitflux Editor (BXE)</title> |
| <link type="text/css" href="../../../../skin/basic.css" rel="stylesheet"> |
| <link media="screen" type="text/css" href="../../../../skin/screen.css" rel="stylesheet"> |
| <link media="print" type="text/css" href="../../../../skin/print.css" rel="stylesheet"> |
| <link type="text/css" href="../../../../skin/profile.css" rel="stylesheet"> |
| <script src="../../../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../../../skin/fontsize.js" language="javascript" type="text/javascript"></script> |
| <link rel="shortcut icon" href="../../../../favicon.ico"> |
| </head> |
| <body onload="init()"> |
| <script type="text/javascript">ndeSetTextSize();</script> |
| <div id="top"> |
| <!--+ |
| |breadtrail |
| +--> |
| <div class="breadtrail"> |
| <a href="http://www.apache.org/">apache</a> > <a href="http://lenya.apache.org/">lenya</a><script src="../../../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script> |
| </div> |
| <!--+ |
| |header |
| +--> |
| <div class="header"> |
| <!--+ |
| |start group logo |
| +--> |
| <div class="grouplogo"> |
| <a href=""><img class="logoImage" alt="Lenya" src="../../../../images/apache-lenya-light.png" title=""></a> |
| </div> |
| <!--+ |
| |end group logo |
| +--> |
| <!--+ |
| |start Project Logo |
| +--> |
| <div class="projectlogo"> |
| <a href=""></a> |
| </div> |
| <!--+ |
| |end Project Logo |
| +--> |
| <!--+ |
| |start Search |
| +--> |
| <div class="searchbox"> |
| <form action="http://www.google.com/search" method="get" class="roundtopsmall"> |
| <input value="lenya.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with ');" size="25" name="q" id="query" type="text" value="Search the site with "> |
| <input name="Search" value="Search" type="submit"> |
| </form> |
| </div> |
| <!--+ |
| |end search |
| +--> |
| <!--+ |
| |start Tabs |
| +--> |
| <ul id="tabs"> |
| <li> |
| <a class="unselected" href="../../../../index.html">Project</a> |
| </li> |
| <li> |
| <a class="unselected" href="../../../../docs/index.html">Developer</a> |
| </li> |
| <li> |
| <a class="unselected" href="../../../../community/index.html">Community</a> |
| </li> |
| <li> |
| <a class="unselected" href="../../../../docs/2_0_x/index.html">Version 2.0</a> |
| </li> |
| <li class="current"> |
| <a class="selected" href="../../../../docs/1_2_x/index.html">Version 1.2</a> |
| </li> |
| </ul> |
| <!--+ |
| |end Tabs |
| +--> |
| </div> |
| </div> |
| <div id="main"> |
| <div id="publishedStrip"> |
| <!--+ |
| |start Subtabs |
| +--> |
| <div id="level2tabs"></div> |
| <!--+ |
| |end Endtabs |
| +--> |
| <script type="text/javascript"><!-- |
| document.write("Last Published: " + document.lastModified); |
| // --></script> |
| </div> |
| <!--+ |
| |breadtrail |
| +--> |
| <div class="breadtrail"> |
| |
| |
| </div> |
| <!--+ |
| |start Menu, mainarea |
| +--> |
| <!--+ |
| |start Menu |
| +--> |
| <div id="menu"> |
| <div onclick="SwitchMenu('menu_selected_1.1', '../../../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../../../skin/images/chapter_open.gif');">Version 1.2</div> |
| <div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/index.html">Index</a> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.2', '../../../../skin/')" id="menu_1.1.2Title" class="menutitle">Installation</div> |
| <div id="menu_1.1.2" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/installation/index.html">Download</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/installation/subversion.html">Subversion Access</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/installation/source_version.html">Install Instructions</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.3', '../../../../skin/')" id="menu_1.1.3Title" class="menutitle">Tutorial</div> |
| <div id="menu_1.1.3" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/tutorial/index.html">Introduction</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/tutorial/understanding_lenya.html">1. Understanding Lenya</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/tutorial/installing_lenya.html">2. Installing Lenya</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/tutorial/anatomy_of_the_pipeline.html">3. Anatomy of the Pipeline</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/tutorial/editing_in_lenya.html">4. Editing in Lenya</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/tutorial/custom_navigation.html">5. Custom Navigation in Lenya</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/tutorial/mod_proxy_and_lenya.html">6a. Mod Proxy and Lenya</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/tutorial/mod_proxy_and_lenya_continued.html">6b. Mod Proxy and Lenya</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.4', '../../../../skin/')" id="menu_1.1.4Title" class="menutitle">How-To</div> |
| <div id="menu_1.1.4" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/faq.html">FAQ</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/new_publication.html">New Publication</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/deploy_publication.html">Deploy Publication</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/look_and_feel.html">Look and Feel</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/custom_resourcetype.html">Custom Resource Type</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/new_mime_type.html">Adding Mime Types</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/site_navigation.html">Site Navigation</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/ldap_authentication.html">LDAP Authentication</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/cms_menus.html">CMS Menus</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/cms_screens.html">CMS Screens</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/search.html">Search Publications</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/external_data.html">External Data</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/how-to/unittests.html">Unit Tests</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_selected_1.1.5', '../../../../skin/')" id="menu_selected_1.1.5Title" class="menutitle" style="background-image: url('../../../../skin/images/chapter_open.gif');">Components</div> |
| <div id="menu_selected_1.1.5" class="selectedmenuitemgroup" style="display: block;"> |
| <div onclick="SwitchMenu('menu_1.1.5.1', '../../../../skin/')" id="menu_1.1.5.1Title" class="menutitle">Access Control</div> |
| <div id="menu_1.1.5.1" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/accesscontrol/terms.html">Basic Terms</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/accesscontrol/accesscontrollers.html">Access Controllers</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/accesscontrol/accesscontrollerresolvers.html">Access Controller Resolvers</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/accesscontrol/authenticators.html">Authenticators</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/accesscontrol/authorizers.html">Authorizers</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/accesscontrol/policymanagers.html">Policies and Policy Managers</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/accesscontrol/accreditablemanagers.html">Accreditable Managers</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/accesscontrol/ssl.html">SSL Encryption</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.2', '../../../../skin/')" id="menu_1.1.5.2Title" class="menutitle">Authoring</div> |
| <div id="menu_1.1.5.2" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/authoring/adding-document-creator.html">Adding a new document creator</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/authoring/image-upload.html">Image Upload</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/authoring/openoffice.html">OpenOffice</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.3', '../../../../skin/')" id="menu_1.1.5.3Title" class="menutitle">Deployment</div> |
| <div id="menu_1.1.5.3" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/deployment/proxying.html">Proxying</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_selected_1.1.5.4', '../../../../skin/')" id="menu_selected_1.1.5.4Title" class="menutitle" style="background-image: url('../../../../skin/images/chapter_open.gif');">Editors</div> |
| <div id="menu_selected_1.1.5.4" class="selectedmenuitemgroup" style="display: block;"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/editors/htmlform.html">HTML Form Editor</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/editors/1form.html">HTML One Form Editor</a> |
| </div> |
| <div class="menupage"> |
| <div class="menupagetitle">Bitflux Editor</div> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/editors/kupu.html">Kupu</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/editors/xopus.html">Xopus</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.5', '../../../../skin/')" id="menu_1.1.5.5Title" class="menutitle">Layout</div> |
| <div id="menu_1.1.5.5" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/layout/navigation.html">Navigation</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/layout/xhtml-templating.html">XHTML templating</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/layout/static-resources.html">Serving static resources</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/layout/lenya-menubar.html">Lenya Menubar</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.6', '../../../../skin/')" id="menu_1.1.5.6Title" class="menutitle">Publication</div> |
| <div id="menu_1.1.5.6" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/publication/pageenvelopemodule.html">PageEnvelopeModule</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/publication/siteTree.html">Site tree</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.7', '../../../../skin/')" id="menu_1.1.5.7Title" class="menutitle">Resource Types</div> |
| <div id="menu_1.1.5.7" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/resource-types/resource-types.html">Resource Types</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.8', '../../../../skin/')" id="menu_1.1.5.8Title" class="menutitle">Revision Control</div> |
| <div id="menu_1.1.5.8" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/revisioncontrol/revisioncontroller.html">Revision Controller</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/revisioncontrol/rcml.html">RCML</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/revisioncontrol/checkin.html">Check In</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/revisioncontrol/checkout.html">Check Out</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/revisioncontrol/version.html">Revisions</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/revisioncontrol/rollback.html">Rollback</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.9', '../../../../skin/')" id="menu_1.1.5.9Title" class="menutitle">Repository</div> |
| <div id="menu_1.1.5.9" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/repository/index.html">WebDAV Servers</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.10', '../../../../skin/')" id="menu_1.1.5.10Title" class="menutitle">Search</div> |
| <div id="menu_1.1.5.10" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/search/lucene.html">Searching with Lucene</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.11', '../../../../skin/')" id="menu_1.1.5.11Title" class="menutitle">URI Handling</div> |
| <div id="menu_1.1.5.11" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/uri-handling/URIParametrizer.html">URI Parametrizer</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/uri-handling/standardURI.html">URI Scheme</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/uri-handling/usecases.html">Usecases</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.12', '../../../../skin/')" id="menu_1.1.5.12Title" class="menutitle">Asset Management</div> |
| <div id="menu_1.1.5.12" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/asset-management/management.html">Asset Management</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.13', '../../../../skin/')" id="menu_1.1.5.13Title" class="menutitle">Link Management</div> |
| <div id="menu_1.1.5.13" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/link-management/link-management.html">Link Management</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.14', '../../../../skin/')" id="menu_1.1.5.14Title" class="menutitle">Meta Data</div> |
| <div id="menu_1.1.5.14" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/metadata/metadata.html">Meta Data Handling</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.15', '../../../../skin/')" id="menu_1.1.5.15Title" class="menutitle">Multilingual Documents</div> |
| <div id="menu_1.1.5.15" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/multilingual/multilingual.html">Multilingual Document Handling</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.16', '../../../../skin/')" id="menu_1.1.5.16Title" class="menutitle">Tasks</div> |
| <div id="menu_1.1.5.16" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/tasks/concept.html">The Task Concept</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/tasks/defining.html">Defining Tasks</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/tasks/taskaction.html">The TaskAction</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/tasks/scheduling.html">Scheduling a Task</a> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.16.5', '../../../../skin/')" id="menu_1.1.5.16.5Title" class="menutitle">Included tasks</div> |
| <div id="menu_1.1.5.16.5" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/tasks/anttask.html">AntTask</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/tasks/publisher.html">DefaultFilePublisher</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/tasks/exporter.html">StaticHTMLExporter</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/tasks/mailtask.html">MailTask</a> |
| </div> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/tasks/development.html">Developing Tasks</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.17', '../../../../skin/')" id="menu_1.1.5.17Title" class="menutitle">Workflow</div> |
| <div id="menu_1.1.5.17" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/workflow/terms.html">Terms</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/workflow/state-machine.html">The State Machine</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/workflow/configuration.html">Configuration</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/workflow/implementation.html">Implementation</a> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.5.18', '../../../../skin/')" id="menu_1.1.5.18Title" class="menutitle">Site Management</div> |
| <div id="menu_1.1.5.18" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/sitemanagement/archive.html">Archive</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/sitemanagement/copy.html">Copy</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/sitemanagement/deactivate.html">Deactivate</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/sitemanagement/delete.html">Delete</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/sitemanagement/deletetrash.html">Delete the trash</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/sitemanagement/move.html">Move</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/sitemanagement/moveupdown.html">Move Up/Down</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/sitemanagement/rename.html">Rename</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/components/sitemanagement/restore.html">Restore</a> |
| </div> |
| </div> |
| </div> |
| <div onclick="SwitchMenu('menu_1.1.6', '../../../../skin/')" id="menu_1.1.6Title" class="menutitle">Miscellaneous</div> |
| <div id="menu_1.1.6" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/misc/namespaces.html">Namespaces</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/misc/reserved_names.html">Reserved Names</a> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../docs/1_2_x/misc/xinclude-processor.html">XInclude Processor</a> |
| </div> |
| </div> |
| <div class="menuitem"> |
| <a href="../../../../apidocs/1.2/index.html">1.2 API (Javadoc)</a> |
| </div> |
| </div> |
| <div id="credit"></div> |
| <div id="roundbottom"> |
| <img style="display: none" class="corner" height="15" width="15" alt="" src="../../../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div> |
| <!--+ |
| |alternative credits |
| +--> |
| <div id="credit2"> |
| <a href="http://wiki.apache.org/lenya/MeetingFreiburg2008"><img border="0" title="Meeting Freiburg 2008" alt="Meeting Freiburg 2008 - logo" src="../../../../images/apache-lenya-meeting-freiburg-2008.png" style="width: 160px;height: 40px;"></a> |
| </div> |
| </div> |
| <!--+ |
| |end Menu |
| +--> |
| <!--+ |
| |start content |
| +--> |
| <div id="content"> |
| <div title="Portable Document Format" class="pdflink"> |
| <a class="dida" href="bxe.pdf"><img alt="PDF -icon" src="../../../../skin/images/pdfdoc.gif" class="skin"><br> |
| PDF</a> |
| </div> |
| <h1>Bitflux Editor (BXE)</h1> |
| <div id="front-matter"> |
| <div id="minitoc-area"> |
| <ul class="minitoc"> |
| <li> |
| <a href="#Overview">Overview</a> |
| </li> |
| <li> |
| <a href="#The+open+step">The open step</a> |
| </li> |
| <li> |
| <a href="#The+config+step">The config step</a> |
| </li> |
| <li> |
| <a href="#The+xml+step">The xml step</a> |
| </li> |
| <li> |
| <a href="#The+image-upload-show%2C+link-show+and+asset-upload-show+steps">The image-upload-show, link-show and asset-upload-show steps</a> |
| </li> |
| <li> |
| <a href="#The+image-upload+and+asset-upload+steps">The image-upload and asset-upload steps</a> |
| </li> |
| <li> |
| <a href="#Further+BXE+configuration">Further BXE configuration</a> |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| |
| <a name="N1000E"></a><a name="Overview"></a> |
| <h2 class="h3">Overview</h2> |
| <div class="section"> |
| <p> |
| <a href="http://bxe.oscom.org">BXE</a> is a validating WYSIWYG XML editor for Mozilla-based browsers. |
| It uses <a href="http://www.relaxng.org/">RELAX NG</a> for validation and CSS for layout. |
| Integration with Lenya is done with a series of use case steps that are defined |
| in a sitemap inside your publication: <span class="codefrag">usecase-bxeng.xmap</span>. If you understand the purpose |
| of the various use case steps, you will have a good grasp of how to integration is done, and will be |
| able to adjust it to your needs as necessary.</p> |
| </div> |
| |
| <a name="N10022"></a><a name="The+open+step"></a> |
| <h2 class="h3">The open step</h2> |
| <div class="section"> |
| <p>The open step is called when you first open BXE from the Lenya menu. It first checks |
| if BXE is installed, and displays a warning page if it is not. It then attempts to check |
| out the page to be edited (to protect it from being edited by other users at the same time), |
| and displays an error page if this fails for some reason. It then loads the BXE start page |
| that contains references to the BXE configuration to be used for this page, such as the |
| location of the RELAX NG schema, CSS files, and more. The BXE start page is a dynamically |
| generated page that is being aggregated from a configuration pipeline (the config step), |
| a file that contains all the namespaces that may occur in the document to be edited |
| (<span class="codefrag">content-namespaces.xml</span>), and the skeleton BXE start page (<span class="codefrag">index.xhtml</span>). |
| The pipeline looks like this: |
| </p> |
| <pre class="code"> |
| |
| <map:match type="step" pattern="open"> |
| <!-- Check for BXENG --> |
| <map:act type="resource-exists" src="../../resources/bxeng/bxeLoader.js"> |
| <map:act type="reserved-checkout"> |
| <map:generate type="serverpages" src="../../content/rc/{exception}.xsp"> |
| <map:parameter name="user" value="{user}"/> |
| <map:parameter name="filename" value="{filename}"/> |
| <map:parameter name="date" value="{date}"/> |
| <map:parameter name="message" value="{message}"/> |
| </map:generate> |
| <map:transform src="../../xslt/rc/rco-exception.xsl"/> |
| <map:call resource="style-cms-page"/> |
| </map:act> |
| <map:aggregate element="bxeng"> |
| <map:part src="../../resources/misc/bxeng/index.xhtml"/> |
| <map:part src="../../resources/misc/bxeng/content-namespaces.xml"/> |
| </map:aggregate> |
| <map:transform src="../../xslt/bxeng/aggregate.xsl"/> |
| <map:transform src="../../xslt/bxeng/index-xhtml.xsl"> |
| <map:parameter name="configfile" value="{request:requestURI}?lenya.usecase=bxeng&amp;lenya.step=config"/> |
| <map:parameter name="context" value="{request:contextPath}"/> |
| </map:transform> |
| <map:serialize type="xhtml"/> |
| </map:act> |
| <map:generate src="../../resources/misc/bxeng/download.xhtml"/> |
| <map:call resource="style-cms-page"/> |
| <map:serialize type="html"/> |
| </map:match> |
| |
| </pre> |
| </div> |
| |
| <a name="N10036"></a><a name="The+config+step"></a> |
| <h2 class="h3">The config step</h2> |
| <div class="section"> |
| <p>The config step generates the BXE config file by transforming a template file (<span class="codefrag">config.xml</span>) |
| and passing in values for the following parameters: |
| </p> |
| <ul> |
| |
| <li>BX_exitdestination: URL of the location BXE should redirect to upon exit</li> |
| |
| <li>BX_validationfile: URL of the RELAX NG schema for the XML to be edited</li> |
| |
| <li>BX_xhtmlfile: URL of the XHTML page to load the XML content into for editing</li> |
| |
| <li>BX_xmlfile: URL of the XML for the page to be edited</li> |
| |
| <li>BX_xslfile: URL of the XSL stylesheet to use for formatting the XML in BXE (BXE 1.1 only)</li> |
| |
| <li>contextmenufile: URL of the file that defines the BXE context menu</li> |
| |
| <li>css: URL of the CSS file used for styling the XML to be edited in BXE</li> |
| |
| <li>defaultlanguage: default language of the publication, used for insert popups</li> |
| |
| </ul> |
| <p>If you want to customize BXE, the config step is your starting point. Make sure to pass |
| in the right URL for these parameters. The default publication uses additional pipelines |
| for these URL to provide more flexibility (such as automatically loading the correct |
| RELAX NG schema based on the resource type of the current page). More information about |
| the format of <span class="codefrag">config.xml</span> is available at the <a href="http://wiki.bitfluxeditor.org/Config.xml">BXE wiki</a>. |
| The config step pipeline looks as follows in the default publication:</p> |
| <pre class="code"> |
| |
| <map:match type="step" pattern="config"> |
| <map:generate src="../../resources/misc/bxeng/inc/config.xml"/> |
| <map:transform src="../../xslt/bxeng/config-xml.xsl"> |
| <map:parameter name="BX_xmlfile" value="{request:requestURI}?lenya.usecase=bxeng&amp;lenya.step=xml"/> |
| <map:parameter name="defaultlanguage" value="{page-envelope:default-language}"/> |
| |
| <!-- Instead of an xsl we use the xhtml file to provide the basic layout |
| <map:parameter name="BX_xslfile" value="{2}.xsl"/> |
| --> |
| <map:parameter name="BX_xhtmlfile" value="{../2}.bxe.html"/> |
| <map:parameter name="BX_validationfile" value="{request:contextPath}/{page-envelope:publication-id}/{page-envelope:area}/{page-envelope:document-type}.rng"/> |
| <map:parameter name="css" value="{request:contextPath}/{page-envelope:publication-id}/{page-envelope:area}/css/{page-envelope:document-type}-bxeng.css"/> |
| <!-- The document is checked in when we exit from bx (in case of save&exit and in case of exit), so we use the usecase |
| for the checkin while we redirect to the document |
| --> |
| <map:parameter name="BX_exitdestination" value="{request:requestURI}?lenya.usecase=checkin&amp;lenya.step=checkin&amp;backup=true"/> |
| <map:parameter name="contextmenufile" value="../../resources/misc/bxeng/contextmenu.xml"/> |
| </map:transform> |
| <map:transform type="cinclude"/> |
| <map:serialize type="xml"/> |
| </map:match> |
| |
| </pre> |
| </div> |
| |
| <a name="N1006C"></a><a name="The+xml+step"></a> |
| <h2 class="h3">The xml step</h2> |
| <div class="section"> |
| <p>The xml step is responsible for retrieving the XML of the page to be edited, and sending it back to the server |
| for saving (via HTTP PUT). It first checks if the request method is a GET or a PUT, and goes on to either deliver |
| the XML to BXE (for the GET case) or sending the XML to the server (for the PUT case). If the request method |
| is a PUT, it then checks if the page is properly checked out, and invokes a flow script function |
| (<span class="codefrag">editDocument</span>) to save the page. The <span class="codefrag">editDocument</span> function takes care of checking |
| the page back in, triggering workflow transitions, and finally redirecting to the saved page. This is the |
| xml pipeline from the default publication:</p> |
| <pre class="code"> |
| |
| <map:match type="step" pattern="xml"> |
| <map:select type="request-method"> |
| |
| <map:when test="PUT"> |
| <!-- before we save, we must be sure that the document is well checked out |
| --> |
| <map:act type="reserved-checkout-test"> |
| <map:generate type="serverpages" src="../../content/rc/{exception}.xsp"> |
| <map:parameter name="user" value="{user}"/> |
| <map:parameter name="filename" value="{filename}"/> |
| <map:parameter name="date" value="{date}"/> |
| </map:generate> |
| <map:transform src="../../xslt/rc/rco-exception.xsl"/> |
| <map:call resource="style-cms-page"/> |
| </map:act> |
| |
| <map:call function="editDocument"> |
| <map:parameter name="sourceUri" value="cocoon:/request2document"/> |
| <map:parameter name="noCheckin" value="true"/> |
| </map:call> |
| </map:when> |
| |
| <map:otherwise> <!-- GET --> |
| <map:generate src="content/authoring/{page-envelope:document-path}"/> |
| <map:transform src="../../xslt/bxeng/change-object-path.xsl"> |
| <map:parameter name="documentid" value="{page-envelope:document-id}"/> |
| </map:transform> |
| <map:serialize type="xml"/> |
| </map:otherwise> |
| |
| </map:select> |
| </map:match> |
| |
| </pre> |
| </div> |
| |
| <a name="N10080"></a><a name="The+image-upload-show%2C+link-show+and+asset-upload-show+steps"></a> |
| <h2 class="h3">The image-upload-show, link-show and asset-upload-show steps</h2> |
| <div class="section"> |
| <p>BXE supports the notion of callbacks to allow Lenya to display a list of assets, images or links |
| to be inserted into a page. These three steps generate the content of these popup windows, respectively. |
| The <span class="codefrag">link-show</span> step is the most complex of these since it takes lots of parameters, such |
| as the currently selected language, the position in the sitetree and the list of available languages. |
| These parameters are necessary to recreate the sitetree visualization from the site area for the link |
| insert popup.</p> |
| <pre class="code"> |
| |
| <map:match pattern="image-upload-show" type="step"> |
| <map:call resource="cms-screen"> |
| <map:parameter name="serverpage" value="info/assets.xsp"/> |
| <map:parameter name="stylesheet" value="bxeng/image.xsl"/> |
| </map:call> |
| </map:match> |
| |
| <map:match pattern="asset-upload-show" type="step"> |
| <map:call resource="cms-screen"> |
| <map:parameter name="serverpage" value="info/assets.xsp"/> |
| <map:parameter name="stylesheet" value="bxeng/asset.xsl"/> |
| </map:call> |
| </map:match> |
| |
| <map:match pattern="link-show" type="step"> |
| <!-- just a dummy xsp since we call the info area directly --> |
| <map:generate type="serverpages" src="../../content/info/assets.xsp"/> |
| <map:transform src="../../xslt/bxeng/link.xsl" label="content"> |
| <map:parameter name="infoarea" value="true"/> |
| <map:parameter name="contextprefix" value="{request:contextPath}"/> |
| <map:parameter name="publicationid" value="{page-envelope:publication-id}"/> |
| <map:parameter name="area" value="authoring"/> |
| <map:parameter name="tab" value="en"/> |
| <map:parameter name="chosenlanguage" value="{page-envelope:document-language}"/> |
| <map:parameter name="documentid" value="{page-envelope:document-id}"/> |
| <map:parameter name="documenturl" value="/{page-envelope:document-url}"/> |
| <map:parameter name="documentextension" value="{page-envelope:document-extension}"/> |
| <map:parameter name="defaultlanguage" value="{page-envelope:default-language}"/> |
| <map:parameter name="languages" value="{page-envelope:publication-languages-csv}"/> |
| </map:transform> |
| <map:call resource="style-cms-page"/> |
| </map:match> |
| |
| </pre> |
| </div> |
| |
| <a name="N10091"></a><a name="The+image-upload+and+asset-upload+steps"></a> |
| <h2 class="h3">The image-upload and asset-upload steps</h2> |
| <div class="section"> |
| <p>To enable the upload of new assets to Lenya directly from the BXE <span class="codefrag">insert Image</span> |
| and <span class="codefrag">insert Asset</span> popup windows, there are two use case steps that use the |
| upload action to process the uploaded file, and then redirect to the respective popup window.</p> |
| <pre class="code"> |
| |
| <map:match type="step" pattern="asset-upload"> |
| <map:act type="upload"> |
| <map:redirect-to uri="{request:requestURI}?lenya.usecase=bxeng&amp;lenya.step=asset-upload-show"/> |
| </map:act> |
| <map:call resource="cms-screen"> |
| <map:parameter name="serverpage" value="info/assets.xsp"/> |
| <map:parameter name="stylesheet" value="bxeng/asset.xsl"/> |
| </map:call> |
| </map:match> |
| |
| <map:match type="step" pattern="image-upload"> |
| <map:act type="upload"> |
| <map:redirect-to uri="{request:requestURI}?lenya.usecase=bxeng&amp;lenya.step=image-upload-show"/> |
| </map:act> |
| <map:call resource="cms-screen"> |
| <map:parameter name="serverpage" value="info/assets.xsp"/> |
| <map:parameter name="stylesheet" value="bxeng/image.xsl"/> |
| </map:call> |
| </map:match> |
| |
| </pre> |
| </div> |
| |
| <a name="N100A5"></a><a name="Further+BXE+configuration"></a> |
| <h2 class="h3">Further BXE configuration</h2> |
| <div class="section"> |
| <p>BXE offers a lot of customization options beyond those outlined above. If you plan to make the most |
| of BXE, you should familiarize yourself with the contents of the |
| <a href="http://wiki.bitfluxeditor.org/Main_Page">BXE wiki</a>.</p> |
| </div> |
| |
| |
| </div> |
| <!--+ |
| |end content |
| +--> |
| <div class="clearboth"> </div> |
| </div> |
| <div id="footer"> |
| <!--+ |
| |start bottomstrip |
| +--> |
| <div class="lastmodified"> |
| <script type="text/javascript"><!-- |
| document.write("Last Published: " + document.lastModified); |
| // --></script> |
| </div> |
| <div class="copyright"> |
| Copyright © |
| 2002-2007 <a href="http://www.apache.org/licenses/LICENSE-2.0">The Apache Software Foundation.</a> |
| </div> |
| <div id="feedback"> |
| Send feedback about the website to: |
| <a id="feedbackto" href="mailto:dev@lenya.apache.org?subject=Feedback%C2%A0for%C2%A0docs/1_2_x/components/editors/bxe.html">dev@lenya.apache.org</a> |
| </div> |
| <!--+ |
| |end bottomstrip |
| +--> |
| </div> |
| </body> |
| </html> |