add ckeditor plugin for syntaxhighlighter blocks, and intial Jonah support.
authorMichael J. Rubinsky <mrubinsk@horde.org>
Thu, 7 Oct 2010 23:41:28 +0000 (19:41 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Thu, 7 Oct 2010 23:41:28 +0000 (19:41 -0400)
Need to figure out a clean way of getting the code type from the jonah story,
thinking of using a regex for the <pre brush="php"> elements. For now, hard code
php only.

framework/Core/lib/Horde/Core/Ui/VarRenderer/Html.php
framework/Editor/js/config.js
framework/Editor/js/plugins/syntaxhighlight/dialogs/syntaxhighlight.js [new file with mode: 0644]
framework/Editor/js/plugins/syntaxhighlight/images/syntaxhighlight.gif [new file with mode: 0644]
framework/Editor/js/plugins/syntaxhighlight/lang/en.js [new file with mode: 0644]
framework/Editor/js/plugins/syntaxhighlight/plugin.js [new file with mode: 0644]
framework/Editor/lib/Horde/Editor/Ckeditor.php
framework/Editor/package.xml
jonah/lib/View/StoryView.php

index a558b3b..e9eea05 100644 (file)
@@ -290,7 +290,10 @@ class Horde_Core_Ui_VarRenderer_Html extends Horde_Core_Ui_VarRenderer
                         @htmlspecialchars($var->getValue($vars), ENT_QUOTES, $this->_charset));
 
         if ($var->type->hasHelper('rte')) {
-            $GLOBALS['injector']->getInstance('Horde_Editor')->initialize(array('id' => $varname, 'relativelinks' => $var->type->hasHelper('relativelinks')));
+            $GLOBALS['injector']->getInstance('Horde_Editor')->initialize(
+                array('id' => $varname,
+                      'relativelinks' => $var->type->hasHelper('relativelinks'),
+                      'config' => array('extraPlugins' => 'syntaxhighlight')));
         }
 
         if ($var->type->hasHelper() && $browser->hasFeature('javascript')) {
index 2ef3c96..35a3167 100644 (file)
@@ -1 +1 @@
-CKEDITOR.editorConfig=function(a){a.scayt_autoStartup=false};
\ No newline at end of file
+CKEDITOR.editorConfig=function(a){a.scayt_autoStartup=false;a.toolbar_Full.push(['Code'])};
\ No newline at end of file
diff --git a/framework/Editor/js/plugins/syntaxhighlight/dialogs/syntaxhighlight.js b/framework/Editor/js/plugins/syntaxhighlight/dialogs/syntaxhighlight.js
new file mode 100644 (file)
index 0000000..946c4c6
--- /dev/null
@@ -0,0 +1 @@
+CKEDITOR.dialog.add("syntaxhighlight",function(c){var a=function(f){f=f.replace(/<br>/g,"\n");f=f.replace(/&amp;/g,"&");f=f.replace(/&lt;/g,"<");f=f.replace(/&gt;/g,">");f=f.replace(/&quot;/g,'"');return f};var e=function(f){var f=new Object();f.hideGutter=false;f.hideControls=false;f.collapse=false;f.showColumns=false;f.noWrap=false;f.firstLineChecked=false;f.firstLine=0;f.highlightChecked=false;f.highlight=null;f.lang=null;f.code="";return f};var b=function(i){var h=e();if(i){if(i.indexOf("brush")>-1){var g=/brush:[ ]{0,1}(\w*)/.exec(i);if(g!=null&&g.length>0){h.lang=g[1].replace(/^\s+|\s+$/g,"")}}if(i.indexOf("gutter")>-1){h.hideGutter=true}if(i.indexOf("toolbar")>-1){h.hideControls=true}if(i.indexOf("collapse")>-1){h.collapse=true}if(i.indexOf("first-line")>-1){var g=/first-line:[ ]{0,1}([0-9]{1,4})/.exec(i);if(g!=null&&g.length>0&&g[1]>1){h.firstLineChecked=true;h.firstLine=g[1]}}if(i.indexOf("highlight")>-1){if(i.match(/highlight:[ ]{0,1}\[[0-9]+(,[0-9]+)*\]/)){var f=/highlight:[ ]{0,1}\[(.*)\]/.exec(i);if(f!=null&&f.length>0){h.highlightChecked=true;h.highlight=f[1]}}}if(i.indexOf("ruler")>-1){h.showColumns=true}if(i.indexOf("wrap-lines")>-1){h.noWrap=true}}return h};var d=function(g){var f="brush:"+g.lang+";";if(g.hideGutter){f+="gutter:false;"}if(g.hideControls){f+="toolbar:false;"}if(g.collapse){f+="collapse:true;"}if(g.showColumns){f+="ruler:true;"}if(g.noWrap){f+="wrap-lines:false;"}if(g.firstLineChecked&&g.firstLine>1){f+="first-line:"+g.firstLine+";"}if(g.highlightChecked&&g.highlight!=""){f+="highlight: ["+g.highlight.replace(/\s/gi,"")+"];"}return f};return{title:c.lang.syntaxhighlight.title,minWidth:500,minHeight:400,onShow:function(){var i=this.getParentEditor();var h=i.getSelection();var g=h.getStartElement();var k=g&&g.getAscendant("pre",true);var j="";var f=null;if(k){code=a(k.getHtml());f=b(k.getAttribute("class"));f.code=code}else{f=e()}this.setupContent(f)},onOk:function(){var h=this.getParentEditor();var g=h.getSelection();var f=g.getStartElement();var k=f&&f.getAscendant("pre",true);var i=e();this.commitContent(i);var j=d(i);if(k){k.setAttribute("class",j);k.setText(i.code)}else{var l=new CKEDITOR.dom.element("pre");l.setAttribute("class",j);l.setText(i.code);h.insertElement(l)}},contents:[{id:"source",label:c.lang.syntaxhighlight.sourceTab,accessKey:"S",elements:[{type:"vbox",children:[{id:"cmbLang",type:"select",labelLayout:"horizontal",label:c.lang.syntaxhighlight.langLbl,"default":"java",widths:["25%","75%"],items:[["Bash (Shell)","bash"],["C#","csharp"],["C++","cpp"],["CSS","css"],["Delphi","delphi"],["Diff","diff"],["Groovy","groovy"],["Javascript","jscript"],["Java","java"],["Java FX","javafx"],["Perl","perl"],["PHP","php"],["Plain (Text)","plain"],["Python","python"],["Ruby","ruby"],["Scala","scala"],["SQL","sql"],["VB","vb"],["XML/XHTML","xml"]],setup:function(f){if(f.lang){this.setValue(f.lang)}},commit:function(f){f.lang=this.getValue()}}]},{type:"textarea",id:"hl_code",rows:22,style:"width: 100%",setup:function(f){if(f.code){this.setValue(f.code)}},commit:function(f){f.code=this.getValue()}}]},{id:"advanced",label:c.lang.syntaxhighlight.advancedTab,accessKey:"A",elements:[{type:"vbox",children:[{type:"html",html:"<strong>"+c.lang.syntaxhighlight.hideGutter+"</strong>"},{type:"checkbox",id:"hide_gutter",label:c.lang.syntaxhighlight.hideGutterLbl,setup:function(f){this.setValue(f.hideGutter)},commit:function(f){f.hideGutter=this.getValue()}},{type:"html",html:"<strong>"+c.lang.syntaxhighlight.hideControls+"</strong>"},{type:"checkbox",id:"hide_controls",label:c.lang.syntaxhighlight.hideControlsLbl,setup:function(f){this.setValue(f.hideControls)},commit:function(f){f.hideControls=this.getValue()}},{type:"html",html:"<strong>"+c.lang.syntaxhighlight.collapse+"</strong>"},{type:"checkbox",id:"collapse",label:c.lang.syntaxhighlight.collapseLbl,setup:function(f){this.setValue(f.collapse)},commit:function(f){f.collapse=this.getValue()}},{type:"html",html:"<strong>"+c.lang.syntaxhighlight.showColumns+"</strong>"},{type:"checkbox",id:"show_columns",label:c.lang.syntaxhighlight.showColumnsLbl,setup:function(f){this.setValue(f.showColumns)},commit:function(f){f.showColumns=this.getValue()}},{type:"html",html:"<strong>"+c.lang.syntaxhighlight.lineWrap+"</strong>"},{type:"checkbox",id:"line_wrap",label:c.lang.syntaxhighlight.lineWrapLbl,setup:function(f){this.setValue(f.noWrap)},commit:function(f){f.noWrap=this.getValue()}},{type:"html",html:"<strong>"+c.lang.syntaxhighlight.lineCount+"</strong>"},{type:"hbox",widths:["5%","95%"],children:[{type:"checkbox",id:"lc_toggle",label:"",setup:function(f){this.setValue(f.firstLineChecked)},commit:function(f){f.firstLineChecked=this.getValue()}},{type:"text",id:"default_lc",style:"width: 15%;",label:"",setup:function(f){if(f.firstLine>1){this.setValue(f.firstLine)}},commit:function(f){if(this.getValue()&&this.getValue()!=""){f.firstLine=this.getValue()}}}]},{type:"html",html:"<strong>"+c.lang.syntaxhighlight.highlight+"</strong>"},{type:"hbox",widths:["5%","95%"],children:[{type:"checkbox",id:"hl_toggle",label:"",setup:function(f){this.setValue(f.highlightChecked)},commit:function(f){f.highlightChecked=this.getValue()}},{type:"text",id:"default_hl",style:"width: 40%;",label:"",setup:function(f){if(f.highlight!=null){this.setValue(f.highlight)}},commit:function(f){if(this.getValue()&&this.getValue()!=""){f.highlight=this.getValue()}}}]},{type:"hbox",widths:["5%","95%"],children:[{type:"html",html:""},{type:"html",html:"<i>"+c.lang.syntaxhighlight.highlightLbl+"</i>"}]}]}]}]}});
\ No newline at end of file
diff --git a/framework/Editor/js/plugins/syntaxhighlight/images/syntaxhighlight.gif b/framework/Editor/js/plugins/syntaxhighlight/images/syntaxhighlight.gif
new file mode 100644 (file)
index 0000000..dd94ded
Binary files /dev/null and b/framework/Editor/js/plugins/syntaxhighlight/images/syntaxhighlight.gif differ
diff --git a/framework/Editor/js/plugins/syntaxhighlight/lang/en.js b/framework/Editor/js/plugins/syntaxhighlight/lang/en.js
new file mode 100644 (file)
index 0000000..a9fe02d
--- /dev/null
@@ -0,0 +1 @@
+CKEDITOR.plugins.setLang("syntaxhighlight","en",{syntaxhighlight:{title:"Add or update a code snippet",sourceTab:"Source code",langLbl:"Select language",advancedTab:"Advanced",hideGutter:"Hide gutter",hideGutterLbl:"Hide gutter & line numbers.",hideControls:"Hide controls",hideControlsLbl:"Hide code controls at the top of the code block.",collapse:"Collapse",collapseLbl:"Collapse the code block by default. (controls need to be turned on)",showColumns:"Show columns",showColumnsLbl:"Show row columns in the first line.",lineWrap:"Disable line wrapping",lineWrapLbl:"Switch off line wrapping.",lineCount:"Default line count",highlight:"Highlight lines",highlightLbl:"Enter a comma seperated lines of lines you want to highlight, eg <em>3,10,15</em>."}});
\ No newline at end of file
diff --git a/framework/Editor/js/plugins/syntaxhighlight/plugin.js b/framework/Editor/js/plugins/syntaxhighlight/plugin.js
new file mode 100644 (file)
index 0000000..a94864a
--- /dev/null
@@ -0,0 +1 @@
+CKEDITOR.plugins.add("syntaxhighlight",{requires:["dialog"],lang:["en"],init:function(a){var b="syntaxhighlight";var c=a.addCommand(b,new CKEDITOR.dialogCommand(b));c.modes={wysiwyg:1,source:1};c.canUndo=false;a.ui.addButton("Code",{label:a.lang.syntaxhighlight.title,command:b,icon:this.path+"images/syntaxhighlight.gif"});CKEDITOR.dialog.add(b,this.path+"dialogs/syntaxhighlight.js")}});
\ No newline at end of file
index 13b3b00..0a93715 100644 (file)
@@ -40,7 +40,7 @@ class Horde_Editor_Ckeditor extends Horde_Editor
         $ck_file = empty($params['basic'])
             ? 'ckeditor.js'
             : 'ckeditor_basic.js';
-        $ck_path = $GLOBALS['registry']->get('jsuri', 'horde') . '/ckeditor/';
+        $ck_path = $GLOBALS['registry']->get('jsuri', 'horde') . '/';
 
         /* Globally disable spell check as you type. */
         $params['config']['scayt_autoStartup'] = false;
@@ -55,7 +55,7 @@ class Horde_Editor_Ckeditor extends Horde_Editor
         } else {
             $this->_js = '<script type="text/javascript" src="' . htmlspecialchars($ck_path) . $ck_file . '"></script>';
             if (isset($params['id'])) {
-                $this->_js .= Horde::wrapInlineScript(array('CKEDITOR.replace("' . $params['id'] . '",' . $params['config'] . ')'), 'load');
+                $this->_js .= Horde::wrapInlineScript(array('CKEDITOR.replace("' . $params['id'] . '",' . $params['config'] . ');config.toolbar_Full.push(["Code"]);'), 'load');
             }
         }
     }
