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]