class content_menu_domain_filter in Content Menu 8
Same name and namespace in other branches
- 7 filters/content_menu_domain_filter.php \content_menu_domain_filter
Hierarchy
- class \content_menu_domain_filter implements content_menu_filter
Expanded class hierarchy of content_menu_domain_filter
File
- filters/
content_menu_domain_filter.php, line 12
View source
class content_menu_domain_filter implements content_menu_filter {
private $active;
private $domain;
function __construct() {
$this->domain = $this
->_content_menu_domainacccess();
$this->active = $this->domain ? TRUE : FALSE;
}
public function addFilterWidget(&$form, &$form_state, $form_id) {
// add a selection filter based only if multilang{
if ($this->active) {
foreach ($this
->_content_menu_domain_list() as $did => $dom) {
$options[$did] = $dom['sitename'];
}
$form['domainselect'] = array(
'#type' => 'select',
'#title' => t('Filter menu by domain'),
'#options' => $options,
'#default_value' => $this->domain['domain_id'],
'#ajax' => array(
'callback' => '_content_menu_filter_elements_by_domain',
),
);
$form['#content_menu_filter_widget'][] = 'domainselect';
}
}
public function hideElement($el) {
if ($this->active) {
//hide on different lang
if (isset($el['#item']['options']['domain_menu_access'])) {
//unset if explicit hidden
if (isset($el['#item']['options']['domain_menu_access']['hide']) && in_array('d' . $this->domain['domain_id'], $el['#item']['options']['domain_menu_access']['hide'])) {
return TRUE;
}
//if shown empty && not in shown => unset too
if (!empty($el['#item']['options']['domain_menu_access']['show']) && !in_array('d' . $this->domain['domain_id'], $el['#item']['options']['domain_menu_access']['show'])) {
return TRUE;
}
}
}
return FALSE;
}
private function _content_menu_domainacccess() {
if (module_exists('domain')) {
$domains = $this
->_content_menu_domain_list();
if (isset($_SESSION['content_menu_domain_filter'])) {
return $domains[$_SESSION['content_menu_domain_filter']];
}
if (count($domains) > 1) {
return domain_default(FALSE, FALSE);
}
}
return FALSE;
}
private function _content_menu_domain_list() {
$cache =& drupal_static(__FUNCTION__, array());
if (empty($cache['domains'])) {
$domains = array();
$query = db_select('domain', 'd')
->fields('d', array(
'domain_id',
'sitename',
'subdomain',
'scheme',
'valid',
'weight',
'is_default',
))
->orderBy('weight');
// Get the domains.
$result = $query
->execute();
while ($domain = $result
->fetchAssoc()) {
$domains[$domain['domain_id']] = domain_api($domain);
}
$cache['domains'] = $domains;
return $domains;
}
return $cache['domains'];
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
content_menu_domain_filter:: |
private | property | ||
content_menu_domain_filter:: |
private | property | ||
content_menu_domain_filter:: |
public | function |
@abstract Overrides content_menu_filter:: |
|
content_menu_domain_filter:: |
public | function |
@abstract Overrides content_menu_filter:: |
|
content_menu_domain_filter:: |
private | function | ||
content_menu_domain_filter:: |
private | function | ||
content_menu_domain_filter:: |
function |