index 2a4707e..567bb98 100644 (file)
@@ -1,13 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<package packagerversion="1.4.9" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
-http://pear.php.net/dtd/tasks-1.0.xsd
-http://pear.php.net/dtd/package-2.0
-http://pear.php.net/dtd/package-2.0.xsd">
+<package packagerversion="1.9.1" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
  <name>Editor</name>
  <channel>pear.horde.org</channel>
  <summary>Horde Editor API</summary>
- <description>The Horde_Editor:: package provides an API to generate the code necessary for embedding javascript RTE editors in a web page.
- </description>
+ <description>The Horde_Editor:: package provides an API to generate the code necessary for embedding javascript RTE editors in a web page.</description>
  <lead>
   <name>Chuck Hagenbuch</name>
   <user>chuck</user>
@@ -20,7 +16,8 @@ http://pear.php.net/dtd/package-2.0.xsd">
   <email>slusarz@horde.org</email>
   <active>yes</active>
  </lead>
- <date>2009-01-19</date>
+ <date>2010-10-07</date>
+ <time>19:15:08</time>
  <version>
   <release>0.1.0</release>
   <api>0.1.0</api>
@@ -30,351 +27,365 @@ http://pear.php.net/dtd/package-2.0.xsd">
   <api>beta</api>
  </stability>
  <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
- <notes>* Removed Xinha driver.
+ <notes>
+* Removed Xinha driver.
  * Added CKEditor driver.
  * Removed FCKEditor driver
  * Initial Horde 4 package.
  </notes>
  <contents>
-  <dir name="/">
+  <dir baseinstalldir="/" name="/">
    <dir name="js">
-    <file name="LICENSE.html" role="horde"/>
-    <file name="ckeditor.js" role="horde"/>
-    <file name="ckeditor_basic.js" role="horde"/>
-    <file name="config.js" role="horde"/>
-    <file name="contents.css" role="horde"/>
     <dir name="images">
-     <file name="spacer.gif" role="horde"/>
-    </dir>
+     <file name="spacer.gif" role="horde" />
+    </dir> <!-- /js/images -->
     <dir name="lang">
-     <file name="_languages.js" role="horde"/>
-     <file name="af.js" role="horde"/>
-     <file name="ar.js" role="horde"/>
-     <file name="bg.js" role="horde"/>
-     <file name="bn.js" role="horde"/>
-     <file name="bs.js" role="horde"/>
-     <file name="ca.js" role="horde"/>
-     <file name="cs.js" role="horde"/>
-     <file name="cy.js" role="horde"/>
-     <file name="da.js" role="horde"/>
-     <file name="de.js" role="horde"/>
-     <file name="el.js" role="horde"/>
-     <file name="en-au.js" role="horde"/>
-     <file name="en-ca.js" role="horde"/>
-     <file name="en-gb.js" role="horde"/>
-     <file name="en.js" role="horde"/>
-     <file name="eo.js" role="horde"/>
-     <file name="es.js" role="horde"/>
-     <file name="et.js" role="horde"/>
-     <file name="eu.js" role="horde"/>
-     <file name="fa.js" role="horde"/>
-     <file name="fi.js" role="horde"/>
-     <file name="fo.js" role="horde"/>
-     <file name="fr-ca.js" role="horde"/>
-     <file name="fr.js" role="horde"/>
-     <file name="gl.js" role="horde"/>
-     <file name="gu.js" role="horde"/>
-     <file name="he.js" role="horde"/>
-     <file name="hi.js" role="horde"/>
-     <file name="hr.js" role="horde"/>
-     <file name="hu.js" role="horde"/>
-     <file name="is.js" role="horde"/>
-     <file name="it.js" role="horde"/>
-     <file name="ja.js" role="horde"/>
-     <file name="km.js" role="horde"/>
-     <file name="ko.js" role="horde"/>
-     <file name="lt.js" role="horde"/>
-     <file name="lv.js" role="horde"/>
-     <file name="mn.js" role="horde"/>
-     <file name="ms.js" role="horde"/>
-     <file name="nb.js" role="horde"/>
-     <file name="nl.js" role="horde"/>
-     <file name="no.js" role="horde"/>
-     <file name="pl.js" role="horde"/>
-     <file name="pt-br.js" role="horde"/>
-     <file name="pt.js" role="horde"/>
-     <file name="ro.js" role="horde"/>
-     <file name="ru.js" role="horde"/>
-     <file name="sk.js" role="horde"/>
-     <file name="sl.js" role="horde"/>
-     <file name="sr-latn.js" role="horde"/>
-     <file name="sr.js" role="horde"/>
-     <file name="sv.js" role="horde"/>
-     <file name="th.js" role="horde"/>
-     <file name="tr.js" role="horde"/>
-     <file name="uk.js" role="horde"/>
-     <file name="vi.js" role="horde"/>
-     <file name="zh-cn.js" role="horde"/>
-     <file name="zh.js" role="horde"/>
-    </dir>
+     <file name="af.js" role="horde" />
+     <file name="ar.js" role="horde" />
+     <file name="bg.js" role="horde" />
+     <file name="bn.js" role="horde" />
+     <file name="bs.js" role="horde" />
+     <file name="ca.js" role="horde" />
+     <file name="cs.js" role="horde" />
+     <file name="cy.js" role="horde" />
+     <file name="da.js" role="horde" />
+     <file name="de.js" role="horde" />
+     <file name="el.js" role="horde" />
+     <file name="en-au.js" role="horde" />
+     <file name="en-ca.js" role="horde" />
+     <file name="en-gb.js" role="horde" />
+     <file name="en.js" role="horde" />
+     <file name="eo.js" role="horde" />
+     <file name="es.js" role="horde" />
+     <file name="et.js" role="horde" />
+     <file name="eu.js" role="horde" />
+     <file name="fa.js" role="horde" />
+     <file name="fi.js" role="horde" />
+     <file name="fo.js" role="horde" />
+     <file name="fr-ca.js" role="horde" />
+     <file name="fr.js" role="horde" />
+     <file name="gl.js" role="horde" />
+     <file name="gu.js" role="horde" />
+     <file name="he.js" role="horde" />
+     <file name="hi.js" role="horde" />
+     <file name="hr.js" role="horde" />
+     <file name="hu.js" role="horde" />
+     <file name="is.js" role="horde" />
+     <file name="it.js" role="horde" />
+     <file name="ja.js" role="horde" />
+     <file name="km.js" role="horde" />
+     <file name="ko.js" role="horde" />
+     <file name="lt.js" role="horde" />
+     <file name="lv.js" role="horde" />
+     <file name="mn.js" role="horde" />
+     <file name="ms.js" role="horde" />
+     <file name="nb.js" role="horde" />
+     <file name="nl.js" role="horde" />
+     <file name="no.js" role="horde" />
+     <file name="pl.js" role="horde" />
+     <file name="pt-br.js" role="horde" />
+     <file name="pt.js" role="horde" />
+     <file name="ro.js" role="horde" />
+     <file name="ru.js" role="horde" />
+     <file name="sk.js" role="horde" />
+     <file name="sl.js" role="horde" />
+     <file name="sr-latn.js" role="horde" />
+     <file name="sr.js" role="horde" />
+     <file name="sv.js" role="horde" />
+     <file name="th.js" role="horde" />
+     <file name="tr.js" role="horde" />
+     <file name="uk.js" role="horde" />
+     <file name="vi.js" role="horde" />
+     <file name="zh-cn.js" role="horde" />
+     <file name="zh.js" role="horde" />
+     <file name="_languages.js" role="horde" />
+    </dir> <!-- /js/lang -->
     <dir name="plugins">
      <dir name="a11yhelp">
       <dir name="dialogs">
-       <file name="a11yhelp.js" role="horde"/>
-      </dir>
+       <file name="a11yhelp.js" role="horde" />
+      </dir> <!-- /js/plugins/a11yhelp/dialogs -->
       <dir name="lang">
-       <file name="en.js" role="horde"/>
-       <file name="he.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="en.js" role="horde" />
+       <file name="he.js" role="horde" />
+      </dir> <!-- /js/plugins/a11yhelp/lang -->
+     </dir> <!-- /js/plugins/a11yhelp -->
      <dir name="about">
       <dir name="dialogs">
-       <file name="about.js" role="horde"/>
-       <file name="logo_ckeditor.png" role="horde"/>
-      </dir>
-     </dir>
+       <file name="about.js" role="horde" />
+       <file name="logo_ckeditor.png" role="horde" />
+      </dir> <!-- /js/plugins/about/dialogs -->
+     </dir> <!-- /js/plugins/about -->
      <dir name="clipboard">
       <dir name="dialogs">
