function CommonFooter() { foreach (array('iconv', 'zlib', 'exif', 'mysql', 'dba') as $ext) { $support[] = (extension_loaded($ext) ? '+' : '-') . $ext; } echo xml_gen::br(); echo xml_gen::p('getID3() ' . getid3::VERSION . '.<br>PHP ' . phpversion() . ' (' . implode(xml_gen::space(2), $support) . ').'); echo xml_gen::p(xml_gen::a('http://getid3.sourceforge.net/', 'http://getid3.sourceforge.net')); echo '</body></html>'; }
/** * Generate XML for tooltips * * @param array info from get_extended_file_info() */ function generate_tooltip_xml($info) { static $order = array(array('genre'), array('title', 'artist', 'album', 'part', 'opus', 'tracknumber', 'track', 'discnumber', 'label'), array('date', 'year', 'released', 'version', 'sourcemedia'), array('location', 'language'), array('composer', 'lyricist', 'author', 'conductor', 'ensemble', 'arranger', 'performer'), array('comment'), array('backup'), array('*')); $g = new xml_gen(); // no proper extended info found? if (empty($info->format_name)) { return; } // generate xml for format infomation $xml = $g->b($info->format_name) . ($info->encoder_version ? '; ' . $info->encoder_version : '') . $g->br(); // ... technical information about track $xml .= number_format($info->sample_rate / 1000) . 'k/' . $info->bits_per_sample . '/' . $info->channels . '; '; $xml .= number_format($info->avg_bit_rate / 1000) . ' kbps' . ($info->bitrate_mode ? '(' . $info->bitrate_mode . ')' : '') . '; '; $xml .= morg_gui::number_format_significant_ciphers($info->filesize / 1024 / 1024, 2) . ' Mb; '; $xml .= $this->display_seconds_human_readable($info->playtime); // metadata if (!empty($info->comments)) { // remove hidden fields foreach ($this->hidden_fields() as $field) { if (isset($info->comments[$field])) { unset($info->comments[$field]); } } // sort 'date' if (isset($info->comments['date'])) { sort($info->comments['date']); } // begin comments table $xml .= "<table cellpadding='0' cellspacing='0' border='0' class='meta'>"; // loop thru tooltips groups foreach ($order as $fields) { // reset addline flag $add_line = false; // loop thru fields in group foreach ($fields as $field) { // does field exists in comments? if ($field != "*" && !empty($info->comments[$field])) { // extract values $key = $field; $values = $info->comments[$field]; // if multiple values, make pluralis of $key if (sizeof($values) >= 2 && ereg("s\$", $key)) { $key = "{$key}es"; } elseif (sizeof($values) >= 2) { $key = "{$key}s"; } // unpack values $values = implode($g->br(), $values); // add row $xml .= "<tr><td valign='top'>{$key}</td><td>{$values}</td></tr>"; // remove field from comment unset($info->comments[$field]); // set addline flag $add_line = true; } elseif ($field == '*') { // loop thru remaining comments foreach ($info->comments as $key => $values) { // if multiple values, make pluralis of $key if (sizeof($values) >= 2 && ereg("s\$", $key)) { $key = "{$key}es"; } elseif (sizeof($values) >= 2) { $key = "{$key}s"; } // unpack values $values = implode("<br>", $values); // add row $xml .= "<tr><td valign='top'>{$key}</td><td>{$values}</td></tr>"; } // no line after last group $add_line = false; } } // add empty row if ($add_line && $info->comments) { $xml .= "<tr><td colspan='2' style='font: 6px serif;'> </td></tr>"; } } // finalise comments table $xml .= "</table>"; } // create tooltip return $this->tool_tips->create($xml, 200); }