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": "";
}
}
?>