|
/**
* swmenupro v2.0
* http://swonline.biz
* Copyright 2004 Sean White
**/
//error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
require_once("modules/mod_swmenupro/styles.php");
require_once("modules/mod_swmenupro/functions.php");
global $database, $my, $Itemid, $mosConfig_offset;
global $mosConfig_shownoauth, $mosConfig_dbprefix;
$menu = @$params->menutype ? strval( $params->menutype ) : $params->get( 'menutype' );
$menu = @$menu ? $menu: "mainmenu";
$id = @$params->moduleID ? intval( $params->moduleID ) : $params->get( 'moduleID' );
$id = @$id ? $id : 0;
$menustyle = @$params->menustyle ? strval( $params->menustyle ) : $params->get( 'menustyle' );
$menustyle = @$menustyle ? $menustyle : "popoutmenu";
$parent_level = @$params->get('parent_level') ? intval( $params->get('parent_level') ) : 0;
$levels = @$params->get('levels') ? intval( $params->get('levels') ) : 25;
$parent_id = @$params->get('parentid') ? intval( $params->get('parentid') ) : 0;
$active_menu = @$params->get('active_menu') ? intval( $params->get('active_menu') ) : 0;
$hybrid = @$params->get('hybrid') ? intval( $params->get('hybrid') ) : 0;
$onload_hack = @$params->get('onload_hack') ? intval( $params->get('onload_hack') ) : 0;
$editor_hack = @$params->get('editor_hack') ? intval( $params->get('editor_hack') ) : 0;
$sub_indicator = @$params->get('sub_indicator') ? intval( $params->get('sub_indicator') ) : 0;
//$use_default_parent = @$params->get('usecontent') ? strval( $params->get('usecontent') ) : 0;
$my_task = trim( mosGetParam( $_REQUEST, 'task', 0 ) );
if($my_task!="edit" && $editor_hack) {
$editor_hack=0;
}
$result = mysql_query("SELECT * FROM ".$mosConfig_dbprefix."swmenu_config WHERE id = ".$id);
$swmenupro = $result ? mysql_fetch_assoc($result) : 0 ;
if($menu && $id && $menustyle){
global $mosConfig_lang, $mosConfig_mbf_content;
$swmenupro_array=array();
$now = date( "Y-m-d H:i:s", time()+$mosConfig_offset*60*60 );
if ($mosConfig_shownoauth) {
$sql = "SELECT #__menu.* , #__swmenu_extended.*
FROM #__menu LEFT JOIN #__swmenu_extended ON #__menu.id = #__swmenu_extended.menu_id
AND (#__swmenu_extended.moduleID = '".$id."' OR #__swmenu_extended.moduleID IS NULL)
WHERE #__menu.menutype = ".$menu."
AND published = 1
ORDER BY parent, ordering
";
} else {
if ($menu=="swcontentmenu"){
$sql = "SELECT #__sections.* , #__swmenu_extended.*
FROM #__sections LEFT JOIN #__swmenu_extended ON #__sections.id = #__swmenu_extended.menu_id
AND (#__swmenu_extended.moduleID = '".$id."' OR #__swmenu_extended.moduleID IS NULL)
INNER JOIN #__content ON #__content.sectionid = #__sections.id
AND #__sections.published = 1
AND #__content.access <= ".$my->gid."
AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
ORDER BY #__content.ordering
";
$database->setQuery( $sql );
$result = $database->loadObjectList();
foreach ($result as $result2) {
if ($mosConfig_mbf_content) {
$result2 = MambelFish::translate( $result2, 'section', $mosConfig_lang);
}
$url="index.php?option=com_content&task=blogsection&id=" . $result2->id ;
$swmenupro_array[] =array("TITLE" => $result2->title, "URL" => $url , "ID" => $result2->id , "PARENT" => 0 , "ORDER" => $result2->ordering, "IMAGE" => $result2->image, "IMAGEOVER" => $result2->image_over, "SHOWNAME" => $result2->show_name, "IMAGEALIGN" => $result2->image_align, "TARGETLEVEL" => $result2->target_level, "TARGET" => 0 );
}
$sql = "SELECT #__categories.* , #__swmenu_extended.*
FROM #__categories LEFT JOIN #__swmenu_extended ON (#__categories.id+1000) = #__swmenu_extended.menu_id
AND (#__swmenu_extended.moduleID = '".$id."' OR #__swmenu_extended.moduleID IS NULL)
INNER JOIN #__content ON #__content.catid = #__categories.id
AND #__categories.published = 1
AND #__content.access <= ".$my->gid."
AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
ORDER BY #__content.ordering
";
$database->setQuery( $sql );
$result = $database->loadObjectList();
foreach ($result as $result2) {
if ($mosConfig_mbf_content) {
$result2 = MambelFish::translate( $result2, 'category', $mosConfig_lang);
}
$url="index.php?option=com_content&task=blogcategory&id=" . $result2->id;
$swmenupro_array[] =array("TITLE" => $result2->title, "URL" => $url , "ID" => $result2->id+1000 , "PARENT" => $result2->section , "ORDER" => $result2->ordering, "IMAGE" => $result2->image, "IMAGEOVER" => $result2->image_over, "SHOWNAME" => $result2->show_name, "IMAGEALIGN" => $result2->image_align, "TARGETLEVEL" => $result2->target_level, "TARGET" => 0 );
}
$sql = "SELECT #__content.* , #__swmenu_extended.*
FROM #__content LEFT JOIN #__swmenu_extended ON (#__content.id+10000) = #__swmenu_extended.menu_id
AND (#__swmenu_extended.moduleID = '".$id."' OR #__swmenu_extended.moduleID IS NULL)
INNER JOIN #__categories ON #__content.catid = #__categories.id
AND #__content.state = 1
AND #__content.access <= ".$my->gid."
AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
ORDER BY #__content.ordering
";
$database->setQuery( $sql );
$result = $database->loadObjectList();
foreach ($result as $result2) {
if ($mosConfig_mbf_content) {
$result2 = MambelFish::translate( $result2, 'content', $mosConfig_lang);
}
$url="index.php?option=com_content&task=view&id=" . $result2->id ;
$swmenupro_array[] =array("TITLE" => $result2->title, "URL" => $url , "ID" => $result2->id+10000 , "PARENT" => $result2->catid+1000 , "ORDER" => $result2->ordering, "IMAGE" => $result2->image, "IMAGEOVER" => $result2->image_over, "SHOWNAME" => $result2->show_name, "IMAGEALIGN" => $result2->image_align, "TARGETLEVEL" => $result2->target_level, "TARGET" => 0 );
}
}else{
$sql = "SELECT #__menu.* , #__swmenu_extended.*
FROM #__menu LEFT JOIN #__swmenu_extended ON #__menu.id = #__swmenu_extended.menu_id
AND (#__swmenu_extended.moduleID = '".$id."' OR #__swmenu_extended.moduleID IS NULL)
WHERE #__menu.menutype = '".$menu."' AND published = '1'
AND access <= '$my->gid'
ORDER BY parent, ordering
";
$database->setQuery( $sql );
$result = $database->loadObjectList();
$swmenupro_array=array();
foreach ($result as $result2) {
if ($mosConfig_mbf_content) {
$result2 = MambelFish::translate( $result2, 'menu', $mosConfig_lang);
}
switch ($result2->type) {
case 'separator';
//$result2->link = "seperator";
break;
case 'url':
if (eregi( "index.php\?", $result2->link )) {
if (!eregi( "Itemid=", $result2->link )) {
$result2->link .= "&Itemid=$result2->id";
}
}
break;
default:
$result2->link .= "&Itemid=$result2->id";
break;
}
//$result2->link = str_replace( '&', '&', $result2->link );
$swmenupro_array[] =array("TITLE" => $result2->name, "URL" => $result2->link , "ID" => $result2->id , "PARENT" => $result2->parent , "ORDER" => $result2->ordering, "IMAGE" => $result2->image, "IMAGEOVER" => $result2->image_over, "SHOWNAME" => $result2->show_name, "IMAGEALIGN" => $result2->image_align, "TARGETLEVEL" => $result2->target_level, "TARGET" => $result2->browserNav );
if ($hybrid){
parse_str($result2->link, $opt);
$opt['task'] = @$opt['task'] ? $opt['task']: 0;
$opt['id'] = @$opt['id'] ? $opt['id']: 0;
if ($opt['task']=="blogcategory" || $opt['task']=="category" ) {
//$sql = "SELECT #__content.* FROM #__content WHERE #__content.catid=".$opt['id'];
$sql = "SELECT #__content.* , #__swmenu_extended.*
FROM #__content LEFT JOIN #__swmenu_extended ON (#__content.id+10000) = #__swmenu_extended.menu_id
AND (#__swmenu_extended.moduleID = '".$id."' OR #__swmenu_extended.moduleID IS NULL)
INNER JOIN #__categories ON #__content.catid = #__categories.id
AND #__content.state = 1
AND #__content.catid=".$opt['id']."
AND #__content.access <= ".$my->gid."
AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
ORDER BY #__content.ordering
";
$database->setQuery( $sql );
$result3 = $database->loadObjectList();
foreach ($result3 as $result4) {
if ($mosConfig_mbf_content) {
$result4 = MambelFish::translate( $result4, 'content', $mosConfig_lang);
}
$url="index.php?option=com_content&task=view&id=" . $result4->id."&Itemid=".$result2->id ;
$swmenupro_array[] =array("TITLE" => $result4->title, "URL" => $url , "ID" => $result4->id+10000 , "PARENT" => $result2->id , "ORDER" => $result4->ordering, "IMAGE" => $result4->image, "IMAGEOVER" => $result4->image_over, "SHOWNAME" => $result4->show_name, "IMAGEALIGN" => $result4->image_align, "TARGETLEVEL" => $result4->target_level, "TARGET" => 0 );
}
}
if ($opt['task']=="blogsection" || $opt['task']=="section" ) {
//$sql = "SELECT #__categories.* FROM #__categories WHERE #__categories.section=".$opt['id']." AND #__categories.published = 1";
$sql = "SELECT #__categories.*, #__swmenu_extended.*
FROM #__categories LEFT JOIN #__swmenu_extended ON (#__categories.id+10000) = #__swmenu_extended.menu_id
AND (#__swmenu_extended.moduleID = '".$id."' OR #__swmenu_extended.moduleID IS NULL)
INNER JOIN #__content ON #__content.catid = #__categories.id
AND #__categories.section=".$opt['id']."
AND #__categories.access <= ".$my->gid."
AND #__categories.published = 1
AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
ORDER BY #__categories.ordering
";
$database->setQuery( $sql );
$result3 = $database->loadObjectList();
foreach ($result3 as $result4) {
if ($mosConfig_mbf_content) {
$result4 = MambelFish::translate( $result4, 'content', $mosConfig_lang);
}
$url="index.php?option=com_content&task=blogcategory&id=" . $result4->id."&Itemid=".$result2->id;
$swmenupro_array[] =array("TITLE" => $result4->title, "URL" => $url , "ID" => $result4->id+1000 , "PARENT" => $result2->id , "ORDER" => $result4->ordering, "IMAGE" => $result4->image, "IMAGEOVER" => $result4->image_over, "SHOWNAME" => $result4->show_name, "IMAGEALIGN" => $result4->image_align, "TARGETLEVEL" => $result4->target_level, "TARGET" => 0 );
//$sql = "SELECT #__content.* FROM #__content WHERE #__content.catid=".$result4->id." AND #__content.state = 1";
$sql = "SELECT #__content.*, #__swmenu_extended.*
FROM #__content LEFT JOIN #__swmenu_extended ON (#__content.id+100000) = #__swmenu_extended.menu_id
AND (#__swmenu_extended.moduleID = '".$id."' OR #__swmenu_extended.moduleID IS NULL)
INNER JOIN #__categories ON #__content.catid = #__categories.id
AND #__content.state = 1
AND #__content.catid=".$result4->id."
AND #__content.access <= ".$my->gid."
AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now' )
AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now' )
ORDER BY #__content.ordering
";
$database->setQuery( $sql );
$result5 = $database->loadObjectList();
foreach ($result5 as $result6) {
if ($mosConfig_mbf_content) {
$result6 = MambelFish::translate( $result6, 'content', $mosConfig_lang);
}
$url="index.php?option=com_content&task=view&id=" . $result6->id."&Itemid=".$result2->id;
$swmenupro_array[] =array("TITLE" => $result6->title, "URL" => $url , "ID" => $result6->id+10000 , "PARENT" => $result4->id+1000 , "ORDER" => $result6->ordering, "IMAGE" => $result6->image, "IMAGEOVER" => $result6->image_over, "SHOWNAME" => $result6->show_name, "IMAGEALIGN" => $result6->image_align, "TARGETLEVEL" => $result6->target_level, "TARGET" => 0 );
}
}
}
}
}
}
}
$i=0;
$menudisplay=0;
if (count($swmenupro_array)){
foreach ($swmenupro_array as $row){
if (strcasecmp(substr($swmenupro_array[$i]['URL'],0,4),"http")) {
$swmenupro_array[$i]['URL'] = sefRelToAbs($swmenupro_array[$i]['URL']);
}
$swmenupro_array[$i]['URL'] = str_replace( '&', '&', $swmenupro_array[$i]['URL'] );
$i++;
if (($row['PARENT']==$parent_id )){
$menudisplay=1;
}
}
if ($menudisplay==1){
$ordered = chain('ID', 'PARENT', 'ORDER', $swmenupro_array, $parent_id, $levels);
}
}else{
$ordered = array();
$menudisplay=0;
}
$option2 = trim( mosGetParam( $_REQUEST, 'option', 0 ) );
$id = trim( mosGetParam( $_REQUEST, 'id', 0 ) );
$Item_id = trim( mosGetParam( $_REQUEST, 'Itemid', 0 ) );
if ($parent_level){
$i=0;
$indent=0;
$menudisplay=0;
$reordered = array();
$parent=1;
if (($menu=="swcontentmenu") && ($option2=="com_content") && $id){
$parent_value=$id;
}elseif ($menu=="swcontentmenu" ){
$parent=0;
}else{
$parent_value=$Itemid;
$menudisplay=0;
$parent=1;
}
$id=0;
//echo "parent ".$parent_value;
while ($parent){
foreach ($ordered as $row){
if (($row['ID']==$parent_value || $row['ID']==$parent_value+1000 || $row['ID']==$parent_value+10000)){
$parent_value = $row['PARENT'];
$indent = $row['indent'];
$id=$row['ID'];
}
}
if ($indent == $parent_level){
$parent=0;
$id=$parent_value;
}elseif($indent == $parent_level-1){
$parent=0;
//$id=$parent_value;
}elseif($indent < $parent_level-1){
$parent=0;
if ($parent_level==2 ){
$id = $id;
}else{$id=0;}
}
$i++;
if ($i > $levels){$parent=0;}
}
foreach ($ordered as $row){
if (($row['PARENT']==$id)){
$menudisplay=1;
}
if (($row['PARENT']==$id-1000)){
$menudisplay=1;
}
}
if ($menudisplay ){
$ordered = chain('ID', 'PARENT', 'ORDER', $ordered, $id, $levels);
if ($menustyle == "clickmenu"){doClickMenu($ordered, $swmenupro);}
if ($menustyle == "treemenu"){doTreeMenu($ordered, $swmenupro);}
if ($menustyle == "popoutmenu"){doPopoutMenu($ordered, $swmenupro);}
if ($menustyle == "gosumenu" && !$editor_hack){doGosuMenu($ordered, $swmenupro, $active_menu, $sub_indicator, $onload_hack);}
if ($menustyle == "tabmenu"){doTabMenu($ordered, $swmenupro, $parent_id);}
if ($menustyle == "flatmenu"){doFlatMenu($ordered, $swmenupro);}
}
}elseif($menudisplay){
if ($menustyle == "clickmenu"){doClickMenu($ordered, $swmenupro);}
if ($menustyle == "treemenu"){doTreeMenu($ordered, $swmenupro);}
if ($menustyle == "popoutmenu"){doPopoutMenu($ordered, $swmenupro);}
if ($menustyle == "gosumenu" && !$editor_hack){doGosuMenu($ordered, $swmenupro, $active_menu, $sub_indicator, $onload_hack);}
if ($menustyle == "tabmenu"){doTabMenu($ordered, $swmenupro, $parent_id);}
if ($menustyle == "flatmenu"){doFlatMenu($ordered, $swmenupro);}
}
}
?>
|
|
|