<? // $RCSfile: lmbrowse.php,v $ // $Revision: 1.15 $ // $Name: $ // $Date: 2015/09/07 19:23:56 $ // $Author: agibert $ /* * LMBrowse - Langueur Monotone Browser * Copyright (C) 2012-2015 Arnaud G. GIBERT * mailto:arnaud@rx3.net * http://www.rx3.org/dvp/lmbrowse * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return( (float)$usec + (float)$sec); } $time_start = microtime_float(); //include "/var/httpd/www.langueurmonotone.com/html/lmbrowse_config.inc"; include "lmbrowse_config.inc"; $lmb_myname="LMBrowse"; $lmb_tag_tab=explode( " ", "\$Name: $"); $lmb_tag_tab=explode( "-", $lmb_tag_tab[1]); $lmb_myver=strtr( "$lmb_tag_tab[1]-$lmb_tag_tab[2]", "_", "."); /*--------------------------------------------------------------------------------------------------------------------*/ /* Sort Multy Array */ /*--------------------------------------------------------------------------------------------------------------------*/ /* Thanks http://stackoverflow.com/users/50079/jon ! */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_make_comparer() { // Normalize criteria up front so that the comparer finds everything tidy $criteria = func_get_args(); foreach ($criteria as $index => $criterion) { $criteria[$index] = is_array($criterion) ? array_pad($criterion, 3, null) : array($criterion, SORT_ASC, null); } return function($first, $second) use (&$criteria) { foreach ($criteria as $criterion) { // How will we compare this round? list($column, $sortOrder, $projection) = $criterion; $sortOrder = $sortOrder === SORT_DESC ? -1 : 1; // If a projection was defined project the values now if ($projection) { $lhs = call_user_func($projection, $first[$column]); $rhs = call_user_func($projection, $second[$column]); } else { $lhs = $first[$column]; $rhs = $second[$column]; } // Do the actual comparison; do not return if equal if ($lhs < $rhs) { return -1 * $sortOrder; } else if ($lhs > $rhs) { return 1 * $sortOrder; } } return 0; // tiebreakers exhausted, so $first == $second }; } function lmb_sort_multi_array( $array, $key) { $keys = array(); for ($i=1;$i<func_num_args();$i++) { $keys[$i-1] = func_get_arg($i); } // create a custom search function to pass to usort $func = function ($a, $b) use ($keys) { for ($i=0;$i<count($keys);$i++) { if ($a[$keys[$i]] != $b[$keys[$i]]) { return ($a[$keys[$i]] < $b[$keys[$i]]) ? -1 : 1; } } return 0; }; usort($array, $func); return $array; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Cookies Set */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_cookie_set( $cookie_id, $cookie_value, $cookie_time) { global $lmb_cookie_tab; setcookie( $cookie_id, $cookie_value, time() + $cookie_time); $lmb_cookie_tab["$cookie_id"] = $cookie_value; // echo "set ($cookie_value) into ($cookie_id)"; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Cookie Load */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_cookie_load( $cookie_id, $cookie_defvalue) { global $lmb_cookie_tab; if( array_key_exists ( $cookie_id, $_COOKIE)) { $cookie_value = $_COOKIE[ $cookie_id]; // echo "load val ($cookie_value) for ($cookie_id)"; } if( ! isset( $cookie_value)) { $cookie_value = $cookie_defvalue; // echo "set def val ($cookie_defvalue) for ($cookie_id)"; } $lmb_cookie_tab[ $cookie_id] = $cookie_value; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Cookies Load */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_cookies_load() { global $lmb_cookie_tab; lmb_cookie_load( "jpsolution", "html, flash"); lmb_cookie_load( "admin", ""); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Cookie Update */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_cookie_update( $get_array) { if( array_key_exists ( "cookie_id", $get_array)) { $cookie_id = $get_array["cookie_id"]; } else { $cookie_id = ""; } if( $cookie_id != "") { $cookie_value = $get_array["cookie_value"]; lmb_cookie_set( $cookie_id, $cookie_value, 31536000); } } /*--------------------------------------------------------------------------------------------------------------------*/ /* Admin Is */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_admin_is() { global $lmb_password; global $lmb_cookie_tab; $admin = $lmb_cookie_tab["admin"]; if( $admin == $lmb_password) { return( true); } else { return( false); } } /*--------------------------------------------------------------------------------------------------------------------*/ /* Admin Update */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_admin_update() { global $lmb_password; global $lmb_cookie_tab; if( array_key_exists ( "password", $_POST)) { $passwd = $_POST["password"]; } else { $passwd = ""; } if( $passwd != "") { if( $passwd == $lmb_password) { lmb_cookie_set( "admin", $lmb_password, 360000); } else { lmb_cookie_set( "admin", "", 360000); } } } /*--------------------------------------------------------------------------------------------------------------------*/ /* Size Convert */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_size_convert( $size) { $unit_tab = array( "b", "Kb", "Mb"); for( $i = 0; $size > 1024; $i++) { $size = intval( $size / 1024); } $size_tab["size"] = $size; $size_tab["unit"] = $unit_tab[$i]; return( $size_tab); } /*--------------------------------------------------------------------------------------------------------------------*/ /* HTML Text Format */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_html_text_format( $input_text) { $search_tab = array( "&", "\n", "< >", "<B>", "</B>", "<I>", "</I>", "<U>", "</U>", "<H>", "</H>", "<LM>", "</LM>", "<G+1/>", "<G+B/>", "<F+1/>", "<MSF/>" ); $replace_tab = array( "&", "<br/>\n ", " ", "<span style=\"font-weight:bold;\">", "</span>", "<span style=\"font-style:italic;\">", "</span>", "<span style=\"text-decoration:underline;\">", "</span>", "<span style=\"font-weight:bold; font-style:italic;\">", "</span>", "<span style=\"font-family:CustomFont; font-weight:normal;\">", "</span>", " <script type=\"text/javascript\" src=\"https://apis.google.com/js/plusone.js\"></script> <div class=\"g-plusone\" style=\"font-size: 0px;\" data-href=\"http://plus.google.com/117621568322370019205\" data-size=\"medium\" data-annotation=\"inline\" data-align=\"right\"></div>", " <div style=\"text-align: right;\"> <div id=\"gplus-div\"></div></div> <script type=\"text/javascript\"> function getElementByIdUniversal( id ) { return ( document.getElementById ) ? document.getElementById( id ) : document.all[ id ]; } function plusoneready() { gapi.plus.render( 'gplus-div', { 'href': 'http://plus.google.com/117621568322370019205', 'theme': 'dark', 'height': '69', 'width': '400'} ); } (function() { var gp = document.createElement( 'script' ); gp.type = 'text/javascript'; gp.async = true; gp.src = 'https://apis.google.com/js/plusone.js'; gp.onload = plusoneready; // Only for IE 6 and 7 gp.onreadystatechange = function() { if( this.readyState == 'complete' ) { plusoneready(); } } var div = getElementByIdUniversal( 'gplus-div' ); div.parentNode.insertBefore( gp, div ); } )(); </script>", " <div class=\"fb-like\" style=\"font-size: 0px;\" data-href=\"http://www.facebook.com/langueur.monotone\" data-send=\"false\" data-layout=\"button_count\" data-width=\"90\" data-show-faces=\"true\" data-colorscheme=\"dark\"></div> <div id=\"fb-root\"></div> <script type=\"text/javascript\"> (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = \"//connect.facebook.net/fr_FR/all.js#xfbml=1\"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script>", " <form method=\"post\" action=\"http://www.myspace.com/my/friends/addtofriends/langueur-monotone\"> <input type=\"submit\" value=\"myspace Friend\"> <style type=\"text/css\">input {background-color: 000000; border-width:1px; border-style:groove; border-color: 444444; color: FFFFFF; font-family:;} </style> </form> " ); return( str_replace( $search_tab, $replace_tab, $input_text)); } /*--------------------------------------------------------------------------------------------------------------------*/ /* XML Text Format */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_xml_text_format( $input_text) { $search_tab = array( "&", "\n", "< >", "<br/>", "<B>", "</B>", "<I>", "</I>", "<U>", "</U>", "<H>", "</H>", "<LM>", "</LM>", "<G+1/>", "<G+B/>", "<F+1/>", "<MSF/>" ); $replace_tab = array( "&", "\n ", "", "\n", "", "", "", "", "", "", "", "", "", "", "", "", "" ); return( str_replace( $search_tab, $replace_tab, $input_text)); } /*--------------------------------------------------------------------------------------------------------------------*/ /* PlayType Path Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_playtype_path_get( $play_type) { return( "discography/{$play_type}"); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play Path Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_play_path_get( $play_type, $play_id, $play_priority) { return( lmb_playtype_path_get( $play_type) . "/{$play_priority}-{$play_id}"); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Make Tab */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_make_tab( $tab_id, $css_id, $tab_side, $logo_path, $data, $skin_path) { $tab_class = "sprite-tab-{$tab_id}-{$tab_side}"; if( "$tab_side" == "l") { $logo_side="r"; } else { $logo_side="l"; } $tab_tag = "<td class=\"{$css_id}0\"><div class=\"{$tab_class}\"></div></td>"; if( $logo_path[0] == "/") { $logo_tag = "<td class=\"logo-{$logo_side}\" style=\"width: 20%;\"><img src=\"{$logo_path}\" alt=\"\"/></td>"; } else { $logo_tag = "<td class=\"logo-{$logo_side}\" style=\"width: 20%;\"><div class=\"{$logo_path}\"></div></td>"; } if( "$tab_side" == "l") { $l_tag = "{$tab_tag}"; $r_tag = "{$logo_tag}"; } else { $l_tag = "$logo_tag"; $r_tag = "$tab_tag"; } echo " <tr> <td colspan=\"3\" rowspan=\"1\" style=\"vertical-align: middle;\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"\"> <tbody> <tr> {$l_tag} <td class=\"{$css_id}00\"> </td> <td> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"\"> <tbody> "; echo $data; echo " </tbody> </table> </td> <td class=\"{$css_id}00\"> </td> {$r_tag} </tr> </tbody> </table> </td> </tr> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Spacer */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_spacer( $size) { echo " <tr><td>"; for( $i = 0; $i < $size; $i++) { echo "<br/>"; } echo "</td></tr> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Menu */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_menu( $menu_id, $skin_path) { global $lmb_url_post; for( $i = 0; $i < 3; $i++) { if( $i == $menu_id) { $mode="off"; } else { $mode="on"; } switch($i) { case 0: { if( $i == $menu_id) { echo " <td class=\"menu-item\" style=\"width: 128px;\"><div class=\"sprite-menu-home_page-off\"></div></td> "; } else { echo " <td class=\"menu-item\" style=\"width: 128px;\"><a class=\"button-item\" href=\"{$lmb_url_post}\"><div class=\"sprite-menu-home_page-on\"></div></a></td> "; } break; } case 1: { if( $i == $menu_id) { echo " <td class=\"menu-item\" style=\"width: 128px;\"><div class=\"sprite-menu-about-off\"></div></td> "; } else { echo " <td class=\"menu-item\" style=\"width: 128px;\"><a class=\"button-item\" href=\"{$lmb_url_post}?page=about\"><div class=\"sprite-menu-about-on\"></div></a></td> "; } break; } case 2: { if( $i == $menu_id) { echo " <td class=\"menu-item\" style=\"width: 128px;\"><div class=\"sprite-menu-discography-off\"></div></td> "; } else { echo " <td class=\"menu-item\" style=\"width: 128px;\"><a class=\"button-item\" href=\"{$lmb_url_post}?page=discography\"><div class=\"sprite-menu-discography-on\"></div></a></td> "; } break; } default: { break; } } if( $i < 2) { echo " <td class=\"sprite-menu-bg\" style=\"width: 20px;\"></td> "; } } } /*--------------------------------------------------------------------------------------------------------------------*/ /* Header */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_header( $page_id, $page_name, $page_title, $description, $keywords, $min_width, $skin_path) { global $lmb_keywords; global $lmb_ga_enable; header('Content-type: text/html; charset=iso-8859-1'); $keywords = "$lmb_keywords,$keywords"; if( $min_width != 0) { $mw_tag = "min-width: {$min_width}px;"; } else { $mw_tag = ""; } // echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">"; // echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"; echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"; // echo "<html lang=\"en-US\">"; echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"> "; echo " <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"/> <meta name=\"Description\" content=\"$description\"/> <meta name=\"keywords\" content=\"$keywords\"/> <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"{$skin_path}/images/favicon.ico\"/> <link rel=\"stylesheet\" type=\"text/css\" href=\"{$skin_path}/default.css\"/> <link rel=\"stylesheet\" type=\"text/css\" href=\"/jplayer/skin/pink.flag/css/jplayer.pink.flag.css\"/> <title>$page_name</title> </head> "; echo " <body style=\"background-image:url(''); background-repeat:repeat;\"> "; if( $lmb_ga_enable == true) { echo "<script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-37642754-1', 'auto'); ga('send', 'pageview'); </script> "; } echo " <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"{$mw_tag}\"> <tbody> <tr> <td class=\"border\" colspan=\"2\"><div class=\"sprite-border-top-left\"></div></td> <td></td> <td class=\"border sprite-title_line-l\"></td> "; echo " <td class=\"sprite-title_line-m\" style=\"width: 580px;\"><h1 class=\"lm\">Langueur Monotone</h1></td> "; echo " <td class=\"border sprite-title_line-r\"></td> <td></td> <td class=\"border\" colspan=\"2\"><div class=\"sprite-border-top-right\"></div></td> </tr> <tr> <td colspan=\"2\"></td> "; echo " <td colspan=\"5\" class=\"subtitle\" style=\"height: 70px;\"><h2 class=\"lm\">$page_title</h2></td> "; echo " <td colspan=\"2\"></td> </tr> <tr> <td colspan=\"1\" rowspan=\"4\" style=\"vertical-align: middle; height: 16px;\"><div class=\"sprite-border-left\"></div></td> <td colspan=\"7\" style=\"height: 16px;\"></td> <td colspan=\"1\" rowspan=\"4\" style=\"vertical-align: middle; height: 16px;\"><div class=\"sprite-border-right\"></div></td> </tr> <tr> <td style=\"vertical-align: top; height: 20px; text-align: center; \" rowspan=\"1\" colspan=\"7\"> <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"\"> <tbody> <tr> <td class=\"menu-left\" style=\"width: 16px; vertical-align: top;\"><div class=\"sprite-menu-begin\"></div></td> <td class=\"sprite-menu-bg\" style=\"width: 50%;\"></td> "; lmb_menu( $page_id, $skin_path); echo " <td class=\"sprite-menu-bg\" style=\"width: 50%;\"></td> <td class=\"menu-item\" style=\"width: 16px; vertical-align: top;\"><div class=\"sprite-menu-end\"></div></td> </tr> </tbody> </table> </td> </tr> <tr> <td colspan=\"7\" style=\"height: 10px;\"></td> </tr> <tr> <td colspan=\"7\" rowspan=\"1\" style=\"vertical-align: top;\"> <table style=\"text-align: left; width: 100%; height: 100%;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr> <td style=\"vertical-align: top; width: 16px;\"></td> <td style=\"vertical-align: top;\"> <table style=\"text-align: left; width: 100%; height: 100%; table-layout: fixed;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Footer */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_footer( $skin_path) { global $lmb_url_pre; global $lmb_url_post; global $lmb_myname; global $lmb_myver; global $lmb_body_footer; global $lmb_page_footer; global $time_start; echo " </tbody> </table> </td> <td style=\"vertical-align: top; width: 16px;\"></td> </tr> "; echo " </tbody> </table> </td> </tr> <tr> <td class=\"sprite-bottom_line-l\" style=\"vertical-align: top; height: 20px;\" colspan=\"2\"></td> <td class=\"sprite-bottom_line-m\" colspan=\"5\"></td> <td class=\"sprite-bottom_line-r\" style=\"vertical-align: top; height: 20px; text-align: left;\" colspan=\"2\"></td> </tr> <tr class=\"border\" style=\"height: 35px;\"> <td colspan=\"2\" rowspan=\"2\"><div class=\"sprite-border-bottom-left\"></div></td> <td colspan=\"5\"> <table style=\"text-align: left; width: 100%; height: auto;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr> <td> <table style=\"width: 100%; height: auto; \" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr> <td class=\"button-item\" style=\"width: 32px;\"><a rel=\"nofollow\" class=\"button-item\" href=\"http://{$lmb_url_pre}/?page=rss\" title=\"Langueur Monotone RSS feed\"><div class=\"sprite-button-rss-on\" style=\"\"></div></a></td> <td style=\"width: 8px;\"> </td> <td class=\"button-item\" style=\"width: 96px;\"><a rel=\"\" class=\"button-item\" href=\"http://www.rx3.net/\" title=\"Rx3.Net\"><div class=\"sprite-button-rx3-on\"></div></a></td> <td style=\"width: 8px;\"> </td> <td class=\"button-item\" style=\"width: 32px;\"><a rel=\"nofollow\" class=\"button-item\" href=\"http://www.safecreative.org/\" title=\"SafeCreative\"><div class=\"sprite-button-safe_creative-on\"></div></a></td> <td></td> </tr> </tbody> </table> </td> <td style=\"width: 338px;\"> <table style=\"width: 100%; height: auto; text-align: left; \" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr> "; if( lmb_admin_is()) { echo " <td style=\"width: 13px;\"></td> <td class=\"button-item\" style=\"width: 32px;\"><a rel=\"nofollow\" class=\"button-item\" href=\"http://validator.w3.org/check?uri=referer\" title=\"W3C HTML Validator\"><div class=\"sprite-button-w3c-html-on\"></div></a></td> <td style=\"width: 8px;\"> </td> <td class=\"button-item\" style=\"width: 32px;\"><a rel=\"nofollow\" class=\"button-item\" href=\"http://jigsaw.w3.org/css-validator/check/referer\" title=\"W3C CSS Validator\"><div class=\"sprite-button-w3c-css-on\"></div></a></td> <td style=\"width: 8px;\"> </td> <td class=\"button-item\" style=\"width: 32px;\"><a rel=\"nofollow\" class=\"button-item\" href=\"http://feed1.w3.org/check.cgi?url=http%3A//{$lmb_url_pre}/%3Fpage%3Drss\" title=\"W3C RSS Validator\"><div class=\"sprite-button-w3c-rss-on\"></div></a></td> <td style=\"width: 8px;\"> </td> <td class=\"button-item\" style=\"width: 32px;\"><a class=\"button-item\" href=\"/www-stats/\" title=\"Rx3 Statistics\"><div class=\"sprite-button-stats-on\"></div></a></td> <td style=\"width: 8px;\"> </td> <td class=\"button-item\" style=\"width: 32px;\"><a class=\"button-item\" href=\"https://www.google.com/analytics/web/?hl=en&pli=1#dashboard//a37642754w66067134p67926512\" title=\"Google Analytics\"><div class=\"sprite-button-stats-on\"></div></a></td> <td style=\"width: 8px;\"> </td> <td class=\"button-item\" style=\"width: 32px;\"><a class=\"button-item\" href=\"https://www.google.com/webmasters/tools/dashboard?hl=fr&siteUrl=http%3A%2F%2F{$lmb_url_pre}%2F\" title=\"Google Webmaster Tools\"><div class=\"sprite-button-stats-on\"></div></a></td> <td style=\"width: 8px;\"> </td> <td class=\"button-item\" style=\"width: 32px;\"><a rel=\"nofollow\" class=\"button-item\" href=\"http://{$lmb_url_pre}/?page=sitemap\" title=\"SiteMap\"><div class=\"sprite-button-rss-on\"></div></a></td> <td style=\"width: 8px;\"> </td> <td class=\"button-item\" style=\"width: 32px;\"> <form action=\"{$lmb_url_post}\" method=\"post\"> <div> <input type=\"hidden\" name=\"password\" value=\"XXX\"/> <div class=\"sprite-button-login-on\" style=\"display:inline-block; vertical-align: middle\"><input class=\"logout\" type=\"submit\" value=\"\" title=\"Logout\"/></div> </div> </form> </td> <td style=\"width: 13px;\"></td> "; } else { echo " <td class=\"button-item\" style=\"\"> <form action=\"{$lmb_url_post}\" method=\"post\"> <div> <div style=\"display: inline-block; vertical-align: middle;\"><input class=\"password\" type=\"password\" name=\"password\" size=\"8\" title=\"Password\"/></div> <div class=\"sprite-button-login-on\" style=\"display:inline-block; vertical-align: middle\"><input class=\"login\" type=\"submit\" value=\"\" title=\"Login\"/></div> </div> </form> </td> "; } $time_stop = microtime_float(); $time_elaps = intval( ( $time_stop - $time_start) * 1000) / 1000; echo " </tr> </tbody> </table> </td> <td class=\"bottext\">Page generated in $time_elaps seconds by <div class=\"link-item\"><a href=\"http://www.rx3.org/dvp/?dvp=".strtolower($lmb_myname)."\">{$lmb_myname}</a></div> V {$lmb_myver}</td> "; echo " </tr> </tbody> </table> </td> <td class=\"border\" colspan=\"2\" rowspan=\"2\"><div class=\"sprite-border-bottom-right\"></div></td> </tr> <tr> <td style=\"vertical-align: top;\"></td> <td class=\"border\" colspan=\"3\" rowspan=\"1\" style=\"height: 15px; vertical-align: top; text-align: center;\"><div class=\"sprite-border-bottom\" style=\"background-color: transparent;\"></div></td> <td style=\"vertical-align: top;\"></td> </tr> </tbody> </table> </body> </html> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Welcome Tab */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_welcome_tab( $skin_path) { $welcome_file = "welcome.txt"; $welcome_string = file_get_contents( "{$welcome_file}"); ob_start(); echo " <tr class=\"welcome1\"> <td class=\"welcome01\"></td> <td class=\"welcome1\"> ".lmb_html_text_format( "{$welcome_string}")." </td> <td class=\"welcome01\"></td> </tr> "; $data = ob_get_contents(); ob_end_clean(); lmb_make_tab( "welcome", "welcome", "l", "{$skin_path}/images/lm-logo1-border-220.png", $data, $skin_path); // lmb_make_tab( "welcome", "welcome", "l", "sprite-lm-logo1-border-220", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* News Tab Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_news_tab_get( ) { global $lmb_url_pre; global $lmb_url_post; $news_file = "news.txt"; $line = array(); $cmd = "sed -e 's/\t*\t/\t/g' ${news_file}"; exec( $cmd, $line); for( $i = 0; $i < count($line); $i++) { $tab = explode( "\t", $line[$i]); $css_row = ( $i + 1) % 2 + 1; if( count($tab) > 3) { $play_name = $tab[3]; $play_type = $tab[4]; $play_id = $tab[5]; $play_priority = $tab[6]; $news_tab[$i]["name"] = "{$play_name}"; $news_tab[$i]["rlink"] = "{$lmb_url_post}?page=play&type={$play_type}&id={$play_id}&priority={$play_priority}"; $news_tab[$i]["alink"] = "http://{$lmb_url_pre}{$news_tab[$i]["rlink"]}"; $news_tab[$i]["rimg"] = lmb_play_path_get( $play_type, $play_id, $play_priority) . "/covers/{$play_id}-cover-1-icon.png"; $news_tab[$i]["aimg"] = "http://{$lmb_url_pre}{$news_tab[$i]["rimg"]}"; } else { $news_tab[$i]["name"] = ""; } $news_tab[$i]["date"] = $tab[0]; $news_tab[$i]["title"] = $tab[1]; if( $tab[2] != ".") { $news_tab[$i]["news"] = $tab[2]; } else { $news_tab[$i]["news"] = ""; } } return( $news_tab); } /*--------------------------------------------------------------------------------------------------------------------*/ /* News Tab */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_news_tab( $skin_path) { global $lmb_url_post; $news_tab = lmb_news_tab_get(); ob_start(); for( $i=0; $i < count($news_tab); $i++) { $css_row = ( $i + 1) % 2 + 1; if( "{$news_tab[$i]["name"]}" != "") { $height = 110; $link1_tag = "<div class=\"link-item\"><a href=\"{$news_tab[$i]["rlink"]}\">"; $link2_tag = "<a href=\"{$news_tab[$i]["rlink"]}\">"; $img_tag = "<img class=\"button-item\" src=\"{$news_tab[$i]["rimg"]}\" alt=\"\"/>"; $play_tag=" <td class=\"news3\">{$link1_tag}{$news_tab[$i]["name"]}</a></div></td> <td class=\"news4\" style=\"height: {$height}px; width: 96px;\">{$link2_tag}{$img_tag}</a></td>"; $colspan_tag = ""; } else { $play_tag = ""; $cover_tag = ""; $colspan_tag = "colspan=\"3\""; } if( $news_tab[$i]["news"] != "") { $news = "<br/>{$news_tab[$i]["title"]}<br/><br/>{$news_tab[$i]["news"]}<br/><br/>"; } else { $news = "<br/>{$news_tab[$i]["title"]}<br/><br/>"; } echo " <tr class=\"news{$css_row}\"> <td class=\"news01\"></td> <td class=\"news1\">{$news_tab[$i]["date"]}</td> <td class=\"news2\" {$colspan_tag}>".lmb_html_text_format( "{$news}")."</td> {$play_tag} <td class=\"news01\"></td> </tr> "; } $data = ob_get_contents(); ob_end_clean(); // lmb_make_tab( "news", "news", "r", "{$skin_path}/images/lm_logo2-border-220.png", $data, $skin_path); lmb_make_tab( "news", "news", "r", "sprite-lm-logo2-border-220", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Twitter Tab */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_twitter_tab( $skin_path) { global $lmb_url_post; ob_start(); echo " <tr class=\"twitter1\"> <td class=\"twitter01\"></td> <td class=\"twitter0\"></td> <td class=\"twitter01\"></td> </tr> <tr class=\"twitter1\"> <td class=\"twitter01\"> </td> <td class=\"twitter0\"> <div class=\"button-item\" style=\"display: inline-block; border-radius: 5px;\"><a class=\"twitter-timeline\" href=\"https://twitter.com/langueurmon\" data-widget-id=\"544258336741670912\">Tweets by @langueurmon</a></div> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+\"://platform.twitter.com/widgets.js\";fjs.parentNode.insertBefore(js,fjs);}}(document,\"script\",\"twitter-wjs\");</script> </td> <td class=\"twitter01\"> </td> </tr> <tr class=\"twitter1\"> <td class=\"twitter01\"></td> <td class=\"twitter0\"></td> <td class=\"twitter01\"></td> </tr> "; /* echo " <tr class=\"twitter1\"> <td class=\"twitter01\"></td> <td class=\"twitter1\">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</td> <td class=\"twitter01\"></td> </tr> "; */ $data = ob_get_contents(); ob_end_clean(); // lmb_make_tab( "twitter", "twitter", "l", "{$skin_path}/images/lm_logo1-border-220.png", $data, $skin_path); lmb_make_tab( "twitter", "twitter", "l", "sprite-lm-logo1-border-220", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Main Body */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_main_body( $skin_path) { lmb_welcome_tab( $skin_path); lmb_spacer(4); lmb_news_tab( $skin_path); lmb_spacer(4); lmb_twitter_tab( $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Main Page */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_main_page() { global $lmb_tab; $skin_path = "/skin"; lmb_header( 0, "Langueur Monotone - Home Page", "Home Page", "Langueur Monotone home page, entry point to information, news and links", "home page", 0, "{$skin_path}"); lmb_main_body( $skin_path); lmb_footer( $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* SiteMap Item */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_sitemap_item( $item_type, $page_url, $img_tab) { global $lmb_url_pre; global $lmb_url_post; echo " <url> "; echo " <loc>http://{$lmb_url_pre}{$lmb_url_post}${page_url}</loc> <lastmod>2013-08-20</lastmod> <changefreq>weekly</changefreq> <priority>0.5</priority> "; if( isset( $img_tab)) { foreach( $img_tab as $img) { echo " <image:image> <image:loc>http://{$lmb_url_pre}/{$img["url"]}</image:loc> <image:title>{$img["title"]}</image:title> </image:image> "; } } echo " </url> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* SiteMap Track */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_sitemap_track( $play_type, $play_id, $play_priority, $track_id) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $url = "?page=track&type={$play_type}&id={$play_id}&priority={$play_priority}&tid={$track_id}"; $img_tab = array(); $size = 1024; lmb_sitemap_item( "track", "{$url}", $img_tab); } /*--------------------------------------------------------------------------------------------------------------------*/ /* SiteMap Play */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_sitemap_play( $play_type, $play_id, $play_priority) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $cover_path = "{$play_path}/covers"; $extra_path = "{$play_path}/extras"; $play_info = lmb_play_info_get( $play_type, $play_id, $play_priority); $url = "?page=play&type={$play_type}&id={$play_id}&priority={$play_priority}"; $img_tab = array(); $img_idx = 0; $play_title = lmb_play_title_get( $play_type, $play_id, $play_priority); $img_tab[$img_idx ]["url"] = "{$play_path}/logos/{$play_id}-logo-1-128.png"; $img_tab[$img_idx++]["title"] = "Langueur Monotone - {$play_title} - Logo 1"; $img_tab[$img_idx ]["url"] = "{$play_path}/logos/{$play_id}-logo-2-128.png"; $img_tab[$img_idx++]["title"] = "Langueur Monotone - {$play_title} - Logo 2"; /* Cover Dump */ $cmd = "ls {$cover_path}/{$play_id}-cover-*.png | sed -e 's/.*{$play_id}-//' | grep -v icon.png | sort "; exec( $cmd, $cover_tab); for( $i = 0, $j = 1; $i < count($cover_tab); $i++, $j++) { $cover_info_tab = explode( "-", $cover_tab[$i]); $nb = $cover_info_tab[1]; $size = str_replace( ".png", "", $cover_info_tab[2]); $img_tab[$img_idx ]["url"] = "{$cover_path}/{$play_id}-{$cover_tab[$i]}"; $img_tab[$img_idx++]["title"] = "Langueur Monotone - {$play_title} - Cover {$nb} ({$size})"; } /* Extra Dump */ if( ! file_exists( "{$extra_path}/.hide" )) { $cmd = "ls {$extra_path}/{$play_id}-*.png | sed -e 's/.*{$play_id}-//' | grep -v icon.png | sort "; exec($cmd, $extra_tab); for( $i = 0, $j = 1; $i < count($extra_tab); $i++, $j++) { $extra_info_tab = explode( "-", $extra_tab[$i]); $type = ucfirst( $extra_info_tab[0]); $nb = $extra_info_tab[1]; $format = str_replace( "_", "/", $extra_info_tab[2]); $size = str_replace( ".png", "", $extra_info_tab[3]); $img_tab[$img_idx ]["url"] = "{$extra_path}/{$play_id}-{$extra_tab[$i]}"; $img_tab[$img_idx++]["title"] = "Langueur Monotone - {$play_title} - Extra - {$type} {$nb} ({$format}-{$size})"; } } lmb_sitemap_item( "play", "{$url}", $img_tab); $track_list_info = lmb_tracklist_info_get( $play_type, $play_id, $play_priority); foreach( $track_list_info as $track_info) { lmb_sitemap_track( $play_type, $play_id, $play_priority, str_pad( "{$track_info["id"]}", 2, '0', STR_PAD_LEFT)); } } /*--------------------------------------------------------------------------------------------------------------------*/ /* SiteMap Play Type */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_sitemap_play_type( $play_type) { $path = lmb_playtype_path_get( $play_type); $line = array(); $cmd = "ls -d {$path}/??-* | sed -e 's/.*\///'"; exec($cmd, $line); for( $i = 0; $i < count($line); $i++) { $play_tab = explode( "-", $line[$i]); $play_priority = $play_tab[0]; $play_id = $play_tab[1]; if( ! file_exists( "{$path}/{$play_priority}-{$play_id}/.hide" )) { lmb_sitemap_play( $play_type, $play_id, $play_priority); } } } /*--------------------------------------------------------------------------------------------------------------------*/ /* SiteMap Page */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_sitemap_page() { global $lmb_myname; global $lmb_myver; global $time_start; header( 'Content-Type: application/xml'); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\" xmlns:image=\"http://www.google.com/schemas/sitemap-image/1.1\"> "; $img_tab = array(); $size = 220; $img_tab[0]["url"] = "{$play_path}/images/lm_logo1-border-{$size}.png"; $img_tab[0]["title"] = "Langueur Monotone - Logo 1 ({$size})"; lmb_sitemap_item( "top", "", $img_tab); // $img_tab = array(); // lmb_sitemap_item( "page", "?page=rss", $img_tab); $img_tab = array(); $size = 220; $img_tab[0]["url"] = "{$play_path}/images/lm_logo2-border-{$size}.png"; $img_tab[0]["title"] = "Langueur Monotone - Logo 2 ({$size})"; lmb_sitemap_item( "page", "?page=about", $img_tab); $img_tab = array(); lmb_sitemap_item( "page", "?page=discography", $img_tab); lmb_sitemap_play_type( "ep", $img_tab); lmb_sitemap_play_type( "lp", $img_tab); lmb_sitemap_play_type( "oldies", $img_tab); $time_stop = microtime_float(); $time_elaps = intval( ( $time_stop - $time_start) * 1000) / 1000; echo "</urlset> <!-- Page generated in $time_elaps seconds by {$lmb_myname} (http://www.rx3.org/dvp/?dvp=".strtolower($lmb_myname).") V {$lmb_myver} --> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* RSS Page */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_rss_page() { global $lmb_url_pre; global $lmb_myname; global $lmb_myver; global $time_start; header( 'Content-Type: application/rss+xml'); echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?> <rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" > <channel> <title>Langueur Monotone News Page</title> <link>http://{$lmb_url_pre}/?page=rss</link> <atom:link href=\"http://{$lmb_url_pre}/?page=rss\" rel=\"self\" type=\"application/rss+xml\" /> <description>Langueur Monotone project news RSS feed</description> <image> <url>http://{$lmb_url_pre}/images/lm_logo2-border-220.png</url> <title>Langueur Monotone News Page</title> <link>http://{$lmb_url_pre}/?page=rss</link> </image> "; $news_tab = lmb_news_tab_get(); for( $i=0; $i < count($news_tab); $i++) { $news = lmb_xml_text_format( $news_tab[$i]["news"]); $pubdate = date("r", strtotime($news_tab[$i]["date"])); echo " <item> "; if( "{$news_tab[$i]["name"]}" != "") { echo " <title>{$news_tab[$i]["title"]}: {$news_tab[$i]["name"]}</title> "; } else { echo " <title>{$news_tab[$i]["title"]}</title> "; } echo " <pubDate>{$pubdate}</pubDate> <dc:creator>Langueur Monotone</dc:creator> <guid>http://{$lmb_url_pre}/#$i</guid> "; if( "{$news_tab[$i]["name"]}" != "") { echo " <enclosure url=\"{$news_tab[$i]["aimg"]}\" length=\"".filesize(".{$news_tab[$i]["rimg"]}")."\" type=\"picture/png\" /> <link>{$news_tab[$i]["alink"]}</link> <description>{$news_tab[$i]["alink"]}</description> "; } else { echo " <description>{$news}</description> "; } echo " </item> "; } echo "</channel> </rss> "; $time_stop = microtime_float(); $time_elaps = intval( ( $time_stop - $time_start) * 1000) / 1000; echo "<!-- Page generated in $time_elaps seconds by {$lmb_myname} (http://www.rx3.org/dvp/?dvp=".strtolower($lmb_myname).") V {$lmb_myver} --> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* About Tab */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_about_tab( $skin_path) { $about_file = "about.txt"; $about_string = file_get_contents( "{$about_file}"); ob_start(); echo " <tr class=\"about1\"> <td class=\"about01\"></td> <td class=\"about1\">"; // echo str_replace( "\n", "<br/>\n ", "{$about_string}"); echo " ".lmb_html_text_format( "{$about_string}")." </td> <td class=\"about01\"></td> </tr> "; $data = ob_get_contents(); ob_end_clean(); // lmb_make_tab( "about", "about", "l", "{$skin_path}/images/lm_logo2-border-220.png", $data, $skin_path); lmb_make_tab( "about", "about", "l", "sprite-lm-logo2-border-220", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* History Tab */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_history_tab( $skin_path) { $history_file = "history.txt"; $history_string = file_get_contents( "{$history_file}"); $history_tab = explode( "\n\n", "{$history_string}"); ob_start(); for( $i = 0; $i < count($history_tab); $i++) { $history_line = explode( "\n", "{$history_tab[$i]}"); $css_row = ( $i + 1) % 2 + 1; echo " <tr class=\"history{$css_row}\"> <td class=\"history01\"></td> <td class=\"history1\">{$history_line[0]}</td> <td class=\"history2\">{$history_line[1]}</td> <td class=\"history3\"> <br/> "; for( $j = 2; $j < count($history_line); $j++) { echo " ".lmb_html_text_format( "{$history_line[$j]}")."<br/> "; } echo " <br/> </td> <td class=\"history01\"></td> </tr> "; } $data = ob_get_contents(); ob_end_clean(); // lmb_make_tab( "history", "history", "r", "{$skin_path}/images/lm_logo1-border-220.png", $data, $skin_path); lmb_make_tab( "history", "history", "r", "sprite-lm-logo1-border-220", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* About Body */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_about_body( $lmb_tab, $skin_path) { lmb_about_tab( $skin_path); lmb_spacer(4); lmb_history_tab( $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* About Page */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_about_page() { global $lmb_tab; $skin_path = "/skin"; lmb_header( 1, "Langueur Monotone - About Page", "About", "Langueur Monotone about page, describing the project, the members and its history", "about", 0, "{$skin_path}"); lmb_about_body( $lmb_tab, $skin_path); lmb_footer( $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play Info Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_play_info_get( $play_type, $play_id, $play_priority) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $cmd = "sed -e 's/\t*\t/\t/g' {$play_path}/.list"; $line = array(); $play_info = array(); exec( $cmd, $line); $tab = explode( "\t", $line[0]); $play_info["name"] = $tab[0]; $play_info["month"] = $tab[1]; $play_info["year"] = $tab[2]; $play_info["comment"] = $tab[3]; return($play_info); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play List Cur */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_playlist_cur( $play_type, $path, $row, $skin_path) { global $lmb_url_post; $line = array(); $cmd = "ls -d {$path}/??-* | sed -e 's/.*\///'"; exec( $cmd, $line); for( $i = 0; $i < count($line); $i++, $row++) { $play_tab = explode( "-", $line[$i]); $play_priority = $play_tab[0]; $play_id = $play_tab[1]; if( ! file_exists( "{$path}/{$play_priority}-{$play_id}/.hide" ) || lmb_admin_is()) { $play_info = lmb_play_info_get( $play_type, $play_id, $play_priority); $css_row = ($row+1)%2+1; $url = "{$lmb_url_post}?page=play&type={$play_type}&id={$play_tab[1]}&priority={$play_tab[0]}"; echo " <tr class=\"play{$css_row}\"><td class=\"play1\"><a href=\"{$url}\"><img class=\"button-item\" src=\"/{$path}/{$play_tab[0]}-{$play_tab[1]}/covers/{$play_tab[1]}-cover-1-icon.png\" alt=\"\"/></a></td><td class=\"play2\"><div class=\"link-item\"><a href=\"{$url}\">{$play_info["name"]}</a></div></td><td class=\"play3\"> {$play_info["month"]}</td><td class=\"play3\"> {$play_info["year"]} </td><td class=\"play4\">{$play_info["comment"]}</td><td> </td></tr> "; } else { $row--; } } return( $row); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play List Next */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_playlist_next( $play_type, $path, $row, $skin_path) { $line = array(); $cmd = "sed -e 's/\t*\t/\t/g' ${path}/.list"; exec( $cmd, $line); for( $i = 0; $i < count($line); $i++, $row++) { $tab = explode( "\t", $line[$i]); if( ( count($tab) > 4 ) && ( "{$tab[4]}" != "")) { $icon_tag = "<img src=\"{$skin_path}/images/{$tab[4]}\" alt=\"\"/>"; } else { $icon_tag = "<div class=\"sprite-unknown-cover-96\"></div>"; } $css_row = ($row + 1) % 2 + 1; if( count($tab) > 3) { $comment = $tab[3]; } else { $comment = ""; } echo " <tr class=\"play{$css_row}\"><td class=\"play1\">{$icon_tag}</td><td class=\"play2\">{$tab[0]}</td><td class=\"play3\"> {$tab[1]}</td><td class=\"play3\"> {$tab[2]} </td><td class=\"play4\">{$comment}</td><td> </td></tr> "; } } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play List */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_playlist( $play_type, $side, $skin_path) { $row = 1; ob_start(); $row = lmb_playlist_cur( $play_type, lmb_playtype_path_get( $play_type), $row, $skin_path); $row = lmb_playlist_next( $play_type, lmb_playtype_path_get( $play_type), $row, $skin_path); $data = ob_get_contents(); ob_end_clean(); // lmb_make_tab( "{$play_type}", "play", $side, "{$skin_path}/images/lm_logo1-96.png", $data, $skin_path); lmb_make_tab( "{$play_type}", "play", $side, "sprite-lm-logo1-96", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Discography Body */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_discography_body( $skin_path) { /* --- EP --- */ lmb_playlist( "ep", "l", $skin_path); lmb_spacer( 5); /* --- LP --- */ lmb_playlist( "lp", "r", $skin_path); lmb_spacer( 5); /* --- Oldies --- */ lmb_playlist( "oldies", "l", $skin_path); lmb_spacer( 5); /* --- TrackList --- */ lmb_tracklist_body( $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Discography Page */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_discography_page() { global $lmb_tab; $skin_path = "/skin"; lmb_header( 2, "Langueur Monotone - Discography Page", "Discography", "Langueur Monotone discography page, listing the released and the futures ep, lp and oldies", "discography", 0, "{$skin_path}"); lmb_discography_body( $skin_path); lmb_footer( $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play Introduction */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_play_intro( $play_type, $play_id, $play_priority, $skin_path) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $cover_path = "{$play_path}/covers/{$play_id}-cover"; $logo_path = "{$play_path}/logos/{$play_id}-logo"; echo " <tr> <td class=\"body\" colspan=\"3\" rowspan=\"1\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"\"> <tbody> <tr> <td rowspan=\"2\" style=\"width: 286px; height: 286px;\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"\"> <tbody> <tr> <td class=\"cover\" style=\"width: 266px; height: 266px;\"><a href=\"{$cover_path}-1-1024.png\"><img class=\"button-item-big\" src=\"{$cover_path}-1-256.png\" alt=\"\"/></a></td> </tr> </tbody> </table> </td> <td colspan=\"2\" style=\"height: 40px;\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"\"> <tbody> <tr class=\"intro0\"> <td class=\"intro0\">Introduction</td> </tr> <tr class=\"intro1\"> <td class=\"intro1\"> <br/> "; $intro_file = "{$play_path}/.intro"; $intro_string = file_get_contents( "{$intro_file}"); echo " ".lmb_html_text_format( "{$intro_string}")."<br/> "; echo " <br/> </td> </tr> </tbody> </table> </td> </tr> <tr> <td style=\"vertical-align: middle;\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"\"> <tbody> <tr> <td class=\"logo\"><img src=\"{$logo_path}-1-128.png\" alt=\"\"/><br/></td> </tr> </tbody> </table> </td> <td rowspan=\"2\" style=\"width: 286px; height: 286px; vertical-align:bottom\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"\"> <tbody> <tr> <td class=\"cover\" style=\"width: 266px; height: 266px;\"><a href=\"{$cover_path}-2-1024.png\"><img class=\"button-item-big\" src=\"{$cover_path}-2-256.png\" alt=\"\"/></a></td> </tr> </tbody> </table> </td> </tr> <tr> <td colspan=\"2\" style=\"height: 40px;\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"\"> <tbody> <tr class=\"hardware1\"> <td class=\"hardware1\"> <br/> "; $hardware_file = "{$play_path}/.hardware"; $hardware_string = file_get_contents( "{$hardware_file}"); echo " ".lmb_html_text_format( "{$hardware_string}")."<br/> "; echo " <br/> </td> </tr> <tr class=\"hardware0\"> <td class=\"hardware0\">Hardware & Software</td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track Info Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_track_info_get( $play_type, $play_id, $play_priority, $track_id) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $track_path = "{$play_path}/tracks"; $track_array = glob("{$track_path}/flac/{$track_id}-*.flac"); $track_file = $track_array[0]; $line = array(); $track_info = array(); $track_info["play_type"] = $play_type; $track_info["play_priority"] = $play_priority; $track_info["play_id"] = $play_id; if( count($track_array) == 0) { $track_info["status"] = 0; } else { $track_info["status"] = 1; $cmd="eval \$( metaflac --export-tags-to=- \"${track_file}\" | grep -v -e \".* .*=\" -e \".*-.*=\" | sed -e 's/=/=\\\"/' -e 's/$/\"/') echo -e \"\${TRACKNUMBER}\t\$(basename ${track_file} .flac)\t\${ARTIST}\t\${ALBUM}\t\$(echo \${TITLE} | sed 's/ (.*//')\t\$(echo \${TITLE} | sed -e 's/.* (//' -e 's/)$//')\t\${COMPOSER}\t\${COMMENT}\t\$(metaflac --show-sample-rate \"${track_file}\")\t\$(metaflac --show-total-samples \"${track_file}\")\t\${SAFECREATIVE}\""; exec($cmd, $line); $tab = explode( "\t", $line[0]); $track_info["id"] = $tab[0]; $track_info["file"] = $tab[1]; $track_info["artist"] = $tab[2]; $track_info["album"] = $tab[3]; $track_info["title"] = $tab[4]; $track_info["mix"] = $tab[5]; $track_info["composer"] = $tab[6]; $track_info["comment"] = $tab[7]; $track_info["sample_rate"] = $tab[8]; $track_info["sample_nb"] = $tab[9]; if( "{$track_info["title"]}" == "{$track_info["mix"]}") { $track_info["mix"]=""; } $total = intval( $track_info["sample_nb"] / $track_info["sample_rate"]); $min = intval( $total / 60); $sec = $total - $min * 60; $track_info["length"] = "{$min}' {$sec}\""; $track_info["duration"] = "PT{$min}M{$sec}S"; $track_info["safe_creative"] = $tab[10]; $search_tab = array( "/flac/", ".flac"); $replace_tab = array( "/mp3-192/", ".mp3"); $track_info["url"] = "/".str_replace( $search_tab, $replace_tab, "${track_file}"); } return( $track_info); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track File Tag Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_track_file_tag_get( $play_type, $play_id, $play_priority, $track_id) { global $lmb_url_post; $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $track_path = "{$play_path}/tracks"; $file_type_pat = "{$track_path}/{flac,ogg,mp3,med}*"; $file_dir_tab = glob( "{$file_type_pat}", GLOB_BRACE); $file_tag = ""; foreach( $file_dir_tab as $file_dir) { $dir = basename( $file_dir); $tab = explode( "-", $dir); $file_type = $tab[0]; if( count( $tab) > 1) { $file_subtype = $tab[1]; } else { $file_subtype = ""; } if( "{$track_id}" == "00") { $file_pat = "{$track_path}/{$dir}/01-*.{$file_type}"; } else { $file_pat = "{$track_path}/{$dir}/{$track_id}-*.{$file_type}"; } $file_tab = glob( "{$file_pat}"); if( count( $file_tab) > 0) { $file_url = $file_tab[0]; } else { $file_url = ""; } $file_tag = "{$file_tag}<td class=\"tracks7\">"; if( count( glob( "{$file_url}"))) { if( "{$track_id}" == "00") { $download_url = "{$lmb_url_post}?page=download&type={$play_type}&id={$play_id}&priority={$play_priority}&dtype=track&ftype={$dir}"; $file_size = lmb_download_tracks( $play_type, $play_id, $play_priority, $dir, "SIZE"); $size_tab = lmb_size_convert( $file_size); } else { $download_url = "{$file_url}"; $size_tab = lmb_size_convert( filesize( "{$file_url}")); } $file_tag = "{$file_tag}<table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tbody><tr><td class=\"tracks7\"><div class=\"link-item\"><a href=\"{$download_url}\">{$file_type} {$file_subtype}</a></div></td></tr><tr><td class=\"tracks8\">(${size_tab["size"]} {$size_tab["unit"]})</td></tr></tbody></table>"; } $file_tag = "{$file_tag}</td> "; } return( "{$file_tag}"); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track Loc Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_track_loc_get( $track_url) { $path_tab = explode( "/", $track_url); $play_tab = explode( "-", $path_tab[2]); $track_tab = explode( "-", basename( "{$path_tab[5]}", ".flac")); $track_loc["play_type"] = $path_tab[1]; $track_loc["play_priority"] = $play_tab[0]; $track_loc["play_id"] = $play_tab[1]; $track_loc["track_id"] = $track_tab[0]; $track_loc["track_title"] = $track_tab[1]; if( isset($track_tab[2])) { $track_loc["track_mix"] = $track_tab[2]; } else { $track_loc["track_mix"] = ""; } return( $track_loc); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track List Info Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_tracklist_info_get( $play_type, $play_id, $play_priority) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $track_path = "{$play_path}/tracks"; $track_list = glob( "{$track_path}/flac/*.flac"); $track_list_info = array(); for( $i = 0; $i < count($track_list); $i++) { $track_loc = lmb_track_loc_get( "{$track_list[$i]}"); $track_info_list[$i] = lmb_track_info_get( "{$track_loc["play_type"]}", $track_loc["play_id"], $track_loc["play_priority"], $track_loc["track_id"]); } return( $track_info_list); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track List Microdata */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_tracklist_microdata( $play_type, $play_id, $play_priority) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $cover_path = "{$play_path}/covers/{$play_id}-cover"; $track_list_info = lmb_tracklist_info_get( $play_type, $play_id, $play_priority); $tracks_nb = count($track_list_info); echo " <div itemscope=\"itemscope\" itemtype=\"http://schema.org/MusicAlbum\"> <meta itemprop=\"name\" content=\"{$track_list_info[0]["album"]}\"/> <meta itemprop=\"numtracks\" content=\"{$tracks_nb}\"/> <meta itemprop=\"image\" content=\"{$cover_path}-1-128.png\"/> <div itemscope=\"itemscope\" itemtype=\"http://schema.org/MusicGroup\"> <meta itemprop=\"name\" content=\"{$track_list_info[0]["artist"]}\"/> </div> "; for( $i = 0; $i < $tracks_nb; $i++) { echo " <div itemprop=\"tracks\" itemscope=\"itemscope\" itemtype=\"http://schema.org/MusicRecording\"> <meta itemprop=\"name\" content=\"{$track_list_info[$i]["title"]} ({$track_list_info[$i]["mix"]})\"/> <meta itemprop=\"byArtist\" content=\"{$track_list_info[$i]["artist"]}\"/> <meta itemprop=\"inAlbum\" content=\"{$track_list_info[$i]["album"]}\"/> <meta itemprop=\"author\" content=\"{$track_list_info[$i]["composer"]}\"/> <meta itemprop=\"duration\" content=\"{$track_list_info[$i]["duration"]}\"/> <meta itemprop=\"version\" content=\"{$track_list_info[$i]["comment"]}\"/> <meta itemprop=\"url\" content=\"{$track_list_info[$i]["url"]}\"/> </div> "; } echo " </div> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track List */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_tracklist( $play_type, $play_id, $play_priority, $skin_path) { global $lmb_url_post; $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $cover_path = "{$play_path}/covers/{$play_id}-cover"; $logo_path = "{$play_path}/logos/{$play_id}-logo"; $track_path = "{$play_path}/tracks"; $track_list_info = lmb_tracklist_info_get( $play_type, $play_id, $play_priority); $track_nb = count($track_list_info); ob_start(); $size = $track_nb + 1; $height = 220/$size; $file_tag = lmb_track_file_tag_get( "{$play_type}", "{$play_id}", "{$play_priority}", "00"); // $title_tag = "<td class=\"tracks00\" rowspan=\"$size\"> </td><td class=\"tracks0\" rowspan=\"$size\"><img src=\"{$skin_path}/images/tab-tracks-r.png\" alt=\"\"/></td>"; echo " <tr class=\"tracks0\" style=\"height: {$height}px;\"> <td colspan=\"6\" class=\"tracks2\" style=\"text-align: left;\"> "; lmb_tracklist_microdata( $play_type, $play_id, $play_priority); echo " Full Album including covers </td> {$file_tag} </tr> "; for( $i = 0, $row = 1; $i < $track_nb; $i++, $row++) { $track_info = $track_list_info[$i]; $css_row = ($row+1)%2+1; $track_id = str_pad( "{$track_info["id"]}", 2, '0', STR_PAD_LEFT); $track_url = "{$lmb_url_post}?page=track&type={$play_type}&id={$play_id}&priority={$play_priority}&tid={$track_id}"; $file_tag = lmb_track_file_tag_get( $play_type, $play_id, $play_priority, $track_id); echo " <tr class=\"tracks{$css_row}\" style=\"height: {$height}px;\">"; echo "<td class=\"tracks1\"> {$track_info["id"]} </td><td class=\"tracks2\"> <div class=\"link-item\"><a href=\"{$track_url}\">{$track_info["title"]}</a></div> </td><td class=\"tracks3\"> <div class=\"link-item\"><a href=\"{$track_url}\">{$track_info["mix"]}</a></div> </td><td class=\"tracks4\"> {$track_info["length"]} </td><td class=\"tracks5\"> {$track_info["composer"]} </td><td class=\"tracks6\"> {$track_info["comment"]} </td>{$file_tag}</tr> "; } $data = ob_get_contents(); ob_end_clean(); // lmb_make_tab( "tracks", "tracks", "r", "{$skin_path}/images/lm_logo1-96.png", $data, $skin_path); lmb_make_tab( "tracks", "tracks", "r", "sprite-lm-logo1-96", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* File Entry Print */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_file_entry_print( $file_tab, $format_css_id, $size_css_id, $entry_tag, $max_nb) { echo "{$entry_tag}"; foreach( $file_tab as $file) { echo " <td class=\"{$format_css_id}\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr><td class=\"{$format_css_id}\"><div class=\"link-item\"><a href=\"{$file["url"]}\">{$file["format"]}</a></div></td></tr> <tr><td class=\"{$size_css_id}\">(${file["size"]} {$file["unit"]})</td></tr> </tbody> </table> </td> "; } for( $i = count( $file_tab); $i < $max_nb; $i++) { echo " <td class=\"{$format_css_id}\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr><td class=\"{$format_css_id}\"></td></tr> <tr><td class=\"{$size_css_id}\"></td></tr> </tbody> </table> </td> "; } echo " </tr> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Cover File Tab Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_cover_file_tab_get( $play_type, $play_id, $play_priority, $cover_id, $mode) { global $lmb_url_post; $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $cover_path = "{$play_path}/covers"; $cmd = "ls {$cover_path}/{$play_id}-cover-1-*.png | sed -e 's/.*-//' -e 's/.png$//' | sort -rn"; exec( $cmd, $cover_format_tab); $file_tab = array(); $file_tag = ""; for( $i = 0; $i < count($cover_format_tab); $i++) { $cover_format = "{$cover_format_tab[$i]}"; if( "{$cover_format}" != "icon") { $file_url = "{$cover_path}/{$play_id}-cover-{$cover_id}-{$cover_format}.png"; $file_tag = "{$file_tag}<td class=\"covers3\">"; if( count( glob( "{$file_url}"))) { if( $mode == "MULTI") { $file_tab[$i]["url"] = "{$lmb_url_post}?page=download&type={$play_type}&id={$play_id}&priority={$play_priority}&dtype=cover&cformat={$cover_format}"; $file_size = lmb_download_covers( $play_type, $play_id, $play_priority, $cover_format, "SIZE"); $size_tab = lmb_size_convert( $file_size); } else { $file_tab[$i]["url"] = "{$file_url}"; $size_tab = lmb_size_convert( filesize( "{$file_url}")); } $file_tab[$i]["format"] = "{$cover_format}"; $file_tab[$i]["size"] = "{$size_tab["size"]}"; $file_tab[$i]["unit"] = "{$size_tab["unit"]}"; } } } return( $file_tab); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Cover List */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_coverlist( $play_type, $play_id, $play_priority, $skin_path) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $cover_path = "{$play_path}/covers/{$play_id}-cover"; $logo_path = "{$play_path}/logos/{$play_id}-logo"; ob_start(); $cmd="ls {$cover_path}-*-icon.png | sed -e 's/-icon.png$//' -e 's/.*-//'"; exec($cmd, $sheet_tab); $size=count($sheet_tab) + 1; // $height=220/$size; // $height=110; $height = max( 110, ( ( 220 - 30) / count($sheet_tab))); $file_tab = lmb_cover_file_tab_get( $play_type, $play_id, $play_priority, "*", "MULTI"); $entry_tag = " <tr class=\"covers0\" style=\"height: 30px\"> <td class=\"covers2\" colspan=\"2\" style=\"text-align: left;\"> All the Covers </td> "; lmb_file_entry_print( $file_tab, "covers3", "covers4", "{$entry_tag}", count( $file_tab)); for( $i = 0; $i < count($sheet_tab); $i++) { if( $i == 0) { $sheet_name="Front"; } else { if( $i == 1) { $sheet_name="Back"; } else { $sheet_name=$i-1; } } /* Cover Entry */ $file_tab = lmb_cover_file_tab_get( $play_type, $play_id, $play_priority, $i+1, "MONO"); $css_row = $i % 2 + 1; $entry_tag = " <tr class=\"covers{$css_row}\" style=\"height: {$height}px\"> <td class=\"covers1\"><a href=\"{$file_tab[0]["url"]}\"><img class=\"button-item\" src=\"{$cover_path}-{$sheet_tab[$i]}-icon.png\" alt=\"\"/></a></td> <td class=\"covers2\"> {$sheet_name} </td>"; lmb_file_entry_print( $file_tab, "covers3", "covers4", "{$entry_tag}", count( $file_tab)); } $data = ob_get_contents(); ob_end_clean(); lmb_make_tab( "covers", "covers", "l", "/{$logo_path}-2-128.png", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Video File Tab Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_video_file_tab_get( $play_type, $play_id, $play_priority, $video_id, $mode) { global $lmb_url_post; $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $video_path = "{$play_path}/videos"; $cmd = "ls {$video_path}/{$video_id}-*-*-*.avi | sed -e 's/.*{$play_id}-.*-//' -e 's/.avi$//' | sort -rn"; exec( $cmd, $video_format_tab); $file_tab = array(); for( $i = 0; $i < count($video_format_tab); $i++) { $video_format = "{$video_format_tab[$i]}"; $file_url = "{$video_path}/{$video_id}-*-{$video_format}.avi"; if( count( glob( "{$file_url}"))) { if( $mode == "MULTI") { $file_tab[$i]["url"] = "{$lmb_url_post}?page=download&type={$play_type}&id={$play_id}&priority={$play_priority}&dtype=video&vformat={$video_format}"; $file_size = lmb_download_videos( $play_type, $play_id, $play_priority, $video_format, "SIZE"); $size_tab = lmb_size_convert( $file_size); } else { $tab = glob( "{$file_url}"); $file_tab[$i]["url"] = "{$tab[0]}"; $size_tab = lmb_size_convert( filesize( "{$file_tab[$i]["url"]}")); } $file_tab[$i]["format"] = "{$video_format}"; $file_tab[$i]["size"] = "{$size_tab["size"]}"; $file_tab[$i]["unit"] = "{$size_tab["unit"]}"; } } return( $file_tab); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Video List */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_videolist( $play_type, $play_id, $play_priority, $skin_path) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $video_path = "{$play_path}/videos"; $logo_path = "{$play_path}/logos/{$play_id}-logo"; ob_start(); $cmd="ls {$video_path}/*-icon.png | sed -e 's/-icon.png$//' -e 's/.*\///'"; exec($cmd, $video_tab); if( count($video_tab) == 0 || ( file_exists( "{$video_path}/.hide" ) && ! lmb_admin_is())) { echo " <tr class=\"videos2\" style=\"height: 60px\"><td class=\"videos1\"></td><td class=\"videos2\"> </td></tr> <tr class=\"videos1\" style=\"height: 110px\"><td class=\"videos1\"><div class=\"sprite-unknown-cover-96\"></div></td><td class=\"videos2\"> No video found... </td></tr> <tr class=\"videos2\" style=\"height: 60px\"><td class=\"videos1\"></td><td class=\"videos2\"> </td></tr> "; } else { $height = max( 110, ( ( 220 - 30) / count($video_tab))); $file_tab = lmb_video_file_tab_get( $play_type, $play_id, $play_priority, "*", "MULTI"); $entry_tag = " <tr class=\"videos0\" style=\"height: 30px\"> <td class=\"videos2\" colspan=\"4\" style=\"text-align: left;\"> All the Videos </td> "; lmb_file_entry_print( $file_tab, "videos5", "videos6", $entry_tag, count( $file_tab)); for( $i = 0; $i < count($video_tab); $i++) { $tab = explode( "-", $video_tab[$i]); $video_id = "{$tab[0]}"; $video_track = "{$tab[1]}"; $video_mix = "{$tab[2]}"; $video_track_name = ucwords( str_replace( "_", " ", "{$video_track}")); $video_mix_name = ucwords( str_replace( "_", " ", "{$video_mix}")); $video_file = "{$video_id}-{$video_track}-{$video_mix}"; /* Video Entry */ $file_tab = lmb_video_file_tab_get( $play_type, $play_id, $play_priority, $i+1, "MONO"); $css_row = $i % 2 + 1; $entry_tag = " <tr class=\"videos{$css_row}\" style=\"height: {$height}px\"> <td class=\"videos1\"><a href=\"{$file_tab[0]["url"]}\"><img class=\"button-item\" src=\"{$video_path}/{$video_file}-icon.png\" alt=\"\"/></a></td> <td class=\"videos2\"> {$video_id} </td> <td class=\"videos3\"> {$video_track_name} </td> <td class=\"videos4\"> {$video_mix_name} </td> "; lmb_file_entry_print( $file_tab, "videos5", "videos6", "{$entry_tag}", count( $file_tab)); } } $data = ob_get_contents(); ob_end_clean(); lmb_make_tab( "videos", "videos", "r", "/{$logo_path}-1-128.png", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Extra File Tab Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_extra_file_tab_get( $play_type, $play_id, $play_priority, $extra_id, $mode) { global $lmb_url_post; $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $extra_path = "{$play_path}/extras"; $cmd = "ls {$extra_path}/{$play_id}-{$extra_id}-*.png | sed -e 's/.*-//' -e 's/.png$//' | sort -nu"; exec( $cmd, $extra_format_tab); $file_tab = array(); $file_tag = ""; for( $i = 0; $i < count($extra_format_tab); $i++) { $extra_format = "{$extra_format_tab[$i]}"; if( "{$extra_format}" != "icon") { $file_url = "{$extra_path}/{$play_id}-{$extra_id}-{$extra_format}.png"; $file_tag = "{$file_tag}<td class=\"extras5\">"; if( count( glob( "{$file_url}"))) { if( $mode == "MULTI") { $file_tab[$i]["url"] = "{$lmb_url_post}?page=download&type={$play_type}&id={$play_id}&priority={$play_priority}&dtype=extra&eformat={$extra_id}-{$extra_format}"; $file_size = lmb_download_extras( $play_type, $play_id, $play_priority, $extra_format, "SIZE"); $size_tab = lmb_size_convert( $file_size); } else { $file_tab[$i]["url"] = "{$file_url}"; $size_tab = lmb_size_convert( filesize( "{$file_url}")); } $file_tab[$i]["format"] = "{$extra_format}"; $file_tab[$i]["size"] = "{$size_tab["size"]}"; $file_tab[$i]["unit"] = "{$size_tab["unit"]}"; } } } return( $file_tab); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Extra List */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_extralist( $play_type, $play_id, $play_priority, $skin_path) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $extra_path = "{$play_path}/extras"; ob_start(); $cmd="ls {$extra_path}/{$play_id}-*-*-icon.png | sed -e 's/-icon.png$//' -e 's/.*{$play_id}-.*-//' | sort -u"; exec($cmd, $format_tab); if( count($format_tab) == 0 || ( file_exists( "{$extra_path}/.hide" ) && ! lmb_admin_is())) { echo " <tr class=\"extras2\" style=\"height: 60px\"><td class=\"extras1\"></td><td class=\"extras2\"> </td></tr> <tr class=\"extras1\" style=\"height: 110px\"><td class=\"extras1\"><div class=\"sprite-unknown-cover-96\"></div></td><td class=\"extras2\"> No extra found... </td></tr> <tr class=\"extras2\" style=\"height: 60px\"><td class=\"extras1\"></td><td class=\"extras2\"> </td></tr> "; } else { $format_nb = count($format_tab); $title_tag = " <td class=\"extras2\" rowspan=\"{$format_nb}\" colspan=\"3\" style=\"text-align: left;\"> All the Extras </td> "; $file_tab = array(); $max_file_nb = 0; foreach( $format_tab as $format) { $file_tab[ $format] = lmb_extra_file_tab_get( $play_type, $play_id, $play_priority, "*-{$format}", "MULTI"); $max_file_nb = max( $max_file_nb, count( $file_tab[ $format])); } foreach( $format_tab as $format) { $extra_format = str_replace( "_", "/", "{$format}"); $entry_tag = " <tr class=\"extras0\" style=\"height: 30px\"> ${title_tag} <td class=\"extras4\"> {$extra_format} </td> "; lmb_file_entry_print( $file_tab[ $format], "extras5", "extras6", "{$entry_tag}", $max_file_nb); $title_tag = ""; } $cmd="ls {$extra_path}/{$play_id}-*-*-icon.png | sed -e 's/-icon.png$//' -e 's/.*{$play_id}-//' | sort "; exec($cmd, $extra_tab); $height = max( 86, ( ( 220 - 30 * $format_nb) / count($extra_tab))); for( $i = 0; $i < count($extra_tab); $i++) { $tab = explode( "-", $extra_tab[$i]); $extra_type = ucwords( $tab[0]); $extra_subid = $tab[1]; $extra_format = str_replace( "_", "/", $tab[2]); $extra_id = "{$tab[0]}-{$tab[1]}-{$tab[2]}"; $extra_prefix = "{$extra_path}/{$play_id}-{$extra_id}"; /* Extra Entry */ $file_tab = lmb_extra_file_tab_get( "{$play_type}", "{$play_id}", "{$play_priority}", "{$extra_id}", "MONO"); $css_row = $i % 2 + 1; $entry_tag = " <tr class=\"extras{$css_row}\" style=\"height: {$height}px\"> <td class=\"extras1\"><a href=\"{$file_tab[1]["url"]}\"><img class=\"button-item\" src=\"{$extra_prefix}-icon.png\" alt=\"\"/></a></td> <td class=\"extras2\"> {$extra_type} </td> <td class=\"extras3\"> {$extra_subid} </td> <td class=\"extras4\"> {$extra_format} </td> "; lmb_file_entry_print( $file_tab, "extras5", "extras6", "{$entry_tag}", $max_file_nb); } } $data = ob_get_contents(); ob_end_clean(); // lmb_make_tab( "extras", "extras", "l", "{$skin_path}/images/lm_logo1-96.png", $data, $skin_path); lmb_make_tab( "extras", "extras", "l", "sprite-lm-logo1-96", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Links Tab */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_links_tab( $play_type, $play_id, $play_priority) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $global_links_file = ".links"; $local_links_file = "{$play_path}/.links"; $line = array(); $cmd = "cat ${local_links_file} ${global_links_file} | sed -e 's/\t*\t/\t/g'"; exec( $cmd, $line); echo " <table class=\"tab\" border=\"0\" cellpadding=\"0\" cellspacing=\"5\" style=\"\"> <tbody> "; for( $i = 0; $i < count($line); $i++) { $tab = explode( "\t", $line[$i]); $css_row = ( $i + 1) % 2 + 1; $text = lmb_html_text_format( "{$tab[0]}"); $link = htmlentities( "{$tab[1]}"); $image = "{$tab[2]}"; if( count( $tab) > 3) { $flag = "{$tab[3]}"; } else { $flag = ""; } if( $flag == "nf") { $attr = "rel=\"nofollow\" "; } else { $attr = ""; } if( $image[0] == "/") { $image_tag = "<img class=\"button-item\" src=\"{$image}\" width=\"16\" height=\"16\" alt=\"\"/>"; } else { $image_tag = "<div class=\"{$image}\" style=\" width:16px; height:16px; \"></div>"; } echo " <tr class=\"links1\"> <td class=\"links1\"> <div class=\"link-item\"><a {$attr}href=\"{$link}\">{$text}</a></div> </td> <td class=\"links2\"> <a class=\"button-item\" {$attr}href=\"{$link}\"><div >{$image_tag}</a> </td> </tr> "; } echo " <tr class=\"links0\"> <td class=\"links0\" colspan=\"2\">Links</td> </tr> </tbody> </table> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play Last */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_play_last( $play_type, $play_id, $play_priority, $skin_path) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); echo " <tr> <td class=\"body\" colspan=\"3\" rowspan=\"1\"> <table class=\"tab\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"\"> <tbody> <tr> <td style=\"width: 66%;\"> <table class=\"tab\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"\"> <tbody> <tr class=\"thanks0\"> <td class=\"thanks0\">Thanks</td> </tr> <tr class=\"thanks1\"> <td class=\"thanks1\"> "; $thanks_file = "{$play_path}/.thanks"; $thanks_string = file_get_contents( "{$thanks_file}"); echo " ".lmb_html_text_format( "{$thanks_string}")."<br/> "; echo " </td> </tr> </tbody> </table> </td> <td style=\"width: 33%;\"> "; lmb_links_tab( $play_type, $play_id, $play_priority); echo " </td> </tr> </tbody> </table> </td> </tr> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play Body */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_play_body( $play_type, $play_id, $play_priority, $skin_path) { /* --- Introduction --- */ lmb_play_intro( $play_type, $play_id, $play_priority, $skin_path); lmb_spacer(4); /* --- Tracks --- */ lmb_tracklist( $play_type, $play_id, $play_priority, $skin_path); // lmb_tracklist_microdata( $play_type, $play_id, $play_priority); lmb_spacer(5); /* --- Covers --- */ lmb_coverlist( $play_type, $play_id, $play_priority, $skin_path); lmb_spacer(5); /* --- Videos --- */ lmb_videolist( $play_type, $play_id, $play_priority, $skin_path); lmb_spacer(5); /* --- Etras --- */ lmb_extralist( $play_type, $play_id, $play_priority, $skin_path); lmb_spacer(4); /* --- Last --- */ lmb_play_last( $play_type, $play_id, $play_priority, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play Type Name Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_play_type_name_get( $play_type_id) { switch( "{$play_type_id}") { case "ep": { return( "EP"); } case "lp": { return( "LP"); } case "oldies": { return( "Oldies"); } } } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play Name Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_play_name_get( $play_type, $play_id, $play_priority) { $play_info = lmb_play_info_get( $play_type, $play_id, $play_priority); return( "{$play_info["name"]}"); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play Title Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_play_title_get( $play_type, $play_id, $play_priority) { $play_name = lmb_play_name_get( $play_type, $play_id, $play_priority); $play_type_name = lmb_play_type_name_get( $play_type); return( "{$play_name} - {$play_type_name}"); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Play Page */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_play_page( $play_type, $play_id, $play_priority) { global $lmb_tab; $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $play_info = lmb_play_info_get( $play_type, $play_id, $play_priority); $play_title = lmb_play_title_get( $play_type, $play_id, $play_priority); $play_image = "{$play_type}"; $play_name = lmb_play_type_name_get( $play_type); $skin_path = "{$play_path}/skin"; lmb_header( 3, "Langueur Monotone - {$play_title} Page", "{$play_title}", "Langueur Monotone play page, giving all the information about {$play_info["name"]} {$play_name}", "{$play_type},{$play_info["name"]}", 0, "{$skin_path}"); lmb_play_body( $play_type, $play_id, $play_priority, $skin_path); lmb_footer( $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track List Page */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_tracklist_body( $skin_path) { global $lmb_url_post; $play_type = "*"; $play_id = "*"; $play_priority = "*"; $track_info_list = lmb_tracklist_info_get( $play_type, $play_id, $play_priority); usort( $track_info_list, lmb_make_comparer( 'title', 'mix')); $track_nb = count($track_info_list); ob_start(); $size = $track_nb + 1; $height = 220/$size; for( $i = 0, $row = 1; $i < $track_nb; $i++, $row++) { $css_row = ($row+1)%2+1; $play_type = "{$track_info_list[$i]["play_type"]}"; $play_type_name = lmb_play_type_name_get( $play_type); $play_id = "{$track_info_list[$i]["play_id"]}"; $play_priority = "{$track_info_list[$i]["play_priority"]}"; $track_id = str_pad( "{$track_info_list[$i]["id"]}", 2, '0', STR_PAD_LEFT); $track_title = "{$track_info_list[$i]["title"]}"; $track_mix = "{$track_info_list[$i]["mix"]}"; $track_length = "{$track_info_list[$i]["length"]}"; $track_album = "{$track_info_list[$i]["album"]}"; $play_url = "{$lmb_url_post}?page=play&type={$play_type}&id={$play_id}&priority={$play_priority}"; $track_url = "{$lmb_url_post}?page=track&type={$play_type}&id={$play_id}&priority={$play_priority}&tid={$track_id}"; echo " <tr class=\"tracks{$css_row}\" style=\"height: {$height}px;\">"; echo "<td class=\"tracks1\"> {$row} </td><td class=\"tracks2\"> <div class=\"link-item\"><a href=\"{$track_url}\">{$track_title}</a></div> </td><td class=\"tracks3\"> <div class=\"link-item\"><a href=\"{$track_url}\">{$track_mix}</a></div> </td><td class=\"tracks3\"> {$track_length} </td><td class=\"tracks3\"> {$play_type_name} </td><td class=\"tracks3\"> <div class=\"link-item\"><a href=\"{$play_url}\">{$track_album}</a></div> </td></tr> "; } $data = ob_get_contents(); ob_end_clean(); // lmb_make_tab( "tracks", "tracks", "r", "{$skin_path}/images/lm_logo2-96.png", $data, $skin_path); lmb_make_tab( "tracks", "tracks", "r", "sprite-lm-logo2-96", $data, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track List Page */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_tracklist_page() { $skin_path = "/skin"; lmb_header( 3, "/", "Langueur Monotone - Track List Page", "Track List", "Langueur Monotone track list page, listing all the released tracks", "track list", 0, "{$skin_path}"); lmb_tracklist_body( $skin_path); lmb_footer( $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track Info */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_track_info( $play_type, $play_id, $play_priority, $track_id) { global $lmb_url_post; $track_info = lmb_track_info_get( $play_type, $play_id, $play_priority, $track_id); $height=220/8; if ($track_info["safe_creative"] != "") { $rowspan = 9; } else { $rowspan = 8; } /* echo " <div itemscope itemtype=\"http://schema.org/MusicGroup\"> <meta itemprop=\"name\" content=\"{$track_info["artist"]}\"> <div itemprop=\"tracks\" itemscope itemtype=\"http://schema.org/MusicRecording\"> <meta itemprop=\"inAlbum\" content=\"{$track_info["album"]}\"> <meta itemprop=\"name\" content=\"{$track_info["title"]} ({$track_info["mix"]})\"> <meta itemprop=\"url\" content=\"http://ddddddddd\"> <meta itemprop=\"author\" content=\"{$track_info["composer"]}\"> <meta itemprop=\"duration\" content=\"PT10M33S\"> </div> </div> "; */ echo " <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr> <td> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr class=\"info1\" style=\"height: {$height}px;\"> <td class=\"info1\">Group Name</td> <td class=\"info2\"><div class=\"link-item\"><a href=\"{$lmb_url_post}?page=discography\">{$track_info["artist"]}</a></div></td> </tr> <tr class=\"info2\" style=\"height: {$height}px;\"> <td class=\"info1\">Album</td> <td class=\"info2\"><div class=\"link-item\"><a href=\"{$lmb_url_post}?page=play&type={$play_type}&id={$play_id}&priority={$play_priority}\">{$track_info["album"]}</a></div></td> </tr> <tr class=\"info1\" style=\"height: {$height}px;\"> <td class=\"info1\">Track Number</td> <td class=\"info2\"><div class=\"normal-item\">{$track_info["id"]}</div></td> </tr> <tr class=\"info2\" style=\"height: {$height}px;\"> <td class=\"info1\">Track Name</td> <td class=\"info2\"><div class=\"normal-item\">{$track_info["title"]}</div></td> </tr> <tr class=\"info1\" style=\"height: {$height}px;\"> <td class=\"info1\">Mix Name</td> <td class=\"info2\"><div class=\"normal-item\">{$track_info["mix"]}</div></td> </tr> <tr class=\"info2\" style=\"height: {$height}px;\"> <td class=\"info1\">Composer</td> <td class=\"info2\"><div class=\"normal-item\">{$track_info["composer"]}</div></td> </tr> <tr class=\"info1\" style=\"height: {$height}px;\"> <td class=\"info1\">Comment</td> <td class=\"info2\"><div class=\"normal-item\">{$track_info["comment"]}</div></td> </tr> <tr class=\"info2\" style=\"height: {$height}px;\"> <td class=\"info1\">Length</td> <td class=\"info2\"><div class=\"normal-item\">{$track_info["length"]}</div></td> </tr> "; if ($track_info["safe_creative"] != "") { echo " <tr class=\"info1\" style=\"height: {$height}px;\"> <td class=\"info1\">Safe Creative</td> <td class=\"info2\"><div class=\"link-item\"><a rel=\"nofollow\" href=\"{$track_info["safe_creative"]}\">Link</a></div></td> </tr> "; } echo " </tbody> </table> </td> </tr> </tbody> </table> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track Lyrics */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_track_lyrics( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $cover_path = "{$play_path}/covers/{$play_id}-cover"; $logo_path = "{$play_path}/logos/{$play_id}-logo"; $track_path = "{$play_path}/tracks"; $lyrics_file = "tracks/{$track_name}/{$track_mix}/lyrics.txt"; echo " <table class=\"tab\" style=\"height: 100%;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr class=\"lyrics1\"> <td class=\"lyrics1\"> <br/> "; if( file_exists( "{$lyrics_file}")) { $lyrics_string = file_get_contents( "{$lyrics_file}"); } else { $lyrics_string = "No lyrics found...\n"; } echo str_replace( "\n", "<br/>\n ", "{$lyrics_string}"); echo "<br/> </td> </tr> </tbody> </table> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Title Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_title_get( $play_type, $play_id, $play_priority, $track_id) { $track_info = lmb_track_info_get( $play_type, $play_id, $play_priority, $track_id); return( "{$track_info["title"]}"); } /*--------------------------------------------------------------------------------------------------------------------*/ /* FullTitle Get */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_fulltitle_get( $play_type, $play_id, $play_priority, $track_id) { $track_info = lmb_track_info_get( $play_type, $play_id, $play_priority, $track_id); if( "{$track_info["mix"]}" == "") { return( "{$track_info["title"]}"); } else { return( "{$track_info["title"]} ({$track_info["mix"]})"); } } /*--------------------------------------------------------------------------------------------------------------------*/ /* JPlayer Insert */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_jplayer_insert( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix) { global $lmb_cookie_tab; global $lmb_url_pre; global $lmb_url_post; global $lmb_jpi_enable; $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $track_path = "{$play_path}/tracks"; if( "{$track_mix}" == "") { $track_file_base = "{$track_id}-{$track_name}"; } else { $track_file_base = "{$track_id}-{$track_name}-{$track_mix}"; } $track_file_ogg = "{$track_path}/ogg-256/{$track_file_base}.ogg"; $track_file_mp3 = "{$track_path}/mp3-192/{$track_file_base}.mp3"; $track_fulltitle = lmb_fulltitle_get( $play_type, $play_id, $play_priority, $track_id); $solution_cookie = "jpsolution"; $prefix_url = "{$lmb_url_post}?cookie_id={$solution_cookie}&cookie_value="; $query_string = preg_replace( "/cookie_id={$solution_cookie}&cookie_value=[^&]*&/", "", "{$_SERVER['QUERY_STRING']}"); $solution_html_url = htmlentities( "{$prefix_url}html, flash&{$query_string}"); $solution_flash_url = htmlentities( "{$prefix_url}flash, html&{$query_string}"); $solution_native_url = htmlentities( "{$prefix_url}native&{$query_string}"); $solution_value = $lmb_cookie_tab[$solution_cookie]; if( "{$solution_value}" == "html, flash") { $html_class = "link-item-disabled"; $flash_class = "link-item"; $native_class = "link-item"; } else { if( "{$solution_value}" == "flash, html") { $html_class = "link-item"; $flash_class = "link-item-disabled"; $native_class = "link-item"; } else { $html_class = "link-item"; $flash_class = "link-item"; $native_class = "link-item-disabled"; } } if( "{$solution_value}" == "native") { echo " <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr style=\"background-color:#222222; height: 75px;\"> <td style=\"vertical-align: middle; padding: 10px 0px 0px 0px;\"> <audio controls autoplay style=\"width: 90%; \"> <source src=\"http://{$lmb_url_pre}/{$track_file_ogg}\" type=\"audio/ogg\"> <source src=\"http://{$lmb_url_pre}/{$track_file_mp3}\" type=\"audio/mpeg\"> Your browser does not support the audio element. </audio> </td> </tr> <tr style=\"background-color:#222222; height: 25px;\"> <td style=\"horizontal-align: left; vertical-align: middle;\"> <div style=\"font-size: 12px;\"><a rel=\"nofollow\" class=\"{$html_class}\" href=\"{$solution_html_url}\">JPlayer HTML</a> <a rel=\"nofollow\" class=\"{$flash_class}\" href=\"{$solution_flash_url}\">JPlayer Flash</a> <a rel=\"nofollow\" class=\"{$native_class}\" href=\"{$solution_native_url}\">Native</a></div> </td> </tr> </tbody> </table> "; } else { echo " <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr> <td style=\"background-color:#3a2a45; border-top:1px solid #554461; border-bottom:1px solid #180a1f; border-left:1px solid #554461;\"> </td> <td style=\"width: 1%;\"> <script type=\"text/javascript\" src=\"/jplayer/lib/jquery.min.js\"></script> <script type=\"text/javascript\" src=\"/jplayer/jquery.jplayer.min.js\"></script> <script type=\"text/javascript\" src=\"/jplayer/jquery.jplayer.inspector.js\"></script> "; echo " <script type=\"text/javascript\"> //<![CDATA[ $(document).ready(function(){ $(\"#jquery_jplayer_1\").jPlayer({ ready: function (event) { $(this).jPlayer(\"setMedia\", { title: \"{$track_fulltitle}\", oga:\"http://{$lmb_url_pre}/{$track_file_ogg}\", mp3:\"http://{$lmb_url_pre}/{$track_file_mp3}\" }).jPlayer(\"play\"); }, swfPath: \"/jplayer\", supplied: \"oga, mp3\", wmode: \"window\", useStateClassSkin: true, autoBlur: true, smoothPlayBar: false, keyEnabled: true, remainingDuration: true, toggleDuration: true, backgroundColor: \"#012345\" }); $(\"#jplayer_inspector\").jPlayerInspector({jPlayer:$(\"#jquery_jplayer_1\")}); }); //]]> </script> "; echo " <div id=\"jquery_jplayer_1\" class=\"jp-jplayer\"></div> <div id=\"jp_container_1\" class=\"jp-audio\" role=\"application\" aria-label=\"media player\"> <div class=\"jp-type-single\"> <div class=\"jp-gui jp-interface\"> <div class=\"jp-volume-controls\"> <button class=\"jp-mute\" role=\"button\" tabindex=\"0\">mute</button> <button class=\"jp-volume-max\" role=\"button\" tabindex=\"0\">max volume</button> <div class=\"jp-volume-bar\"> <div class=\"jp-volume-bar-value\"></div> </div> </div> <div class=\"jp-controls-holder\"> <div class=\"jp-controls\"> <button class=\"jp-play\" role=\"button\" tabindex=\"0\">play</button> <button class=\"jp-stop\" role=\"button\" tabindex=\"0\">stop</button> </div> <div class=\"jp-progress\"> <div class=\"jp-seek-bar\"> <div class=\"jp-play-bar\"></div> </div> </div> <div class=\"jp-current-time\" role=\"timer\" aria-label=\"time\"> </div> <div class=\"jp-duration\" role=\"timer\" aria-label=\"duration\"> </div> <div class=\"jp-toggles\"> <button class=\"jp-repeat\" role=\"button\" tabindex=\"0\">repeat</button> </div> </div> </div> <div class=\"jp-details\"> <div class=\"jp-title\" aria-label=\"title\"> </div> </div> <div class=\"jp-no-solution\"> <span>Update Required</span> To play the media you will need to either update your browser to a recent version or update your <div class=\"link-item\"><a href=\"http://get.adobe.com/flashplayer/\" target=\"_blank\">Flash plugin</a></div>. </div> <div> </div> <div style=\"font-size: 12px;\"><a rel=\"nofollow\" class=\"{$html_class}\" href=\"{$solution_html_url}\">JPlayer HTML</a> <a rel=\"nofollow\" class=\"{$flash_class}\" href=\"{$solution_flash_url}\">JPlayer Flash</a> <a rel=\"nofollow\" class=\"{$native_class}\" href=\"{$solution_native_url}\">Native</a></div> </div> </div> "; echo " </td> <td style=\"background-color:#3a2a45; border-top:1px solid #554461; border-bottom:1px solid #180a1f; border-right:1px solid #180a1f;\"> </td> </tr> </tbody> </table> "; if( $lmb_jpi_enable == true) { echo "<div id=\"jplayer_inspector\"></div>"; } } } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track Introduction */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_track_intro( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix, $skin_path) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $cover_path = "{$play_path}/covers/{$play_id}-cover"; $logo_path = "{$play_path}/logos/{$play_id}-logo"; $track_path = "{$play_path}/tracks"; $cover_size = 400; $border1_size = $cover_size + 30; $border2_size = $cover_size + 10; echo " <tr><td><br/></td></tr> <tr> <td class=\"body\" colspan=\"3\" rowspan=\"1\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"\"> <tbody> <tr> <td> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"\"> <tbody> <tr> <td rowspan=\"2\" style=\"width: {$border1_size}px; height: {$border1_size}px;\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"\"> <tbody> <tr> <td class=\"cover\" style=\"width: {$border2_size}px; height: {$border2_size}px;\"><a href=\"{$cover_path}-1-1024.png\"><img class=\"button-item-big\" src=\"{$cover_path}-1-{$cover_size}.png\" alt=\"\"/></a></td> </tr> </tbody> </table> </td> <td style=\"height: 40px; width: auto;\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"\"> <tbody> <tr class=\"info0\" style=\"height: 0px;\"> <td class=\"info0\">Informations</td> </tr> <tr> <td> "; lmb_track_info( $play_type, $play_id, $play_priority, $track_id); // echo "<br/>"; echo " </td> </tr> </tbody> </table> </td> </tr> <tr> <td> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"\"> <tbody> <tr> <td> "; lmb_jplayer_insert( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix); echo " </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> <tr> <td> <table class=\"tab\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"\"> <tbody> <tr> <td style=\"height: 100%; vertical-align: bottom;\"> <table class=\"tab\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"text-align: left; width: 100%; height: 100%;\"> <tbody> <tr> <td> "; lmb_track_lyrics( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix); echo " </td> </tr> <tr class=\"lyrics0\"> <td class=\"lyrics0\">Lyrics</td> </tr> </tbody> </table> </td> <td style=\"width: {$border1_size}px; height: {$border1_size}px; vertical-align:bottom\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" style=\"\"> <tbody> <tr> <td class=\"cover\" style=\"width: {$border2_size}px; height: {$border2_size}px;\"><a href=\"{$cover_path}-2-1024.png\"><img class=\"button-item-big\" src=\"{$cover_path}-2-{$cover_size}.png\" alt=\"\"/></a></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> <tr><td><br/><br/><br/><br/><br/></td></tr> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track Download */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_track_download( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix, $skin_path) { global $lmb_url_post; $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $logo_path = "{$play_path}/logos/{$play_id}-logo"; $track_path = "{$play_path}/tracks"; $file_tag = lmb_track_file_tag_get( $play_type, $play_id, $play_priority, $track_id); echo " <tr><td><br/></td></tr> <tr> <td colspan=\"3\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\"> <tbody> <tr> <td class=\"logo\" style=\"width: 128px;\"><div class=\"sprite-lm-logo1-96\"></div></td> <td class=\"body\"> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> <tr class=\"row0\"> <td class=\"title_r\" colspan=\"5\">Download </td> </tr> <tr class=\"row3\">{$file_tag}</tr> </tbody> </table> <br/> <table class=\"list\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tbody> "; $mix_list = glob( "discography/*/*/tracks/flac/*-{$track_name}*.flac"); for( $i = 0, $k = 0; $i < count( $mix_list); $i++) { $path_tab = explode( "/", $mix_list[$i]); $play_tab = explode( "-", $path_tab[2]); $track_tab = explode( "-", $path_tab[5]); $play_type = $path_tab[1]; $play_pri = $play_tab[0]; $play_id = $play_tab[1]; if( file_exists( "discography/{$play_type}/{$play_pri}-{$play_id}/.hide" )) { $hide = "y"; } else { $hide = "n"; } if( ( $hide == "n") || lmb_admin_is()) { $mix_tab[$k]["hide"] = $hide; $mix_tab[$k]["play_type"] = $play_type; $mix_tab[$k]["play_type_name"] = lmb_play_type_name_get( $path_tab[1]); $mix_tab[$k]["play_id"] = $play_id; $mix_tab[$k]["play_pri"] = $play_pri; $mix_tab[$k]["track_id"] = $track_tab[0]; $mix_tab[$k]["play_url"] = "{$lmb_url_post}?page=play&type={$mix_tab[$k]["play_type"]}&id={$mix_tab[$k]["play_id"]}&priority={$mix_tab[$k]["play_pri"]}"; $mix_tab[$k]["mix_url"] = "{$lmb_url_post}?page=track&type={$mix_tab[$k]["play_type"]}&id={$mix_tab[$k]["play_id"]}&priority={$mix_tab[$k]["play_pri"]}&tid={$mix_tab[$k]["track_id"]}"; $track_info = lmb_track_info_get( $mix_tab[$k]["play_type"], $mix_tab[$k]["play_id"], $mix_tab[$k]["play_pri"], $mix_tab[$k]["track_id"]); $mix_tab[$k]["track_name"] = $track_info["title"]; $mix_tab[$k]["mix_name"] = $track_info["mix"]; $mix_tab[$k]["play_name"] = $track_info["album"]; $k++; } } for( $k = 0; $k < count( $mix_tab); $k++) { if( "{$mix_tab[$k]["hide"]}" == "y") { $hide_flag="*"; } else { $hide_flag=""; } $css_row = ( $k + 1 + count( $mix_tab)) % 2 + 3; echo " <tr class=\"row${css_row}\"> <td class=\"tracks2\"><div class=\"link-item\"><a href=\"{$mix_tab[$k]["mix_url"]}\">{$mix_tab[$k]["track_name"]}{$hide_flag}</a></div></td> <td class=\"tracks3\"><div class=\"link-item\"><a href=\"{$mix_tab[$k]["mix_url"]}\">{$mix_tab[$k]["mix_name"]}</a></div></td> <td class=\"tracks2\">{$mix_tab[$k]["play_type_name"]}</td> <td class=\"tracks3\"><div class=\"link-item\"><a href=\"{$mix_tab[$k]["play_url"]}\">{$mix_tab[$k]["play_name"]}</a></div></td> </tr> "; } echo " <tr class=\"row0\"> <td class=\"title_r\" colspan=\"4\">Mixes </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track Body */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_track_body( $play_type, $play_id, $play_priority, $track_id, $skin_path) { $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $track_path = "{$play_path}/tracks"; $track_file_name = glob( "{$track_path}/flac/$track_id-*.flac"); $tab = explode( "-", basename( "{$track_file_name[0]}", ".flac")); $track_name = $tab[1]; $track_mix = $tab[2]; /* --- Introduction --- */ lmb_track_intro( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix, $skin_path); /* --- Download --- */ lmb_track_download( $play_type, $play_id, $play_priority, $track_id, $track_name, $track_mix, $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Track Page */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_track_page( $play_type, $play_id, $play_priority, $track_id) { global $lmb_tab; $play_path = lmb_play_path_get( $play_type, $play_id, $play_priority); $skin_path = "{$play_path}/skin"; $track_title = lmb_title_get( $play_type, $play_id, $play_priority, $track_id); $track_fulltitle = lmb_fulltitle_get( $play_type, $play_id, $play_priority, $track_id); lmb_header( 4, "Langueur Monotone - {$track_fulltitle} - Track Page", "{$track_fulltitle} - Track", "Langueur Monotone track page, giving all the information about {$track_fulltitle} track", "track, {$track_title}, {$track_fulltitle}", 962, "{$skin_path}"); lmb_track_body( $play_type, $play_id, $play_priority, $track_id, $skin_path); lmb_footer( $skin_path); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Download ZIP */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_download_zip( $directory, $file_list, $mode) { switch($mode) { case "SIZE": { return( exec( "cd {$directory}; du -cb ${file_list} | tail -1 | cut -f 1")); } case "RSIZE": { return( exec( "cd {$directory}; zip -0 -j -p - ${file_list} | wc -c")); } case "DUMP": { passthru( "cd {$directory}; zip -0 -j -p - ${file_list}"); break; } } } /*--------------------------------------------------------------------------------------------------------------------*/ /* Download File */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_download_file( $play_dir, $file_list, $mode, $download_name) { if( $mode == "SIZE") { return( lmb_download_zip( "{$play_dir}", $file_list, "SIZE")); } else { $zip_size = lmb_download_zip( "{$play_dir}", $file_list, "RSIZE"); header( "Content-Description: Langueur Monotone - {$download_name}"); header( 'Content-Type: application/zip'); header( 'Content-Disposition: attachment; filename="'."langueur_monotone-{$download_name}.zip".'"'); header( 'Content-Length: ' . $zip_size); $zip_size = lmb_download_zip( "{$play_dir}", $file_list, "DUMP"); } } /*--------------------------------------------------------------------------------------------------------------------*/ /* Download Tracks */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_download_tracks( $play_type, $play_id, $play_priority, $file_type, $mode) { $play_dir = lmb_play_path_get( $play_type, $play_id, $play_priority); $file_list = "tracks/{$file_type}/* covers/{$play_id}-*-800.png"; return( lmb_download_file( $play_dir, $file_list, $mode, "{$play_id}-{$file_type}")); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Download Covers */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_download_covers( $play_type, $play_id, $play_priority, $cover_format, $mode) { $play_dir = lmb_play_path_get( $play_type, $play_id, $play_priority); $file_list = "covers/{$play_id}-cover-*-{$cover_format}.png"; return( lmb_download_file( $play_dir, $file_list, $mode, "{$play_id}-{$cover_format}")); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Download Videos */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_download_videos( $play_type, $play_id, $play_priority, $video_format, $mode) { $play_dir = lmb_play_path_get( $play_type, $play_id, $play_priority); $file_list = "videos/*-{$video_format}.avi"; return( lmb_download_file( $play_dir, $file_list, $mode, "{$play_id}-{$video_format}")); } /*--------------------------------------------------------------------------------------------------------------------*/ /* Download Extras */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_download_extras( $play_type, $play_id, $play_priority, $extra_format, $mode) { $play_dir = lmb_play_path_get( $play_type, $play_id, $play_priority); $file_list = "extras/{$play_id}-*-{$extra_format}.png"; return( lmb_download_file( $play_dir, $file_list, $mode, "{$play_id}-{$extra_format}")); } /*--------------------------------------------------------------------------------------------------------------------*/ /* */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_body( $id, $name, $curver, $currel) { global $lmb_download_http_url; global $lmb_download_ftp_url; $description = lmb_tag_get( $id, $curver, $currel, "", "%{DESCRIPTION}"); $change_log = lmb_tag_get( $id, $curver, $currel, "", "%{CHANGELOGTIME:date} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}"); echo " <P> <BR/> <BR/> </P> <PRE> "; lmb_tab_dump( $description, 0); echo " </PRE> <P> <BR/> <BR/> </P> "; echo " <P> <BR/> </P> <HR> <H5>Last Release Notes:</H5> "; echo " <PRE> "; lmb_tab_dump( $change_log, 0); echo " </PRE> "; $lmb_list = lmb_list_get( $id, $curver, $currel); if( $lmb_list != "") { echo" <HR> <H5>Sub-Package List:</H5><P>"; for( $i = 0; $i < count($lmb_list); $i++) { echo " $lmb_list[$i]"; } echo "</P> "; } echo" <HR> <H5>"; echo "<A HREF=\"?pkg=$id&cl=yes\">$name changelog page</A> "; echo "<A HREF=\"?pkg=$id&fl=yes\">$name file list page</A> "; echo "<A HREF=\"$lmb_download_http_url/$id\">$name HTTP download page</A> "; echo "<A HREF=\"$lmb_download_ftp_url/$id\">$name FTP download page</A> "; echo "</H5>"; } /*--------------------------------------------------------------------------------------------------------------------*/ /* */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_page( $lmb_id, $lmb_name, $lmb_curver, $lmb_currel) { $summary = lmb_tag_get( $lmb_id, $lmb_curver, $lmb_currel, "", "%{SUMMARY}"); $lmb_summary = $summary[0]; lmb_header( $lmb_id, $lmb_name, $lmb_summary, $lmb_curver, $lmb_currel); lmb_body( $lmb_id, $lmb_name, $pkg_curver, $pkg_currel); pkg_footer(); } /*--------------------------------------------------------------------------------------------------------------------*/ /* */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_cl_header( $id, $name, $curver, $currel) { $page_name="Rx3 $name ChangeLog Page"; $page_title="$page_name"; global $lmb_url_post; global $lmb_header; global $lmb_keywords; $keywords="$lmb_keywords,$id, rx3 $id changelog"; include "$lmb_header"; echo " <META NAME=\"keywords\" CONTENT=\"$keywords\"> <TITLE>$page_name</TITLE> </HEAD> <BODY> <H1>$page_title</H1> <H4>$curver-$currel</H4> <H5><A HREF=\"..\">Rx3.Org Main Page</A> / <A HREF=\"$lmb_url_post\">Rx3 Free Software Packaging Main Page</A> / <A HREF=\"$lmb_url_post?pkg=$id\">Rx3 $name Home Page</A></H5> <HR> "; } /*--------------------------------------------------------------------------------------------------------------------*/ /* Get Proceed */ /*--------------------------------------------------------------------------------------------------------------------*/ function lmb_get_proceed( $get_array) { global $lmb_tab; lmb_admin_update(); lmb_cookie_update( $get_array); if( array_key_exists ( "page", $get_array)) { $page_id=$get_array["page"]; } else { $page_id=""; } switch ($page_id) { case "sitemap": { lmb_sitemap_page( ); break; } case "rss": { lmb_rss_page( ); break; } case "about": { lmb_about_page( $lmb_tab); break; } case "discography": { lmb_discography_page( $lmb_tab); break; } case "play": { $play_type=$get_array["type"]; $play_id=$get_array["id"]; $play_priority=$get_array["priority"]; lmb_play_page( $play_type, $play_id, $play_priority); break; } case "tracklist": { lmb_tracklist_page(); break; } case "track": { $play_type=$get_array["type"]; $play_id=$get_array["id"]; $play_priority=$get_array["priority"]; $track_id=$get_array["tid"]; lmb_track_page( $play_type, $play_id, $play_priority, $track_id); break; } case "download": { $play_type=$get_array["type"]; $play_id=$get_array["id"]; $play_priority=$get_array["priority"]; $download_type=$get_array["dtype"]; switch( "{$download_type}") { case "track": { $file_type=$get_array["ftype"]; lmb_download_tracks( $play_type, $play_id, $play_priority, $file_type, "DUMP"); break; } case "cover": { $cover_format=$get_array["cformat"]; lmb_download_covers( $play_type, $play_id, $play_priority, $cover_format, "DUMP"); break; } case "video": { $video_format=$get_array["vformat"]; lmb_download_videos( $play_type, $play_id, $play_priority, $video_format, "DUMP"); break; } case "extra": { $extra_format=$get_array["eformat"]; lmb_download_extras( $play_type, $play_id, $play_priority, $extra_format, "DUMP"); break; } } break; } case "login": { lmb_login_page( $lmb_tab); break; } default: { lmb_main_page( ); break; } } } /*--------------------------------------------------------------------------------------------------------------------*/ /* Main */ /*--------------------------------------------------------------------------------------------------------------------*/ $lmb_cookie_tab = array(); lmb_cookies_load(); lmb_get_proceed( $_GET); ?>