Author: nettings
Date: Tue Jul 24 07:44:13 2007
New Revision: 559065
URL: http://svn.apache.org/viewvc?view=rev&rev=559065
Log:
simplified tinymce localisation code (folded into page2edit.xsl
transform, gets rid of extra javascript transform).
Added:
lenya/trunk/src/modules/tinymce/resources/javascript/tiny_config.js
Removed:
lenya/trunk/src/modules/tinymce/resources/javascript/tiny_config.xml
Modified:
lenya/trunk/src/modules/tinymce/sitemap.xmap
lenya/trunk/src/modules/tinymce/xslt/page2edit.xsl
Added: lenya/trunk/src/modules/tinymce/resources/javascript/tiny_config.js
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/tinymce/resources/javascript/tiny_config.js?view=auto&rev=559065
==============================================================================
--- lenya/trunk/src/modules/tinymce/resources/javascript/tiny_config.js (added)
+++ lenya/trunk/src/modules/tinymce/resources/javascript/tiny_config.js Tue Jul 24 07:44:13 2007
@@ -0,0 +1,123 @@
+ /*
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/*
+these are the configuration settings for TinyMCE. a complete list
+of options can be found in the excellent manual at
+http://tinymce.moxiecode.com/tinymce/docs/reference_configuration.html
+*/
+
+
+ currentURL = location.href.replace(/\?.*$/,"");
+
+ config = {
+
+ /* enable customizable theme */
+ theme : "advanced",
+
+ /* only the element whose ID is listed under "elements" will be editable */
+ mode : "exact",
+ elements : "tinymce.content",
+
+ /* enable plugins for custom save function, fullscreen editing
+ and search-and-replace. */
+ plugins : "save,fullscreen,searchreplace,table,contextmenu,simplebrowser",
+
+ plugin_simplebrowser_browselinkurl : currentURL + '?lenya.usecase=editors.insertLink',
+ plugin_simplebrowser_browseimageurl : currentURL + '?lenya.usecase=tinymce.insertImage',
+ plugin_simplebrowser_browseflashurl : '',
+
+
+ /* grey out the "save" button unless there are unsaved changes: */
+ save_enablewhendirty : false,
+
+ /* some special settings for fullscreen mode (they override the
+ settings further down) */
+ fullscreen_settings : {
+ auto_resize : false,
+ theme_advanced_toolbar_location : "top",
+ theme_advanced_statusbar_location : "bottom"
+ },
+
+ /* auto-resize the editing area. docs say this is "experimental"! */
+ auto_resize : false,
+
+ /* characters that should be replaced by named XHTML entities.
+ cocoon does not define entities by default, so we use none. */
+ entities : "",
+
+ /* do not make unicode references, output all special characters unchanged. */
+ entity_encoding : "raw",
+
+ /* keep linebreaks, don't put everything on one line. this is
+ important for advanced users who want to use the source editor. */
+ remove_linebreaks : false,
+
+ /* prettyprint sourcecode on saving FIXME: test. does this do anything? */
+ apply_source_formatting : true,
+
+ /* if the user inserts a table into a p, split p to create correct code.
+ for nested lists, the inner list is correctly placed in a <li/>
+ fix_list_elements: true;
+ fix_table_elements: true;
+
+ /* let tinymce do the layout by itself */
+ theme_advanced_layout_manager : "SimpleLayout",
+
+ /* the toolbar is placed at the top of the editable area. */
+ theme_advanced_toolbar_location : "top",
+
+ /* the statusbar is placed at the bottom. it displays the element path. */
+ theme_advanced_statusbar_location : "bottom",
+
+ /* the following items define the function buttons your users get to see.
+ for a complete list, see
+ http://tinymce.moxiecode.com/tinymce/docs/reference_buttons.html */
+
+ theme_advanced_buttons1 :
+ "save,undo,redo,search,replace,separator," +
+ "cleanup,code,charmap,visualaid,fullscreen,separator," +
+ "formatselect,styleselect",
+
+ theme_advanced_buttons2 :
+ "bold,italic,underline,strikethrough,sub,sup,removeformat,separator," +
+ "bullist,numlist,table,separator," +
+ "indent,outdent,separator," +
+ "anchor,link,unlink,image,separator," +
+ "help",
+
+ /* three button rows are active by default. override. */
+ theme_advanced_buttons3 : "",
+
+ /* the following items define the allowed elements and attributes on your site.
+ the default setting is very restrictive to enforce a corporate design and clean
+ code at the expense of flexibility. */
+ theme_advanced_blockformats : "p,h1,h2,h3,h4",
+
+
+/*
+Lenya/TinyMCE glue code
+*/
+
+ /* this callback can override arbitrary tinymce commands. neato!
+ currently used hooks are "insert image", "insert link" and "save".
+ the handler sits in tiny_lenya_glue.js. */
+ execcommand_callback : "LenyaExecCommandHandler",
+
+ /* insert custom save handler to do some extra clean-up. */
+ save_callback : "LenyaSaveContent"
+ };
Modified: lenya/trunk/src/modules/tinymce/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/tinymce/sitemap.xmap?view=diff&rev=559065&r1=559064&r2=559065
==============================================================================
--- lenya/trunk/src/modules/tinymce/sitemap.xmap (original)
+++ lenya/trunk/src/modules/tinymce/sitemap.xmap Tue Jul 24 07:44:13 2007
@@ -57,11 +57,12 @@
<map:transform src="context://lenya/xslt/util/strip_namespaces.xsl"/>
<map:serialize type="xml"/>
</map:match>
+
</map:pipeline>
<map:pipeline>
- <!-- this is the view of the usecase (see config/cocoon-xconf/usecases.xconf) -->
+ <!-- this is the view of the usecase (see config/cocoon-xconf/usecase-tinymce-edit.xconf) -->
<map:match pattern="tinymce.edit">
<!-- check if TinyMCE is installed -->
@@ -72,12 +73,28 @@
<map:part src="cocoon:/tinymce.delegateToPubSitemap/authoring{page-envelope:document-url}"/>
<map:part src="cocoon:/tinymce.getUsecaseMessages"/>
</map:aggregate>
- <map:transform src="fallback://lenya/modules/tinymce/xslt/page2edit.xsl">
- <map:parameter name="contextPath" value=""/>
- <map:parameter name="continuationId" value="{flow-continuation:id}"/>
- <map:parameter name="usecaseName" value="{request-param:lenya.usecase}"/>
- <map:parameter name="publicationid" value="{page-envelope:publication-id}"/>
- </map:transform>
+ <!-- Check for language pack to render TinyMCE according to the
+ requested locale. If it does not exist, fall back to English. -->
+ <map:select type="resource-exists">
+ <map:when test="fallback://lenya/modules/tinymce/resources/tinymce/jscripts/tiny_mce/langs/{request:locale}.js">
+ <map:transform src="fallback://lenya/modules/tinymce/xslt/page2edit.xsl">
+ <map:parameter name="contextPath" value=""/>
+ <map:parameter name="continuationId" value="{flow-continuation:id}"/>
+ <map:parameter name="usecaseName" value="{request-param:lenya.usecase}"/>
+ <map:parameter name="publicationid" value="{page-envelope:publication-id}"/>
+ <map:parameter name="locale" value="{request:locale}"/>
+ </map:transform>
+ </map:when>
+ <map:otherwise>
+ <map:transform src="fallback://lenya/modules/tinymce/xslt/page2edit.xsl">
+ <map:parameter name="contextPath" value=""/>
+ <map:parameter name="continuationId" value="{flow-continuation:id}"/>
+ <map:parameter name="usecaseName" value="{request-param:lenya.usecase}"/>
+ <map:parameter name="publicationid" value="{page-envelope:publication-id}"/>
+ <map:parameter name="locale" value="en"/>
+ </map:transform>
+ </map:otherwise>
+ </map:select>
</map:when>
<!-- TinyMCE is not installed - generate info page for the user -->
<map:otherwise>
@@ -86,25 +103,6 @@
</map:select>
<map:call resource="style-cms-page"/>
<map:serialize type="xhtml"/>
- </map:match>
-
- <!-- check requested locale and set appropriate tinymce language, if available. if not, fall back to english -->
- <map:match pattern="tiny_config.xml">
- <map:generate src="fallback://lenya/modules/tinymce/resources/javascript/tiny_config.xml"/>
- <map:select type="resource-exists">
- <!-- fixme: is this an appropriate test for language packs? -->
- <map:when test="fallback://lenya/modules/tinymce/resources/tinymce/jscripts/tiny_mce/langs/{request:locale}.js">
- <map:transform src="fallback://lenya/modules/tinymce/xslt/tiny_config.xsl">
- <map:parameter name="locale" value="{request:locale}"/>
- </map:transform>
- </map:when>
- <map:otherwise>
- <map:transform src="fallback://lenya/modules/tinymce/xslt/tiny_config.xsl">
- <map:parameter name="locale" value="en"/>
- </map:transform>
- </map:otherwise>
- </map:select>
- <map:serialize type="text"/>
</map:match>
</map:pipeline>
Modified: lenya/trunk/src/modules/tinymce/xslt/page2edit.xsl
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/tinymce/xslt/page2edit.xsl?view=diff&rev=559065&r1=559064&r2=559065
==============================================================================
--- lenya/trunk/src/modules/tinymce/xslt/page2edit.xsl (original)
+++ lenya/trunk/src/modules/tinymce/xslt/page2edit.xsl Tue Jul 24 07:44:13 2007
@@ -16,6 +16,7 @@
<xsl:param name="continuationId" select="'tinymce.ERROR'"/>
<xsl:param name="usecaseName" select="'tinymce.ERROR'"/>
<xsl:param name="publicationid" />
+<xsl:param name="locale" select="'tinymce.ERROR'"/>
<!--
@@ -24,14 +25,30 @@
-->
<xsl:template match="tinymceWrapper">
<xsl:if test="$contextPath='tinymce.ERROR'">
- <xsl:message terminate="yes"><i18n:text>Missing contextPath parameter! Check your tinymce sitemap.</i18n:text></xsl:message>
+ <xsl:message terminate="yes">
+ <i18n:text>Missing contextPath parameter!</i18n:text>
+ <i18n:text>Check your tinymce sitemap.</i18n:text>
+ </xsl:message>
</xsl:if>
<xsl:if test="$continuationId='tinymce.ERROR'">
- <xsl:message terminate="yes"><i18n:text>Missing continuationId parameter! Check your tinymce sitemap.</i18n:text></xsl:message>
+ <xsl:message terminate="yes">
+ <i18n:text>Missing continuationId parameter!</i18n:text>
+ <i18n:text>Check your tinymce sitemap.</i18n:text>
+ </xsl:message>
</xsl:if>
<xsl:if test="$usecaseName='tinymce.ERROR'">
- <xsl:message terminate="yes"><i18n:text>Missing usecaseName parameter! Check your tinymce sitemap.</i18n:text></xsl:message>
+ <xsl:message terminate="yes">
+ <i18n:text>Missing usecaseName parameter!</i18n:text>
+ <i18n:text>Check your tinymce sitemap.</i18n:text>
+ </xsl:message>
</xsl:if>
+ <xsl:if test="$locale='tinymce.ERROR'">
+ <xsl:message terminate="yes">
+ <i18n:text>Missing locale parameter!</i18n:text>
+ <i18n:text>Check your tinymce sitemap.</i18n:text>
+ </xsl:message>
+ </xsl:if>
+
<xsl:apply-templates select="xhtml:html"/>
</xsl:template>
@@ -49,7 +66,7 @@
<xsl:comment>special code for tinymce.edit usecase view</xsl:comment>
<xsl:text>
</xsl:text>
- <xsl:comment>without the   weirdness, firefox tends to interpret the whole page as a comment or something.</xsl:comment>
+ <xsl:comment>without the space between opening and closing script tag, Firefox tends to interpret the whole page as a comment or something :(</xsl:comment>
<xsl:text>
</xsl:text>
<xsl:comment>the tinymce code:</xsl:comment>
@@ -75,7 +92,7 @@
</xsl:text>
<script language="javascript"
type="text/javascript"
- src="/{$publicationid}/modules/tinymce/tiny_config.xml"
+ src="/{$publicationid}/modules/tinymce/javascript/tiny_config.js"
> </script>
<xsl:text>
</xsl:text>
@@ -104,18 +121,25 @@
/* pass all the stylesheets of the current page (except for those specific
to the Lenya authoring GUI) to TinyMCE for true WYSIWYG editing */
+
+ config['language'] = "</xsl:text>
+ <xsl:value-of select="$locale"/>
+ <xsl:text>";
config['content_css'] = "</xsl:text>
+
<xsl:value-of select="$contextPath"/>
<xsl:text>/modules/tinymce/css/editor_content.css</xsl:text>
<xsl:for-each select="../xhtml:link[@rel='stylesheet' and not(contains(@href, '/lenya/css/'))]">
<xsl:text>,</xsl:text>
<xsl:value-of select="@href"/>
</xsl:for-each>
+
<xsl:text>";
tinyMCE.init(config);
</xsl:text>
+
</script>
</xsl:template>
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.