-       <file name="paste.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="paste.js" role="horde" />
+      </dir> <!-- /js/plugins/clipboard/dialogs -->
+     </dir> <!-- /js/plugins/clipboard -->
      <dir name="colordialog">
       <dir name="dialogs">
-       <file name="colordialog.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="colordialog.js" role="horde" />
+      </dir> <!-- /js/plugins/colordialog/dialogs -->
+     </dir> <!-- /js/plugins/colordialog -->
      <dir name="dialog">
-      <file name="dialogDefinition.js" role="horde"/>
-     </dir>
+      <file name="dialogDefinition.js" role="horde" />
+     </dir> <!-- /js/plugins/dialog -->
      <dir name="div">
       <dir name="dialogs">
-       <file name="div.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="div.js" role="horde" />
+      </dir> <!-- /js/plugins/div/dialogs -->
+     </dir> <!-- /js/plugins/div -->
      <dir name="find">
       <dir name="dialogs">
-       <file name="find.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="find.js" role="horde" />
+      </dir> <!-- /js/plugins/find/dialogs -->
+     </dir> <!-- /js/plugins/find -->
      <dir name="flash">
       <dir name="dialogs">
-       <file name="flash.js" role="horde"/>
-      </dir>
+       <file name="flash.js" role="horde" />
+      </dir> <!-- /js/plugins/flash/dialogs -->
       <dir name="images">
-       <file name="placeholder.png" role="horde"/>
-      </dir>
-     </dir>
+       <file name="placeholder.png" role="horde" />
+      </dir> <!-- /js/plugins/flash/images -->
+     </dir> <!-- /js/plugins/flash -->
      <dir name="forms">
       <dir name="dialogs">
-       <file name="button.js" role="horde"/>
-       <file name="checkbox.js" role="horde"/>
-       <file name="form.js" role="horde"/>
-       <file name="hiddenfield.js" role="horde"/>
-       <file name="radio.js" role="horde"/>
-       <file name="select.js" role="horde"/>
-       <file name="textarea.js" role="horde"/>
-       <file name="textfield.js" role="horde"/>
-      </dir>
+       <file name="button.js" role="horde" />
+       <file name="checkbox.js" role="horde" />
+       <file name="form.js" role="horde" />
+       <file name="hiddenfield.js" role="horde" />
+       <file name="radio.js" role="horde" />
+       <file name="select.js" role="horde" />
+       <file name="textarea.js" role="horde" />
+       <file name="textfield.js" role="horde" />
+      </dir> <!-- /js/plugins/forms/dialogs -->
       <dir name="images">
-       <file name="hiddenfield.gif" role="horde"/>
-      </dir>
-     </dir>
+       <file name="hiddenfield.gif" role="horde" />
+      </dir> <!-- /js/plugins/forms/images -->
+     </dir> <!-- /js/plugins/forms -->
      <dir name="iframedialog">
-      <file name="plugin.js" role="horde"/>
-     </dir>
+      <file name="plugin.js" role="horde" />
+     </dir> <!-- /js/plugins/iframedialog -->
      <dir name="image">
       <dir name="dialogs">
-       <file name="image.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="image.js" role="horde" />
+      </dir> <!-- /js/plugins/image/dialogs -->
+     </dir> <!-- /js/plugins/image -->
      <dir name="link">
       <dir name="dialogs">
-       <file name="anchor.js" role="horde"/>
-       <file name="link.js" role="horde"/>
-      </dir>
+       <file name="anchor.js" role="horde" />
+       <file name="link.js" role="horde" />
+      </dir> <!-- /js/plugins/link/dialogs -->
       <dir name="images">
-       <file name="anchor.gif" role="horde"/>
-      </dir>
-     </dir>
+       <file name="anchor.gif" role="horde" />
+      </dir> <!-- /js/plugins/link/images -->
+     </dir> <!-- /js/plugins/link -->
      <dir name="liststyle">
       <dir name="dialogs">
-       <file name="liststyle.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="liststyle.js" role="horde" />
+      </dir> <!-- /js/plugins/liststyle/dialogs -->
+      <file name="plugin.js" role="horde" />
+     </dir> <!-- /js/plugins/liststyle -->
      <dir name="pagebreak">
       <dir name="images">
-       <file name="pagebreak.gif" role="horde"/>
-      </dir>
-     </dir>
+       <file name="pagebreak.gif" role="horde" />
+      </dir> <!-- /js/plugins/pagebreak/images -->
+     </dir> <!-- /js/plugins/pagebreak -->
      <dir name="pastefromword">
       <dir name="filter">
-       <file name="default.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="default.js" role="horde" />
+      </dir> <!-- /js/plugins/pastefromword/filter -->
+     </dir> <!-- /js/plugins/pastefromword -->
      <dir name="pastetext">
       <dir name="dialogs">
-       <file name="pastetext.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="pastetext.js" role="horde" />
+      </dir> <!-- /js/plugins/pastetext/dialogs -->
+     </dir> <!-- /js/plugins/pastetext -->
      <dir name="scayt">
       <dir name="dialogs">
-       <file name="options.js" role="horde"/>
-       <file name="toolbar.css" role="horde"/>
-      </dir>
-     </dir>
+       <file name="options.js" role="horde" />
+       <file name="toolbar.css" role="horde" />
+      </dir> <!-- /js/plugins/scayt/dialogs -->
+     </dir> <!-- /js/plugins/scayt -->
      <dir name="showblocks">
       <dir name="images">
-       <file name="block_address.png" role="horde"/>
-       <file name="block_blockquote.png" role="horde"/>
-       <file name="block_div.png" role="horde"/>
-       <file name="block_h1.png" role="horde"/>
-       <file name="block_h2.png" role="horde"/>
-       <file name="block_h3.png" role="horde"/>
-       <file name="block_h4.png" role="horde"/>
-       <file name="block_h5.png" role="horde"/>
-       <file name="block_h6.png" role="horde"/>
-       <file name="block_p.png" role="horde"/>
-       <file name="block_pre.png" role="horde"/>
-      </dir>
-     </dir>
+       <file name="block_address.png" role="horde" />
+       <file name="block_blockquote.png" role="horde" />
+       <file name="block_div.png" role="horde" />
+       <file name="block_h1.png" role="horde" />
+       <file name="block_h2.png" role="horde" />
+       <file name="block_h3.png" role="horde" />
+       <file name="block_h4.png" role="horde" />
+       <file name="block_h5.png" role="horde" />
+       <file name="block_h6.png" role="horde" />
+       <file name="block_p.png" role="horde" />
+       <file name="block_pre.png" role="horde" />
+      </dir> <!-- /js/plugins/showblocks/images -->
+     </dir> <!-- /js/plugins/showblocks -->
      <dir name="smiley">
       <dir name="dialogs">
-       <file name="smiley.js" role="horde"/>
-      </dir>
+       <file name="smiley.js" role="horde" />
+      </dir> <!-- /js/plugins/smiley/dialogs -->
       <dir name="images">
-       <file name="angel_smile.gif" role="horde"/>
-       <file name="angry_smile.gif" role="horde"/>
-       <file name="broken_heart.gif" role="horde"/>
-       <file name="confused_smile.gif" role="horde"/>
-       <file name="cry_smile.gif" role="horde"/>
-       <file name="devil_smile.gif" role="horde"/>
-       <file name="embaressed_smile.gif" role="horde"/>
-       <file name="envelope.gif" role="horde"/>
-       <file name="heart.gif" role="horde"/>
-       <file name="kiss.gif" role="horde"/>
-       <file name="lightbulb.gif" role="horde"/>
-       <file name="omg_smile.gif" role="horde"/>
-       <file name="regular_smile.gif" role="horde"/>
-       <file name="sad_smile.gif" role="horde"/>
-       <file name="shades_smile.gif" role="horde"/>
-       <file name="teeth_smile.gif" role="horde"/>
-       <file name="thumbs_down.gif" role="horde"/>
-       <file name="thumbs_up.gif" role="horde"/>
-       <file name="tounge_smile.gif" role="horde"/>
-       <file name="whatchutalkingabout_smile.gif" role="horde"/>
-       <file name="wink_smile.gif" role="horde"/>
-      </dir>
-     </dir>
+       <file name="angel_smile.gif" role="horde" />
+       <file name="angry_smile.gif" role="horde" />
+       <file name="broken_heart.gif" role="horde" />
+       <file name="confused_smile.gif" role="horde" />
+       <file name="cry_smile.gif" role="horde" />
+       <file name="devil_smile.gif" role="horde" />
+       <file name="embaressed_smile.gif" role="horde" />
+       <file name="envelope.gif" role="horde" />
+       <file name="heart.gif" role="horde" />
+       <file name="kiss.gif" role="horde" />
+       <file name="lightbulb.gif" role="horde" />
+       <file name="omg_smile.gif" role="horde" />
+       <file name="regular_smile.gif" role="horde" />
+       <file name="sad_smile.gif" role="horde" />
+       <file name="shades_smile.gif" role="horde" />
+       <file name="teeth_smile.gif" role="horde" />
+       <file name="thumbs_down.gif" role="horde" />
+       <file name="thumbs_up.gif" role="horde" />
+       <file name="tounge_smile.gif" role="horde" />
+       <file name="whatchutalkingabout_smile.gif" role="horde" />
+       <file name="wink_smile.gif" role="horde" />
+      </dir> <!-- /js/plugins/smiley/images -->
+     </dir> <!-- /js/plugins/smiley -->
      <dir name="specialchar">
       <dir name="dialogs">
-       <file name="specialchar.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="specialchar.js" role="horde" />
+      </dir> <!-- /js/plugins/specialchar/dialogs -->
+     </dir> <!-- /js/plugins/specialchar -->
      <dir name="styles">
       <dir name="styles">
-       <file name="default.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="default.js" role="horde" />
+      </dir> <!-- /js/plugins/styles/styles -->
+     </dir> <!-- /js/plugins/styles -->
+     <dir name="syntaxhighlight">
+      <dir name="dialogs">
+       <file name="syntaxhighlight.js" role="horde" />
+      </dir> <!-- /js/plugins/syntaxhighlight/dialogs -->
+      <dir name="images">
+       <file name="syntaxhighlight.gif" role="horde" />
+      </dir> <!-- /js/plugins/syntaxhighlight/images -->
+      <dir name="lang">
+       <file name="en.js" role="horde" />
+      </dir> <!-- /js/plugins/syntaxhighlight/lang -->
+      <file name="plugin.js" role="horde" />
+     </dir> <!-- /js/plugins/syntaxhighlight -->
      <dir name="table">
       <dir name="dialogs">
-       <file name="table.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="table.js" role="horde" />
+      </dir> <!-- /js/plugins/table/dialogs -->
+     </dir> <!-- /js/plugins/table -->
      <dir name="tabletools">
       <dir name="dialogs">
-       <file name="tableCell.js" role="horde"/>
-      </dir>
-     </dir>
+       <file name="tableCell.js" role="horde" />
+      </dir> <!-- /js/plugins/tabletools/dialogs -->
+     </dir> <!-- /js/plugins/tabletools -->
      <dir name="templates">
       <dir name="dialogs">
