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 && 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||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?
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&track=4
All you need is to replace trailing track=4 with track=3 or track=5 and youll get next/previous track URL.
Re: Can <dax:track> be used inside of a trac
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.