forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gav..." <brightoncomput...@brightontown.com.au>
Subject Re: MOTD template match query
Date Fri, 06 Jul 2007 02:07:26 GMT

<quote who="David Crossley">
> Ross Gardler wrote:
>> David Crossley wrote:
>> >Gav.... wrote:
>> >>
>> >> In site-to-xhtml.xsl we have tests which to me say :-
>> >>
>> >> when:
>> >> if test = x then do z
>> >> otherwise:
>> >> if test = y then do z
>> >>
>> >> In other words, the below code snippet confuses me
>> >> Why not combine it to say
>> >>
>> >> if test = x or test = y then do z
>> >>
>> >> Or is there more to it than I have glimpsed at so far?
>> >
>> >Would you please give me more clues as to which parts
>> >that you cannot understand.
>>
>> :-) It took me a while to figure out what Gavin meant...
>>
>> In Gavins psuedo code above
>>
>> "when" represents <xsl:when test="@starts-with='true'">
>>
>> "otherwise" represents the following <xsl:otherwise>
>>
>> "if test = x" represents <xsl:if test="starts-with($path, @pattern)">
>>
>> "if test = y" represents <xsl:if test="contains($path, @pattern)">
>>
>> "z" represents everything inside the above <xsl:if> statements
>>
>> The bit of XSL this refers to is copied below.
>
> Remember that we are allowing the pattern to be
> either anchored at beginning of the URI or contained
> anywhere within the URI. We also need to match the
> pattern for the URI being processed. We also need
> to only place the message if it is configured to be
> on the face of the page.
>
> Other similar sections of code deal with placing it
> in the left-hand panel, and with placing a message
> in the title.
>
> Here is the pseudo-code ...
>
> -------------
> If MOTD is configured
>  For each option
>
>   If @starts-with is true
>    Then If URI has the pattern anchored at beginning
>     Then If location is face-of-page
>      Place the motd message
>      If there is a link
>       Then create a link from "More"
>
>   If @starts-with is not true
>    Then If URI contains the pattern
>     Then do the same as above
>
>  End of foreach option
> -------------
>
> I don't see anything wrong with that, nor can i see
> how to do it better.

Ok, fair enough, all I saw was repeated code and wondered if it could be
cleaned up a little, the speed cost is negligable so we could leave it and
concentrate on the real problem.

Using your pseudo code my thoughts on improving it was :-

 -------------
 If MOTD is configured
  For each option

    If URI has the pattern anchored at beginning or contains the pattern
     Then If location is face-of-page
      Place the motd message
      If there is a link
       Then create a link from "More"

  End of foreach option
 -------------

I still don't see why this wouldn't work ( and it removed repeated code),
but no matter, I'll try it later on and see - but it is just something I
spotted whilst working on the main problem of positioning MOTD etc in a
new container <div> and not important.

Gav...


>
> -David
>
>> >> <xsl:if test="$config/motd">
>> >>       <xsl:for-each select="$config/motd/motd-option">
>> >>         <xsl:choose>
>> >>           <xsl:when test="@starts-with='true'">
>> >>             <xsl:if test="starts-with($path, @pattern)">
>> >>               <xsl:if test="motd-page/@location='page' or
>> >> motd-page/@location='both'">
>> >>                 <div id="motd-area">
>> >>                   <xsl:value-of select="motd-page"/>
>> >>                   <xsl:if test="motd-page-url">
>> >> <xsl:text> (</xsl:text><a>
>> >>                     <xsl:attribute name="href">
>> >>                       <xsl:value-of select="motd-page-url"/>
>> >>                     </xsl:attribute>
>> >> <xsl:text>More</xsl:text></a>
>> >> <xsl:text>)</xsl:text>
>> >>                   </xsl:if>
>> >>                 </div>
>> >>               </xsl:if>
>> >>             </xsl:if>
>> >>           </xsl:when>
>> >>           <xsl:otherwise>
>> >>             <xsl:if test="contains($path, @pattern)">
>> >>               <xsl:if test="motd-page/@location='page' or
>> >> motd-page/@location='both'">
>> >>                 <div id="motd-area">
>> >>                   <xsl:value-of select="motd-page"/>
>> >>                   <xsl:if test="motd-page-url">
>> >> <xsl:text> (</xsl:text><a>
>> >>                     <xsl:attribute name="href">
>> >>                       <xsl:value-of select="motd-page-url"/>
>> >>                     </xsl:attribute>
>> >> <xsl:text>More</xsl:text></a>
>> >> <xsl:text>)</xsl:text>
>> >>                   </xsl:if>
>> >>                 </div>
>> >>               </xsl:if>
>> >>             </xsl:if>
>> >>           </xsl:otherwise>
>> >>         </xsl:choose>
>> >>       </xsl:for-each>
>> >>     </xsl:if>
>> >>
>> >
>> >
>>
>>
>> --
>> --
>> Ross Gardler
>>
>> OSS Watch - awareness and understanding of open source software
>> development and use in education
>> http://www.oss-watch.ac.uk
>


-- 
Gav...


Mime
View raw message