-       <file name="templates.js" role="horde"/>
-      </dir>
+       <file name="templates.js" role="horde" />
+      </dir> <!-- /js/plugins/templates/dialogs -->
       <dir name="templates">
-       <file name="default.js" role="horde"/>
        <dir name="images">
-        <file name="template1.gif" role="horde"/>
-        <file name="template2.gif" role="horde"/>
-        <file name="template3.gif" role="horde"/>
-       </dir>
-      </dir>
-     </dir>
+        <file name="template1.gif" role="horde" />
+        <file name="template2.gif" role="horde" />
+        <file name="template3.gif" role="horde" />
+       </dir> <!-- /js/plugins/templates/templates/images -->
+       <file name="default.js" role="horde" />
+      </dir> <!-- /js/plugins/templates/templates -->
+     </dir> <!-- /js/plugins/templates -->
      <dir name="uicolor">
       <dir name="dialogs">
-       <file name="uicolor.js" role="horde"/>
-      </dir>
+       <file name="uicolor.js" role="horde" />
+      </dir> <!-- /js/plugins/uicolor/dialogs -->
       <dir name="lang">
-       <file name="en.js" role="horde"/>
-      </dir>
-      <file name="plugin.js" role="horde"/>
-      <file name="uicolor.gif" role="horde"/>
+       <file name="en.js" role="horde" />
+      </dir> <!-- /js/plugins/uicolor/lang -->
       <dir name="yui">
        <dir name="assets">
-        <file name="hue_bg.png" role="horde"/>
-        <file name="hue_thumb.png" role="horde"/>
-        <file name="picker_mask.png" role="horde"/>
-        <file name="picker_thumb.png" role="horde"/>
-        <file name="yui.css" role="horde"/>
-       </dir>
-       <file name="yui.js" role="horde"/>
-      </dir>
-     </dir>
+        <file name="hue_bg.png" role="horde" />
+        <file name="hue_thumb.png" role="horde" />
+        <file name="picker_mask.png" role="horde" />
+        <file name="picker_thumb.png" role="horde" />
+        <file name="yui.css" role="horde" />
+       </dir> <!-- /js/plugins/uicolor/yui/assets -->
+       <file name="yui.js" role="horde" />
+      </dir> <!-- /js/plugins/uicolor/yui -->
+      <file name="plugin.js" role="horde" />
+      <file name="uicolor.gif" role="horde" />
+     </dir> <!-- /js/plugins/uicolor -->
      <dir name="wsc">
       <dir name="dialogs">
-       <file name="ciframe.html" role="horde"/>
-       <file name="tmpFrameset.html" role="horde"/>
-       <file name="wsc.css" role="horde"/>
-       <file name="wsc.js" role="horde"/>
-      </dir>
-     </dir>
-    </dir>
+       <file name="ciframe.html" role="horde" />
+       <file name="tmpFrameset.html" role="horde" />
+       <file name="wsc.css" role="horde" />
+       <file name="wsc.js" role="horde" />
+      </dir> <!-- /js/plugins/wsc/dialogs -->
+     </dir> <!-- /js/plugins/wsc -->
+    </dir> <!-- /js/plugins -->
     <dir name="skins">
      <dir name="kama">
-      <file name="dialog.css" role="horde"/>
-      <file name="editor.css" role="horde"/>
-      <file name="icons.png" role="horde"/>
       <dir name="images">
-       <file name="dialog_sides.gif" role="horde"/>
-       <file name="dialog_sides.png" role="horde"/>
-       <file name="dialog_sides_rtl.png" role="horde"/>
-       <file name="mini.gif" role="horde"/>
-       <file name="noimage.png" role="horde"/>
-       <file name="sprites.png" role="horde"/>
-       <file name="sprites_ie6.png" role="horde"/>
-       <file name="toolbar_start.gif" role="horde"/>
-      </dir>
-      <file name="skin.js" role="horde"/>
-      <file name="templates.css" role="horde"/>
-     </dir>
+       <file name="dialog_sides.gif" role="horde" />
+       <file name="dialog_sides.png" role="horde" />
+       <file name="dialog_sides_rtl.png" role="horde" />
+       <file name="mini.gif" role="horde" />
+       <file name="noimage.png" role="horde" />
+       <file name="sprites.png" role="horde" />
+       <file name="sprites_ie6.png" role="horde" />
+       <file name="toolbar_start.gif" role="horde" />
+      </dir> <!-- /js/skins/kama/images -->
+      <file name="dialog.css" role="horde" />
+      <file name="editor.css" role="horde" />
+      <file name="icons.png" role="horde" />
+      <file name="skin.js" role="horde" />
+      <file name="templates.css" role="horde" />
+     </dir> <!-- /js/skins/kama -->
      <dir name="office2003">
-      <file name="dialog.css" role="horde"/>
-      <file name="editor.css" role="horde"/>
-      <file name="icons.png" role="horde"/>
       <dir name="images">
-       <file name="dialog_sides.gif" role="horde"/>
-       <file name="dialog_sides.png" role="horde"/>
-       <file name="dialog_sides_rtl.png" role="horde"/>
-       <file name="mini.gif" role="horde"/>
-       <file name="noimage.png" role="horde"/>
-       <file name="sprites.png" role="horde"/>
-       <file name="sprites_ie6.png" role="horde"/>
-      </dir>
-      <file name="skin.js" role="horde"/>
-      <file name="templates.css" role="horde"/>
-     </dir>
+       <file name="dialog_sides.gif" role="horde" />
+       <file name="dialog_sides.png" role="horde" />
+       <file name="dialog_sides_rtl.png" role="horde" />
+       <file name="mini.gif" role="horde" />
+       <file name="noimage.png" role="horde" />
+       <file name="sprites.png" role="horde" />
+       <file name="sprites_ie6.png" role="horde" />
+      </dir> <!-- /js/skins/office2003/images -->
+      <file name="dialog.css" role="horde" />
+      <file name="editor.css" role="horde" />
+      <file name="icons.png" role="horde" />
+      <file name="skin.js" role="horde" />
+      <file name="templates.css" role="horde" />
+     </dir> <!-- /js/skins/office2003 -->
      <dir name="v2">
-      <file name="dialog.css" role="horde"/>
-      <file name="editor.css" role="horde"/>
-      <file name="icons.png" role="horde"/>
       <dir name="images">
-       <file name="dialog_sides.gif" role="horde"/>
-       <file name="dialog_sides.png" role="horde"/>
-       <file name="dialog_sides_rtl.png" role="horde"/>
-       <file name="mini.gif" role="horde"/>
-       <file name="noimage.png" role="horde"/>
-       <file name="sprites.png" role="horde"/>
-       <file name="sprites_ie6.png" role="horde"/>
-       <file name="toolbar_start.gif" role="horde"/>
-      </dir>
-      <file name="skin.js" role="horde"/>
-      <file name="templates.css" role="horde"/>
-     </dir>
-    </dir>
+       <file name="dialog_sides.gif" role="horde" />
+       <file name="dialog_sides.png" role="horde" />
+       <file name="dialog_sides_rtl.png" role="horde" />
+       <file name="mini.gif" role="horde" />
+       <file name="noimage.png" role="horde" />
+       <file name="sprites.png" role="horde" />
+       <file name="sprites_ie6.png" role="horde" />
+       <file name="toolbar_start.gif" role="horde" />
+      </dir> <!-- /js/skins/v2/images -->
+      <file name="dialog.css" role="horde" />
+      <file name="editor.css" role="horde" />
+      <file name="icons.png" role="horde" />
+      <file name="skin.js" role="horde" />
+      <file name="templates.css" role="horde" />
+     </dir> <!-- /js/skins/v2 -->
+    </dir> <!-- /js/skins -->
     <dir name="themes">
      <dir name="default">
-      <file name="theme.js" role="horde"/>
-     </dir>
-    </dir>
-   </dir>
+      <file name="theme.js" role="horde" />
+     </dir> <!-- /js/themes/default -->
+    </dir> <!-- /js/themes -->
+    <file name="ckeditor.js" role="horde" />
+    <file name="ckeditor_basic.js" role="horde" />
+    <file name="config.js" role="horde" />
+    <file name="contents.css" role="horde" />
+    <file name="LICENSE.html" role="horde" />
+   </dir> <!-- /js -->
    <dir name="lib">
     <dir name="Horde">
      <dir name="Editor">
@@ -419,206 +430,226 @@ http://pear.php.net/dtd/package-2.0.xsd">
  </usesrole>
  <phprelease>
   <filelist>
