Download & Extend

Is the Domain Source: Domain Source ID filter broken?

Project:Domain Access
Version:7.x-3.x-dev
Component:- Domain Source
Category:support request
Priority:normal
Assigned:Unassigned
Status:closed (works as designed)

Issue Summary

I'm pretty surprised i couln't find issues about this, so i guess there might be something specific in my installation.
When i try to add this filter to a view it warns me about a broken handler and i cannot set the filter, conseguently.
I'm using 7.x-3.3 now but i noticed it already in 7.x-3.1 release.
The only thing i might notice here is that i imported my domains with features, could it be the reason for that?
Thanks,
Da.

Comments

#1

Version:7.x-3.3» 7.x-3.x-dev
Category:bug report» support request
Status:active» postponed (maintainer needs more info)

Please provide more details, including, if possible, an export of the View in question. An export of the Feature would be good as well.

When reporting bugs like this one, you need to provide steps to replicate, using an ordered list.

Since the title is a question, marking as support. And PLEASE put details in the ticket, not the title.

#2

Ok, you're right.
This issue is about the domain source id views filter provided by domain source.
It is not working for me in a simple view where i would set the active domain as the filter option.
Views says the filter has a broken/missing handler

This the exported view

$view = new view;
$view->name = 'venue_domain';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Venue_domain';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Venue_domain';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['query_comment'] = FALSE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Ripristina';
$handler->display->display_options['pager']['type'] = 'some';
$handler->display->display_options['pager']['options']['items_per_page'] = '5';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'fields';
/* Campo: Contenuto: Titolo */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['title']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = 0;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = 0;
$handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['title']['alter']['trim'] = 0;
$handler->display->display_options['fields']['title']['alter']['html'] = 0;
$handler->display->display_options['fields']['title']['hide_empty'] = 0;
$handler->display->display_options['fields']['title']['empty_zero'] = 0;
$handler->display->display_options['fields']['title']['link_to_node'] = 1;
/* Sort criterion: Contenuto: Post date */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/* Filter criterion: Contenuto: Pubblicato */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 0;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Contenuto: Tipo */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'venue' => 'venue',
);
/* Filter criterion: Broken/missing handler */
$handler->display->display_options['filters']['domain_id']['id'] = 'domain_id';
$handler->display->display_options['filters']['domain_id']['table'] = 'domain_source';
$handler->display->display_options['filters']['domain_id']['field'] = 'domain_id';

/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block');

/* Display: Pagina */
$handler = $view->new_display('page', 'Pagina', 'page_1');
$translatables['venue_domain'] = array(
  t('Master'),
  t('Venue_domain'),
  t('more'),
  t('Apply'),
  t('Ripristina'),
  t('Sort by'),
  t('Asc'),
  t('Desc'),
  t('Block'),
);

The feature, instead.

<?php
/**
* @file
* domains.domains.inc
*/

/**
* Implements hook_domain_default_domains().
*/
function domains_domain_default_domains() {
$domains = array();
  $domains['afge_institutfrancais_n3'] = array(
  'subdomain' => 'afge.institutfrancais.n3',
  'sitename' => 'afge',
  'scheme' => 'http',
  'valid' => '1',
  'weight' => '3',
  'is_default' => '0',
  'machine_name' => 'afge_institutfrancais_n3',
);
  $domains['bologna_institutfrancais_n3'] = array(
  'subdomain' => 'bologna.institutfrancais.n3',
  'sitename' => 'institutfrancais di bologna',
  'scheme' => 'http',
  'valid' => '1',
  'weight' => '2',
  'is_default' => '0',
  'machine_name' => 'bologna_institutfrancais_n3',
);
  $domains['firenze_institutfrancais_n3'] = array(
  'subdomain' => 'firenze.institutfrancais.n3',
  'sitename' => 'institut francais di Firenze',
  'scheme' => 'http',
  'valid' => '1',
  'weight' => '0',
  'is_default' => '0',
  'machine_name' => 'firenze_institutfrancais_n3',
);
  $domains['institutfrancais_n3'] = array(
  'subdomain' => 'institutfrancais.n3',
  'sitename' => 'institutfrancais.n3',
  'scheme' => 'http',
  'valid' => '1',
  'weight' => '-1',
  'is_default' => '1',
  'machine_name' => 'institutfrancais_n3',
);
  $domains['milano_institutfrancais_n3'] = array(
  'subdomain' => 'milano.institutfrancais.n3',
  'sitename' => 'institutfrancais di milano',
  'scheme' => 'http',
  'valid' => '1',
  'weight' => '0',
  'is_default' => '0',
  'machine_name' => 'milano_institutfrancais_n3',
);
  $domains['napoli_institutfrancais_n3'] = array(
  'subdomain' => 'napoli.institutfrancais.n3',
  'sitename' => 'institutfrancais di napoli',
  'scheme' => 'http',
  'valid' => '1',
  'weight' => '1',
  'is_default' => '0',
  'machine_name' => 'napoli_institutfrancais_n3',
);
  $domains['palermo_institutfrancais_n3'] = array(
  'subdomain' => 'palermo.institutfrancais.n3',
  'sitename' => 'institutfrancais di palermo',
  'scheme' => 'http',
  'valid' => '1',
  'weight' => '0',
  'is_default' => '0',
  'machine_name' => 'palermo_institutfrancais_n3',
);

return $domains;
}

