This post contains a solution.  Please let us know how it works.

On 9/26/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> The live page URLs are of the form http://www.foo.com/catalog/ItemA01.html
> . Each page is guaranteed to have at least one image named e.g.,
> ItemA01.jpg - that is, the image [thumbnail] filename can be directly
> extracted from the URL (as opposed to parsing the page contents for
> images). The intention is...
> - We create a manually maintained text file with the URLs (one per line) of
> the pages that may be selected as a "random page".
> - The code picks a "random" URL from this text file and generates HTML code
> from it of the form [which gets inserted into the home-page]:
> <div id="randompage">
> <a href="http://www.foo.com/catalog/ItemA01.html";><img src="ItemA01.jpg"
> /><br />Title text drawn from page ItemA01</a>
> </div>

Good specifications should include the expected results. The input is
simply a list of item ids with titles.

<AllItemsForRandomThumbnail>
<item id="ItemA01">Title text drawn from page ItemA01</item>
<item id="123xyz">Wonder Widget</item>
</AllItemsForRandomThumbnail>

List maintenance can be manual or automated using the XPath Directory Generator:
http://solprovider.com/lenya/aggregatefiles
Create a file manually to test the code below. We can discuss
automating the input generation once the function is working.

> I tried adding a map:part to the
> aggregation in publication-sitemap.xmap to run some xsp to generate a
> randompage element with the URL and related information in it such that
> page2xhtml.xsl could pick it up and transform it (it isn't / doesn't work
> yet). Yes, but how? Am I along the right lines with my efforts above?

I checked Cocoon's source code for the Random Number Module.  The
official attribute is "randomNumber", but the code will accept any
string.  The module has a bug to always return the max when configured
using attributes.  Lenya uses the default of 0-9,999,999,999.

The publication XMAP needs:

<map:match pattern="randomthumbnail">
<map:generate src="AllItemsForRandomThumbnail.xml">
<map:transform src="randomthumbnail.xsl">
<map:parameter name="rnd" value="{random:randomNumber}"/>
</map:transform>
<map:serialize type="xml"/>
</map:match>

The map:part to include the new pipeline:
<map:part src="cocoon:/randomthumbnail"/>

The page2xhtml.xsl needs to place the "thumbnail" div created by...
FILE: "randomthumbnail.xsl:
<xsl:param name="rnd"/>
<xsl:template match="/">
<xsl:apply-template name="thumbnail"
select="item[position()= ({$rnd} mod count(item))]"/>
</xsl:template>
<xsl:template name="thumbnail">
<div id="randompage"><a
href="http://www.foo.com/catalog/[EMAIL PROTECTED]"><img src="[EMAIL 
PROTECTED]"/>
<br/><xsl:value-of select="."/></a>
</div>
</xsl:template>

The formula slightly favors items earlier in the list.  This
favoritism can be significant with more than a couple billion items so
you may need different code.

I typed this material directly into this post and have not tested it
for anything.  Use with risk.

> Sorry, if I'm sounding a bit ignorant on this, I am slightly out of
> my depth! (not all of us work in University Computer Science Depts!).

I never worked in a University Computer Science department because
working at a gas station paid much better.  My first five years of
college and over 90 credits were towards a CompSci degree.  The
curriculum changed because most modern tools (such as Apache httpd and
Java) did not exist during my penultimate attempt at a BS.  I just and
finally received a B.S.Management after passing 39 credits in 11
months while running a Fortune 200 company's website.

--
> > I am happy you like my documentation.  More should appear.  Migrating
> > my websites to Lenya 1.3 has higher priority than posting additional
> > documentation, but most of the Lenya section was collecting and
> > organizing my posts to the mailing lists so new material depends on
> > the level of activity on the MLs.
>
> Lenya is conceptually brilliant, but I would happily drop everything for a
> week to contribute to a "Lenya documentation for dummies" effort. If I'm
> brutally honest, the lack of documentation accessible to intermediates for
> what is a very complex system depending on so many technologies is the
> real gap in what would otherwise be the killer-CMS. Dare I say it, Lenya
> would IMHO benefit greatly with a bit more of an Ubuntu / Shuttleworth -
> style philosophy.

A CMS built on Cocoon is a good obvious idea.  Lenya 1.2 has design
flaws making the system needlessly complex.  Lenya 1.4/2.0 will be
slightly easier for Java programmers.  Lenya 1.3 will be easier for
everybody else.  The current documentation for Lenya 1.3 is at the
root of its repository.  A PHB should be able to install and use it
easily, and I will write documentation to explain why.

> > XSL is Turing-complete according to the academics.  So is COBOL.
> > Turing-completeness is about possibilities.  Real world programming is
> > about time to usability and ease of maintenance.  The W3C forgot XPath
> > needs a random() function.  XPath 2.0 has been a draft for two years.
> > Does anybody know how to make suggestions?
> Well, emailing the CSS team probably won't help with a speedy resolution.
> 10 years and counting ...
> Regards,
> James
One of my projects could supersede the Web and make the W3C
irrelevant.  Wish me luck.

solprovider

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to