Aber bitte dran denken, das da ein Laie drin rum gekritzelt hat. Bleibt zu hoffen, dass das auch hinhaut, denn ich bin dann gleich zur subjektiven SFL-Anpassung übergegangen. Vielleicht können die Urheber noch falsches korrigieren und mir bitte nicht die Rübe abhauen.
$filename(%_parent_directory%.html,utf-8)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<meta name="GENERATOR" content="Mp3tag - http://www.mp3tag.de" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mp3tag - Dateiübersicht</title>
<style type="text/css"><!--
h1 { font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 14pt; color: #960000 }
body { font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 8pt; background: #f90 }
table, tr, td { font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 9pt; color: #000; }
a:link, a:visited, a:active { text-decoration: none; color: #03f; }
a:hover { text-decoration: none; color: #f03; }
.title { font-weight: bold; padding: 7px; margin: 0px; color: #960000; }
.odd { background-color: #fc0; }
body,td,th {
color: #000000;
}
--></style>
</head>
<body>
<h1>Mp3tag - Dateiübersicht</h1>
<p>%_date%</p>
<table>
<!--
Mp3Tag export configuration by nickless
Thanks a lot to
dano for the visual style
-->
<style type="text/css">
<!--
/*Visual Design by dano*/
body { background: #FF9900; color: white; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 9pt; }
h1 { font-family: tahoma, "Times New Roman"; font-size: 29pt; color: #960000; text-align: center; }
.table1 { background: #FF9900; FONT-SIZE: 9pt; color: white; FONT-FAMILY: Verdana, Tahoma, Arial, sans-serif; text-align: center; }
.table2 { background: #FF9900; FONT-SIZE: 9pt; color: #1700AB; FONT-FAMILY: Verdana, Tahoma, Arial, sans-serif; text-align: center; }
.table3 { background: #FFCC00; FONT-SIZE: 9pt; color: #1700AB; FONT-FAMILY: Verdana, Tahoma, Arial, sans-serif; text-align: center; }
a:link, a:visited, a:active { text-decoration: none;color: #000; }
a:hover { text-decoration: underline;color: #1700AB; }
.Stil1 {
font-family: "Times New Roman";
font-size: 8pt;
}
-->
</style>
<!--
.titlemedium { font-weight: bold;padding: 7px;margin: 0px;color: #3A4F6C;background-color: #AECEF8; }
.titlemedium a:link, .titlemedium a:visited, .titlemedium a:active { text-decoration: underline;color: #3A4F6C; }
.maintitle { vertical-align: middle;font-weight: bold;padding: 8px 0px 8px 5px;color: #960000;background-color: #1974EA; }
.maintitle a:link, .maintitle a:visited, .maintitle a:active { text-decoration: none;color: #FFF; }
.maintitle a:hover { text-decoration: underline; }
-->
<script type="text/javascript">
<!--
/* Cookie functions begin */
function readCookie(name)
{
var _cookie = document.cookie;
var _name = name + "=";
var _len = _cookie.length;
var i = 0;
while (i < _len)
{
var _val_from = i + _name.length;
if (_cookie.substring(i, _val_from) == _name)
{
var _val_to = _cookie.indexOf (";", _val_from);
if (_val_to == -1) _val_to = _len;
return unescape(_cookie.substring(_val_from, _val_to));
}
i = _cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function writeCookie(name, value, expire_time) //expire_time in hours
{
_expire_date = new Date();
_expire_date.setTime(_expire_date.getTime() + expire_time * 1000 * 60 * 60);
document.cookie = name + "=" + escape(value) + "; expires=" + _expire_date.toGMTString() + "; path=/";
}
function deleteCookie(name)
{
document.cookie = name + "=; expires=Thu, 01-Jan-80 00:00:01 GMT; path=/";
}
/* Cookie functions end */
/* Average bitrate calculating begin */
/* calculates base^exponent */
function power(base, exponent)
{
var result = base;
for(i=1; i<exponent; i++) { result *= base };
return result;
}
/* returns a floating point value with number of digits after the decimal point specified by "precision"
value: some floating point value;
precision: integer;
*/
function format(value, precision)
{
var _pow = power(10, precision);
return Math.round(value * _pow) / _pow;
}
/* Quick Sort begin */
function xchange(a, b) //sort all arrays
{
//you can delete arrays you don''t need, but delete ALL of them everywhere in the file!
//title
var temp = ar0_tit'['a']';
ar0_tit'['a']' = ar0_tit'['b']';
ar0_tit'['b']' = temp;
//artist
temp = ar1_art'['a']';
ar1_art'['a']' = ar1_art'['b']';
ar1_art'['b']' = temp;
//album
temp = ar2_alb'['a']';
ar2_alb'['a']' = ar2_alb'['b']';
ar2_alb'['b']' = temp;
//track
temp = ar3_tra'['a']';
ar3_tra'['a']' = ar3_tra'['b']';
ar3_tra'['b']' = temp;
//year
temp = ar4_yea'['a']';
ar4_yea'['a']' = ar4_yea'['b']';
ar4_yea'['b']' = temp;
//genre
temp = ar5_gen'['a']';
ar5_gen'['a']' = ar5_gen'['b']';
ar5_gen'['b']' = temp;
//path
temp = ar6_pat'['a']';
ar6_pat'['a']' = ar6_pat'['b']';
ar6_pat'['b']' = temp;
/* remove the comment and add some of the arrays with information you need
//bitrate
temp = ar7_btr'['a']';
ar7_btr'['a']' = ar7_btr'['b']';
ar7_btr'['b']' = temp;
//comment
temp = ar8_com'['a']';
ar8_com'['a']' = ar8_com'['b']';
ar8_com'['b']' = temp;
//length
temp = ar9_len'['a']';
ar9_len'['a']' = ar9_len'['b']';
ar9_len'['b']' = temp;
//tags
temp = arA_tag'['a']';
arA_tag'['a']' = arA_tag'['b']';
arA_tag'['b']' = temp;
//size
temp = arB_siz'['a']';
arB_siz'['a']' = arB_siz'['b']';
arB_siz'['b']' = temp;
//codec
temp = arC_cod'['a']';
arC_cod'['a']' = arC_cod'['b']';
arC_cod'['b']' = temp;
//mode
temp = arD_mod'['a']';
arD_mod'['a']' = arD_mod'['b']';
arD_mod'['b']' = temp;
//samplerate
temp = arE_rat'['a']';
arE_rat'['a']' = arE_rat'['b']';
arE_rat'['b']' = temp;
*/
//DO NOT delete these 2 arrays - necessary for sorting
//numbers array
temp = ar_nrs'['a']';
ar_nrs'['a']' = ar_nrs'['b']';
ar_nrs'['b']' = temp;
//sorted numbers array
temp = ar_last_sort'['a']';
ar_last_sort'['a']' = ar_last_sort'['b']';
ar_last_sort'['b']' = temp;
}
function compare(value1, value2, order)
{
if(order) { return(value1 < value2) }
else { return(value1 > value2) };
}
function quicksort(_array, left, right, order) //sort all arrays by _array in order (true = A-Z, false = Z-A)
{
var l, r, x;
l = left;
r = right;
x = Math.floor((left + right) / 2);
do
{
while(compare(_array'['l']', _array'['x']', order)) { l++ };
while(compare(_array'['x']', _array'['r']', order)) { r-- };
if(l <= r)
{
xchange(l, r);
if(x == l)
{
x = r
}
else
{
if(x == r) {x = l};
};
l++;
r--;
}
} while(l < r)
if(r > left) { quicksort(_array, left, r, order) };
if(l < right) { quicksort(_array, l, right, order) };
}
/* Quick Sort end */
/* Arrayed Export with Sorting + Average Bitrate Calculation */
//you can delete arrays you don''t need, but delete ALL of them everywhere in the file!
var ar0_tit = new Array(%_total_files%);
var ar1_art = new Array(%_total_files%);
var ar2_alb = new Array(%_total_files%);
var ar3_tra = new Array(%_total_files%);
var ar4_yea = new Array(%_total_files%);
var ar5_gen = new Array(%_total_files%);
var ar6_pat = new Array(%_total_files%);
/* remove the comment and add some of the arrays with information you need
var ar7_btr = new Array(%_total_files%);
var ar8_com = new Array(%_total_files%);
var ar9_len = new Array(%_total_files%);
var arA_tag = new Array(%_total_files%);
var arB_siz = new Array(%_total_files%);
var arC_cod = new Array(%_total_files%);
var arD_mod = new Array(%_total_files%);
var arE_rat = new Array(%_total_files%);
*/
//DO NOT delete these 2 arrays - necessary for sorting
var ar_last_sort = new Array(%_total_files%);
var ar_nrs = new Array(%_total_files%);
for (i=0; i<%_total_files%; i++) {ar_nrs'['i']' = i};
var avg_bps = 0;
/* Main Export Loop */
//you can delete arrays you don''t need, but delete ALL of them everywhere in the file!
$loop(%_filename_ext%)
ar0_tit'['$sub(%_counter%,1)']' = "$replace(%title%,",\")";
ar1_art'['$sub(%_counter%,1)']' = "$replace(%artist%,",\")";
ar2_alb'['$sub(%_counter%,1)']' = "$replace(%album%,",\")";
ar3_tra'['$sub(%_counter%,1)']' = "%track%";
ar4_yea'['$sub(%_counter%,1)']' = "%year%";
ar5_gen'['$sub(%_counter%,1)']' = "%genre%";
ar6_pat'['$sub(%_counter%,1)']' = "$replace(%_directory%,\,\\\\)";
avg_bps += %_bitrate%;
$loopend()
/* remove the comment and add some of the arrays with information you need
ar7_btr'['$sub(%_counter%,1)']' = "%_bitrate% kbps[ %_vbr%]";
ar8_com'['$sub(%_counter%,1)']' = "$replace(%comment%,",\")";
ar9_len'['$sub(%_counter%,1)']' = "%_length%";
arA_tag'['$sub(%_counter%,1)']' = "%_tag%";
arB_siz'['$sub(%_counter%,1)']' = "%_file_size%";
arC_cod'['$sub(%_counter%,1)']' = "%_codec%";
arD_mod'['$sub(%_counter%,1)']' = "%_mode%";
arE_rat'['$sub(%_counter%,1)']' = "%_samplerate%";
*/
/* Average Bitrate calculation */
avg_bps = format(avg_bps/%_total_files%, 1); // EDIT HERE (1) to change the number of decimals after the decimal point (1)
/* Calculations end */
/* Custom Routines */
function write_dots() //writes dots to the General Information Table
{
document.write(''<td width="1'%'">
'');
for (i=0; i<19; i++) { document.write(''<td width="2'%'">·</td>'') };
document.write(''<td width="1'%'">
'');
}
function sort(sort_by) //sets cookies and reloads the page (arrays will be sorted during loading process)
{
var _str = readCookie("direction");
writeCookie("direction", "az", 24*31);
if ((readCookie("array_name") == sort_by) && (_str == "az"))
{
writeCookie("direction", "za", 24*31);
}
writeCookie("array_name", sort_by, 24*31);
var _ar_nr = %_total_files% + ":";
for (i=0; i<ar_nrs.length; i++) {_ar_nr += ar_nrs'['i']' + ";"};
writeCookie("sorted_numbers", _ar_nr, 24);
window.location.reload()
}
function q_sort(_array, _direction) //sorts by multiple criteria using quicksort
{
var _ar_nr = "";
var i = 0;
_nrs = readCookie("sorted_numbers");
//determine the last sorting
var _str = "";
if ((_nrs != "") && (_nrs != null)) {
while ((i<_nrs.length-1) && (_nrs'['i']' != ":")) {
_str += _nrs'['i']';
i++;
};
if (_str == %_total_files%) {
var _curr = 0;
i++;
_str = "";
while (i<_nrs.length-1) {
_str += _nrs'['i']';
i++;
if (_nrs'['i']' == ";") {
ar_last_sort'['_str']' = _curr;
_str = "";
i++;
_curr++;
};
};
};
}
else {
for (i=0; i<%_total_files%; i++) {ar_last_sort'['i']' = i};
};
quicksort(_array, 0, $sub(%_total_files%,1), _direction);
i = 0;
var a = 0;
while (i<%_total_files%-1) {
a = i+1;
while ((a<%_total_files%) && (_array'['a']' == _array'['i']')) { a++; };
if (a>i) { quicksort(ar_last_sort, i, a-1, _direction) };
i = a;
};
deleteCookie("sorted_numbers");
}
function write_dir(array_nr) //writes the arrow that shows the direction of sorting
{
var _arrow = " ↓";
if (readCookie("direction") == "za") { _arrow = " ↑" };
if (readCookie("array_name") == array_nr)
{
document.write(_arrow);
}
}
/* Sorting */
var _ar = 1;
var _dir = true;
_ar = readCookie("array_name");
_dir =!(readCookie("direction") == "za");
switch (_ar)
{
case "0": q_sort(ar0_tit, _dir);
break;
case "1": q_sort(ar1_art, _dir);
break;
case "2": q_sort(ar2_alb, _dir);
break;
case "3": q_sort(ar3_tra, _dir);
break;
case "4": q_sort(ar4_yea, _dir);
break;
case "5": q_sort(ar5_gen, _dir);
break;
case "6": q_sort(ar6_pat, _dir);
break;
/* remove the comment and add some of the arrays with information you need
case "7": q_sort(ar7_btr, _dir);
break;
case "8": q_sort(ar8_com, _dir);
break;
case "9": q_sort(ar9_len, _dir);
break;
case "10": q_sort(arA_tag, _dir);
break;
case "11": q_sort(arB_siz, _dir);
break;
case "12": q_sort(arC_cod, _dir);
break;
case "13": q_sort(arD_mod, _dir);
break;
case "14": q_sort(arE_rat, _dir);
break;
*/
default: q_sort(ar1_art, _dir);
};
//-->
</script>
<div align="center">
<table class="table1" border="0" cellpadding="1" cellspacing="1"
width="98'%'">
<tbody>
<tr class="table3">
<td style="font-weight: bold;" width="30">Nr.</td>
<td style="font-weight: bold;"><a onMousedown="sort(0)" title="Sortierung nach Titel">Titel<script>write_dir(0)</script></a></td>
<td style="font-weight: bold;"><a onMousedown="sort(1)" title="Sortierung nach Interpret">Interpret<script>write_dir(1)</script></a></td>
<td style="font-weight: bold;"><a onMousedown="sort(2)" title="Sortierung nach Album">Album<script>write_dir(2)</script></a></td>
<td style="font-weight: bold;"><a onMousedown="sort(3)" title="Sortierung nach Track">Track<script>write_dir(3)</script></a></td>
<td style="font-weight: bold;" width="55"><a onMousedown="sort(4)" title="Sortierung nach Jahr">Jahr<script>write_dir(4)</script></a></td>
<td style="font-weight: bold;" width="90"><a onMousedown="sort(5)" title="Sortierung nach Genre">Genre<script>write_dir(5)</script></a></td>
<td style="font-weight: bold;" width="75"><a onMousedown="sort(6)" title="Sortierung nach Ordner">Ordner<script>write_dir(6)</script></a></td>
</tr>
<script>
for(i=0; i<%_total_files%; i++) {
if (i'%'2==0) {document.write(''<tr class="table2">'')}
else {document.write(''<tr class="table3">'')}
document.write(''<td width="30">'' + (i+1) + ''</td>'')
//The tooltip (title) is here
document.write(''<td align="left">'' + ar0_tit'['i']' + ''</td>'')
document.write(''<td align="left">'' + ar1_art'['i']' + ''</td>'')
document.write(''<td align="left">'' + ar2_alb'['i']' + ''</td>'')
document.write(''<td align="left">'' + ar3_tra'['i']' + ''</td>'')
document.write(''<td width="55">'' + ar4_yea'['i']' + ''</td>'')
document.write(''<td width="90">'' + ar5_gen'['i']' + ''</td>'')
document.write(''<td width="75">'' + ar6_pat'['i']' + ''</td>'')
document.write(''</tr>'')
}
</script>
</tbody>
</table>
<!-- Main Export Table
end -->
<!-- Info Table
begin -->
<!-- Info Table
end -->
</div>
<p align="center" class="Stil5">erstellt am %_date% mit %_app% - dem universellen Tag Editor <a href="http://www.mp3tag.de/" title="Mp3tag Website">www.mp3tag.de</a>
<tr><td width="30%%" class="info_names" id="info_names_1" align="right"> </td>
</tr>
</body>
</html>