-   <install name="js/LICENSE.html" as="js/ckeditor/LICENSE.html" />
-   <install name="js/ckeditor.js" as="js/ckeditor/ckeditor.js" />
-   <install name="js/ckeditor_basic.js" as="js/ckeditor/ckeditor_basic.js" />
-   <install name="js/config.js" as="js/ckeditor/config.js" />
-   <install name="js/contents.css" as="js/ckeditor/contents.css" />
-   <install name="js/images/spacer.gif" as="js/ckeditor/images/spacer.gif" />
-   <install name="js/lang/_languages.js" as="js/ckeditor/lang/_languages.js" />
-   <install name="js/lang/af.js" as="js/ckeditor/lang/af.js" />
-   <install name="js/lang/ar.js" as="js/ckeditor/lang/ar.js" />
-   <install name="js/lang/bg.js" as="js/ckeditor/lang/bg.js" />
-   <install name="js/lang/bn.js" as="js/ckeditor/lang/bn.js" />
-   <install name="js/lang/bs.js" as="js/ckeditor/lang/bs.js" />
-   <install name="js/lang/ca.js" as="js/ckeditor/lang/ca.js" />
-   <install name="js/lang/cs.js" as="js/ckeditor/lang/cs.js" />
-   <install name="js/lang/cy.js" as="js/ckeditor/lang/cy.js" />
-   <install name="js/lang/da.js" as="js/ckeditor/lang/da.js" />
-   <install name="js/lang/de.js" as="js/ckeditor/lang/de.js" />
-   <install name="js/lang/el.js" as="js/ckeditor/lang/el.js" />
-   <install name="js/lang/en-au.js" as="js/ckeditor/lang/en-au.js" />
-   <install name="js/lang/en-ca.js" as="js/ckeditor/lang/en-ca.js" />
-   <install name="js/lang/en-gb.js" as="js/ckeditor/lang/en-gb.js" />
-   <install name="js/lang/en.js" as="js/ckeditor/lang/en.js" />
-   <install name="js/lang/eo.js" as="js/ckeditor/lang/eo.js" />
-   <install name="js/lang/es.js" as="js/ckeditor/lang/es.js" />
-   <install name="js/lang/et.js" as="js/ckeditor/lang/et.js" />
-   <install name="js/lang/eu.js" as="js/ckeditor/lang/eu.js" />
-   <install name="js/lang/fa.js" as="js/ckeditor/lang/fa.js" />
-   <install name="js/lang/fi.js" as="js/ckeditor/lang/fi.js" />
-   <install name="js/lang/fo.js" as="js/ckeditor/lang/fo.js" />
-   <install name="js/lang/fr-ca.js" as="js/ckeditor/lang/fr-ca.js" />
-   <install name="js/lang/fr.js" as="js/ckeditor/lang/fr.js" />
-   <install name="js/lang/gl.js" as="js/ckeditor/lang/gl.js" />
-   <install name="js/lang/gu.js" as="js/ckeditor/lang/gu.js" />
-   <install name="js/lang/he.js" as="js/ckeditor/lang/he.js" />
-   <install name="js/lang/hi.js" as="js/ckeditor/lang/hi.js" />
-   <install name="js/lang/hr.js" as="js/ckeditor/lang/hr.js" />
-   <install name="js/lang/hu.js" as="js/ckeditor/lang/hu.js" />
-   <install name="js/lang/is.js" as="js/ckeditor/lang/is.js" />
-   <install name="js/lang/it.js" as="js/ckeditor/lang/it.js" />
-   <install name="js/lang/ja.js" as="js/ckeditor/lang/ja.js" />
-   <install name="js/lang/km.js" as="js/ckeditor/lang/km.js" />
-   <install name="js/lang/ko.js" as="js/ckeditor/lang/ko.js" />
-   <install name="js/lang/lt.js" as="js/ckeditor/lang/lt.js" />
-   <install name="js/lang/lv.js" as="js/ckeditor/lang/lv.js" />
-   <install name="js/lang/mn.js" as="js/ckeditor/lang/mn.js" />
-   <install name="js/lang/ms.js" as="js/ckeditor/lang/ms.js" />
-   <install name="js/lang/nb.js" as="js/ckeditor/lang/nb.js" />
-   <install name="js/lang/nl.js" as="js/ckeditor/lang/nl.js" />
-   <install name="js/lang/no.js" as="js/ckeditor/lang/no.js" />
-   <install name="js/lang/pl.js" as="js/ckeditor/lang/pl.js" />
-   <install name="js/lang/pt-br.js" as="js/ckeditor/lang/pt-br.js" />
-   <install name="js/lang/pt.js" as="js/ckeditor/lang/pt.js" />
-   <install name="js/lang/ro.js" as="js/ckeditor/lang/ro.js" />
-   <install name="js/lang/ru.js" as="js/ckeditor/lang/ru.js" />
-   <install name="js/lang/sk.js" as="js/ckeditor/lang/sk.js" />
-   <install name="js/lang/sl.js" as="js/ckeditor/lang/sl.js" />
-   <install name="js/lang/sr-latn.js" as="js/ckeditor/lang/sr-latn.js" />
-   <install name="js/lang/sr.js" as="js/ckeditor/lang/sr.js" />
-   <install name="js/lang/sv.js" as="js/ckeditor/lang/sv.js" />
-   <install name="js/lang/th.js" as="js/ckeditor/lang/th.js" />
-   <install name="js/lang/tr.js" as="js/ckeditor/lang/tr.js" />
-   <install name="js/lang/uk.js" as="js/ckeditor/lang/uk.js" />
-   <install name="js/lang/vi.js" as="js/ckeditor/lang/vi.js" />
-   <install name="js/lang/zh-cn.js" as="js/ckeditor/lang/zh-cn.js" />
-   <install name="js/lang/zh.js" as="js/ckeditor/lang/zh.js" />
-   <install name="js/plugins/a11yhelp/dialogs/a11yhelp.js" as="js/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js" />
-   <install name="js/plugins/a11yhelp/lang/en.js" as="js/ckeditor/plugins/a11yhelp/lang/en.js" />
-   <install name="js/plugins/a11yhelp/lang/he.js" as="js/ckeditor/plugins/a11yhelp/lang/he.js" />
-   <install name="js/plugins/about/dialogs/about.js" as="js/ckeditor/plugins/about/dialogs/about.js" />
-   <install name="js/plugins/about/dialogs/logo_ckeditor.png" as="js/ckeditor/plugins/about/dialogs/logo_ckeditor.png" />
-   <install name="js/plugins/clipboard/dialogs/paste.js" as="js/ckeditor/plugins/clipboard/dialogs/paste.js" />
-   <install name="js/plugins/colordialog/dialogs/colordialog.js" as="js/ckeditor/plugins/colordialog/dialogs/colordialog.js" />
-   <install name="js/plugins/dialog/dialogDefinition.js" as="js/ckeditor/plugins/dialog/dialogDefinition.js" />
-   <install name="js/plugins/div/dialogs/div.js" as="js/ckeditor/plugins/div/dialogs/div.js" />
-   <install name="js/plugins/find/dialogs/find.js" as="js/ckeditor/plugins/find/dialogs/find.js" />
-   <install name="js/plugins/flash/dialogs/flash.js" as="js/ckeditor/plugins/flash/dialogs/flash.js" />
-   <install name="js/plugins/flash/images/placeholder.png" as="js/ckeditor/plugins/flash/images/placeholder.png" />
-   <install name="js/plugins/forms/dialogs/button.js" as="js/ckeditor/plugins/forms/dialogs/button.js" />
-   <install name="js/plugins/forms/dialogs/checkbox.js" as="js/ckeditor/plugins/forms/dialogs/checkbox.js" />
-   <install name="js/plugins/forms/dialogs/form.js" as="js/ckeditor/plugins/forms/dialogs/form.js" />
-   <install name="js/plugins/forms/dialogs/hiddenfield.js" as="js/ckeditor/plugins/forms/dialogs/hiddenfield.js" />
-   <install name="js/plugins/forms/dialogs/radio.js" as="js/ckeditor/plugins/forms/dialogs/radio.js" />
-   <install name="js/plugins/forms/dialogs/select.js" as="js/ckeditor/plugins/forms/dialogs/select.js" />
-   <install name="js/plugins/forms/dialogs/textarea.js" as="js/ckeditor/plugins/forms/dialogs/textarea.js" />
-   <install name="js/plugins/forms/dialogs/textfield.js" as="js/ckeditor/plugins/forms/dialogs/textfield.js" />
-   <install name="js/plugins/forms/images/hiddenfield.gif" as="js/ckeditor/plugins/forms/images/hiddenfield.gif" />
-   <install name="js/plugins/iframedialog/plugin.js" as="js/ckeditor/plugins/iframedialog/plugin.js" />
-   <install name="js/plugins/image/dialogs/image.js" as="js/ckeditor/plugins/image/dialogs/image.js" />
-   <install name="js/plugins/link/dialogs/anchor.js" as="js/ckeditor/plugins/link/dialogs/anchor.js" />
-   <install name="js/plugins/link/dialogs/link.js" as="js/ckeditor/plugins/link/dialogs/link.js" />
-   <install name="js/plugins/link/images/anchor.gif" as="js/ckeditor/plugins/link/images/anchor.gif" />
-   <install name="js/plugins/liststyle/dialogs/liststyle.js" as="js/ckeditor/plugins/liststyle/dialogs/liststyle.js" />
-   <install name="js/plugins/pagebreak/images/pagebreak.gif" as="js/ckeditor/plugins/pagebreak/images/pagebreak.gif" />
-   <install name="js/plugins/pastefromword/filter/default.js" as="js/ckeditor/plugins/pastefromword/filter/default.js" />
-   <install name="js/plugins/pastetext/dialogs/pastetext.js" as="js/ckeditor/plugins/pastetext/dialogs/pastetext.js" />
-   <install name="js/plugins/scayt/dialogs/options.js" as="js/ckeditor/plugins/scayt/dialogs/options.js" />
-   <install name="js/plugins/scayt/dialogs/toolbar.css" as="js/ckeditor/plugins/scayt/dialogs/toolbar.css" />
-   <install name="js/plugins/showblocks/images/block_address.png" as="js/ckeditor/plugins/showblocks/images/block_address.png" />
-   <install name="js/plugins/showblocks/images/block_blockquote.png" as="js/ckeditor/plugins/showblocks/images/block_blockquote.png" />
-   <install name="js/plugins/showblocks/images/block_div.png" as="js/ckeditor/plugins/showblocks/images/block_div.png" />
-   <install name="js/plugins/showblocks/images/block_h1.png" as="js/ckeditor/plugins/showblocks/images/block_h1.png" />
-   <install name="js/plugins/showblocks/images/block_h2.png" as="js/ckeditor/plugins/showblocks/images/block_h2.png" />
-   <install name="js/plugins/showblocks/images/block_h3.png" as="js/ckeditor/plugins/showblocks/images/block_h3.png" />
-   <install name="js/plugins/showblocks/images/block_h4.png" as="js/ckeditor/plugins/showblocks/images/block_h4.png" />
-   <install name="js/plugins/showblocks/images/block_h5.png" as="js/ckeditor/plugins/showblocks/images/block_h5.png" />
-   <install name="js/plugins/showblocks/images/block_h6.png" as="js/ckeditor/plugins/showblocks/images/block_h6.png" />
-   <install name="js/plugins/showblocks/images/block_p.png" as="js/ckeditor/plugins/showblocks/images/block_p.png" />
-   <install name="js/plugins/showblocks/images/block_pre.png" as="js/ckeditor/plugins/showblocks/images/block_pre.png" />
-   <install name="js/plugins/smiley/dialogs/smiley.js" as="js/ckeditor/plugins/smiley/dialogs/smiley.js" />
-   <install name="js/plugins/smiley/images/angel_smile.gif" as="js/ckeditor/plugins/smiley/images/angel_smile.gif" />
-   <install name="js/plugins/smiley/images/angry_smile.gif" as="js/ckeditor/plugins/smiley/images/angry_smile.gif" />
-   <install name="js/plugins/smiley/images/broken_heart.gif" as="js/ckeditor/plugins/smiley/images/broken_heart.gif" />
-   <install name="js/plugins/smiley/images/confused_smile.gif" as="js/ckeditor/plugins/smiley/images/confused_smile.gif" />
-   <install name="js/plugins/smiley/images/cry_smile.gif" as="js/ckeditor/plugins/smiley/images/cry_smile.gif" />
-   <install name="js/plugins/smiley/images/devil_smile.gif" as="js/ckeditor/plugins/smiley/images/devil_smile.gif" />
-   <install name="js/plugins/smiley/images/embaressed_smile.gif" as="js/ckeditor/plugins/smiley/images/embaressed_smile.gif" />
-   <install name="js/plugins/smiley/images/envelope.gif" as="js/ckeditor/plugins/smiley/images/envelope.gif" />
-   <install name="js/plugins/smiley/images/heart.gif" as="js/ckeditor/plugins/smiley/images/heart.gif" />
-   <install name="js/plugins/smiley/images/kiss.gif" as="js/ckeditor/plugins/smiley/images/kiss.gif" />
-   <install name="js/plugins/smiley/images/lightbulb.gif" as="js/ckeditor/plugins/smiley/images/lightbulb.gif" />
-   <install name="js/plugins/smiley/images/omg_smile.gif" as="js/ckeditor/plugins/smiley/images/omg_smile.gif" />
-   <install name="js/plugins/smiley/images/regular_smile.gif" as="js/ckeditor/plugins/smiley/images/regular_smile.gif" />
-   <install name="js/plugins/smiley/images/sad_smile.gif" as="js/ckeditor/plugins/smiley/images/sad_smile.gif" />
-   <install name="js/plugins/smiley/images/shades_smile.gif" as="js/ckeditor/plugins/smiley/images/shades_smile.gif" />
-   <install name="js/plugins/smiley/images/teeth_smile.gif" as="js/ckeditor/plugins/smiley/images/teeth_smile.gif" />
-   <install name="js/plugins/smiley/images/thumbs_down.gif" as="js/ckeditor/plugins/smiley/images/thumbs_down.gif" />
-   <install name="js/plugins/smiley/images/thumbs_up.gif" as="js/ckeditor/plugins/smiley/images/thumbs_up.gif" />
-   <install name="js/plugins/smiley/images/tounge_smile.gif" as="js/ckeditor/plugins/smiley/images/tounge_smile.gif" />
-   <install name="js/plugins/smiley/images/whatchutalkingabout_smile.gif" as="js/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif" />
-   <install name="js/plugins/smiley/images/wink_smile.gif" as="js/ckeditor/plugins/smiley/images/wink_smile.gif" />
-   <install name="js/plugins/specialchar/dialogs/specialchar.js" as="js/ckeditor/plugins/specialchar/dialogs/specialchar.js" />
-   <install name="js/plugins/styles/styles/default.js" as="js/ckeditor/plugins/styles/styles/default.js" />
-   <install name="js/plugins/table/dialogs/table.js" as="js/ckeditor/plugins/table/dialogs/table.js" />
-   <install name="js/plugins/tabletools/dialogs/tableCell.js" as="js/ckeditor/plugins/tabletools/dialogs/tableCell.js" />
-   <install name="js/plugins/templates/dialogs/templates.js" as="js/ckeditor/plugins/templates/dialogs/templates.js" />
-   <install name="js/plugins/templates/templates/default.js" as="js/ckeditor/plugins/templates/templates/default.js" />
-   <install name="js/plugins/templates/templates/images/template1.gif" as="js/ckeditor/plugins/templates/templates/images/template1.gif" />
-   <install name="js/plugins/templates/templates/images/template2.gif" as="js/ckeditor/plugins/templates/templates/images/template2.gif" />
-   <install name="js/plugins/templates/templates/images/template3.gif" as="js/ckeditor/plugins/templates/templates/images/template3.gif" />
-   <install name="js/plugins/uicolor/dialogs/uicolor.js" as="js/ckeditor/plugins/uicolor/dialogs/uicolor.js" />
-   <install name="js/plugins/uicolor/lang/en.js" as="js/ckeditor/plugins/uicolor/lang/en.js" />
-   <install name="js/plugins/uicolor/plugin.js" as="js/ckeditor/plugins/uicolor/plugin.js" />
-   <install name="js/plugins/uicolor/uicolor.gif" as="js/ckeditor/plugins/uicolor/uicolor.gif" />
-   <install name="js/plugins/uicolor/yui/assets/hue_bg.png" as="js/ckeditor/plugins/uicolor/yui/assets/hue_bg.png" />
-   <install name="js/plugins/uicolor/yui/assets/hue_thumb.png" as="js/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png" />
-   <install name="js/plugins/uicolor/yui/assets/picker_mask.png" as="js/ckeditor/plugins/uicolor/yui/assets/picker_mask.png" />
-   <install name="js/plugins/uicolor/yui/assets/picker_thumb.png" as="js/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png" />
-   <install name="js/plugins/uicolor/yui/assets/yui.css" as="js/ckeditor/plugins/uicolor/yui/assets/yui.css" />
-   <install name="js/plugins/uicolor/yui/yui.js" as="js/ckeditor/plugins/uicolor/yui/yui.js" />
-   <install name="js/plugins/wsc/dialogs/ciframe.html" as="js/ckeditor/plugins/wsc/dialogs/ciframe.html" />
-   <install name="js/plugins/wsc/dialogs/tmpFrameset.html" as="js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html" />
-   <install name="js/plugins/wsc/dialogs/wsc.css" as="js/ckeditor/plugins/wsc/dialogs/wsc.css" />
-   <install name="js/plugins/wsc/dialogs/wsc.js" as="js/ckeditor/plugins/wsc/dialogs/wsc.js" />
-   <install name="js/skins/kama/dialog.css" as="js/ckeditor/skins/kama/dialog.css" />
-   <install name="js/skins/kama/editor.css" as="js/ckeditor/skins/kama/editor.css" />
-   <install name="js/skins/kama/icons.png" as="js/ckeditor/skins/kama/icons.png" />
-   <install name="js/skins/kama/images/dialog_sides.gif" as="js/ckeditor/skins/kama/images/dialog_sides.gif" />
-   <install name="js/skins/kama/images/dialog_sides.png" as="js/ckeditor/skins/kama/images/dialog_sides.png" />
-   <install name="js/skins/kama/images/dialog_sides_rtl.png" as="js/ckeditor/skins/kama/images/dialog_sides_rtl.png" />
-   <install name="js/skins/kama/images/mini.gif" as="js/ckeditor/skins/kama/images/mini.gif" />
-   <install name="js/skins/kama/images/noimage.png" as="js/ckeditor/skins/kama/images/noimage.png" />
-   <install name="js/skins/kama/images/sprites.png" as="js/ckeditor/skins/kama/images/sprites.png" />
-   <install name="js/skins/kama/images/sprites_ie6.png" as="js/ckeditor/skins/kama/images/sprites_ie6.png" />
-   <install name="js/skins/kama/images/toolbar_start.gif" as="js/ckeditor/skins/kama/images/toolbar_start.gif" />
-   <install name="js/skins/kama/skin.js" as="js/ckeditor/skins/kama/skin.js" />
-   <install name="js/skins/kama/templates.css" as="js/ckeditor/skins/kama/templates.css" />
-   <install name="js/skins/office2003/dialog.css" as="js/ckeditor/skins/office2003/dialog.css" />
-   <install name="js/skins/office2003/editor.css" as="js/ckeditor/skins/office2003/editor.css" />
-   <install name="js/skins/office2003/icons.png" as="js/ckeditor/skins/office2003/icons.png" />
-   <install name="js/skins/office2003/images/dialog_sides.gif" as="js/ckeditor/skins/office2003/images/dialog_sides.gif" />
-   <install name="js/skins/office2003/images/dialog_sides.png" as="js/ckeditor/skins/office2003/images/dialog_sides.png" />
-   <install name="js/skins/office2003/images/dialog_sides_rtl.png" as="js/ckeditor/skins/office2003/images/dialog_sides_rtl.png" />
-   <install name="js/skins/office2003/images/mini.gif" as="js/ckeditor/skins/office2003/images/mini.gif" />
-   <install name="js/skins/office2003/images/noimage.png" as="js/ckeditor/skins/office2003/images/noimage.png" />
-   <install name="js/skins/office2003/images/sprites.png" as="js/ckeditor/skins/office2003/images/sprites.png" />
-   <install name="js/skins/office2003/images/sprites_ie6.png" as="js/ckeditor/skins/office2003/images/sprites_ie6.png" />
-   <install name="js/skins/office2003/skin.js" as="js/ckeditor/skins/office2003/skin.js" />
-   <install name="js/skins/office2003/templates.css" as="js/ckeditor/skins/office2003/templates.css" />
-   <install name="js/skins/v2/dialog.css" as="js/ckeditor/skins/v2/dialog.css" />
-   <install name="js/skins/v2/editor.css" as="js/ckeditor/skins/v2/editor.css" />
-   <install name="js/skins/v2/icons.png" as="js/ckeditor/skins/v2/icons.png" />
-   <install name="js/skins/v2/images/dialog_sides.gif" as="js/ckeditor/skins/v2/images/dialog_sides.gif" />
-   <install name="js/skins/v2/images/dialog_sides.png" as="js/ckeditor/skins/v2/images/dialog_sides.png" />
-   <install name="js/skins/v2/images/dialog_sides_rtl.png" as="js/ckeditor/skins/v2/images/dialog_sides_rtl.png" />
-   <install name="js/skins/v2/images/mini.gif" as="js/ckeditor/skins/v2/images/mini.gif" />
-   <install name="js/skins/v2/images/noimage.png" as="js/ckeditor/skins/v2/images/noimage.png" />
-   <install name="js/skins/v2/images/sprites.png" as="js/ckeditor/skins/v2/images/sprites.png" />
-   <install name="js/skins/v2/images/sprites_ie6.png" as="js/ckeditor/skins/v2/images/sprites_ie6.png" />
-   <install name="js/skins/v2/images/toolbar_start.gif" as="js/ckeditor/skins/v2/images/toolbar_start.gif" />
-   <install name="js/skins/v2/skin.js" as="js/ckeditor/skins/v2/skin.js" />
-   <install name="js/skins/v2/templates.css" as="js/ckeditor/skins/v2/templates.css" />
-   <install name="js/themes/default/theme.js" as="js/ckeditor/themes/default/theme.js" />
-   <install name="lib/Horde/Editor/Ckeditor.php" as="Horde/Editor/Ckeditor.php" />
-   <install name="lib/Horde/Editor/Exception.php" as="Horde/Editor/Exception.php" />
-   <install name="lib/Horde/Editor.php" as="Horde/Editor.php" />
+   <install as="js/ckeditor.js" name="js/ckeditor.js" />
+   <install as="js/ckeditor_basic.js" name="js/ckeditor_basic.js" />
+   <install as="js/config.js" name="js/config.js" />
+   <install as="js/contents.css" name="js/contents.css" />
+   <install as="js/LICENSE.html" name="js/LICENSE.html" />
+   <install as="js/images/spacer.gif" name="js/images/spacer.gif" />
+   <install as="js/lang/af.js" name="js/lang/af.js" />
+   <install as="js/lang/ar.js" name="js/lang/ar.js" />
+   <install as="js/lang/bg.js" name="js/lang/bg.js" />
+   <install as="js/lang/bn.js" name="js/lang/bn.js" />
+   <install as="js/lang/bs.js" name="js/lang/bs.js" />
+   <install as="js/lang/ca.js" name="js/lang/ca.js" />
+   <install as="js/lang/cs.js" name="js/lang/cs.js" />
+   <install as="js/lang/cy.js" name="js/lang/cy.js" />
+   <install as="js/lang/da.js" name="js/lang/da.js" />
+   <install as="js/lang/de.js" name="js/lang/de.js" />
+   <install as="js/lang/el.js" name="js/lang/el.js" />
+   <install as="js/lang/en-au.js" name="js/lang/en-au.js" />
+   <install as="js/lang/en-ca.js" name="js/lang/en-ca.js" />
+   <install as="js/lang/en-gb.js" name="js/lang/en-gb.js" />
+   <install as="js/lang/en.js" name="js/lang/en.js" />
+   <install as="js/lang/eo.js" name="js/lang/eo.js" />
+   <install as="js/lang/es.js" name="js/lang/es.js" />
+   <install as="js/lang/et.js" name="js/lang/et.js" />
+   <install as="js/lang/eu.js" name="js/lang/eu.js" />
+   <install as="js/lang/fa.js" name="js/lang/fa.js" />
+   <install as="js/lang/fi.js" name="js/lang/fi.js" />
+   <install as="js/lang/fo.js" name="js/lang/fo.js" />
+   <install as="js/lang/fr-ca.js" name="js/lang/fr-ca.js" />
+   <install as="js/lang/fr.js" name="js/lang/fr.js" />
+   <install as="js/lang/gl.js" name="js/lang/gl.js" />
+   <install as="js/lang/gu.js" name="js/lang/gu.js" />
+   <install as="js/lang/he.js" name="js/lang/he.js" />
+   <install as="js/lang/hi.js" name="js/lang/hi.js" />
+   <install as="js/lang/hr.js" name="js/lang/hr.js" />
+   <install as="js/lang/hu.js" name="js/lang/hu.js" />
+   <install as="js/lang/is.js" name="js/lang/is.js" />
+   <install as="js/lang/it.js" name="js/lang/it.js" />
+   <install as="js/lang/ja.js" name="js/lang/ja.js" />
+   <install as="js/lang/km.js" name="js/lang/km.js" />
+   <install as="js/lang/ko.js" name="js/lang/ko.js" />
+   <install as="js/lang/lt.js" name="js/lang/lt.js" />
+   <install as="js/lang/lv.js" name="js/lang/lv.js" />
+   <install as="js/lang/mn.js" name="js/lang/mn.js" />
+   <install as="js/lang/ms.js" name="js/lang/ms.js" />
+   <install as="js/lang/nb.js" name="js/lang/nb.js" />
+   <install as="js/lang/nl.js" name="js/lang/nl.js" />
+   <install as="js/lang/no.js" name="js/lang/no.js" />
+   <install as="js/lang/pl.js" name="js/lang/pl.js" />
+   <install as="js/lang/pt-br.js" name="js/lang/pt-br.js" />
+   <install as="js/lang/pt.js" name="js/lang/pt.js" />
+   <install as="js/lang/ro.js" name="js/lang/ro.js" />
+   <install as="js/lang/ru.js" name="js/lang/ru.js" />
+   <install as="js/lang/sk.js" name="js/lang/sk.js" />
+   <install as="js/lang/sl.js" name="js/lang/sl.js" />
+   <install as="js/lang/sr-latn.js" name="js/lang/sr-latn.js" />
+   <install as="js/lang/sr.js" name="js/lang/sr.js" />
+   <install as="js/lang/sv.js" name="js/lang/sv.js" />
+   <install as="js/lang/th.js" name="js/lang/th.js" />
+   <install as="js/lang/tr.js" name="js/lang/tr.js" />
+   <install as="js/lang/uk.js" name="js/lang/uk.js" />
+   <install as="js/lang/vi.js" name="js/lang/vi.js" />
+   <install as="js/lang/zh-cn.js" name="js/lang/zh-cn.js" />
+   <install as="js/lang/zh.js" name="js/lang/zh.js" />
+   <install as="js/lang/_languages.js" name="js/lang/_languages.js" />
+   <install as="js/plugins/a11yhelp/dialogs/a11yhelp.js" name="js/plugins/a11yhelp/dialogs/a11yhelp.js" />
+   <install as="js/plugins/a11yhelp/lang/en.js" name="js/plugins/a11yhelp/lang/en.js" />
+   <install as="js/plugins/a11yhelp/lang/he.js" name="js/plugins/a11yhelp/lang/he.js" />
+   <install as="js/plugins/about/dialogs/about.js" name="js/plugins/about/dialogs/about.js" />
+   <install as="js/plugins/about/dialogs/logo_ckeditor.png" name="js/plugins/about/dialogs/logo_ckeditor.png" />
+   <install as="js/plugins/clipboard/dialogs/paste.js" name="js/plugins/clipboard/dialogs/paste.js" />
+   <install as="js/plugins/colordialog/dialogs/colordialog.js" name="js/plugins/colordialog/dialogs/colordialog.js" />
+   <install as="js/plugins/dialog/dialogDefinition.js" name="js/plugins/dialog/dialogDefinition.js" />
+   <install as="js/plugins/div/dialogs/div.js" name="js/plugins/div/dialogs/div.js" />
+   <install as="js/plugins/find/dialogs/find.js" name="js/plugins/find/dialogs/find.js" />
+   <install as="js/plugins/flash/dialogs/flash.js" name="js/plugins/flash/dialogs/flash.js" />
+   <install as="js/plugins/flash/images/placeholder.png" name="js/plugins/flash/images/placeholder.png" />
+   <install as="js/plugins/forms/dialogs/button.js" name="js/plugins/forms/dialogs/button.js" />
+   <install as="js/plugins/forms/dialogs/checkbox.js" name="js/plugins/forms/dialogs/checkbox.js" />
+   <install as="js/plugins/forms/dialogs/form.js" name="js/plugins/forms/dialogs/form.js" />
+   <install as="js/plugins/forms/dialogs/hiddenfield.js" name="js/plugins/forms/dialogs/hiddenfield.js" />
+   <install as="js/plugins/forms/dialogs/radio.js" name="js/plugins/forms/dialogs/radio.js" />
+   <install as="js/plugins/forms/dialogs/select.js" name="js/plugins/forms/dialogs/select.js" />
+   <install as="js/plugins/forms/dialogs/textarea.js" name="js/plugins/forms/dialogs/textarea.js" />
+   <install as="js/plugins/forms/dialogs/textfield.js" name="js/plugins/forms/dialogs/textfield.js" />
+   <install as="js/plugins/forms/images/hiddenfield.gif" name="js/plugins/forms/images/hiddenfield.gif" />
+   <install as="js/plugins/iframedialog/plugin.js" name="js/plugins/iframedialog/plugin.js" />
+   <install as="js/plugins/image/dialogs/image.js" name="js/plugins/image/dialogs/image.js" />
+   <install as="js/plugins/link/dialogs/anchor.js" name="js/plugins/link/dialogs/anchor.js" />
+   <install as="js/plugins/link/dialogs/link.js" name="js/plugins/link/dialogs/link.js" />
+   <install as="js/plugins/link/images/anchor.gif" name="js/plugins/link/images/anchor.gif" />
+   <install as="js/plugins/liststyle/plugin.js" name="js/plugins/liststyle/plugin.js" />
+   <install as="js/plugins/liststyle/dialogs/liststyle.js" name="js/plugins/liststyle/dialogs/liststyle.js" />
+   <install as="js/plugins/pagebreak/images/pagebreak.gif" name="js/plugins/pagebreak/images/pagebreak.gif" />
+   <install as="js/plugins/pastefromword/filter/default.js" name="js/plugins/pastefromword/filter/default.js" />
+   <install as="js/plugins/pastetext/dialogs/pastetext.js" name="js/plugins/pastetext/dialogs/pastetext.js" />
+   <install as="js/plugins/scayt/dialogs/options.js" name="js/plugins/scayt/dialogs/options.js" />
+   <install as="js/plugins/scayt/dialogs/toolbar.css" name="js/plugins/scayt/dialogs/toolbar.css" />
+   <install as="js/plugins/showblocks/images/block_address.png" name="js/plugins/showblocks/images/block_address.png" />
+   <install as="js/plugins/showblocks/images/block_blockquote.png" name="js/plugins/showblocks/images/block_blockquote.png" />
+   <install as="js/plugins/showblocks/images/block_div.png" name="js/plugins/showblocks/images/block_div.png" />
+   <install as="js/plugins/showblocks/images/block_h1.png" name="js/plugins/showblocks/images/block_h1.png" />
+   <install as="js/plugins/showblocks/images/block_h2.png" name="js/plugins/showblocks/images/block_h2.png" />
+   <install as="js/plugins/showblocks/images/block_h3.png" name="js/plugins/showblocks/images/block_h3.png" />
+   <install as="js/plugins/showblocks/images/block_h4.png" name="js/plugins/showblocks/images/block_h4.png" />
+   <install as="js/plugins/showblocks/images/block_h5.png" name="js/plugins/showblocks/images/block_h5.png" />
+   <install as="js/plugins/showblocks/images/block_h6.png" name="js/plugins/showblocks/images/block_h6.png" />
+   <install as="js/plugins/showblocks/images/block_p.png" name="js/plugins/showblocks/images/block_p.png" />
+   <install as="js/plugins/showblocks/images/block_pre.png" name="js/plugins/showblocks/images/block_pre.png" />
+   <install as="js/plugins/smiley/dialogs/smiley.js" name="js/plugins/smiley/dialogs/smiley.js" />
+   <install as="js/plugins/smiley/images/angel_smile.gif" name="js/plugins/smiley/images/angel_smile.gif" />
+   <install as="js/plugins/smiley/images/angry_smile.gif" name="js/plugins/smiley/images/angry_smile.gif" />
+   <install as="js/plugins/smiley/images/broken_heart.gif" name="js/plugins/smiley/images/broken_heart.gif" />
+   <install as="js/plugins/smiley/images/confused_smile.gif" name="js/plugins/smiley/images/confused_smile.gif" />
+   <install as="js/plugins/smiley/images/cry_smile.gif" name="js/plugins/smiley/images/cry_smile.gif" />
+   <install as="js/plugins/smiley/images/devil_smile.gif" name="js/plugins/smiley/images/devil_smile.gif" />
+   <install as="js/plugins/smiley/images/embaressed_smile.gif" name="js/plugins/smiley/images/embaressed_smile.gif" />
+   <install as="js/plugins/smiley/images/envelope.gif" name="js/plugins/smiley/images/envelope.gif" />
+   <install as="js/plugins/smiley/images/heart.gif" name="js/plugins/smiley/images/heart.gif" />
+   <install as="js/plugins/smiley/images/kiss.gif" name="js/plugins/smiley/images/kiss.gif" />
+   <install as="js/plugins/smiley/images/lightbulb.gif" name="js/plugins/smiley/images/lightbulb.gif" />
+   <install as="js/plugins/smiley/images/omg_smile.gif" name="js/plugins/smiley/images/omg_smile.gif" />
+   <install as="js/plugins/smiley/images/regular_smile.gif" name="js/plugins/smiley/images/regular_smile.gif" />
+   <install as="js/plugins/smiley/images/sad_smile.gif" name="js/plugins/smiley/images/sad_smile.gif" />
+   <install as="js/plugins/smiley/images/shades_smile.gif" name="js/plugins/smiley/images/shades_smile.gif" />
+   <install as="js/plugins/smiley/images/teeth_smile.gif" name="js/plugins/smiley/images/teeth_smile.gif" />
+   <install as="js/plugins/smiley/images/thumbs_down.gif" name="js/plugins/smiley/images/thumbs_down.gif" />
+   <install as="js/plugins/smiley/images/thumbs_up.gif" name="js/plugins/smiley/images/thumbs_up.gif" />
+   <install as="js/plugins/smiley/images/tounge_smile.gif" name="js/plugins/smiley/images/tounge_smile.gif" />
+   <install as="js/plugins/smiley/images/whatchutalkingabout_smile.gif" name="js/plugins/smiley/images/whatchutalkingabout_smile.gif" />
+   <install as="js/plugins/smiley/images/wink_smile.gif" name="js/plugins/smiley/images/wink_smile.gif" />
+   <install as="js/plugins/specialchar/dialogs/specialchar.js" name="js/plugins/specialchar/dialogs/specialchar.js" />
+   <install as="js/plugins/styles/styles/default.js" name="js/plugins/styles/styles/default.js" />
+   <install as="js/plugins/syntaxhighlight/plugin.js" name="js/plugins/syntaxhighlight/plugin.js" />
+   <install as="js/plugins/syntaxhighlight/dialogs/syntaxhighlight.js" name="js/plugins/syntaxhighlight/dialogs/syntaxhighlight.js" />
+   <install as="js/plugins/syntaxhighlight/images/syntaxhighlight.gif" name="js/plugins/syntaxhighlight/images/syntaxhighlight.gif" />
+   <install as="js/plugins/syntaxhighlight/lang/en.js" name="js/plugins/syntaxhighlight/lang/en.js" />
+   <install as="js/plugins/table/dialogs/table.js" name="js/plugins/table/dialogs/table.js" />
+   <install as="js/plugins/tabletools/dialogs/tableCell.js" name="js/plugins/tabletools/dialogs/tableCell.js" />
+   <install as="js/plugins/templates/dialogs/templates.js" name="js/plugins/templates/dialogs/templates.js" />
+   <install as="js/plugins/templates/templates/default.js" name="js/plugins/templates/templates/default.js" />
+   <install as="js/plugins/templates/templates/images/template1.gif" name="js/plugins/templates/templates/images/template1.gif" />
+   <install as="js/plugins/templates/templates/images/template2.gif" name="js/plugins/templates/templates/images/template2.gif" />
+   <install as="js/plugins/templates/templates/images/template3.gif" name="js/plugins/templates/templates/images/template3.gif" />
+   <install as="js/plugins/uicolor/plugin.js" name="js/plugins/uicolor/plugin.js" />
+   <install as="js/plugins/uicolor/uicolor.gif" name="js/plugins/uicolor/uicolor.gif" />
+   <install as="js/plugins/uicolor/dialogs/uicolor.js" name="js/plugins/uicolor/dialogs/uicolor.js" />
+   <install as="js/plugins/uicolor/lang/en.js" name="js/plugins/uicolor/lang/en.js" />
+   <install as="js/plugins/uicolor/yui/yui.js" name="js/plugins/uicolor/yui/yui.js" />
+   <install as="js/plugins/uicolor/yui/assets/hue_bg.png" name="js/plugins/uicolor/yui/assets/hue_bg.png" />
+   <install as="js/plugins/uicolor/yui/assets/hue_thumb.png" name="js/plugins/uicolor/yui/assets/hue_thumb.png" />
+   <install as="js/plugins/uicolor/yui/assets/picker_mask.png" name="js/plugins/uicolor/yui/assets/picker_mask.png" />
+   <install as="js/plugins/uicolor/yui/assets/picker_thumb.png" name="js/plugins/uicolor/yui/assets/picker_thumb.png" />
+   <install as="js/plugins/uicolor/yui/assets/yui.css" name="js/plugins/uicolor/yui/assets/yui.css" />
+   <install as="js/plugins/wsc/dialogs/ciframe.html" name="js/plugins/wsc/dialogs/ciframe.html" />
+   <install as="js/plugins/wsc/dialogs/tmpFrameset.html" name="js/plugins/wsc/dialogs/tmpFrameset.html" />
+   <install as="js/plugins/wsc/dialogs/wsc.css" name="js/plugins/wsc/dialogs/wsc.css" />
+   <install as="js/plugins/wsc/dialogs/wsc.js" name="js/plugins/wsc/dialogs/wsc.js" />
+   <install as="js/skins/kama/dialog.css" name="js/skins/kama/dialog.css" />
+   <install as="js/skins/kama/editor.css" name="js/skins/kama/editor.css" />
+   <install as="js/skins/kama/icons.png" name="js/skins/kama/icons.png" />
+   <install as="js/skins/kama/skin.js" name="js/skins/kama/skin.js" />
+   <install as="js/skins/kama/templates.css" name="js/skins/kama/templates.css" />
+   <install as="js/skins/kama/images/dialog_sides.gif" name="js/skins/kama/images/dialog_sides.gif" />
+   <install as="js/skins/kama/images/dialog_sides.png" name="js/skins/kama/images/dialog_sides.png" />
+   <install as="js/skins/kama/images/dialog_sides_rtl.png" name="js/skins/kama/images/dialog_sides_rtl.png" />
+   <install as="js/skins/kama/images/mini.gif" name="js/skins/kama/images/mini.gif" />
+   <install as="js/skins/kama/images/noimage.png" name="js/skins/kama/images/noimage.png" />
+   <install as="js/skins/kama/images/sprites.png" name="js/skins/kama/images/sprites.png" />
+   <install as="js/skins/kama/images/sprites_ie6.png" name="js/skins/kama/images/sprites_ie6.png" />
+   <install as="js/skins/kama/images/toolbar_start.gif" name="js/skins/kama/images/toolbar_start.gif" />
+   <install as="js/skins/office2003/dialog.css" name="js/skins/office2003/dialog.css" />
+   <install as="js/skins/office2003/editor.css" name="js/skins/office2003/editor.css" />
+   <install as="js/skins/office2003/icons.png" name="js/skins/office2003/icons.png" />
+   <install as="js/skins/office2003/skin.js" name="js/skins/office2003/skin.js" />
+   <install as="js/skins/office2003/templates.css" name="js/skins/office2003/templates.css" />
+   <install as="js/skins/office2003/images/dialog_sides.gif" name="js/skins/office2003/images/dialog_sides.gif" />
+   <install as="js/skins/office2003/images/dialog_sides.png" name="js/skins/office2003/images/dialog_sides.png" />
+   <install as="js/skins/office2003/images/dialog_sides_rtl.png" name="js/skins/office2003/images/dialog_sides_rtl.png" />
+   <install as="js/skins/office2003/images/mini.gif" name="js/skins/office2003/images/mini.gif" />
+   <install as="js/skins/office2003/images/noimage.png" name="js/skins/office2003/images/noimage.png" />
+   <install as="js/skins/office2003/images/sprites.png" name="js/skins/office2003/images/sprites.png" />
+   <install as="js/skins/office2003/images/sprites_ie6.png" name="js/skins/office2003/images/sprites_ie6.png" />
+   <install as="js/skins/v2/dialog.css" name="js/skins/v2/dialog.css" />
+   <install as="js/skins/v2/editor.css" name="js/skins/v2/editor.css" />
+   <install as="js/skins/v2/icons.png" name="js/skins/v2/icons.png" />
+   <install as="js/skins/v2/skin.js" name="js/skins/v2/skin.js" />
+   <install as="js/skins/v2/templates.css" name="js/skins/v2/templates.css" />
+   <install as="js/skins/v2/images/dialog_sides.gif" name="js/skins/v2/images/dialog_sides.gif" />
+   <install as="js/skins/v2/images/dialog_sides.png" name="js/skins/v2/images/dialog_sides.png" />
+   <install as="js/skins/v2/images/dialog_sides_rtl.png" name="js/skins/v2/images/dialog_sides_rtl.png" />
+   <install as="js/skins/v2/images/mini.gif" name="js/skins/v2/images/mini.gif" />
+   <install as="js/skins/v2/images/noimage.png" name="js/skins/v2/images/noimage.png" />
+   <install as="js/skins/v2/images/sprites.png" name="js/skins/v2/images/sprites.png" />
+   <install as="js/skins/v2/images/sprites_ie6.png" name="js/skins/v2/images/sprites_ie6.png" />
+   <install as="js/skins/v2/images/toolbar_start.gif" name="js/skins/v2/images/toolbar_start.gif" />
+   <install as="js/themes/default/theme.js" name="js/themes/default/theme.js" />
+   <install as="Horde/Editor.php" name="lib/Horde/Editor.php" />
+   <install as="Horde/Editor/Ckeditor.php" name="lib/Horde/Editor/Ckeditor.php" />
+   <install as="Horde/Editor/Exception.php" name="lib/Horde/Editor/Exception.php" />
   </filelist>
  </phprelease>
  <changelog>
   <release>
    <version>
