Results 1 to 4 of 4

Thread: Can <dax:track> be used inside of a track pa

  1. #1
    Join Date
    Feb 2004
    Location
    Posts
    157

    Default Can <dax:track> be used inside of a track pa

    My goal is to provide links to the previous and next track on the track page. Seeing no tags for this, I thought to try Javascript. The simple code saved the current track in a variable. Then I attempted to iterate over all the tracks using <dax:track> and making a Javascript call inside each iteration. This appears to mess up the page context in some manner, for after attempting this valid HTML did not seem to work. Here's the Javascript:

    Code:
    <script language="javascript">
    <!--
    var thisTrackNum;
    var prevTrackLink = "";
    var nextTrackLink = "";
    
    function saveTrackNum(trackNum)
    {
       thisTrackNum = trackNum;
    }
    
    function saveTrackLink(trackNum,trackLink)
    {
       if(thisTrackNum > 0 &amp;&amp; trackNum == thisTrackNum - 1)
          prevTrackLink = trackLink;
       if(trackNum == (thisTrackNum + 1))
          nextTrackLink = trackLink;
    }
    
    function printTrackLinks()
    {
       if (prevTrackLink.length > 0) 
          document.write("P:" + prevTrackLink.toString() + "<br>");
       if (nextTrackLink.length > 0)
          document.write("N:" + nextTrackLink.toString() + "<br>");
    }
    -->
    </script>
    And here's how it's invoked:

    Code:
    <script language="javascript">
    <!--
    saveTrackNum(<dax:tracknum/>);
    -->
    </script>
    
    <dax:track>
       <script language="javascript">
       <!--
       saveTrackLink(<dax:tracknum/>,"<dax:tracklink/>");
       -->
       </script>
    </dax:track>
    
    <script language="javascript">
    <!--
    printTrackLinks();
    -->
    </script>
    
    <!-- bottom table -->
    <!-- first row: lyrics and notes on left -->
    
    <table class="trackbottom">
    <tr>
    
    <td class="left" id="lyrics">
    
    <h3 class="topper">LYRICS 
    <dax:if($allow_edit)>
      <span class="addedit">
      <a href="#" onclick="window.external.edittrk(0,0,3); return false;">
      <dax:if(lyrics&#124;&#124;trackinstrumental)>(edit)<dax:else>(add)</dax:if>
      </a></span>
    </dax:if>
    </h3>
    <hr>
    
    <p><dax:lyrics/></p>
    When it reaches that <dax:lyrics> tag I get this message:


    Unknown tag or section: 'lyrics' in C:\Program Files\OrangeCD\Templates\PaulB.dax at line 143, character 17.

    <hr>

    <p><dax:lyrics/></p>

    </td>


    Without the a <dax:track> construct the page loads fine, leading me to suspect that the <dax:track> construct doesn't work on a track page. But without it I see no way to obtain the previous and next track links, which is a feature I'd like in my template.

    Any ideas?

  2. #2
    Join Date
    Feb 2009
    Posts
    1,549

    Default Re: Can <dax:track> be used inside of a trac

    Quote Originally Posted by Balok
    Without the a <dax:track> construct the page loads fine, leading me to suspect that the <dax:track> construct doesn't work on a track page. But without it I see no way to obtain the previous and next track links, which is a feature I'd like in my template.
    <dax:track> does not work in a track page.

    You can try to implement next/previous track links by modifying current URL which is accessible through document.location.

    The theme track URL will look like this:

    Code:
    dadb:D:\Personal\Documents\My%20Music\My%20music.dab?disc=080fd411&amp;track=4
    All you need is to replace trailing track=4 with track=3 or track=5 and youll get next/previous track URL.

  3. #3
    Join Date
    Feb 2004
    Location
    Posts
    157

    Default Re: Can <dax:track> be used inside of a trac

    Thanks, I'll try that!

  4. #4
    Join Date
    Feb 2004
    Location
    Posts
    157

    Default Re: Can <dax:track> be used inside of a trac

    For those interested, here is the Javascript:

    Code:
    <script language="javascript">
    <!--
    function printTrackLinks()
    {
    
       var url = document.URL;
       var track = <dax:tracknum/>;
    
       document.write("<table class=\"tracklink\"><tr>");
          
       // Left
       if (track > 1)
          document.write("<td class=\"lefttracklink\"><a href=\"" +
                  url.replace(/track=(\d+)/,"track=" + (track-1)) +
                  "\"><<<</a></td>");
    
       // Right
       if (track < <dax:trackcount/>)
          document.write("<td class=\"righttracklink\"><a href=\"" +
                     url.replace(/track=(\d+)/,"track=" + (track+1)) +
                     "\">>>></a></td>");
                     
       document.write("</tr></table>");
    
    }
    -->
    </script>
    Invoke it by placing this code wherever you want the links to appear:

    Code:
    <!-- Track links -->
    
    <script language="javascript">
    <!--
    printTrackLinks();
    -->
    </script>
    And put this either in a style tag, or on your CSS page:

    Code:
    table.tracklink
    {
       padding: 0 5px 0 5px;
       width: 100%;
    }
    
    table.tracklink td
    {
       font-family: verdana,arial,helvetica;
       font-size: 70%;
       font-weight: bold;
       color: $x1_color;
       margin: 20px 0 0 0;
       padding: 0;
       text-transform: uppercase;
    }
    
    table.tracklink a
    {
       color: $x1_color;
    }
    
    table.tracklink a:hover
    {
       color: $hv_color;
       text-decoration: none;
    }
    
    table.tracklink td.lefttracklink
    {
       text-align: left;
       padding: 0 0 0 5px;
    
    }
    
    table.tracklink td.righttracklink
    {
       text-align: right;
       padding: 0 5px 0 0;
    }
    Of course, you can and should alter your styles to confirm to your own template. These are my choices, which may not work for you.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •