Your IP : 172.28.240.42


Current Path : /var/www/html/clients/kampol.e-nk.ru/OLD/components/com_rd_sitemap/
Upload File :
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 **/
?>