1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114:
<?php
class SearchCategoryChildrensOptions
{
private $authorizations_bits = array();
private $check_all_bits = false;
private $excluded_categories_ids = array();
private $excluded_categories_recursive = true;
private $enable_recursive_exploration = true;
private $allow_only_member_level_authorizations = false;
public function add_authorizations_bits($authorizations_bits)
{
$this->authorizations_bits[] = $authorizations_bits;
}
public function get_authorizations_bits()
{
return $this->authorizations_bits;
}
public function check_authorizations(Category $category)
{
$nbr_bits = count($this->authorizations_bits);
if ($nbr_bits == 0)
{
return true;
}
else
{
$authorized_bits = array();
foreach ($this->authorizations_bits as $bit)
{
if (($this->allow_only_member_level_authorizations && Authorizations::check_auth(RANK_TYPE, User::MEMBER_LEVEL, $category->get_authorizations(), $bit)) || $category->check_auth($bit))
$authorized_bits[] = $bit;
}
$nbr_authorized_bits = count($authorized_bits);
if ($this->check_all_bits)
{
return $nbr_authorized_bits == $nbr_bits;
}
else
{
return $nbr_authorized_bits >= 1;
}
}
}
public function set_check_all_bits($check_all_bits)
{
$this->check_all_bits = $check_all_bits;
}
public function get_check_all_bits()
{
return $this->check_all_bits;
}
public function add_category_in_excluded_categories($id)
{
$this->excluded_categories_ids[] = $id;
}
public function category_is_excluded(Category $category)
{
return in_array($category->get_id(), $this->excluded_categories_ids);
}
public function get_excluded_categories()
{
return $this->excluded_categories_ids;
}
public function set_excluded_categories_recursive($excluded_categories_recursive)
{
$this->excluded_categories_recursive = $excluded_categories_recursive;
}
public function is_excluded_categories_recursive()
{
return $this->excluded_categories_recursive;
}
public function set_enable_recursive_exploration($enable_recursive_exploration)
{
$this->enable_recursive_exploration = $enable_recursive_exploration;
}
public function is_enabled_recursive_exploration()
{
return $this->enable_recursive_exploration;
}
public function set_allow_only_member_level_authorizations($allow_only_member_level_authorizations)
{
$this->allow_only_member_level_authorizations = $allow_only_member_level_authorizations;
}
}
?>