Added: lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.1195221897309.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.1195221897309.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.1195221897309.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.1195221897309.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 1999-2004 The Apache Software Foundation
+
+ Licensed 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.
+-->
+<!-- $Id: index.xml 55543 2004-10-26 00:14:59Z gregor $ --><!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
+
+<document>
+ <header>
+ <title>Part 2: Installing Lenya</title>
+ </header>
+ <body>
+<p>So here you are, ready to install the mysterious Lenya. If you haven't already, we encourage
+ you to take a quick gander at
+ <a href="understanding_lenya.html">Part I: Understanding Lenya</a>
+ to make sure you know what you are getting into before attempting this install. Also, some
+ knowledge in the basics of using a UNIX/Linux operating system are assumed. So without
+ further delay, let's kick it!</p>
+
+<section id="Requirements">
+<title>Requirements</title>
+
+<p>OK, we do have to mention one thing: while you can install Lenya on Windows, I'm going to be
+ taking you through a Linux installation. For Windows help, I'll have to direct you to the
+ <a href="lenya-document:653c2520-8731-11dc-ae46-9e7b5d14892d">user mailing
+ lists</a>.</p>
+
+<p>We also recommend a broadband connection, especially for downloading Cocoon (approx. 43
+ MB) and the Java SDK (approx. 35 MB), but if you want to sit around and wait while they
+ download on a phone line, be our guest!</p>
+
+<ol>
+ <li>Linux/UNIX (I'm using <a href="http://www.redhat.com/software/rhel/as/">RedHat Enterprise AS</a>, but any Linux will do)</li>
+ <li>
+<a href="http://javashoplm.sun.com/ECom/docs/Welcome.jsp?StoreId=22&PartDetailId=j2sdk-1.4.2_07-oth-JPR&SiteId=JSC&TransactionId=noreg">Java 1.4.2 SDK</a> (we downloaded the RedHat RPM)</li>
+
+ <li>
+<a href="http://cocoon.apache.org/mirror.cgi">Cocoon 2.1.7</a> (the TAR/GZ source version)</li>
+ <li>
+<a href="ext:lenya.dist">Lenya 1.2.4</a> (the tar.gz source version is what we are using, under the SOURCES directory)</li>
+ <li>(optional) <a href="http://jakarta.apache.org/site/binindex.cgi#tomcat-5.0">Tomcat 5.0.28</a> (the binary tar.gz version)</li>
+</ol>
+
+<p>Why is Tomcat optional? Well, because Lenya already comes with a servlet container called
+ Jetty. Both Jetty and Tomcat are the servlet containers tested with Lenya, and since we're
+ using Tomcat for Hiram's site, that's what I'll be taking you through. For brief
+ instructions on using Jetty, read
+ <a href="lenya-document:f696f320-8730-11dc-ae46-9e7b5d14892d">the
+ tutorial on Lenya's site</a>.</p>
+
+<p>It's also assumed that the first steps before switching to our new user in step 5 are done with
+ a user that has the capabilities of installing Java and the like. We used the root user to do
+ the installs and moves, then switched to the our new user for the rest.</p>
+</section>
+<section id="tensteps">
+<title>10 Steps to Lenya bliss</title>
+
+<section id="download">
+<title>Step 1: Download!</title>
+<p>Yeah, seems simple enough, doesn't it? Get 2-5 from above downloaded and on the server
+ you'll be using.</p>
+</section>
+<section id="installsdk">
+<title>Step 2: Install Java SDK</title>
+ <p>If you downloaded the RPM, you'll need to execute the file first. It spits out the
+ Licensing Agreement, for which you must agree to, and then your RPM file is ready. To
+ install on RedHat, type in the following:</p>
+
+ <source xml:space="preserve">rpm -ivh j2sdk-1_4_2_07-linux-i586.rpm</source>
+
+ <p>or whatever your RPM file happens to be named. This should install your Java files in
+ /usr/java/ by default. You'll also need to setup some environment variables for Java
+ in order for Tomcat to start up correctly later on. Again, these instructions are for
+ RedHat, so consult documentation for your OS if need be.</p>
+
+ <source xml:space="preserve">cd /etc/profile.d/</source>
+
+ <p>Create a new file called java.sh and fill it with the following for now:</p>
+
+ <source xml:space="preserve"> export JAVA_HOME=/usr/java/java export PATH=$PATH:$JAVA_HOME/bin export
+ CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib/ext
+ </source>
+
+ <p>Save it and exit from the file. While we are here, let's add the rest of the environment
+ variables for the other applications. So, for Tomcat, create a new file called
+ tomcat.sh and add the following inside:</p>
+
+ <source xml:space="preserve"> export CATALINA_HOME=/usr/local/tomcat export
+ PATH=$PATH:$CATALINA_HOME/bin
+ </source>
+
+ <p>Save and exit. Then, create a new file called webapps.sh and add the following
+ inside:</p>
+
+ <source xml:space="preserve"> export LENYA_HOME=/home/webapp/web_software/lenya-1.2.4 export
+ COCOON_HOME=/home/webapp/web_software/cocoon-2.1.7 export
+ COCOON_WEBAPP=/home/webapp/web_software/cocoon-2.1.7/build/webapp
+ </source>
+
+ <p>Save and exit.</p>
+</section>
+<section id="setup_a_new_user">
+<title>Step 3: Setup a new user</title>
+<p>You'll want to create a new user that has access to all of the Cocoon, Tomcat, and Lenya files.
+ I'll call the user "webapp". In most Linux distributions, you can use the graphical tools
+ to add a new user, or if you are a die-hard command-line junkie, use the following command in
+ RedHat to add our new user:</p>
+
+<source xml:space="preserve">useradd -c "Web Applications" -m webapp</source>
+
+<p>This basically sets up a new user with the name of "Web Applications", a username of "webapp"
+ and creates a home directory (the -m switch) with the standard initialization files.</p>
+
+<p>You may want to setup a password for this user. To do that, simply do this:</p>
+
+<source xml:space="preserve">passwd webapp</source>
+
+<p>It will prompt you for the new password twice. Assuming you typed it in the same way both
+ times, you're all set! This is only basic, so if you want to add password expiration
+ options, etc., go right ahead!</p>
+</section>
+<section id="move_downloads_to_right_places">
+<title>Step 4: Move downloads to right places</title>
+
+<p>In most UNIX/Linux systems, webapp's home directory should be /home/webapp/. Inside
+ webapp's home directory, we'll create a new directory to store our source files. Let's
+ call it "web_software":</p>
+
+<source xml:space="preserve">
+mkdir /home/webapp/web_software
+chown -R webapp:webapp /home/webapp/web_software
+</source>
+
+<p>Go ahead and move both Lenya's and Cocoon's zipped up files to that directory (you'll have to
+ change to the directory that your downloaded files are stored first):</p>
+
+<source xml:space="preserve">
+mv apache-lenya-1.2.4-src.tar.gz /home/webapp/web_software/
+mv cocoon-2.1.7-src.tar.gz /home/webapp/web_software/
+</source>
+
+<p>Tomcat needs to go in /usr/local/ (at least that's the typical place for it):</p>
+
+<source xml:space="preserve">mv jakarta-tomcat-5.0.28.tar.gz /usr/local/</source>
+</section>
+<section id="change_permissions_of_files">
+<title>Step 5: Change permissions of files</title>
+<p>Now that you created that webapp user, you'll want to assign permissions to the Lenya,
+ Cocoon, and Tomcat files to webapp:</p>
+
+<source xml:space="preserve">
+chown webapp:webapp /usr/local/jakarta-tomcat-5.0.28.tar.gz
+chown -R webapp:webapp /home/webapp/web_software/
+
+</source>
+
+<p>And then switch to that user:</p>
+
+<source xml:space="preserve">su - webapp</source>
+</section>
+<section id="unzip_lenya">
+<title>Step 6: Unzip Lenya</title>
+<p>Pretty easy stuff:</p>
+
+<source xml:space="preserve">
+cd web_software
+tar xzvf apache-lenya-1.2.4-src.tar.gz
+
+mv apache-lenya-1.2.4-src lenya-1.2.4
+</source>
+</section>
+<section id="unzip_and_build_cocoon">
+<title>Step 7: Unzip and build Cocoon</title>
+<p>Same deal here:</p>
+
+<source xml:space="preserve">
+tar xzvf cocoon-2.1.7-src.tar.gz
+mv cocoon-2.1.7-src cocoon-2.1.7
+</source>
+
+<p>Now, you'll need to copy some config files from Lenya into Cocoon's directory:</p>
+
+<source xml:space="preserve">
+cp lenya-1.2.4/local.build.properties cocoon-2.1.7/
+cp lenya-1.2.4/local.blocks.properties cocoon-2.1.7/
+</source>
+
+<p>Then the all-important part, compiling Cocoon. It's this simple:</p>
+
+<source xml:space="preserve">
+cd cocoon-2.1.7
+./build.sh -Dinclude.webapp.libs=yes webapp
+</source>
+</section>
+<section id="install_tomcat">
+<title>Step 8: Install Tomcat</title>
+
+<p>Since we downloaded the binary version of Tomcat, there's not much to do except to unzip the files. So here we go again:</p>
+
+<source xml:space="preserve">
+cd /usr/local/
+tar xzvf jakarta-tomcat-5.0.28.tar.gz
+</source>
+
+<p>Since that name is rather long, let's create a link to it:</p>
+
+<source xml:space="preserve">ln -s jakarta-tomcat-5.0.28 tomcat</source>
+</section>
+<section id="configure_and_install_lenya">
+<title>Step 9: Configure and install
+ Lenya</title>
+
+ <p>OK, we need to let Lenya know where Tomcat is before we install it.</p>
+
+ <source xml:space="preserve"> cd /home/webapp/web_software/lenya-1.2.4/ cp build.properties
+ local.build.properties
+ </source>
+
+ <p>Inside this file, you'll need to change a couple of things. Below are the lines you'll
+ need to change in local.build.properties, so scope them out in the file, make the
+ changes, and save them:</p>
+
+ <source xml:space="preserve"> cocoon.src.dir=../cocoon-2.1.7 tomcat.home.dir=/usr/local/tomcat
+ enable.uploads=true
+ </source>
+
+ <p>Once done, we'll need to compile:</p>
+
+ <source xml:space="preserve">./build.sh install</source>
+</section>
+<section id="start_up_tomcat">
+<title>Step 10: Start up Tomcat</title>
+<p>To start Tomcat, simply type in the following:</p>
+
+<source xml:space="preserve">/usr/local/tomcat/bin/startup.sh</source>
+ </section>
+<section id="getting_your_first_access_to_lenya">
+<title>Getting your first access to Lenya</title>
+<p>Now that Tomcat is up, you should be able to access Lenya pretty easily. Just go to the
+ following URL: http://your.server.url:8080/lenya/. You should see a couple of
+ publications listed on the left with general information about Lenya. From there, you can
+ log into the Default Publication with the username "lenya" and the password "levi".</p>
+</section>
+</section>
+<section id="next_article">
+<title>Next Article</title>
+<p>Now that you have the basic installation done, play around and have some fun. In the next
+ article, we'll take a look at how pages are created, published, and customized by changing
+ some of the files in the Default Publication as well as creating our own pipeline.</p>
+</section>
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897309.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897309.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897309.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897309.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>2. Installing Lenya</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/fa46b4b0-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221897309" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221885353"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910783525" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910768407"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781617854" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.1195221907467.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.1195221907467.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.1195221907467.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.1195221907467.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 1999-2004 The Apache Software Foundation
+
+ Licensed 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.
+-->
+<!-- $Id: index.xml 55543 2004-10-26 00:14:59Z gregor $ --><!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
+
+<document>
+ <header>
+ <title>Part 3: Anatomy of the pipeline</title>
+ </header>
+ <body>
+ <p>With Lenya installed, you're itching to figure out how to get around this thing so
+ you can start creating a website. But, you want to put it all together the way
+ you're used to. Well, bring out the frozen dinners, because this is not your
+ momma's cooking. Instead of opening up a file, adding our HTML, and throwing in
+ some CSS, we'll be working with pipelines, XML, XSLT to get the job done.</p>
+
+ <section id="what_are_pipelines">
+<title>What are pipelines?</title>
+
+ <p>Pipelines aren't a Lenya thing - it's a Cocoon thing. If you want to master Lenya,
+ you'll have to get your hands around Cocoon, and that's not an easy thing. Let me
+ remind you that the articles we write here are not because I'm an expert in Lenya or
+ Cocoon. Far from it. But, we have learned some things along the way that we see being
+ asked over and over, so we think it's important to keep the open-source spirit
+ alive and document what I've learned.</p>
+
+ <p>OK, so back to pipelines. Pipelines are basically part of a set of items that can be
+ found in a sitemap of your publication, which include the components, views,
+ resources, etc. We'll save all those for another time. Pipelines are a way to
+ match a request coming to your publication and act on them in some way. So, for
+ example, if you are accessing a particular page within your publication using
+ your web browser, a pipeline can find a match for that request and possibly send
+ back a page for you to view.</p>
+
+ </section>
+<section id="minimum_requirements">
+<title>Minimum Requirements</title>
+
+ <p>For a pipeline to work, you'll need to match an incoming request, generate
+ something to be used, and then send it back in a format that is recognizable and can
+ be dealt with easily. Here's an example pipeline:</p>
+
+ <source xml:space="preserve">
+ 1. <map:pipeline>
+ 2. <map:match pattern="example">
+ 3. <map:generate type="file" src="example.xml"/>
+ 4. <map:serialize type="xml"/>
+ 5. </map:match>
+ 6. </map:pipeline>
+ </source>
+
+ <p>Let's walk through this line by line. Line 1 starts the definition of the pipeline.
+ Everything starts with "map:" because all of this XML is part of the map namespace
+ defined by Cocoon. Line 2 tries to match an incoming request to see if it looks like
+ "example". If it does, we keep going. If not, this pipeline gets skipped over.
+ Line 3 is the generator. In this case, we'll be generating "stuff" from a file, and
+ that file is example.xml. So, what do we do with this stuff inside the file? Well,
+ we need to send it back to the user making the request for "example" in something
+ they (or it) can understand. In line 4, we're doing just that by using a serializer
+ to take all that stuff in example.xml and sending back to the user as XML.</p>
+
+ </section>
+<section id="how_about_something_more_usable">
+<title>How about something more usable?</title>
+
+ <p>OK, admittedly, that was a boring example. The file was already XML, so the only
+ thing the serializer did was probably add in our declaration at the top of the page
+ and send it back to the user. Let's add in some spice and relate it to web pages:</p>
+
+ <source xml:space="preserve">
+ 1. <map:pipeline>
+ 2. <map:match pattern="test.html">
+ 3. <map:generate type="file" src="test.xml"/>
+ 4. <map:transform type="xslt" src="test2html.xsl"/>
+ 5. <map:serialize type="html"/>
+ 6. </map:match>
+ 7. </map:pipeline>
+ </source>
+
+ <p>OK, so here, we're trying to match the request for test.html. Now, keep in mind, it
+ could very well be that test.html doesn't exist (and in this case it doesn't).
+ That's OK - we're just matching requests for something, and in return, we can send
+ back whatever we like. Think of it as a virtual link to another file we're creating
+ on the fly.</p>
+
+ <p>So, if we do match test.html, we'll grab the contents of the file test.xml, but
+ before we send it back, we'll transform that XML into something else using the
+ transformer (line 4). Using XSLT, we can convert that batch of XML into an HTML
+ page! That's done using the file test2html.xsl. When that's all said and done,
+ off we go to serialize it back to the user, but this time as HTML instead of XML.</p>
+
+ <p>We won't have time to show you how the XSL transformation works, but we can throw you
+ over to
+ <a href="http://www.w3schools.com/xsl/xsl_languages.asp">
+ W3Schools</a> and they'll give you a nice intro.</p>
+
+ </section>
+<section id="the_lenya_pipeline">
+<title>The Lenya pipeline</title>
+
+ <p>So now that we know the basics, how does Lenya use the pipeline in creating it's
+ pages? Well, it's not too much different. While it looks more complicated, the
+ basics are still there.</p>
+
+ <p>Below is the pipeline that is used in the publication-sitemap.xmap file in
+ Lenya's default publication:</p>
+
+ <source xml:space="preserve">
+ 1. <map:pipeline>
+ 2. <!--/lenyabody-{rendertype}/{publication-id}/{area}/{doctype}/{url}-->
+ 3. <map:match pattern="lenyabody-*/*/*/*/**">
+ 4. <map:aggregate element="cmsbody">
+ 5. <map:part src="cocoon://navigation/{2}/{3}/breadcrumb/{5}.xml"/>
+ 6. <map:part src="cocoon://navigation/{2}/{3}/tabs/{5}.xml"/>
+ 7. <map:part src="cocoon://navigation/{2}/{3}/menu/{5}.xml"/>
+ 8. <map:part src="cocoon://navigation/{2}/{3}/search/{5}.xml"/>
+ 9. <map:part src="cocoon:/lenya-document-{1}/{3}/{4}/{page-envelope:document-path}"/>>
+ 10.</map:aggregate>
+ 11.<map:transform src="xslt/page2xhtml-{4}.xsl">
+ 12.<map:parameter name="root" value="{page-envelope:context-prefix}/{2}/{3}"/>
+ 13.<map:parameter name="url" value="{5}"/>
+ 14.<map:parameter name="document-id" value="{page-envelope:document-id}"/>
+ 15.<map:parameter name="document-type" value="{page-envelope:document-type}"/>
+ 16.</map:transform>
+ 17.<map:select type="parameter">
+ 18.<map:parameter name="parameter-selector-test" value="{1}"/>
+ 19.<map:when test="view">
+ 20.<map:transform type="link-rewrite"/>
+ 21.</map:when>
+ 22.</map:select>
+ 23.<map:serialize type="xml"/>
+ 24.</map:match>
+ 25.</map:pipeline>
+ </source>
+
+ <p>OK, yikes, we know what you're thinking. But seriously, it's not that bad. We still
+ open with a pipeline tag, we match something, we have this aggregation part which
+ I'll explain in a minute, we transform the results, and after another part I'll
+ explain, we serialize the results back the user. Let's start with the
+ matcher.</p>
+
+ </section>
+<section id="the_matcher">
+<title>The Matcher</title>
+
+ <p>So, um, what exactly are we matching? Without going into too much and getting you
+ swamped with terminology, we're basically trying to match a whole bunch of
+ things at once. The comment right above the matcher tries to tell you what each of
+ the asterisks are. There's the rendertype (whether you're viewing the page, or
+ editing it), the publication ID (which in this case is "default" for the Default
+ Publication), the area (it could be Authoring, or Live, or Admin, etc.), the
+ document type, and the actual URL of the document.</p>
+
+ <p>The document type is pretty interesting. In XML, one document could be for
+ describing a shape, while another could be describing a set of books. It doesn't
+ have to be that way, though. For example, the "homepage" and "xhtml" doctypes
+ provided for you in Lenya are exactly the same, except there's another pipeline
+ that says the top index.html page of the publication will be assigned the doctype
+ of "homepage". It's handy because since most homepages have a different design
+ that the secondary or tertiary pages, you can use a different XSLT file to
+ transform it however you want without having to setup a new pipeline for it. Just
+ think of the possibilities with different doctypes...</p>
+
+ </section>
+<section id="the_aggregator">
+<title>The Aggregator</title>
+
+ <p>So, after we've matched all of those options (the asterisks mean anything and
+ everything), we get to this aggregate tag. Basically, it's a generator like we
+ saw in the previous examples, it's just aggregating the results of the
+ generation from all these sources together as one.</p>
+
+ <p>So, Lenya separates out the menu (or navigation of the site), the tabs (all the
+ high-level items in the navigation), the breadcrumb trails on the pages, the
+ search box, and the actual content of the page into separate files. See all those
+ {2}'s, {3}'s, and {5}'s? Each one of those points to the value for that numbered
+ asterisk in the matcher. So, whatever happened to have been in the second
+ asterisk in the matcher, we use that in place of {2}. Simple, no?</p>
+
+ </section>
+<section id="the_transformer">
+<title>The Transformer</title>
+
+ <p>The transformer is pretty straight-forward. We transform the results of all the
+ aggregated content using the file page2xhtml-{4}.xsl. Except, the {4} is
+ replaced with whatever was in the place of the fourth asterisk, or in this case,
+ the doctype. So, if our doctype was "homepage", we would transform our page using
+ the XSL file page2xhtml-homepage.xsl. If our doctype were "xhtml" (which is
+ what most of the pages are in Lenya), then you would transform it with
+ page2xhtml-xhtml.xsl. See how you can differentiate the design with different
+ transformations and doctypes?</p>
+
+ <p>The parameters inside of the transform tag are basically setting up variables to
+ be passed to the XSL file. In this case, we're passing along the root location of
+ the publication (perhaps it's just a / in http://www.someplace.com/, for
+ example), the URL of the publication (like "some/where.html"), as well as the
+ document ID (the latter half of the URL without the .html extension), and the
+ doctype.</p>
+
+ </section>
+<section id="the_selector">
+<title>The Selector</title>
+
+ <p>We haven't seen this one yet, but think of the selector as an if/else statement. You
+ have to tell the selector what you are testing against, then test it against some
+ value, and do something. In this case, we're testing the rendertype (that's the
+ first asterisk, or {1}). If the rendertype is "view", as in we're viewing the page
+ and not editing it, then go through one more transformation, called
+ link-rewrite.</p>
+
+ <p>The link-rewrite transformer basically checks where you are, then goes through
+ the contents of the page and rewrites all links in relation to what area you are in.
+ For example, if we are in the Authoring environment in Lenya, then our links could be
+ rewritten to look like "/lenya/default/authoring/some/where.html". If we are
+ in the Live area, they would be rewritten to look like
+ "/lenya/default/live/some/where.html". That way, you just keep track of the
+ organization of the site using the Site tab within Lenya, and Lenya will rewrite
+ your links according to what area you are in when viewing the page so that it all
+ just works!</p>
+
+ </section>
+<section id="the_serializer">
+<title>The Serializer</title>
+
+ <p>In the end, we serialize everything we've done into XML. So, why XML? Because it's
+ later on in the series of pipelines that the results are serialized again into
+ HTML (or XHTML, if you so choose).</p>
+
+ </section>
+<section id="fin">
+<title>Fin</title>
+
+ <p>So hopefully that gets you cracking on understanding how Lenya is setup to handle
+ pages. There's no doubt we've exposed you to quite a bit that deserves more
+ explanation, and it will certainly come.</p>
+ </section>
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221907467.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221907467.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221907467.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221907467.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>3. Anatomy of the Pipeline</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/fb726370-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221907467" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221886968"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910790681" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910764065"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781633814" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.1195221897974.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.1195221897974.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.1195221897974.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.1195221897974.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 1999-2004 The Apache Software Foundation
+
+ Licensed 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.
+-->
+<!-- $Id: index.xml 55543 2004-10-26 00:14:59Z gregor $ --><!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
+
+<document>
+ <header>
+ <title>Part 4: Editing in Lenya</title>
+ </header>
+ <body>
+ <p>There are several editors that you can use in Lenya, but because we only have used 2 of
+ them, these are the ones we will briefly go over here.</p>
+
+ <section id="Kupu">
+<title>Kupu</title>
+
+ <p>
+<a href="ext:kupu">Kupu</a> is a WYSIWYG editor that was developed through <a href="ext:oscom">OSCOM</a> and has been integrated
+ into Lenya. The editor is quite simple to use, and has an aggressive timeline for
+ future improvements. You can see a screenshot of Kupu in action below:</p>
+
+ <p>
+<img alt="kupu" src="lenya-document:68002720-8731-11dc-ae46-9e7b5d14892d"/>
+</p>
+
+ <p>When you
+ <a href="installing_lenya.html">install Lenya</a>, you'll
+ notice that when you try to edit a page in your publication using it, you'll get a
+ message stating to build it before you can use it. You'll need to go to Kupu's main
+ directory and type make to build it properly:</p>
+
+ <source xml:space="preserve">
+ cd /usr/local/tomcat/webapps/lenya/lenya/resources/kupu
+ make
+ </source>
+
+ <p>You may get an error stating that the build could not be completed successfully
+ because it could not find xsltproc. If this is the case, you'll need to download
+ the xsltproc package and install it before continuing. Since we are using RedHat
+ Linux, we'll give you the steps for installing the RPM. Adapt the instructions for
+ your own OS.</p>
+
+ <p>First off, check to see if you have the proper RPMs:</p>
+
+ <source xml:space="preserve"> rpm -qa | grep libxml2 rpm -qa | grep libxslt</source>
+
+ <p>If nothing is returned for either one of them (or both), then there's two ways to
+ download the proper RPMs. One is by using RPMFind. Go to these URLs:</p>
+
+ <ul>
+ <li>
+ <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2">
+ http://rpmfind.net/linux/rpm2html/search.php?query=libxml2</a>
+ </li>
+ <li>
+ <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxslt">
+ http://rpmfind.net/linux/rpm2html/search.php?query=libxslt</a>
+ </li>
+
+ </ul>
+
+ <p>Look for your OS and download the appropriate RPM. Once downloaded to your server,
+ install the packages:</p>
+
+ <source xml:space="preserve">
+ rpm -ivh libxml2-2.5.10-7.i386.rpm
+ rpm -ivh libxslt-1.0.33-5.i386.rpm
+ </source>
+
+ <p>The version numbers are probably different from the latest. Just be sure you get
+ the latest versions of each.</p>
+
+ <p>The second way is if you use RedHat's up2date program (you must be registered with
+ RedHat). To use this, just run the following command:</p>
+
+ <source xml:space="preserve">
+ up2date --showall | grep libxml2
+ up2date --showall | grep libxslt
+ </source>
+
+ <p>Once the package names are found, you can download them from the up2date server
+ like so:</p>
+
+ <source xml:space="preserve">
+ up2date --get libxml2-2.5.10-7.i386
+ up2date --get libxslt-1.0.33-5.i386
+ </source>
+
+ <p>The RPMs will be stored in /var/spool/up2date/. Go there, then install them as
+ mentioned above (recapped below as well):</p>
+
+ <source xml:space="preserve">
+ rpm -ivh libxml2-2.5.10-7.i386.rpm
+ rpm -ivh libxslt-1.0.33-5.i386.rpm
+ </source>
+
+ <p>Those that are savvy with up2date can find a more efficient way to install these
+ RPMs, but this will do for now. Once the RPMs are installed, go back to Kupu's
+ directory and run make as mentioned above. Now you're ready to edit using
+ Kupu!</p>
+
+ </section>
+<section id="bxe">
+<title>BXE</title>
+
+ <p>Bitflux Editor (<a href="ext:bxe">BXE</a>) is another WYSIWYG editor that was developed separately from Lenya and
+ integrated into the project. BXE's approach is slightly different from
+ Kupu's in that from the visual standpoint, it appears as if you are editing the
+ content right on the layout of the page. Kupu, from the screenshot above, gives
+ you a whole new page that focuses just on the content. We'll let you work with either
+ one and decide which is your favorite. Hiram College chose to use Kupu, not
+ because BXE was worse, but because Kupu was more flexible and easier to
+ understand for the faculty and staff that were using it. Below is a screenshot of
+ BXE at work:</p>
+
+ <p>
+<img alt="bxe" src="lenya-document:67f355e0-8731-11dc-ae46-9e7b5d14892d"/>
+</p>
+
+ <p>In version 1.2.4, BXE is already installed and ready to go, so there's no need
+ for any added configuration.</p>
+
+ </section>
+<section id="next_articles">
+<title>Next articles</title>
+
+ <p>Well, we wanted to keep this one short, as we are working on cooking up some more heftier
+ articles, including customizing your navigation and an intro to doctypes and
+ usecases.</p>
+ </section>
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897974.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897974.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897974.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221897974.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>4. Editing in Lenya</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/fca6ebd0-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221897974" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221886491"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910792745" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910765928"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781627221" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.1195221903597.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.1195221903597.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.1195221903597.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.1195221903597.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 1999-2004 The Apache Software Foundation
+
+ Licensed 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.
+-->
+<!-- $Id: index.xml 55543 2004-10-26 00:14:59Z gregor $ --><!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
+
+<document>
+ <header>
+ <title>Part 5: Custom Navigation in Lenya</title>
+ </header>
+ <body>
+ <p>OK, so you have the basics: you know how to install Lenya, you understand it's
+ approach to content management, you understand the pipeline bit, and you know
+ how to edit existing documents. Through playing around, you probably now know
+ how to make new pages, and create the content hierarchy for your site. Now the
+ question becomes, how do we customize the navigation to be marked up the way you
+ want.</p>
+
+ <section id="customizing_lenya_navigation_items">
+<title>Customizing Lenya
+ navigation items</title>
+
+ <p>In order to understand customizing navigation items in Lenya, you'll need to
+ understand where that's possible. In the default publication's root
+ directory, you'll see a directory called 'lenya'. It's here where you can
+ add folders and files that override the global defaults set aside for all of
+ Lenya.</p>
+
+ <p>One of the directories is 'navigation'. In there, you'll most likely see a
+ file called tabs.xsl. This is a customized version of the tabs just for the
+ default publication. But you can do others. Here's the list of the file names
+ you can add in the 'navigation' folder that will override the global
+ files:</p>
+
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1">breadcrumb.xsl</td>
+ <td colspan="1" rowspan="1">The breadcrumb trails at the top of the page
+ (e.g. Home > Products > Furniture)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">menu.xsl</td>
+ <td colspan="1" rowspan="1">The menu at the left of the pages (in the
+ default publication, for example)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">tabs.xsl</td>
+ <td colspan="1" rowspan="1">The tabs at the top of the page (in the
+ default publication, they are the highest levels of nav on the
+ site)</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">search.xsl</td>
+ <td colspan="1" rowspan="1">The search box on the site</td>
+ </tr>
+ </table>
+
+ <p>There are others, but these will do for now. You can check out what the
+ originals are in
+ /usr/local/tomcat/webapps/lenya/lenya/xslt/navigation/. It
+ requires some understanding XSLT, which is again beyond the scope of this
+ article.
+ <a href="http://www.w3schools.com/xsl/default.asp">W3Schools</a>
+ has a nice place to learn XSLT quickly.</p>
+
+ <p>We're going to take a look at the sitetree structure to find out what you're
+ capable of knowing about an item in the navigation of the site, then do a quick
+ example of how to create your own menu.</p>
+
+ </section>
+<section id="understanding_the_site_tree">
+<title>Understanding
+ the site tree</title>
+
+ <p>The site tree is the place where all the "nodes", or pages in your publication are
+ stored, preserving the hierarchy. The XML file can be found by going to the
+ content/authoring/ directory in the default publication and viewing the
+ sitetree.xml file. Let's take a look at a chunk:</p>
+
+ <source xml:space="preserve">
+ <site>
+ <node id="index">
+ <label xml:lang="en">Home</label>
+ <label xml:lang="de">Home</label>
+ </node>
+
+ <node id="tutorial">
+ <label xml:lang="en">Tutorial</label>
+ <label xml:lang="de">Tutorial</label>
+
+ <node id="new_doctype">
+ <label xml:lang="en">Create new doctype</label>
+ </node>
+ </node>
+ </site>
+ </source>
+
+ <p>The above tells us that each page is characterized by a <node> tag. Each
+ <node> tag has an "id" attribute, which is the name of the document. So, if
+ this publication's address were http://www.someplace.com/, then the ID for
+ the second node would make the address to page
+ http://www.someplace.com/tutorial.html.</p>
+
+ <p>Each node has an inner element called <label>. The label tag's contents are
+ the navigation title for the page. It's the link to the page that you see in menu of
+ the site. The xml:lang attribute signifies the language for this label, and as
+ you can see, this site has multiple supported languages: "en" for English, and
+ "de" for German.</p>
+
+ <p>Nodes can be inside other nodes. In the example above, the "new_doctype" node is
+ inside the "tutorial" node. This means that the "tutorial" page is a parent of the
+ "new_doctype" page, so they fall underneath each other like so:</p>
+
+ <source xml:space="preserve">
+ 1. Home
+ 2. Tutorial
+ a. Create new doctype
+ </source>
+
+ <p>Order is also important - the order of the nodes in the sitetree file is the order in
+ which the pages are displayed in the hierarchy of the site.</p>
+
+ </section>
+<section id="the_nav_namespace">
+<title>The nav:
+ namespace</title>
+
+ <p>An XML namespace was created for users to grab these nodes with the appropriate
+ information. So, for example, you can reference a node in your XSL using
+ nav:node. Once you reference the node, you can reference it's label too:
+ nav:label. There's some other items you can reference when you are pointing at a
+ specific node:</p>
+
+ <table>
+ <tr>
+ <td colspan="1" rowspan="1">@href</td>
+ <td colspan="1" rowspan="1">The location of the page relative to where you
+ are currently in the site</td>
+ </tr>
+
+ <tr>
+ <td colspan="1" rowspan="1">@current</td>
+ <td colspan="1" rowspan="1">A true or false value is possible to determine
+ whether or not the page you are on is the node you are referencing</td>
+ </tr>
+ <tr>
+ <td colspan="1" rowspan="1">@visibleinnav</td>
+ <td colspan="1" rowspan="1">Another true/false value given if the page had
+ been labeled as visible in the navigation</td>
+
+ </tr>
+ </table>
+
+ <p>Hiding navigation items can be helpful for situations like form
+ submission/confirmation pages. You don't want the user to go to that page right
+ away from within the site's menu, so you hide it, letting the programming of the
+ form's input redirect the user to that page instead. Other examples abound.</p>
+
+ </section>
+<section id="Using_your_new-found_knowledge">
+<title>Using your
+ new-found knowledge</title>
+
+ <p>Let's try putting together a simple menu.xsl file that creates our own simple
+ markup. The contents are below:</p>
+
+ <source xml:space="preserve">
+ <?xml version="1.0" encoding="UTF-8" ?>
+
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:nav="http://apache.org/cocoon/lenya/navigation/1.0"
+ xmlns="http://www.w3.org/1999/xhtml"
+ exclude-result-prefixes="nav">
+
+ <xsl:template match="nav:site">
+
+ <ul>
+
+ <!-- loop through all top-level items and return as list items -->
+ <xsl:for-each select="/*/nav:node[@visibleinnav = 'true']">
+ <xsl:when test="@current = 'true'">
+ <li class="current"><a href="{@href}"><xsl:apply-templates select="nav:label"/></a></li>
+ </xsl:when>
+ <xsl:otherwise>
+ <li><a href="{@href}"><xsl:apply-templates select="nav:label"/></a></li>
+ </xsl:otherwise>
+ </xsl:for-each>
+
+ </ul>
+ </xsl:template>
+
+ <xsl:template match="nav:label">
+ <xsl:value-of select="."/>
+ </xsl:template>
+
+ </xsl:stylesheet>
+ </source>
+
+ <p>OK, so let's dissect this one. You always start with your XML prologue and
+ stylesheet tags (notice how the root stylesheet tag references the nav
+ namespace?). Then, one template is created to match the <site> tag -
+ that's the root tag that wraps around all the <node> tags in our
+ sitetree.xml file.</p>
+
+ <p>We open up the unordered list, and then we'll just loop through the top-level
+ navigation items on the site. The '/*/nav:node' part of the for-each loop steps
+ down into the site tag that you just matched (/*), and then through the nodes
+ underneath the site tag (/nav:node). Note that this is only the top level nodes,
+ not all the parents and children! Read up on
+ <a href="http://www.w3schools.com/xsl/default.asp">XSLT</a> and
+ <a href="http://www.w3schools.com/xpath/default.asp">XPath</a> to
+ better understand how this notation works.</p>
+
+ <p>For each top-level item, we test to see that node happens to be the page we are
+ looking at right now (@current = 'true'). If it is, then we open up our list tag and
+ assign it the class of "current". Your CSS can then be created to give some special
+ styling to that list item.</p>
+
+ <p>Once the list item is created, we need the link. The address for the link tag is
+ gathered from our handy @href. The text for the link will be the label of the node.
+ So, we call out another template shown at the bottom of our example menu.xsl file
+ where it basically just grabs the value of the contents inside the <label>
+ tags in the sitetree.xml file. We close the the link and the list items.</p>
+
+ <p>Of course, if this isn't the page we are on, then we do the same thing but don't add in
+ our special class. Simple, no?</p>
+
+ </section>
+<section id="give_it_a_try">
+<title>Give it a try</title>
+
+ <p>You now pretty much have the basics for putting together your own custom
+ navigation. There are those that feel our methods for generating the menus are
+ incorrect and that we should grab the nodes that we need in one fell swoop instead of
+ looping through each one, but this was the only method we could find where wewould
+ achieve the coding standards we wanted. Go experiment and have fun!</p>
+ </section>
+ </body>
+</document>
Added: lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221903597.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221903597.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221903597.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221903597.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>5. Custom Navigation in Lenya</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/fddd7000-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221903597" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221882667"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910786809" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910770970"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781622759" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.1195221902726.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.1195221902726.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.1195221902726.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.1195221902726.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 1999-2004 The Apache Software Foundation
+
+ Licensed 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.
+-->
+<!-- $Id: index.xml 55543 2004-10-26 00:14:59Z gregor $ --><!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
+
+<document>
+ <header>
+ <title>Part 6a: mod_proxy and Lenya</title>
+ </header>
+ <body>
+ <p>We had mentioned that we were going to do articles on usecases and doctypes, but as we were
+ reconfiguring the newest version of Lenya (1.2.4 as of this writing) to be
+ installed under the ROOT context of Tomcat, we were again interested in going back
+ and fixing up our mod_proxy configurations so that the following would
+ happen:</p>
+
+ <ul>
+ <li>You can access the authoring environment with
+ http://lenya.client.com/</li>
+ <li>Any login requests to and subsequent usages of the authoring environment
+ are redirected to SSL for better security (no real certificate needed,
+ since just using it on inside)</li>
+ <li>Each publication is a directory under one virtualhost for
+ http://www.client.com/, unless a new domain name or sub-domain name was
+ needed, like http://publication.client.com/, where a separate
+ virtualhost would be created pointing to that one publication</li>
+ <li>A need for SSL pages on http://www.client.com/ (like form
+ submissions)</li>
+ </ul>
+
+ <p>It seemed like a lot to ask for, and we wasn't sure how to go about getting it done.
+ Lucky for us (or so we thought), Lenya's documentation has a
+ <a href="http://wiki.apache.org/lenya/HowToModProxy">page on
+ mod_proxy</a> for a very similar configuration. As always, however,
+ making sense of the documentation was harder than the actual configuration.
+ Here's our attempt at explaining just how to get the above setup working.</p>
+
+ <section id="getting_lenya_installed_under_the_ROOT_context">
+<title>
+ Getting Lenya installed under the ROOT context</title>
+
+ <p>So, we were trying to make things a little cleaner for ourself and having Lenya be
+ the only web application installed under Tomcat. To do this, you'll have to
+ change a couple things in your local.build.properies file before building
+ Lenya (see
+ <a href="installing_lenya.html"> installing Lenya</a> for more
+ information):</p>
+
+ <ol>
+ <li>Change the container from Jetty to Tomcat (new to
+ 1.2.4)
+ #web.app.server=Jettyweb.app.server=Tomcat</li>
+ <li>Change the tomcat.webapps.dir line to the
+ following:tomcat.webapps.dir=${tomcat.home.dir}/webapps/ROOT</li>
+ <li>Change the tomcat.cache.dir line to the
+ following:tomcat.cache.dir=${tomcat.home.dir}/work/Catalina/localhost</li>
+ </ol>
+
+ <p>While the last line may seem strange, our thinking here was that since we are only
+ using Tomcat for Lenya, if we ever reset Lenya, then we'll just clean out the
+ whole work directory before starting Tomcat again.</p>
+
+ <p>Then install as always using ./build.sh. You'll have a shiny new
+ installation under the ROOT context, where you can now access Lenya with
+ http://lenya.client.com:8080/ (notice there's no 'lenya' at the end of
+ the URL now).</p>
+
+ </section>
+<section id="a_caveat_on_SSL">
+<title>A caveat on SSL</title>
+
+ <p>Yes, we know, there's always a caveat. Well, one thing the mod_proxy document
+ doesn't mention is that you can't have two different domains or sub-domains with
+ SSL ports opened on the same Apache instance and using the same IP address. For
+ example, if we want to host http://lenya.client.com/ and
+ http://www.client.com/ on the same Apache instance and they both have the same
+ IP address (this is Name-based Virtual Hosting in Apache), you would think you
+ could do this:</p>
+
+ <source xml:space="preserve">
+ NameVirtualHost 192.168.1.100:80
+
+ <VirtualHost 192.168.1.100:80>
+ ServerName lenya.client.com
+ # rest of configuration goes here
+ </VirtualHost>
+
+ <VirtualHost 192.168.1.100:443>
+ ServerName lenya.client.com
+ # rest of configuration goes here
+ </VirtualHost>
+
+ <VirtualHost 192.168.1.100:80>
+ ServerName www.client.com
+ # rest of configuration goes here
+ </VirtualHost>
+
+ <VirtualHost 192.168.1.100:443>
+ ServerName www.client.com
+ # rest of configuration goes here
+ </VirtualHost>
+ </source>
+
+ <p>But in fact, you can't. The explanation for it is
+ <a href="http://httpd.apache.org/docs-2.0/ssl/ssl_faq.html#vhosts2">
+ in Apache's documentation</a>. The way around this would be to either get
+ another IP address for www.client.com, or assign another port to
+ www.client.com's SSL connection (instead of using the default 443). So, in this
+ case, we are going to be using another IP address. To be perfectly honest, we are
+ actually going to split the authoring and live servers on to two physical
+ machines, but setting it up this way on one server using one Apache instance is
+ good enough for demonstration purposes.</p>
+
+ </section>
+<section id="authoring_environment">
+<title>Authoring
+ environment</title>
+
+ <p>So, for this first part, we want to be able to go to http://lenya.client.com/ and get
+ the first page of Lenya, where we can choose the publication we need to edit. Here's
+ what we have (it's nearly idential to the mod_proxy how-to document on Lenya's
+ website):</p>
+
+ <source xml:space="preserve">
+ NameVirtualHost 192.168.1.100:80
+
+ <VirtualHost 192.168.1.100:80>
+ ServerName lenya.client.com
+ ServerAlias lenya
+ ProxyRequests Off
+ RewriteEngine On
+ RewriteLog logs/lenya.client.com.rewrite.log
+ RewriteLogLevel 0
+ RewriteRule ^/([^/\.]+)$ $1/ [R]
+ RewriteRule ^/([^/\.]+)/$ http://lenya.client.com/$1/authoring/index.html [R,L]
+ RewriteCond %{QUERY_STRING} lenya\.usecase=login(.*)
+ RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
+ RewriteRule ^/(.*) http://lenya.client.com:8080/$1 [P,L]
+ ProxyPassReverse / http://lenya.client.com:8080/
+ </VirtualHost>
+
+ <VirtualHost 192.168.1.100:443>
+ ServerName lenya.client.com
+ ServerAlias lenya
+ ProxyRequests Off
+ RewriteEngine On
+ RewriteLog logs/ssl.lenya.client.com.rewrite.log
+ RewriteLogLevel 0
+ RewriteRule ^/([^/\.]+)$ $1/ [R]
+ RewriteRule ^/([^/\.]+)/$ http://lenya.client.com/$1/authoring/index.html [R,L]
+ RewriteRule ^/(.*) http://%{SERVER_NAME}:8080/$1 [P,L]
+ ProxyPassReverse / http://lenya.client.com:8080/
+ </VirtualHost>
+ </source>
+
+ <p>Let's step through this quickly. We setup our name-based virtual host for the IP
+ address assigned to lenya.client.com:</p>
+
+ <source xml:space="preserve"> NameVirtualHost 192.168.1.100:80
+ </source>
+
+ <p>In the first virtual host (the non-SSL one on port 80), we give it a name of
+ lenya.client.com, keep proxy requests off (so that it's only a reverse proxy,
+ not a forwarding one), and then turn on the rewriting engine to enable to rewrite
+ URLs. We also setup a log for the rewrites, but since the log level is 0, it won't
+ actually log anything.</p>
+
+ <p>The first group of RewriteRules are for convenience's sake, really. They match
+ everything after but up to the first forward slash that doesn't have a dot in it. In
+ other words, it's trying to match a directory, like this:</p>
+ <source xml:space="preserve"> http://lenya.client.com/default
+ </source>
+
+ <p>If it matches, it resends it as
+ http://lenya.client.com/default/authoring/index.html, meaning that it
+ goes through the whole rigamarole of matching again inside the VirtualHost.
+ Well, whenever you access the authoring environment for the first time, Lenya
+ checks to see if there's a session of you being logged in. Since there probably
+ isn't, it forwards you an address where "lenya.usecase=login"
+ something-or-another is appended to it. And that's where the second group of
+ Rewrites comes in. See the RewriteCond? It checks to see if the query string of the
+ URL has that pattern. If it does, it send it off to the SSL portion (see the https?).
+ The rest of it gets sent back to the reverse proxy, where the content is grabbed
+ from port 8080 where Tomcat is installed.</p>
+
+ <p>In the VirtualHost section for SSL on lenya.client.com, it's pretty much exactly
+ the same. If you try to hit the SSL port with just a directory, like so:</p>
+
+ <source xml:space="preserve"> https://lenya.client.com/default
+
+ </source>
+
+ <p>It rewrites the URL as
+ http://lenya.client.com/default/authoring/index.html. Here, again, it
+ goes back to the first VirtualHost, and if you aren't logged in, it eventually
+ takes you back to the SSL portion of the site to login. Otherwise, it matches
+ everything and sends it through the reverse proxy on port 8080. So, once you login
+ through SSL, you stay in SSL for all your editing.</p>
+
+ </section>
+<section id="next_part">
+<title>Next part</title>
+ <p>This article turned out to be quite long, so the next time around, which should be
+ very shortly, we will post the second half on configuring the live server
+ mod_proxy config.
+ </p>
+ </section>
+ </body>
+ </document>
Added: lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902726.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902726.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902726.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.meta.1195221902726.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata xmlns="http://apache.org/lenya/metadata/1.0">
+<element-set namespace="http://purl.org/dc/elements/1.1/">
+<element key="title">
+<value>6a. Mod Proxy and Lenya</value>
+</element>
+</element-set>
+<element-set namespace="http://apache.org/lenya/metadata/document/1.0">
+<element key="extension">
+<value>xml</value>
+</element>
+<element key="mimeType">
+<value>application/xml</value>
+</element>
+<element key="resourceType">
+<value>forrestDocument20</value>
+</element>
+<element key="contentType">
+<value>xml</value>
+</element>
+</element-set>
+</metadata>
Modified: lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.rcml
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.rcml?rev=595691&r1=595690&r2=595691&view=diff
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.rcml (original)
+++ lenya/sandbox/pubs/docu/content/authoring/ff0240f0-8730-11dc-ae46-9e7b5d14892d/en.rcml Fri Nov 16 07:11:58 2007
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<XPSRevisionControl xmlns="">
+<CheckIn backup="true" identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221902726" version="3"/>
+<CheckOut identity="lenya" session="fde084c0-944b-11dc-8f2e-e6c0ff9903ab" time="1195221881903"/>
<CheckIn backup="true" identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910798186" version="2"/>
<CheckOut identity="lenya" session="1f12dc80-8860-11dc-ba66-cfbbb816bd0d" time="1193910769340"/>
<CheckIn backup="true" identity="lenya" session="60798970-8730-11dc-ae46-9e7b5d14892d" time="1193781634049" version="1"/>
Added: lenya/sandbox/pubs/docu/content/authoring/ff7e2f30-944b-11dc-8f2e-e6c0ff9903ab/en
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/ff7e2f30-944b-11dc-8f2e-e6c0ff9903ab/en?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/ff7e2f30-944b-11dc-8f2e-e6c0ff9903ab/en (added)
+++ lenya/sandbox/pubs/docu/content/authoring/ff7e2f30-944b-11dc-8f2e-e6c0ff9903ab/en Fri Nov 16 07:11:58 2007
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<properties xmlns="http://apache.org/lenya/propertiesdocument/1.0">
+<property name="forrest.contrib" value="http://forrest.apache.org/contrib.html" />
+<property name="kupu" value="http://kupu.oscom.org" />
+<property name="forrest.install" value="http://forrest.apache.org/docs/your-project.html#installing" />
+<property name="lenya.archive.devel" value="http://mail-archives.apache.org/mod_mbox/lenya-dev/" />
+<property name="w3c" value="http://www.w3c.org/" />
+<property name="w3c.xslt" value="http://www.w3c.org/TR/xslt/" />
+<property name="nightly.builds" value="http://svn.apache.org/snapshots/lenya/" />
+<property name="lenya.demo" value="http://lenya.zones.apache.org:8888/" />
+<property name="forrest.build" value="http://forrest.apache.org/build.html" />
+<property name="issues.open.bugs.enhancement" value="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=Enhancement&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Lenya&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=short_desc&type0-0-0=notsubstring&value0-0-0=%5BPatch%5D&field0-0-1=noop&type0-0-1=noop&value0-0-1=&cmdtype=doit&newque
ryname=&order=Reuse+same+sort+as+last+time" />
+<property name="pdf" value="http://forrest.apache.org/docs_0_80/faq.html#pdf_images" />
+<property name="webdav" value="http://www.webdav.org/" />
+<property name="oscom" value="http://oscom.org" />
+<property name="lenya-zone" value="http://lenya.zones.apache.org" />
+<property name="apachecon" value="http://apachecon.com/" />
+<property name="asl" value="http://www.apache.org/licenses/" />
+<property name="lenya" value="http://wiki.apache.org/lenya/" />
+<property name="MetaStylesheets" value="http://wiki.apache.org/lenya/MetaStylesheets" />
+<property name="cvs.asf" value="http://svn.apache.org/" />
+<property name="releases" value="http://www.apache.org/dyn/closer.cgi/lenya/" />
+<property name="cocoon.2.1.features" value="http://cocoon.apache.org/2.1/features.html" />
+<property name="voting" value="http://www.apache.org/foundation/voting.html" />
+<property name="issues" value="http://issues.apache.org/bugzilla/" />
+<property name="cocoon.2.1" value="http://cocoon.apache.org/2.1/" />
+<property name="lenya.archive.user" value="http://mail-archives.apache.org/mod_mbox/lenya-user/" />
+<property name="opensource.org" value="http://www.opensource.org/" />
+<property name="how-it-works" value="http://www.apache.org/foundation/how-it-works.html" />
+<property name="wyona" value="http://wyona.com" />
+<property name="cadaver" value="http://www.webdav.org/cadaver/" />
+<property name="lenya.dist" value="http://www.apache.org/dyn/closer.cgi/lenya" />
+<property name="cocoon.howto" value="http://cocoon.apache.org/2.1/howto/" />
+<property name="nzz" value="http://www.nzz.ch" />
+<property name="svn" value="http://www.apache.org/dev/version-control.html#https-svn" />
+<property name="websiteUpdate" value="http://wiki.apache.org/cocoon/../cocoon/CocoonWebsiteUpdate" />
+<property name="wyona.org" value="http://wyona.org" />
+<property name="w3c.xml" value="http://www.w3c.org/XML/" />
+<property name="cocoon.howto.bugzilla" value="http://cocoon.apache.org/2.1/howto/bugzilla.html" />
+<property name="asf" value="http://www.apache.org/" />
+<property name="tomcat5" value="http://jakarta.apache.org/site/binindex.cgi#tomcat-5.0" />
+<property name="java.endorsedmechanism" value="http://java.sun.com/j2se/1.4.2/docs/guide/standards/index.html" />
+<property name="cocoon" value="http://wiki.apache.org/cocoon/" />
+<property name="forrest.committed" value="http://forrest.apache.org/committed.html" />
+<property name="forrest.apache.org" value="http://forrest.apache.org/" />
+<property name="mirror" value="http://cocoon.apache.org/mirror.cgi" />
+<property name="jetty" value="http://jetty.mortbay.org/jetty/" />
+<property name="wiki" value="http://wiki.apache.org/" />
+<property name="issues.list" value="http://issues.apache.org/bugzilla/buglist.cgi?" />
+<property name="cocoon.howto.patch" value="http://cocoon.apache.org/2.1/howto/howto-patch.html" />
+<property name="subversion" value="http://subversion.tigris.org/" />
+<property name="java" value="http://java.sun.com/j2se/1.4.2/download.html" />
+<property name="tomcat5.classloader" value="http://jakarta.apache.org/tomcat/tomcat-5.0-doc/class-loader-howto.html" />
+<property name="bxe" value="http://bxe.oscom.org" />
+<property name="issues.open.patches" value="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=Blocker&bug_severity=Critical&bug_severity=Major&bug_severity=Normal&bug_severity=Minor&bug_severity=Enhancement&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Lenya&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=short_desc&type0-0-0=substring&
amp;value0-0-0=%5BPatch%5D&field0-0-1=noop&type0-0-1=noop&value0-0-1=&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time" />
+<property name="issue.add" value="http://issues.apache.org/bugzilla/enter_bug.cgi?reporter=&product=Lenya&version=Current+CVS&component=core&rep_platform=Other&op_sys=other&priority=Other&bug_severity=Enhancement&bug_status=NEW&assigned_to=&cc=&bug_file_loc=&short_desc=%5BPatch%5D&comment=&maketemplate=Remember+values+as+bookmarkable+template&form_name=enter_bug" />
+<property name="tomcat5.setup" value="http://jakarta.apache.org/tomcat/tomcat-5.0-doc/setup.html" />
+<property name="FAQ" value="http://wiki.apache.org/lenya/FAQ" />
+</properties>
\ No newline at end of file
Added: lenya/sandbox/pubs/docu/content/authoring/ff7e2f30-944b-11dc-8f2e-e6c0ff9903ab/en.1195221909769.bak
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/docu/content/authoring/ff7e2f30-944b-11dc-8f2e-e6c0ff9903ab/en.1195221909769.bak?rev=595691&view=auto
==============================================================================
--- lenya/sandbox/pubs/docu/content/authoring/ff7e2f30-944b-11dc-8f2e-e6c0ff9903ab/en.1195221909769.bak (added)
+++ lenya/sandbox/pubs/docu/content/authoring/ff7e2f30-944b-11dc-8f2e-e6c0ff9903ab/en.1195221909769.bak Fri Nov 16 07:11:58 2007
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<properties xmlns="http://apache.org/lenya/propertiesdocument/1.0">
+<property name="foo" value="bar"/>
+<property name="forrest.contrib" value="http://forrest.apache.org/contrib.html"/>
+<property name="kupu" value="http://kupu.oscom.org"/>
+<property name="forrest.install" value="http://forrest.apache.org/docs/your-project.html#installing"/>
+<property name="lenya.archive.devel" value="http://mail-archives.apache.org/mod_mbox/lenya-dev/"/>
+<property name="w3c" value="http://www.w3c.org/"/>
+<property name="w3c.xslt" value="http://www.w3c.org/TR/xslt/"/>
+<property name="nightly.builds" value="http://svn.apache.org/snapshots/lenya/"/>
+<property name="lenya.demo" value="http://lenya.zones.apache.org:8888/"/>
+<property name="forrest.build" value="http://forrest.apache.org/build.html"/>
+<property name="issues.open.bugs.enhancement" value="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=Enhancement&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Lenya&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=short_desc&type0-0-0=notsubstring&value0-0-0=%5BPatch%5D&field0-0-1=noop&type0-0-1=noop&value0-0-1=&cmdtype=doit&newque
ryname=&order=Reuse+same+sort+as+last+time"/>
+<property name="pdf" value="http://forrest.apache.org/docs_0_80/faq.html#pdf_images"/>
+<property name="webdav" value="http://www.webdav.org/"/>
+<property name="oscom" value="http://oscom.org"/>
+<property name="lenya-zone" value="http://lenya.zones.apache.org"/>
+<property name="apachecon" value="http://apachecon.com/"/>
+<property name="asl" value="http://www.apache.org/licenses/"/>
+<property name="lenya" value="http://wiki.apache.org/lenya/"/>
+<property name="MetaStylesheets" value="http://wiki.apache.org/lenya/MetaStylesheets"/>
+<property name="cvs.asf" value="http://svn.apache.org/"/>
+<property name="releases" value="http://www.apache.org/dyn/closer.cgi/lenya/"/>
+<property name="cocoon.2.1.features" value="http://cocoon.apache.org/2.1/features.html"/>
+<property name="voting" value="http://www.apache.org/foundation/voting.html"/>
+<property name="issues" value="http://issues.apache.org/bugzilla/"/>
+<property name="cocoon.2.1" value="http://cocoon.apache.org/2.1/"/>
+<property name="lenya.archive.user" value="http://mail-archives.apache.org/mod_mbox/lenya-user/"/>
+<property name="opensource.org" value="http://www.opensource.org/"/>
+<property name="how-it-works" value="http://www.apache.org/foundation/how-it-works.html"/>
+<property name="wyona" value="http://wyona.com"/>
+<property name="cadaver" value="http://www.webdav.org/cadaver/"/>
+<property name="lenya.dist" value="http://www.apache.org/dyn/closer.cgi/lenya"/>
+<property name="cocoon.howto" value="http://cocoon.apache.org/2.1/howto/"/>
+<property name="nzz" value="http://www.nzz.ch"/>
+<property name="svn" value="http://www.apache.org/dev/version-control.html#https-svn"/>
+<property name="websiteUpdate" value="http://wiki.apache.org/cocoon/../cocoon/CocoonWebsiteUpdate"/>
+<property name="wyona.org" value="http://wyona.org"/>
+<property name="w3c.xml" value="http://www.w3c.org/XML/"/>
+<property name="cocoon.howto.bugzilla" value="http://cocoon.apache.org/2.1/howto/bugzilla.html"/>
+<property name="asf" value="http://www.apache.org/"/>
+<property name="tomcat5" value="http://jakarta.apache.org/site/binindex.cgi#tomcat-5.0"/>
+<property name="java.endorsedmechanism" value="http://java.sun.com/j2se/1.4.2/docs/guide/standards/index.html"/>
+<property name="cocoon" value="http://wiki.apache.org/cocoon/"/>
+<property name="forrest.committed" value="http://forrest.apache.org/committed.html"/>
+<property name="forrest.apache.org" value="http://forrest.apache.org/"/>
+<property name="mirror" value="http://cocoon.apache.org/mirror.cgi"/>
+<property name="jetty" value="http://jetty.mortbay.org/jetty/"/>
+<property name="wiki" value="http://wiki.apache.org/"/>
+<property name="issues.list" value="http://issues.apache.org/bugzilla/buglist.cgi?"/>
+<property name="cocoon.howto.patch" value="http://cocoon.apache.org/2.1/howto/howto-patch.html"/>
+<property name="subversion" value="http://subversion.tigris.org/"/>
+<property name="java" value="http://java.sun.com/j2se/1.4.2/download.html"/>
+<property name="tomcat5.classloader" value="http://jakarta.apache.org/tomcat/tomcat-5.0-doc/class-loader-howto.html"/>
+<property name="bxe" value="http://bxe.oscom.org"/>
+<property name="issues.open.patches" value="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=Blocker&bug_severity=Critical&bug_severity=Major&bug_severity=Normal&bug_severity=Minor&bug_severity=Enhancement&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Lenya&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=short_desc&type0-0-0=substring&
amp;value0-0-0=%5BPatch%5D&field0-0-1=noop&type0-0-1=noop&value0-0-1=&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time"/>
+<property name="issue.add" value="http://issues.apache.org/bugzilla/enter_bug.cgi?reporter=&product=Lenya&version=Current+CVS&component=core&rep_platform=Other&op_sys=other&priority=Other&bug_severity=Enhancement&bug_status=NEW&assigned_to=&cc=&bug_file_loc=&short_desc=%5BPatch%5D&comment=&maketemplate=Remember+values+as+bookmarkable+template&form_name=enter_bug"/>
+<property name="tomcat5.setup" value="http://jakarta.apache.org/tomcat/tomcat-5.0-doc/setup.html"/>
+<property name="FAQ" value="http://wiki.apache.org/lenya/FAQ"/>
+</properties>
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.