|
From: Jon O. <jon...@us...> - 2005-08-20 18:19:31
|
Update of /cvsroot/mxbb/core/modules/mx_navmenu In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21797/modules/mx_navmenu Added Files: mx_menu_nav.php Log Message: Major commit Adding new adminCP, blockCP and many new oo components Finally finalizing latest months hard work :-) --- NEW FILE: mx_menu_nav.php --- <?php /** ------------------------------------------------------------------------ * subject : mx-portal, CMS & portal * begin : june, 2002 * copyright : (C) 2002-2005 MX-System * email : jon...@ho... * project site : www.mx-system.com * * description : * ------------------------------------------------------------------------- * * $Id: mx_menu_nav.php,v 1.1 2005/08/20 18:19:12 jonohlsson Exp $ */ /** * 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 * (at your option) any later version. */ // // Read block settings // $block_config = read_block_config($block_id); $title = $block_config[$block_id]['block_title']; $b_description = $block_config[$block_id]['block_desc']; // // Setup config parameters // $config_name = array('menu_display_mode', 'menu_page_sync'); for( $i = 0; $i < count($config_name); $i++ ) { $config_value = $block_config[$block_id][$config_name[$i]]['parameter_value']; $mx_menu_config[$config_name[$i]] = $config_value; } // // Define some parameters // $menu_display_mode = $mx_menu_config['menu_display_mode']; $menu_page_sync = ( $mx_menu_config['menu_page_sync'] != 'No' ); // // Get the current MX page. // $page_id = $mx_request_vars->request('page', MX_TYPE_INT, 1); switch( $menu_display_mode ) { case 'Vertical': $template->set_filenames(array('body' => 'mx_menu_nav.tpl')); break; case 'Horizontal': $template->set_filenames(array('body' => 'mx_menu_nav_horizontal.tpl')); break; default: $template->set_filenames(array('body' => 'mx_menu_nav.tpl')); break; } $sql = "SELECT * FROM " . MENU_CAT_TABLE . " cat, " . MENU_NAV_TABLE . " nav WHERE cat.block_id = '" . $block_id . "' AND cat.cat_id = nav.cat_id ORDER BY cat.cat_order, nav.menu_order"; if ( !($result = $db->sql_query($sql)) ) { mx_message_die(GENERAL_ERROR, 'Could not obtain menu navigation configuration', '', __LINE__, __FILE__, $sql); } $mx_nav_data = $db->sql_fetchrowset($result); $num_of_menus = count($mx_nav_data); $cat_id = 0; $num_of_cats = 0; for( $menu_count = 0; $menu_count < $num_of_menus; $menu_count++ ) { $menu_id = $mx_nav_data[$menu_count]['menu_id']; // // Find if user is allowed for view // $is_auth_ary = menu_auth(AUTH_VIEW, $menu_id, $userdata, $mx_nav_data[$menu_count], $mx_nav_data[$menu_count]['auth_view_group']); if ( !$is_auth_ary['auth_view'] ) { continue; } // New category ?? if ( $cat_id != $mx_nav_data[$menu_count]['cat_id'] ) { $num_of_cats++; $cat_title = $mx_nav_data[$menu_count]['cat_title']; $cat_id = $mx_nav_data[$menu_count]['cat_id']; $cat = ( !empty($lang[$cat_title]) ? $lang[$cat_title] : $cat_title ); $bbcode_uid = $mx_nav_data[$menu_count]['bbcode_uid']; $cat = mx_decode($cat, $bbcode_uid); $cat_desc = ''; $cat_icon = '<img border="0" src="' . PORTAL_URL . TEMPLATE_ROOT_PATH . 'images/minus.gif" /> '; $cat_desc = $mx_nav_data[$menu_count]['cat_desc']; $cat_desc = mx_decode($cat_desc, $bbcode_uid); $cat_desc = ( $cat_desc != '' ? $cat_desc . '<hr />' : '' ); $cat_icon = '<img align="absmiddle" border="0" src="' . PORTAL_URL . TEMPLATE_ROOT_PATH . 'images/plus.gif" /> '; $cat_nav_icon_url = PORTAL_URL . TEMPLATE_ROOT_PATH . 'images/'; $cat_target = ( $mx_nav_data[$menu_count]['cat_target'] == 0 ) ? '' : '_blank'; $cat_url_tmp = append_sid(PORTAL_URL . 'index.php?page=' . $mx_nav_data[$menu_count]['cat_url']); $catt = ( $mx_nav_data[$menu_count]['cat_url'] != 0 ) ? '<a class="genmed" href="' . $cat_url_tmp . '" target="' . $cat_target . '" /><span class="genmed">' . $cat . '</span></a>' : $cat; $template->assign_block_vars('catrow', array( 'CAT_ID' => intval($cat_id), 'BLOCK_ID' => intval($block_id), 'CATEGORY' => $catt, 'U_URL' => append_sid(PORTAL_URL . 'index.' . $phpEx . '?block_id=' . $block_id), 'U_CAT_ICON' => $cat_icon, 'U_CAT_NAV' => $cat_nav_icon_url, 'DESCRIPTION' => $cat_desc )); // Generate the fold/unfold categories switches if ( !empty($HTTP_COOKIE_VARS['phpbbCategory_' . $block_id . $cat_id]) ) { $cat_on = $HTTP_COOKIE_VARS['phpbbCategory_' . $block_id . $cat_id]; } else { $cat_on = ( $mx_nav_data[$menu_count]['cat_show'] == 1 ); } $template->assign_block_vars('catrow.switch_cat_' . ( $cat_on ? 'on' : 'off' ), array()); } $row_color = ( !( $row_count % 2 ) ) ? $theme['td_color1'] : $theme['td_color2']; $row_class = ( !( $row_count % 2 ) ) ? $theme['td_class1'] : $theme['td_class2']; $action = $mx_nav_data[$menu_count]['menu_name']; $action = ( !empty($lang[$action]) ? $lang[$action] : $action ); $desc = $mx_nav_data[$menu_count]['menu_desc']; $desc = ( !empty($lang[$desc]) ? $lang[$desc] : $desc ); $bbcode_uid = $mx_nav_data[$menu_count]['bbcode_uid']; $action = mx_decode($action, $bbcode_uid); if ( $menu_page_sync ) { $style = ( $mx_nav_data[$menu_count]['block_id'] == $HTTP_GET_VARS['dynamic_block'] ) ? 'cattitle' : ( ( $mx_nav_data[$menu_count]['block_id'] == 0 && $mx_nav_data[$menu_count]['page_id'] == $page_id ) ? 'cattitle' : 'genmed' ); } else { $style = 'genmed'; } $icon_tmp = ( file_exists($mx_root_path . TEMPLATE_ROOT_PATH . 'images/menu_icons/' . $mx_nav_data[$menu_count]['menu_icon']) ? $mx_nav_data[$menu_count]['menu_icon'] : 'update.gif' ); $icon_url_hot = str_replace('.gif', '_hot.gif', 'menu_icons/' . $icon_tmp); if ( file_exists($mx_root_path . TEMPLATE_ROOT_PATH . 'images/' . $icon_url_hot) ) { $icon_url = ( $style == 'cattitle' ) ? $icon_url_hot : 'menu_icons/' . $icon_tmp; } else { $icon_url = 'menu_icons/' . $icon_tmp; } $menu_icon = ( !empty($mx_nav_data[$menu_count]['menu_icon']) && $mx_nav_data[$menu_count]['menu_icon'] != 'none' ) ? '<img border="0" align="absmiddle" src="' . PORTAL_URL . TEMPLATE_ROOT_PATH . 'images/' . $icon_url . '" alt="' . $desc . '" /> ' : ''; if ( $mx_nav_data[$menu_count]['page_id'] != 0 && $mx_nav_data[$menu_count]['block_id'] == 0 && $mx_nav_data[$menu_count]['link_target'] != 2 ) { $menu_link = append_sid(PORTAL_URL . 'index.php?page=' . $mx_nav_data[$menu_count]['page_id']); } else if ( $mx_nav_data[$menu_count]['page_id'] != 0 && $mx_nav_data[$menu_count]['link_target'] == 2 ) { $menu_link = append_sid(PORTAL_URL . 'index.php?page=' . $mx_nav_data[$menu_count]['page_id'] . '&' . $mx_nav_data[$menu_count]['menu_links']); } else if ( $mx_nav_data[$menu_count]['link_target'] == 2 ) { $menu_link = append_sid(PORTAL_URL . 'index.php?page=' . $page_id . '&' . $mx_nav_data[$menu_count]['menu_links']); } else if ( $mx_nav_data[$menu_count]['menu_links'] != '' ) { $menu_link = ( substr_count($mx_nav_data[$menu_count]['menu_links'], 'http://') == 0 ? PORTAL_URL . $mx_nav_data[$menu_count]['menu_links'] : $mx_nav_data[$menu_count]['menu_links'] ); } else if ( $mx_nav_data[$menu_count]['page_id'] == 0 && $mx_nav_data[$menu_count]['block_id'] != 0 ) { $menu_link = append_sid(PORTAL_URL . 'index.php?page=' . $page_id . '&dynamic_block=' . $mx_nav_data[$menu_count]['block_id']); } else if ( $mx_nav_data[$menu_count]['page_id'] != 0 && $mx_nav_data[$menu_count]['block_id'] != 0 ) { $menu_link = append_sid(PORTAL_URL . 'index.php?page=' . $mx_nav_data[$menu_count]['page_id'] . '&dynamic_block=' . $mx_nav_data[$menu_count]['block_id']); } else { $sql = "SELECT module_path, function_file FROM " . FUNCTION_TABLE . " fnc, " . MODULE_TABLE . " mdl WHERE fnc.function_id = " . $mx_nav_data[$menu_count]['function_id'] . " AND fnc.module_id = mdl.module_id"; if ( !($result = $db->sql_query($sql)) ) { mx_message_die(GENERAL_ERROR, "Could not query modules information", '', __LINE__, __FILE__, $sql); } $row = $db->sql_fetchrow($result); $menu_link = append_sid(PORTAL_URL . $row['module_path'] . $row['function_file']); } $link_target = ( $mx_nav_data[$menu_count]['link_target'] == 0 || $mx_nav_data[$menu_count]['link_target'] == 2 ) ? '' : '_blank'; $template->assign_block_vars('catrow.modulerow', array( 'ROW_COLOR' => '#' . $row_color, 'ROW_CLASS' => $row_class, 'MENU_NAME' => $action, 'MENU_STYLE' => $style, 'MENU_DESC' => $desc, 'U_MENU_MODULE' => $menu_link, 'U_LINK_TARGET' => $link_target, 'U_MENU_ICON' => $menu_icon )); } $cat_width = $num_of_cats > 0 ? ceil(100 / $num_of_cats) . '%' : '100%'; $template->assign_vars(array( 'BLOCK_SIZE' => ( !empty($block_size) ? $block_size : '100%' ), 'L_TITLE' => $title, 'L_DESC' => $b_description, 'S_ACTION' => $edit_url, 'EDIT_IMG' => $edit_img, 'NUM_OF_CATS' => $num_of_cats, 'NUM_OF_CATS_EDIT' => $num_of_cats - 1, 'CAT_WIDTH' => $cat_width, 'S_HIDDEN_FORM_FIELDS' => $s_hidden_fields )); $template->pparse('body'); ?> |