/**
* Implements hook_domain_alias_default_aliases().
*/
function domains_domain_alias_default_aliases() {
$domain_aliases = array();
  $domain_aliases['afge_institutfrancais_n3'] = array();
  $domain_aliases['bologna_institutfrancais_n3'] = array();
  $domain_aliases['firenze_institutfrancais_n3'] = array(
  'institutfrancais-florence.n3' => array(
    'pattern' => 'institutfrancais-florence.n3',
    'redirect' => '1',
    'machine_name' => 'firenze_institutfrancais_n3',
  ),
  'institutfrancais-firenze.n3' => array(
    'pattern' => 'institutfrancais-firenze.n3',
    'redirect' => '0',
    'machine_name' => 'firenze_institutfrancais_n3',
  ),
  'firenze.institutfrancais.local' => array(
    'pattern' => 'firenze.institutfrancais.local',
    'redirect' => '0',
    'machine_name' => 'firenze_institutfrancais_n3',
  ),
  'firenze.francia.local' => array(
    'pattern' => 'firenze.francia.local',
    'redirect' => '0',
    'machine_name' => 'firenze_institutfrancais_n3',
  ),
);
  $domain_aliases['institutfrancais_n3'] = array(
  'institutfrancais.local' => array(
    'pattern' => 'institutfrancais.local',
    'redirect' => '0',
    'machine_name' => 'institutfrancais_n3',
  ),
  'francia.local' => array(
    'pattern' => 'francia.local',
    'redirect' => '0',
    'machine_name' => 'institutfrancais_n3',
  ),
);
  $domain_aliases['milano_institutfrancais_n3'] = array(
  'institutfrancais-milan.n3' => array(
    'pattern' => 'institutfrancais-milan.n3',
    'redirect' => '0',
    'machine_name' => 'milano_institutfrancais_n3',
  ),
  'institutfrancais-milano.n3' => array(
    'pattern' => 'institutfrancais-milano.n3',
    'redirect' => '1',
    'machine_name' => 'milano_institutfrancais_n3',
  ),
  'milano.institutfrancais.local' => array(
    'pattern' => 'milano.institutfrancais.local',
    'redirect' => '0',
    'machine_name' => 'milano_institutfrancais_n3',
  ),
  'milano.francia.local' => array(
    'pattern' => 'milano.francia.local',
    'redirect' => '0',
    'machine_name' => 'milano_institutfrancais_n3',
  ),
);
  $domain_aliases['napoli_institutfrancais_n3'] = array(
  'institutfrancais-napoli.n3' => array(
    'pattern' => 'institutfrancais-napoli.n3',
    'redirect' => '1',
    'machine_name' => 'napoli_institutfrancais_n3',
  ),
  'institutfrancais-naples.n3' => array(
    'pattern' => 'institutfrancais-naples.n3',
    'redirect' => '1',
    'machine_name' => 'napoli_institutfrancais_n3',
  ),
  'napoli.francia.local' => array(
    'pattern' => 'napoli.francia.local',
    'redirect' => '0',
    'machine_name' => 'napoli_institutfrancais_n3',
  ),
  'napoli.institufrancais.local' => array(
    'pattern' => 'napoli.institufrancais.local',
    'redirect' => '0',
    'machine_name' => 'napoli_institutfrancais_n3',
  ),
);
  $domain_aliases['palermo_institutfrancais_n3'] = array(
  'institutfrancais-palerme.n3' => array(
    'pattern' => 'institutfrancais-palerme.n3',
    'redirect' => '1',
    'machine_name' => 'palermo_institutfrancais_n3',
  ),
  'institutfrancais-palermo.n3' => array(
    'pattern' => 'institutfrancais-palermo.n3',
    'redirect' => '0',
    'machine_name' => 'palermo_institutfrancais_n3',
  ),
  'palermo.institutfrancais.local' => array(
    'pattern' => 'palermo.institutfrancais.local',
    'redirect' => '0',
    'machine_name' => 'palermo_institutfrancais_n3',
  ),
  'palermo.francia.local' => array(
    'pattern' => 'palermo.francia.local',
    'redirect' => '0',
    'machine_name' => 'palermo_institutfrancais_n3',
  ),
);

return $domain_aliases;
}

/**
* Implements hook_domain_conf_default_variables().
*/
function domains_domain_conf_default_variables() {
$domain_variables = array();
  $domain_variables['afge_institutfrancais_n3'] = array();
  $domain_variables['bologna_institutfrancais_n3'] = array();
  $domain_variables['firenze_institutfrancais_n3'] = array();
  $domain_variables['institutfrancais_n3'] = array();
  $domain_variables['milano_institutfrancais_n3'] = array();
  $domain_variables['napoli_institutfrancais_n3'] = array();
  $domain_variables['palermo_institutfrancais_n3'] = array();

return $domain_variables;
}

