DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/)
-   RSS, Web Services and SOAP (http://www.daniweb.com/forums/forum151.html)
-   -   COntinous category List (http://www.daniweb.com/forums/thread114543.html)

googletired Mar 18th, 2008 10:56 am
COntinous category List
 
Hello,

It has been quite some time since I have done any .xml/.xsl work

My current site displays the contents of the category (only) when clicked. What I need it to do is display a Long list of all content from all categories seperated by Category heading. Also when a specific category is clicked it will need jump down the page to the proper heading.

This is read from the master .xml or as stated below vol_issue

Code for vol_issue file.

<?xml version="1.0" encoding="utf-8"?>
<vol_issue vol_issue_id="200803">
 <description>month here</description>
 <language>en</language>
 <type>print</type>
 <xmlfilename>en_print_200803.xml</xmlfilename>
 <cdfilename>cd_en_print_200803.xml</cdfilename>
  <category category_id="54">
  <sort_order>1</sort_order>
  <article article_id="#####"/>
  <article article_id="#####"/>
  <article article_id="#####"/>
  <article article_id="#####"/>
  <article article_id="#####"/>
  </category>

  <category category_id="2">
  <sort_order>2</sort_order>
  <article article_id="#####"/>
  <article article_id="#####"/>
  <article article_id="#####"/>
  <article article_id="#####"/>
  <article article_id="#####"/>
  </category>
</vol_issue>

Code for article listing .XSL

<?xml version='1.0' encoding='utf-8' ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  version="1.0">
<xsl:output method="html" encoding="ISO-8859-1" omit-xml-declaration="yes"/>

        <xsl:param name="pagename">default.asp?pagename=media&amp;content=getcontent</xsl:param>
        <xsl:param name="lang">en</xsl:param>
        <xsl:param name="type">print</xsl:param>
        <xsl:param name="vol">200304</xsl:param>
        <xsl:param name="cat">2</xsl:param>
        <xsl:param name="articleid">12345</xsl:param>
        <xsl:param name="mode">preview</xsl:param>
        <xsl:param name="target">email</xsl:param>
        <xsl:param name="selectedcat"></xsl:param>
       
        <xsl:variable name="strBaseURL"><xsl:value-of select="concat('type=',$type,'&amp;lang=',$lang,'&amp;vol=',$vol,'&amp;cat=',$cat,'&amp;articleid=',$articleid)"></xsl:value-of></xsl:variable>

        <xsl:variable name="default" select="document('../xml/default.xml')/main/site[@language=$lang]"/>

        <xsl:variable name="website_IP"><xsl:value-of select="$default/website_IP"/></xsl:variable>
       
        <xsl:variable name="twidth">
                <xsl:choose>
                        <xsl:when test="$target='web'"><xsl:text>100%</xsl:text></xsl:when>
                <xsl:otherwise><xsl:text>750</xsl:text></xsl:otherwise>
                </xsl:choose>
        </xsl:variable>

        <xsl:variable name="image_dir">
                <xsl:choose>
                        <xsl:when test="$target='web'"><xsl:value-of select="$default/web_article_images_url"/></xsl:when>
                        <xsl:when test="$target='email' or $target='index'"><xsl:value-of select="$website_IP"/><xsl:value-of select="$default/web_article_images_url"/></xsl:when>
                        <xsl:when test="$target='cd'"><xsl:value-of select="$default/cd_article_images_url"/></xsl:when>
                </xsl:choose>
                        </xsl:variable>
               
               

<xsl:variable name="viewpagename"><xsl:text>default.asp?pagename=media&amp;content=getcontent</xsl:text></xsl:variable>
<xsl:variable name="downloadpagename"><xsl:text>default.asp?pagename=media&amp;content=getcontent</xsl:text></xsl:variable>
       
<xsl:template match="vol_issue">
        <xsl:variable name="view_text">
                <xsl:choose>
                        <xsl:when test="type = 'print' or type = 'web'">
                                <xsl:choose>
                                        <xsl:when test="language='en'">View this article</xsl:when>
                                        <xsl:otherwise>Visualiser cet article</xsl:otherwise>
                                </xsl:choose>
                        </xsl:when>
                        <xsl:when test="type = 'digital'">
                                <xsl:choose>
                                        <xsl:when test="language='en'">Watch this video</xsl:when>
                                        <xsl:otherwise>Regarder ce vidéo</xsl:otherwise>
                                </xsl:choose>
                        </xsl:when>
                        <xsl:when test="type = 'pr'">
                                <xsl:choose>
                                        <xsl:when test="language='en'">View this release</xsl:when>
                                        <xsl:otherwise>Visualiser ce communiqué</xsl:otherwise>
                                </xsl:choose>
                        </xsl:when>
                        <xsl:otherwise>
                                <xsl:choose>
                                        <xsl:when test="language='en'">View this script</xsl:when>
                                        <xsl:otherwise>Visualiser ce script</xsl:otherwise>
                                </xsl:choose>
                        </xsl:otherwise>
                </xsl:choose>
        </xsl:variable>
       
        <xsl:variable name="email_text">
                <xsl:choose>
                        <xsl:when test="type ='print' or type='web'">
                                <xsl:choose>
                                        <xsl:when test="language='en'">E-mail me this article</xsl:when>
                                        <xsl:otherwise>Veuillez me transmettre cet article par courriel</xsl:otherwise>
                                </xsl:choose>
                        </xsl:when>
                        <xsl:when test="type ='pr'">
                                <xsl:choose>
                                        <xsl:when test="language='en'">E-mail me this release</xsl:when>
                                        <xsl:otherwise>Envoyer ce communiqué par courriel</xsl:otherwise>
                                </xsl:choose>
                        </xsl:when>
                        <xsl:when test="type ='digital'">
                        </xsl:when>
                        <xsl:otherwise>
                                <xsl:choose>
                                        <xsl:when test="language='en'">E-mail me this script</xsl:when>
                                        <xsl:otherwise>Veuillez me transmettre ce script par courriel</xsl:otherwise>
                                </xsl:choose>
                        </xsl:otherwise>
                        </xsl:choose>
                        </xsl:variable>
               
        <xsl:variable name="cat_description" select="document('../articles/categories.xml')/main/category[@category_id = $cat]/description"/>
        <xsl:variable name="category_lookup" select="document('../articles/categories.xml')"/>

        <xsl:choose>
                <xsl:when test="$target = 'web'">
                        <div class="ln-text">
                        <xsl:for-each select="category">
                                <xsl:sort select="sort_order" data-type="number" order="ascending" />
                                <xsl:variable name="catid" select="@category_id"/>
                                <xsl:variable name="classname">
                                  <xsl:choose>
                                  <xsl:when test="$catid = $selectedcat"><xsl:text>ln-slink</xsl:text></xsl:when>
                                  <xsl:otherwise><xsl:text>ln-alink</xsl:text></xsl:otherwise>
                                  </xsl:choose>
                                </xsl:variable>       
                                <xsl:text> </xsl:text><a href="{$strBaseURL}&amp;vol={/vol_issue/@vol_issue_id}&amp;cat={$catid}" id="{$catid}" class="{$classname}"><xsl:value-of select="$category_lookup/main/category[@category_id = $catid]/description"/>:<xsl:value-of select="count(article)"/>

</a><br/>
                            </xsl:for-each>
                        </div>
                </xsl:when>                       
        </xsl:choose>

        <div class="m-bcategory"><h1><xsl:value-of select="$cat_description"/></h1></div>
       
        <xsl:for-each select="category[@category_id = $cat]/article">
          <xsl:variable name="article" select="document(concat('../articles/', @article_id, '.xml'))"/>
            <div class="m-blurbwrapper">
            <div class="m-bheadline"><a class="m-bheadline" href="{$viewpagename}&amp;type={../../type}&amp;lang={../../language}&amp;vol={../../@vol_issue_id}&amp;cat={../@category_id}&amp;articleID={@article_id}&amp;mode=view&amp;id={$article/article/video/file/file_name}"><xsl:value-of select="$article/article/headline"/></a></div>

        <div class="m-awordcount">
          <xsl:value-of select="$article/article/body_text/wordcount"/>
        </div>
        <xsl:if test="../../type='print' or ../../type='web'">
          <div class="m-thumbnail">

            <img height="50" width="70">
              <xsl:attribute name="src">
                <xsl:value-of select="$image_dir"/>
                <xsl:value-of select="$article/article/images/image/source"/>
                <!--<xsl:if test="$article/article/images/image/source = '' ">noimage.jpg</xsl:if>-->
                <xsl:choose>
                  <xsl:when test="$article/article/images/image/source = '' and $lang='en' ">noimage.jpg</xsl:when>
                  <xsl:when test="$article/article/images/image/source = '' and $lang='fr' ">noimagefre.jpg</xsl:when>
                </xsl:choose>
              </xsl:attribute>
            </img>

          </div>
        </xsl:if>





        <div class="m-bblurb"><xsl:value-of select="$article/article/blurb"/></div>

 

        <div class="m-blink">
          <a class="m-blink" href="{$viewpagename}&amp;type={../../type}&amp;lang={../../language}&amp;vol={../../@vol_issue_id}&amp;cat={../@category_id}&amp;articleID={@article_id}&amp;mode=view&amp;id={$article/article/video/file/file_name}">
            <xsl:value-of select="$view_text"/>
          </a>
          <xsl:if test="../../type='print' or ../../type='web' or ../../type='pr' or ../../type='digital'">
               <a  class="m-blink" href="{$downloadpagename}&amp;type={../../type}&amp;lang={../../language}&amp;vol={../../@vol_issue_id}&amp;cat={../@category_id}&amp;articleID={@article_id}&amp;mode=email">
              <xsl:value-of select="$email_text"/> <!-- <input type="checkbox" value="{@category_id}" name="category_id"><xsl:value-of select="description"/></input> -->
            </a>
          </xsl:if>
        </div>
    </div>
        </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Thanks in advance for all help and or ideas.

Gt


All times are GMT -4. The time now is 1:57 am.

Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC