googletired 0 Newbie Poster

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

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.