+    <release>0.0.1</release>
+    <api>0.0.1</api>
+   </version>
+   <stability>
+    <release>alpha</release>
+    <api>alpha</api>
+   </stability>
+   <date>2004-02-11</date>
+   <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
+   <notes>
+Initial packaging
+   </notes>
+  </release>
+  <release>
+   <version>
     <release>0.0.2</release>
     <api>0.0.2</api>
    </version>
@@ -629,22 +660,27 @@ http://pear.php.net/dtd/package-2.0.xsd">
    <date>2006-05-08</date>
    <time>21:28:15</time>
    <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
-   <notes>* Removed TinyMCE driver.
+   <notes>
+* Removed TinyMCE driver.
    * Converted to package.xml 2.0 for pear.horde.org
    </notes>
   </release>
   <release>
    <version>
-    <release>0.0.1</release>
-    <api>0.0.1</api>
+    <release>0.1.0</release>
+    <api>0.1.0</api>
    </version>
    <stability>
-    <release>alpha</release>
-    <api>alpha</api>
+    <release>beta</release>
+    <api>beta</api>
    </stability>
-   <date>2004-02-11</date>
+   <date>2010-10-07</date>
    <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
-   <notes>Initial packaging
+   <notes>
+* Removed Xinha driver.
+ * Added CKEditor driver.
+ * Removed FCKEditor driver
+ * Initial Horde 4 package.
    </notes>
   </release>
  </changelog>
index 8edc8ce..e483955 100644 (file)
@@ -26,6 +26,22 @@ class Jonah_View_StoryView extends Jonah_View_Base
     {
         extract($this->_params, EXTR_REFS);
 
+        Horde::addScriptFile('syntaxhighlighter/scripts/shCore.js', 'horde', true);
+        Horde::addInlineScript(array(
+            'SyntaxHighlighter.defaults[\'toolbar\'] = false',
+            'SyntaxHighlighter.all()',
+        ), 'dom');
+
+        // TODO: Need a way to figure out what language the code block is...
+        // probably a regex to look for the <pre brush="php"> tags?
+        $sh_js_fs = $GLOBALS['registry']->get('jsfs', 'horde') . '/syntaxhighlighter/styles/';
+        $sh_js_uri = Horde::url($GLOBALS['registry']->get('jsuri', 'horde'), false, -1) . '/syntaxhighlighter/styles/';
+        Horde_Themes::includeStylesheetFiles(array('additional' => array(
+            array('f' => $sh_js_fs . 'shCoreEclipse.css', 'u' => $sh_js_uri . 'shCoreEclipse.css'),
+            array('f' => $sh_js_fs . 'shThemeEclipse.css', 'u' => $sh_js_uri . 'shThemeEclipse.css'),
+        )));
+        Horde::addScriptFile('syntaxhighlighter/scripts/shBrush' . 'php' . '.js', 'horde', true);
+
         $driver = $GLOBALS['injector']->getInstance('Jonah_Driver');
         try {
             $story = $driver->getStory($channel_id, $story_id, !$browser->isRobot());