if (!defined(JZ_SECURE_ACCESS)) { die('Security breach detected.'); } global $jukebox; // Let's setup our objects $display = new jzDisplay(); $blocks = new jzBlocks(); $smarty = smartySetup(); if (!is_object($node)) { $node = new jzMediaNode(); } // Let's include the settings file include_once $include_path . 'frontend/frontends/andro/settings.php'; // TO DO - SMARTY!!! $display->preHeader(); $smarty->assign('this_page', $this_page); $smarty->assign('img_home', $img_home); $smarty->assign('cms_mode', $cms_mode); $smarty->assign('image_dir', $image_dir); $smarty->assign('jinzora_url', $jinzora_url); $smarty->assign('word_search', word('Search:')); $smarty->assign('word_all_media', word('All Media')); if ($cms_mode == "true") { $smarty->assign('method', "GET"); } else { $smarty->assign('method', "POST"); } if ($jukebox == "true" && !defined('NO_AJAX_JUKEBOX')) { $smarty->assign('searchOnSubmit', 'onSubmit="return searchKeywords(this,\'' . htmlentities($this_page) . '\');"'); } else {
function pageTop($node) { global $img_home, $jinzora_skin, $root_dir, $css, $this_page, $cms_mode, $jzUSER, $include_path, $desc_truncate, $image_size, $jinzora_url, $image_dir, $jukebox, $jzSERVICES, $jukebox_display, $cms_mode, $show_artist_alpha, $show_artist_list, $allow_resample; // Let's setup our objects $display = new jzDisplay(); $blocks = new jzBlocks(); $smarty = smartySetup(); // Now let's make sure our Node is set and if not set one if (!is_object($node)) { $node = new jzMediaNode(); } // Let's include the settings file include_once $include_path . 'frontend/frontends/mediacenter/settings.php'; // Let's set some variables $smarty->assign('root_dir', $root_dir); // Ok, now let's include the first template $smarty->display(SMARTY_ROOT . 'templates/mediacenter/header.tpl'); exit; $display->preHeader(); $smarty->assign('this_page', $this_page); $smarty->assign('img_home', $img_home); $smarty->assign('cms_mode', $cms_mode); $smarty->assign('image_dir', $image_dir); $smarty->assign('jinzora_url', $jinzora_url); $smarty->display(SMARTY_ROOT . 'templates/mediacenter/header.tpl'); // Now let's see if we should show the jukebox iframe $smarty->assign('jukebox_queue', false); if (checkPermission($jzUSER, "jukebox_queue")) { $smarty->assign('jukebox_queue', true); if ($jukebox_display == "small" or $jukebox_display == "minimal") { $smarty->assign('jukebox_display', "small"); } else { $smarty->assign('jukebox_display', "full"); } } $smarty->display(SMARTY_ROOT . 'templates/mediacenter/jukebox.tpl'); // Let's show the news $siteNews = $blocks->siteNews($node); $smarty->assign('site_news', $siteNews); if ($siteNews != "") { $smarty->display(SMARTY_ROOT . 'templates/mediacenter/site-news.tpl'); } // Now do we have art or image or desc at the album level if ($node->getPType() == "album") { if (($art = $node->getMainArt($image_size . "x" . $image_size)) != false or ($desc = $node->getDescription()) != "") { $desc = $node->getDescription(); // Ok, let's display echo '<table width="100%" cellspacing="0" cellpadding="5">'; echo '<tr class="and_head1">'; echo '<td width="100%" align="left">'; // Let's display the name $artist = $node->getAncestor('artist'); echo "<strong>"; if ($artist !== false) { $display->link($artist, $artist->getName()); echo " - "; } echo $node->getName(); if (!isNothing($node->getYear())) { echo " (" . $node->getYear() . ")"; } echo '</strong><br>'; if ($art) { if ($desc) { $align = "left"; } else { $align = "center"; } $display->image($art, $node->getName(), $image_size, $image_size, "limit", false, false, $align, "4", "4"); } if ($cms_mode == "false") { echo '<div class="jz_artistDesc">'; } echo $display->returnShortName($desc, $desc_truncate); // Do we need the read more link? if (strlen($desc) > $desc_truncate) { $url_array = array(); $url_array['jz_path'] = $node->getPath("String"); $url_array['action'] = "popup"; $url_array['ptype'] = "readmore"; echo ' <a href="' . urlize($url_array) . '" onclick="openPopup(this, 450, 450); return false;">...read more</a>'; } if ($cms_mode == "false") { echo '</div>'; } echo '</td></tr></table>'; } } // Can this user powersearch? $on = true; if ($jzUSER->getSetting('powersearch') and $on == true) { if ($cms_mode == "true") { $method = "GET"; } else { $method = "POST"; } ?> <table width="100%" cellspacing="0" cellpadding="0"><tr height="2" style="background-image: url('<?php echo $image_dir; ?> row-spacer.gif');"><td width="100%"></td></tr></table> <?php } ?> <?php if (isset($_POST['jz_path'])) { $jzPath = $_POST['jz_path']; } else { $jzPath = $_GET['jz_path']; } // Now should we show this bar? $bcArray = explode("/", $jzPath); ?> <table width="100%" cellspacing="0" cellpadding="5"> <tr class="and_head1"> <td width="50%" valign="middle"> <?php $url = array(); echo '<a href="' . urlize($url) . '"><img src="' . $image_dir . 'open-folder.gif" border="0"></a>'; // Now let's see if we need the breadcrumbs unset($bcArray[count($bcArray) - 1]); $path = ""; echo ' <a href="' . urlize($url) . '">' . word("Home") . '</a>'; foreach ($bcArray as $item) { if ($item != "") { $path .= "/" . $item; $arr['jz_path'] = $path; echo ' / <a href="' . urlize($arr) . '">' . $item . '</a>'; } unset($arr); } ?> </td> <td width="50%" valign="middle" align="right" nowrap="nowrap"> <?php if ($show_artist_list == "true") { ?> <?php echo word("Artist") . ": "; ?> <form action="<?php echo $this_page; ?> " method="post"> <?php $display->hiddenPageVars(); $display->dropdown("artist"); ?> </form> | <?php } ?> <?php echo word('Search:'); ?> <form action="<?php echo $this_page; ?> " method="<?php echo $method; ?> "> <?php foreach (getURLVars($this_page) as $key => $val) { echo '<input type="hidden" name="' . htmlentities($key) . '" value="' . htmlentities($val) . '">'; } ?> <select class="jz_select" name="search_type" style="width:85px"> <option value="ALL"><?php echo word("All Media"); ?> </option> <?php if (distanceTo("artist") !== false) { echo '<option value="artists">' . word("Artists") . '</option>' . "\n"; } if (distanceTo("album") !== false) { echo '<option value="albums">' . word("Albums") . '</option>' . "\n"; } ?> <option value="tracks"><?php echo word("Tracks"); ?> </option> <option value="lyrics"><?php echo word("Lyrics"); ?> </option> </select> <input type="text" name="search_query" class="jz_input" style="width:125px; font-size:10px "> <input type="hidden" name="doSearch" value="true"> <input type="submit" class="jz_submit" value="Go"> </form> </td> </tr> </table> <?php // Now let's see if we need the breadcrumbs if ($_GET['jz_path'] != "") { ?> <table width="100%" cellspacing="0" cellpadding="0"><tr height="2" style="background-image: url('<?php echo $image_dir; ?> row-spacer.gif');"><td width="100%"></td></tr></table> <table width="100%" cellspacing="0" cellpadding="3"> <tr class="and_head1"> <td width="1%" valign="middle" nowrap> <?php if ($cms_mode == "true") { $mode = "POST"; } else { $mode = "GET"; } $mode = "GET"; if (isset($_POST['jz_path'])) { $bcArray = explode("/", $_POST['jz_path']); } else { $bcArray = explode("/", $_GET['jz_path']); } // Now we need to cut the last item off the list $bcArray = array_slice($bcArray, 0, count($bcArray) - 1); // Now let's display the dropdown for where we are echo '<form action="' . $this_page . '" method="' . $mode . '">' . "\n"; echo '<select style="width:175px" class="jz_select" name="' . jz_encode('jz_path') . '" onChange="form.submit();">' . "\n"; $parent = $node->getParent(); $nodes = $parent->getSubNodes("nodes"); sortElements($nodes); foreach ($nodes as $child) { $path = $child->getPath("String"); echo '<option '; // Is this the current one? if ($child->getName() == $node->getName()) { echo ' selected '; } echo 'value="' . jz_encode($path) . '">' . $display->returnShortName($child->getName(), 20) . '</option>' . "\n"; } echo '</select>' . "\n"; //$display->hiddenVariableField("jz_path"); $display->hiddenPageVars(); echo '<input type="hidden" name="frontend" value="' . $_GET['frontend'] . '">' . "\n"; echo "</form>"; ?> </td> <td valign="middle" nowrap> <?php $display->playButton($node); echo " "; $display->randomPlayButton($node); $url_array = array(); $url_array['jz_path'] = $node->getPath("String"); $url_array['action'] = "popup"; $url_array['ptype'] = "iteminfo"; echo ' <a onclick="openPopup(this, 450, 450); return false;" href="' . urlize($url_array) . '"><img src="' . $image_dir . 'more.gif" border="0"></a>'; ?> </td> <?php if ($display->wantResampleDropdown($node)) { ?> <td align="right"> <?php $display->displayResampleDropdown($node, word("Resample") . ": "); ?> </td> <?php } ?> </tr> </table> <table width="100%" cellspacing="0" cellpadding="0"><tr height="2" style="background-image: url('<?php echo $image_dir; ?> row-spacer.gif');"><td width="100%"></td></tr></table> <?php } else { if ($display->wantResampleDropdown($node)) { ?> <table width="100%" cellspacing="0" cellpadding="0"><tr> <td align="right"> <?php $display->displayResampleDropdown($node, word("Resample") . ": "); ?> </td> </tr></table> <?php } } // ARTIST ALPHA: in header or only for root? Put the following in pageTop for the first... if ($show_artist_alpha == "true") { $blocks->alphabeticalList($node, "artist", 0); } }
/** * Draws a 'standard' page of type: * root, genre, artist, album, disk, generic * A frontend doesn't have to support all (or any) of these pagetypes, * but should understand they exist. * * @author Ben Dodson <*****@*****.**> * @version 11/3/04 * @since 5/13/04 */ function standardPage($node, $maindiv = false) { global $hierarchy, $include_path, $gzip_handler, $cms_type; // If they have a 'loose' hierarchy, use the genre page for now. $me = $this->name; $display = new jzDisplay(); // THIS **HAS** to go before any database calls // or else CMS's break!! if ($node->getName() != "") { $title = implode(" :: ", $node->getPath()); if ($maindiv === false) { $display->preHeader($title, $this->width, $this->align); $this->pageTop($title); } } else { switch ($hierarchy[0]) { case "genre": $title = word("Genres"); break; case "artist": $title = word("Artists"); break; case "album": $title = word("Albums"); break; } if ($maindiv === false) { $display->preHeader($title, $this->width, $this->align); $this->pageTop($title); } } if ($maindiv) { if ($gzip_handler == "true" && $cms_type != "mambo" && $cms_type != "cpgnuke") { @ob_start('ob_gzhandler'); } } // Once preheader is done, we can call to the database. $type = $node->getPType(); if (!validateLevel($type)) { $level = $node->getLevel(); if ($level == 0) { $type = "root"; } else { $type = $hierarchy[$level - 1]; } } // Disks are really albums: if ($type == "disk") { $type = "album"; } $pageInclude = $include_path . "frontend/frontends/{$me}/{$type}.php"; // if it doesn't exist, check the 'default' config for it. if (!is_file($pageInclude)) { $pageInclude = $include_path . "frontend/frontends/classic/{$type}.php"; if (!is_file($pageInclude)) { $pageInclude = $include_path . "frontend/frontends/{$me}/generic.php"; } if (!is_file($pageInclude)) { $pageInclude = $include_path . "frontend/frontends/classic/generic.php"; } // maybe don't do this-just crash. if (!is_file($pageInclude)) { die("Invalid level '{$type}' in your hierarchy."); } } require_once $pageInclude; // each of those php files has a drawPage() function // that takes a node as input. // It draws the page from the given node. // The root node is passed for the home page. drawPage($node); if ($maindiv === false && $this->standardFooter) { $this->footer($node); } }