HEX
Server: Apache
System: Linux v38079.2is.nl 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: democfellows (10015)
PHP: 8.1.34
Disabled: opcache_get_status
Upload Files
File: /var/www/vhosts/creativefellows.nl/dhwd.creativefellows.nl/src/NavigationController.php
<?php
	
	/**
	* Description
	*/
	class NavigationController extends BaseController
	{
		private $language_base;
		
	    public function __construct($database,$language_base,array $data)
		{
			$this->db = $database;
			
			 foreach($data as $el => $val)
			{
				$this->$el = $val;
			}
			$this->language_base = $language_base;
			
	    }
		
		public function getName()
		{
			return $this->naam;
		}
		
		public function getUrl()
		{
			$link = strtolower($this->getLinkBase() . $this->vl( $this->getName() ));
			return $link;
		}
		
		public function getLinkBase()
		{	
			return $this->language_base;
		}
		
		public function showInFooter()
		{
			return $this->sitelinks == 1 ? true : false;
		}
		
		public function getNavigationElements($positie_id,$sectie=null,$category_name=null)
		{
			
			if($category_name != null)
			{

				//get category ID
				$cat_info 	= $this->db->run("SELECT * FROM `categories` WHERE `naam` LIKE '".preg_replace("/( |-)/","%",$this->db->esc($category_name))."' AND `active` = '1' OR `url` LIKE '%". preg_replace("/( |-)/","%",$this->db->esc($category_name)) ."%' AND `active` = '1'",false);	

				$cats 		= $this->db->run("SELECT * FROM `categories`, `entry_categories`,`entry_posities` WHERE `entry_categories`.`category_id` = `categories`.`category_id` AND `entry_categories`.`unique_id` = `entry_posities`.`unique_id` AND `categories`.`category_id` = ".$cat_info["category_id"]." AND `categories`.`active`='1' AND `zichtbaar` = '1' AND `entry_posities`.`positie_id` = '$positie_id' ORDER BY position ASC");
				
				return $cats;
				
			}
			
			elseif($sectie != null)
			{

				// new array
				$data 	= array();
				
				// secion data		
				$sectie_info 	= $this->db->run("SELECT * FROM `secties` WHERE `naam` LIKE '". preg_replace("/( |-)/","%",$this->db->esc($sectie))."%'",false);
 				
				// categories
				$data[] 		= $this->db->run("SELECT * FROM `categories` WHERE `sectie_id` = '". $sectie_info["sectie_id"] ."' AND `active`='1' AND `zichtbaar` = '1' ORDER BY position ASC");
				
				// entries
				$data[] 		= $this->db->run("SELECT * FROM `unique_ids`,`entry_posities` WHERE `unique_ids`.`unique_id` = `entry_posities`.`unique_id` AND `unique_ids`.`sectie_id` = '". $sectie_info["sectie_id"] ."' AND `entry_posities`.`positie_id` = '$positie_id' AND `unique_ids`.`status` = 2 ORDER BY `unique_ids`.`position` ASC");

				return $data;
				
			}	
			else
			{
		

				$entries = $this->db->run("SELECT * FROM `unique_ids`,`entry_posities` WHERE `unique_ids`.`unique_id` = `entry_posities`.`unique_id` AND `entry_posities`.`positie_id` = '$positie_id' AND `unique_ids`.`status` = '2' ORDER BY `unique_ids`.`position` ASC");				
				return $entries;

				
			}
				
		}
		
		public function getNavigationOnPosition($positie_id,$sectie=null,$category_name=null,$menu_class="menu vertical")
		{
			
			$subs = $this->getNavigationElements($positie_id,$sectie,$category_name);
			
			
			$dropdown_item_count 	= 0;
			$dropdown_items 		= "";

			if(count($subs[0]) > 0 || count($subs[1]) > 0)
			{

				$dropdown_items .= '<ul class="'. $menu_class .'">';
				for ($i = 0; $i < count($subs); ++$i) {
										
					foreach($subs[$i] as $s)
					{
						
						// Link is category
						if(isset($s["category_id"]))
						{
							$link_to_item 	= $this->vl($sectie) ."/". $this->vl($s["naam"]);
							$link_label		= $s["naam"];												
						}

						// Link is entry
						else
						{	
							
							$cassette 		= new CassetteController(null,$this->db);
							$data 			= $cassette->getEntries(null,null,$s["unique_id"]);
							
							$fn				= $data[0]->first_field;
							$link_to_item 	= $data[0]->entry_link;
							$link_label		= $data[0]->$fn;

						}

						$dropdown_items .= '<li>';
						$dropdown_items .= '<a href="'. $this->getLinkBase() . $link_to_item .'">'. $link_label .'</a>';
						$dropdown_items .= '</li>';

						$dropdown_item_count++;
					}

				}	
				$dropdown_items .= '</ul>';

			}
		
			return $dropdown_items;
			
		}
		
		public function navIsActive($current_section)
		{
			return $this->vl($current_section) == $this->vl($this->naam) ? "current": "";
		}
		
	}
	
?>