/**
* Implements hook_domain_theme_default_themes().
*/
function domains_domain_theme_default_themes() {
$domain_themes = array();
  $domain_themes['afge_institutfrancais_n3'] = array();
  $domain_themes['bologna_institutfrancais_n3'] = array();
  $domain_themes['firenze_institutfrancais_n3'] = array(
  '' => array(
    'theme' => '',
    'settings' => NULL,
    'status' => '0',
    'filepath' => NULL,
  ),
);
  $domain_themes['institutfrancais_n3'] = array();
  $domain_themes['milano_institutfrancais_n3'] = array(
  '' => array(
    'theme' => '',
    'settings' => NULL,
    'status' => '0',
    'filepath' => NULL,
  ),
);
  $domain_themes['napoli_institutfrancais_n3'] = array(
  '' => array(
    'theme' => '',
    'settings' => NULL,
    'status' => '0',
    'filepath' => NULL,
  ),
);
  $domain_themes['palermo_institutfrancais_n3'] = array(
  '' => array(
    'theme' => '',
    'settings' => NULL,
    'status' => '0',
    'filepath' => NULL,
  ),
);

return $domain_themes;
}

Thanks,
Da.

#3

Status:postponed (maintainer needs more info)» active

Thanks!

#4

The Feature should not have any effect here. It looks more like a case of a missing Views file.

Is Domain Source module enabled?

Here's what I get in my test view:

/* Filter criterion: Domain Source: Domain Source ID */
$handler->display->display_options['filters']['domain_id']['id'] = 'domain_id';
$handler->display->display_options['filters']['domain_id']['table'] = 'domain_source';
$handler->display->display_options['filters']['domain_id']['field'] = 'domain_id';
$handler->display->display_options['filters']['domain_id']['value'] = array(
  '***CURRENT_DOMAIN***' => '***CURRENT_DOMAIN***',
);

#5

Sure it is...
I've also tried to disable it and then re-enable, but it didn't change anything...
I've updated the module too, nothing changed. Anyway, i agree that the feature should not affect this.
Don't know exactly what to do, now...
Thanks,
Da.

#6

Try clearing the Views cache.

#7

That didn't help...i've also tried on the remote environment and the same problem occurred...
I should make a test on a fresh installation, just to make sure it is something specifically related to the one i'm working on..
I need that filter to work, so..i've got to find out what the problem is..
Thanks,
Da.

#8

I have exactly the same problem. All domain modules are enabled.

#9

Still having this problem, almost blocking...
I'll try to do some test to see where the problem originates...
@agentrickard : Any tips about where to look...?
Thanks,
Da.

#10

Well, broken/missing handler means that the class isn't loaded. So the first check is to ensure that the file domain_views/includes/domain_views_handler_field_domain_id.inc is being included properly by Views.

#11

Sorry, but are you sure you've included this file in the current D7 release...?
Because i'm missing the entire folder domain_views...i've also tried to download the module again, just in case i was experiencing some update, upgrade issues with my git environment but that folder simply doesn't exist.
I could only find a domain_source.views.inc inside the domain_source folder, indeed.
Thanks,
Da.

#12

Domain Views is now a separate module.

http://drupal.org/project/domain_views

That would explain the issues.

#13

Ok, it was really trivial...you've simply excluded domain_views from the "domain_access" suite...
So, simply downloading and enabling that module fixed everything.
I'm pretty surprised, i must say. I don't know why you chose to do this way but the README file wasn't updated about that big change, it still reports domain_views as part of the domain_access suite.
There's something more, anyway...You build the "filter" in the domain_source module but the handler is in a different module, that way that filter is unusable until you download and enable domain_views too.

I'm happy we have found out the reason of this broken handler but i'm also a little bit confused thinking how this could have happened...
Thank you, anyway, i'm using domain_access since a long time and it is really precious, this was the first time i was using it on D7 and i had some problems but with your help i always succeeded.
Da.

#14

Category:support request» bug report

The reason was to allow for faster development of Views functionality, because that module was changing rapidly.

The README is deprecated. You should be using the online documentation, and updating it if it is lacking.

References:

* https://drupal.org/project/domain -- THE CHANGE IS NOTED ON THE PROJECT PAGE.
* https://drupal.org/node/1120384
* https://drupal.org/node/1096964

Bugfix TODO: Wrap domain_source_views_data() in a module_exists() check.

#15

Category:bug report» support request
Status:active» closed (works as designed)

Nothing todo here, there is already this code in place:

<?php
/**
* Implements hook_views_api().
*/
function domain_source_views_api() {
  if (
module_exists('domain_views')) {
    return array(
'api' => 2.0);
  }
}
?>
nobody click here