Current Path : /var/www/html/clients/kampol.e-nk.ru/OLD/components/com_rd_sitemap/ |
Current File : /var/www/html/clients/kampol.e-nk.ru/OLD/components/com_rd_sitemap/rd_sitemap.php |
<?php /** * Application layer for sitemap * @version $Id: rd_sitemap.php,v 1.9 2005/11/10 11:42:42 deutz Exp $ * @package RD_Sitemap * @copyright Copyright (C) 2005 run-digital * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * * This is free software **/ defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' ); require_once( $mainframe->getPath( 'front_html' ) ); if (!$Itemid) { echo "<p>No vaild Itemid available</p>"; } else { // Parameters $menu =& new mosMenu( $database ); $menu->load( $Itemid ); $params =& new mosParameters( $menu->params ); $first = $params->get('first','1'); $showmenu = $params->get('showmenu','1'); $showcontent = $params->get('showcontent','1'); $showachiv = $params->get('showachiv','1'); $title = $params->get('title','Sitemap'); $divclass = $params->get('divclass',''); HTML_rd_sitemap::showComponentHead($title,$divclass); $mainframe->setPageTitle($title); if ($first) { if ($showmenu) {showMenus($params);} if ($showcontent) {showContent($params);} if ($showachiv) {showContent($params,1);} } else { if ($showcontent) {showContent($params);} if ($showachiv) {showContent($params,1);} if ($showmenu) {showMenus($params);} } HTML_rd_sitemap::showComponentFooter(); } function showMenus (&$params ) { global $database, $my; $menu=$params->get('menu'); $gid=$my->gid; if ($menu) { $menu = str_replace(';',',',$menu); $query = "SELECT id,title,access,params,showtitle FROM #__modules " . "\nWHERE published = '1' and module = 'mod_mainmenu' " . "\n and access <= '$gid' and id in ($menu)"; $database->setQuery( $query ); $res = $database->loadObjectList(); $result=array(); foreach (explode(',',$menu) as $elm) { foreach ($res as $r) { if ($elm == $r->id) { $result[] = $r; } } } } else { $query = "SELECT id,title,access,params,showtitle FROM #__modules " . "\nWHERE published = '1' and module = 'mod_mainmenu' " . "\n and access <= '$gid' " . "\nORDER BY title"; $database->setQuery( $query ); $result = $database->loadObjectList(); } $num = count($result); if ( $num != 0) { foreach ($result as $menu) { showMenu($params, $menu, $gid); } } } function showMenu (&$params,$menu,$gid=0 ) { global $mainframe, $database; $mode=$params->get('mode','1'); $showmenutitle = $params->get('showmenutitle', '1'); $maxlevels=$params->get('maxlevels','5'); $mparams =& new mosParameters( $menu->params ); $menutype = $mparams->get('menutype'); $query = "SELECT id, name, link, type, parent, ordering, params FROM #__menu " . "\n WHERE published = '1' and access <= '$gid'" . "\n AND menutype = '$menutype' and type <> 'separator'" . "\n ORDER BY ordering"; $database->setQuery( $query ); $menuitems = $database->loadObjectList(); $rootlevel = array(); $sublevels = array(); $r = 0; $s = 0; foreach ($menuitems as $item) { if ($item->parent) { //sublevel $item->ebene = 1; $sublevels[$s] = $item; $s++; } else { //rootlevel $item->ebene = 0; $rootlevel[$r] = $item; $r++; } } $z=0; if ($s && $maxlevels) { foreach ($rootlevel as $elm) { $newmenuitems[$z] = $elm; $z++; createTree($z,$elm->id,$sublevels,1,$maxlevels,$newmenuitems); } } else { $newmenuitems = $rootlevel; } $title = ""; if ($showmenutitle == '1') { $title=$menu->title; } else { if ($showmenutitle == '2') { $showtitle = $menu->showtitle; if ($showtitle) { $title=$menu->title; } } } HTML_rd_sitemap::showMenu($title,$newmenuitems,$mode); return true; } function createTree(&$z,$id,$sl,$ebene,$maxlevels, &$nm) { if ($ebene > $maxlevels) {return true;} foreach ($sl as $selm) { if ($selm->parent == $id) { $selm->ebene = $ebene; $nm[$z] = $selm; $z++; $nebene = $ebene + 1; createTree($z,$selm->id,$sl,$nebene,$maxlevels,$nm); } } return true; } function showContent (&$params, $archiv=0) { global $database, $mosConfig_offset; $mode=$params->get('mode','1'); if ($archiv) { $sections = $params->get('asections'); $now = date( 'Y-m-d H:i:s', time()+$mosConfig_offset*60*60 ); $showsectionname = $params->get('ashowsectionname','1'); $showcategoryname = $params->get('ashowcategoryname','1'); if ($params->get('showcatitle')) { $title = $params->get('catitle'); } else { $title = ""; } $state='-1'; } else { $sections = $params->get('sections'); $now = date( 'Y-m-d H:i:s', time()+$mosConfig_offset*60*60 ); $showsectionname = $params->get('showsectionname','1'); $showcategoryname = $params->get('showcategoryname','1'); if ($params->get('showctitle')) { $title = $params->get('ctitle'); } else { $title = ""; } $state='1'; } if ($sections) { $sections = str_replace(';',',',$sections); $query = "SELECT s.id as sid, s.name as section, c.name as category, i.id, i.title" . "\n FROM #__categories as c, #__sections as s, #__content as i" . "\n WHERE c.section = s.id AND c.id = i.catid" . "\n AND s.published = '1' AND c.published = '1' AND s.id in ($sections)" . "\n AND i.state = '$state' " . "\n AND ( i.publish_up = '0000-00-00 00:00:00' OR i.publish_up <= '". $now ."' )" . "\n AND ( i.publish_down = '0000-00-00 00:00:00' OR i.publish_down >= '". $now ."' )" . "\n ORDER BY s.name, c.name,i.title"; $database->setQuery( $query ); $res = $database->loadObjectList(); $result=array(); foreach (explode(',',$sections) as $elm) { foreach ($res as $r) { if ($elm == $r->sid) { $result[] = $r; } } } } else { $query = "SELECT s.name as section, c.name as category, i.id, i.title" . "\n FROM #__categories as c, #__sections as s, #__content as i" . "\n WHERE c.section = s.id AND c.id = i.catid" . "\n AND s.published = '1' AND c.published = '1'" . "\n AND i.state = '$state' " . "\n AND ( i.publish_up = '0000-00-00 00:00:00' OR i.publish_up <= '". $now ."' )" . "\n AND ( i.publish_down = '0000-00-00 00:00:00' OR i.publish_down >= '". $now ."' )" . "\n ORDER BY s.name, c.name,i.title"; $database->setQuery( $query ); $result = $database->loadObjectList(); } HTML_rd_sitemap::showContent($title,$result,$showsectionname,$showcategoryname,$mode); } /** EOF **/ ?>