4 require_once 'HTML/Template/Sigma.php';
5 PEAR::setErrorHandling(PEAR_ERROR_DIE);
14 $name = basename($argv[0]);
15 echo "Modo de uso:\n";
16 echo " $name <volumen> [<directorio>] [<filename>]\n\n";
17 echo "Por defecto se usa el directorio actual y se guarda el resultado en mp3-dvd-<volumen>.glabels\n";
22 $dir = @$argv[2] ? $argv[2] : '.';
23 $filename = @$argv[3] ? $argv[3] : "mp3-dvd-$numero.glabels";
24 $template = 'Template.MP3.glabels';
29 while (($f = $d->read()) !== false) {
30 if (is_dir("$dir/$f") and $f != '.' and $f != '..') {
32 while (($f2 = $d2->read()) !== false) {
33 if (is_dir("$dir/$f/$f2") and $f2 != '.' and $f2 != '..') {
35 $d3 = dir("$dir/$f/$f2");
36 while (($f3 = $d3->read()) !== false) {
37 if (preg_match('/\.mp3$/i', $f3)) {
42 if (preg_match('/(\d{4}) - (.*)/', $f2, $m)) {
43 $datos[ucwords($f)][] = ucwords("$m[2] [$m[1]]");
45 $datos[ucwords($f)][] = ucwords($f2);
55 $tpl =& new HTML_Template_Sigma($template_dir);
56 $tpl->loadTemplateFile($template);
57 $tpl->setGlobalVariable(array(
58 'N' => sprintf("%02d", $numero),
65 foreach ($datos as $artista => $albums) {
66 if ($y > Y_MAX and !@$col2) {
71 $tpl->setVariable(array(
74 'LINEA_Y' => $y + PUNTOS + 2.5,
75 'LINEA_ANCHO' => strlen($artista) * 2.5 + 25 / strlen($artista),
76 'ARTISTA' => translate($artista),
78 usort($albums, 'cmp');
79 for ($i = 0; $i < count($albums); $i++) {
81 $tpl->setVariable('ALBUM', translate($albums[$i]));
83 $tpl->parse('ALBUMS');
85 $y += PUNTOS * ($i + 2);
86 $tpl->parse('ARTISTAS');
89 $results = $tpl->get();
90 $fo = fopen($filename, 'w');
95 function cmp($a, $b) {
96 if (preg_match('/.*\[(\d{4})\]/', $a, $ma)
97 and preg_match('/.*\[(\d{4})\]/', $b, $mb))
99 if ($ma[1] == $mb[1]) return 0;
100 elseif ($ma[1] < $mb[1]) return -1;
109 function translate($str) {
110 static $tabla = array();
112 $tabla = get_html_translation_table(HTML_ENTITIES);
114 foreach ($tabla as $char => $void) {
115 $tabla[$char] = '&#' . ord($char) . ';';
118 return strtr($str, $tabla);