domain_entity_source.module in Domain Access Entity 7
File
domain_entity_source/domain_entity_source.module
View source
<?php
function domain_entity_source_field_widget_form_alter(&$element, $form_state, $context) {
if ($context['field']['type'] == 'domain_entity' && !empty($element['domain_id'])) {
$items = isset($context['items']) ? $context['items'] : array();
$default_value = 0;
if (isset($items[0]) && !empty($items[0]) && isset($items[0]['domain_id'])) {
foreach ($items as $delta => $item) {
if (isset($item['domain_source']) && $item['domain_source']) {
$default_value = $item['domain_id'];
}
}
}
$options = $element['domain_id']['#options'];
foreach ($element['domain_id'] as $key => $option) {
if (strpos($key, '#') === 0) {
continue;
}
if ($key != 0 && !empty($option['#disabled'])) {
unset($options[$key]);
}
}
$element['domain_source'] = array(
'#title' => t('Domain source'),
'#description' => t('Select the canonical domain'),
'#type' => 'select',
'#options' => $options,
'#default_value' => $default_value,
);
$element['domain_source']['#options'][0] = t('No canonical domain.');
}
}
function domain_entity_source_domain_entity_widget_multiple_values_form_validate_alter(&$items, &$form_state, $form, $element) {
$parents = $element['#array_parents'];
array_pop($parents);
$values = drupal_array_get_nested_value($form_state['values'], $parents);
if (!empty($values['domain_source'])) {
$domain_source = $values['domain_source'];
$domain_source_isset = FALSE;
foreach ($items as $key => $item) {
if ($item['domain_id'] == $domain_source) {
$domain_source_isset = TRUE;
$items[$key]['domain_source'] = TRUE;
}
}
if (!$domain_source_isset) {
$items[] = array(
'domain_id' => $domain_source,
'domain_source' => TRUE,
);
}
}
}
function domain_entity_source_views_api() {
list($module, $api) = func_get_args();
if ($module == "views" && $api == "views_default") {
return array(
"version" => 3.0,
);
}
}
function domain_entity_source_views_data_alter(&$data) {
if (module_exists('domain_views')) {
$entity_base_tables = domain_entity_allowed_entity_types_base_tables();
if (empty($entity_base_tables)) {
return;
}
foreach ($entity_base_tables as $entity_base_table => $entity_infos) {
$field_instance = domain_entity_entity_field_instance($entity_infos['entity type']);
$help = t("This field contains the domain source of the !entity_type.", array(
'!entity_type' => $entity_infos['entity type'],
));
$title = t('Domain source (domain entity)');
$data['field_data_' . $field_instance['name']][$field_instance['name'] . '_domain_source']['filter']['handler'] = 'domain_entity_views_handler_filter_domain_domain_source';
$data['field_data_' . $field_instance['name']][$field_instance['name'] . '_domain_source']['title'] = $title;
$data['field_data_' . $field_instance['name']][$field_instance['name'] . '_domain_source']['help'] .= $help;
$data['field_revision_' . $field_instance['name']][$field_instance['name'] . '_domain_source']['filter']['handler'] = 'domain_entity_views_handler_filter_domain_domain_source';
$data['field_revision_' . $field_instance['name']][$field_instance['name'] . '_domain_source']['title'] = $title;
}
}
}