PDA

View Full Version : How do I script this???



BLOWERS
05-10-2009, 11:04 AM
Help! In my template, I want to show an icon in album view that indicates that the entire album is remastered. The trouble is that I have some albums where only SOME of the tracks have been remastered. If I check the 'remastered' box in track properties, this automatically part-checks the remastered box in album properties. But a part-check seems to act as if it is a full check.

I'm probably not explaining myself very clearly! If I script: <dax:if(remastered)><img width=20 src="c:\program files\orangecd\palette1.ico" /></dax:if> I get my icon that shows the album is remastered. But this also shows when I have checked only one track as being remastered! I need the syntax for saying "if ALL TRACKS remastered etc etc", as I only want my remastered icon to show on the album page IF ALL TRACKS ARE REMASTERED!!

I hope a). that someone understands me, and b). can help!

Many thanks.....

andrei_c
05-11-2009, 06:29 PM
I'm probably not explaining myself very clearly! If I script: <dax:if(remastered)><img width=20 src="c:\program files\orangecd\palette1.ico" /></dax:if> I get my icon that shows the album is remastered. But this also shows when I have checked only one track as being remastered! I need the syntax for saying "if ALL TRACKS remastered etc etc", as I only want my remastered icon to show on the album page IF ALL TRACKS ARE REMASTERED!!
I am afraid it's not doable with current template syntax. Album context simply doesn't offer that level of granularity.

I am sure it can be achieved with JavaScript or CSS hack. Let me think about this overnight, there are several possibilities and I am not sure which is better.

The idea is approximately this (writing from my head, never actually tested it:)


<script type="text/javascript">
var all_remastered=true;
<dax:track><dax:if(!trackremastered)>all_remastered=false;</dax:if></dax:track>
if(all_remastered){
document.write('<img src="...">');
}
</script>

BLOWERS
05-14-2009, 07:37 AM
I am afraid it's not doable with current template syntax. Album context simply doesn't offer that level of granularity.

I am sure it can be achieved with JavaScript or CSS hack. Let me think about this overnight, there are several possibilities and I am not sure which is better.

The idea is approximately this (writing from my head, never actually tested it:)


<script type="text/javascript">
var all_remastered=true;
<dax:track><dax:if(!trackremastered)>all_remastered=false;</dax:if></dax:track>
if(all_remastered){
document.write('<img src="...">');
}
</script>

Thanks Andrei: I await your overnight thoughts with interest! I tried your first quick idea, but it didn't want to work (Template error). Might have been my fault, but I couldn't make it work!

andrei_c
05-17-2009, 06:51 AM
Here's the code that worked for me. Replace <img src="..."> with your image code.


<script type="text/javascript">
var r=1;
<dax:volume><dax:track><dax:if(!trackremastered)>r=0;</dax:if></dax:track></dax:volume>
if(r){document.write('<img src="...">');}
</script>

BLOWERS
05-17-2009, 08:57 AM
Hi Andrei,

This is weird. I have inserted your script (substituting my image source, obviously), but OCD won't show the icon. It shows the placeholder (white box with red X) and, if I rt. click and select 'properties', it recognises the icon file. Am I missing something??!

Many thanks.

andrei_c
05-17-2009, 09:07 PM
Hi Andrei,

This is weird. I have inserted your script (substituting my image source, obviously), but OCD won't show the icon. It shows the placeholder (white box with red X) and, if I rt. click and select 'properties', it recognises the icon file. Am I missing something??!

Many thanks.

Image file must be GIF, JPEG or PNG. I don't think IE will recognize anything else.

BLOWERS
05-18-2009, 08:12 AM
Andrei,

The following bit of my template (using 'single' as my field to indicate that the album is fully remastered) DOES return the icon I want to show. AND it is an .ico file!

<h2 class="album"><dax:if(single)><img width=20 src="c:\program files\orangecd\palette1.ico" /></dax:if>


To avoid any risk that I have replaced the path wrongly, could you possibly show your script section with my specific icon path, please? Then I can simply cut and paste your section to replace my existing line (i.e. <dax:if(single)><img width=20 src="c:\program files\orangecd\palette1.ico" /></dax:if>).

Surely it will then show my icon?!! Hope so....

andrei_c
05-22-2009, 04:11 AM
Try this.


<script type="text/javascript">
var r=1;
<dax:volume><dax:track><dax:if(!trackremastered)>r=0;</dax:if></dax:track></dax:volume>
if(r){document.write('<img src="file:///c:/program%20files/orangecd/palette1.ico">');}
</script>

BLOWERS
05-22-2009, 07:54 AM
Brilliant Andrei - many thanks for your help on this! I'm sure you have better things to do, so your time and trouble is much appreciated. It now works perfectly...