<?php
/**
* @file
* Contains halo_views_2.module.
*/
use Drupal\cfp_modification_request\Entity\CfpModificationRequest;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\Core\Url;
use Drupal\user\Entity\User;
module_load_include('inc', 'halo_front_page', 'halo_front_page.views');
/**
* Implements hook_toolbar().
*/
function halo_front_page_toolbar() {
return [
'admin_front_page_link' => [
'#type' => 'toolbar_item',
'tab' => [
'#type' => 'link',
'#title' => t('Admin front page'),
'#url' => Url::fromRoute('halo_front_page.admin_front_page'),
],
'#weight' => -5,
],
];
}
/**
* Implements hook_form_FORM_ID_alter().
*/
function halo_front_page_form_views_exposed_form_alter(&$form, FormStateInterface $form_state, $form_id) {
// Cfp state.
if (in_array($form['#id'], [
'views-exposed-form-cfp-page-1',
'views-exposed-form-cfp-page-2',
'views-exposed-form-cfp-page-3',
'views-exposed-form-ced-main-data-page-1',
'views-exposed-form-cfp-modification-requests-page-1',
])) {
$workflow_manager = \Drupal::service('plugin.manager.workflow');
$workflow = $workflow_manager->createInstance('cfp');
$states = $workflow->getStates();
$states = array_map(function ($state) {
return $state->getLabel();
}, $states);
$form['state'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + $states,
'#default_value' => reset($states),
];
$entity_field_manager = \Drupal::service('entity_field.manager');
$fields = $entity_field_manager->getFieldStorageDefinitions('cfp');
$sub_state_options = options_allowed_values($fields['sub_state']);
unset($sub_state_options['void_sub_state']);
$form['sub_state'] = [
'#title' => t('Sub state'),
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + $sub_state_options,
];
}
if ($form['#id'] === 'views-exposed-form-payment-requests-page-1') {
$workflow_manager = \Drupal::service('plugin.manager.workflow');
$workflow = $workflow_manager->createInstance('payment_request');
$states = $workflow->getStates();
$states = array_map(function ($state) {
return $state->getLabel();
}, $states);
$form['state'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + $states,
];
$form['state'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + $states,
];
$entity_field_manager = \Drupal::service('entity_field.manager');
$fields = $entity_field_manager->getFieldStorageDefinitions('cfp');
$form['location_check_state'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + $fields['location_check_state']->getSetting('allowed_values'),
];
$form['location_check_type'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + $fields['location_check_type']->getSetting('allowed_values'),
];
}
if ($form['#id'] === 'views-exposed-form-locations-halo-page-1') {
if (!isset($entity_field_manager)) {
$entity_field_manager = \Drupal::service('entity_field.manager');
}
$fields = $entity_field_manager->getFieldStorageDefinitions('cfp');
$form['location_check_state'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + $fields['location_check_state']->getSetting('allowed_values'),
];
$form['location_check_type'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + $fields['location_check_type']->getSetting('allowed_values'),
];
}
if ($form['#id'] === 'views-exposed-form-advance-payment-page-1') {
$workflow_manager = \Drupal::service('plugin.manager.workflow');
$workflow = $workflow_manager->createInstance('advance_payment');
$states = $workflow->getStates();
$states = array_map(function ($state) {
return $state->getLabel();
}, $states);
$form['state'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + $states,
];
}
if ($form['#id'] === 'views-exposed-form-cfp-modification-requests-page-1') {
$form['request_type'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + _request_type_callback()
];
$form['state_1'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + CfpModificationRequest::getStates(),
];
}
if ($form['#id'] === 'views-exposed-form-technical-report-page-1') {
$workflow_manager = \Drupal::service('plugin.manager.workflow');
$workflow = $workflow_manager->createInstance('technical_report');
$states = $workflow->getStates();
$states = array_map(function ($state) {
return $state->getLabel();
}, $states);
$form['state'] = $form['transition_history_to'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + $states
];
}
// First submission date.
if (in_array($form['#id'], ['views-exposed-form-payment-requests-page-1', 'views-exposed-form-technical-report-page-1', 'views-exposed-form-advance-payment-page-1'])) {
$form['first_submission_date_wrapper']['first_submission_date']['min']['#type'] = 'date';
$form['first_submission_date_wrapper']['first_submission_date']['min']['#title'] = '-tól';
$form['first_submission_date_wrapper']['first_submission_date']['max']['#type'] = 'date';
$form['first_submission_date_wrapper']['first_submission_date']['max']['#title'] = '-ig';
// if (isset($form['correction_deadline_wrapper'])) {
// $form['correction_deadline_wrapper']['correction_deadline']['min']['#type'] = 'date';
// $form['correction_deadline_wrapper']['correction_deadline']['min']['#title'] = '-tól';
// $form['correction_deadline_wrapper']['correction_deadline']['max']['#type'] = 'date';
// $form['correction_deadline_wrapper']['correction_deadline']['max']['#title'] = '-ig';
// }
if (isset($form['deadline_expired_wrapper'])) {
$form['deadline_expired_wrapper']['deadline_expired']['min']['#type'] = 'date';
$form['deadline_expired_wrapper']['deadline_expired']['min']['#title'] = '-tól';
$form['deadline_expired_wrapper']['deadline_expired']['max']['#type'] = 'date';
$form['deadline_expired_wrapper']['deadline_expired']['max']['#title'] = '-ig';
}
}
if ($form['#id'] === 'views-exposed-form-applicants-page-1') {
$form['cfp_type_group_owner_value'] = [
'#type' => 'select',
'#options' => [
'' => t('- Any -'),
] + _cfp_group_types(),
];
}
if ($form['#id'] === 'views-exposed-form-locations-page-1') {
$form['closed']['#options'][1] = t('Closed');
$form['closed']['#options'][0] = t('Open');
$form['date']['#type'] = 'date';
$form['date_1']['#type'] = 'date';
}
}
/**
* Implements hook_link_alter().
*/
function halo_front_page_link_alter(&$variables) {
$url = $variables['url'];
if ($url->isExternal() || !$url->isRouted()) {
return;
}
$route = $url->getRouteName();
if ($route === 'user.page') {
$variables['text'] = \Drupal::currentUser()->getDisplayName();
}
}
/**
* Implements hook_user_format_name_alter().
*/
function halo_front_page_user_format_name_alter(&$name, AccountInterface $account) {
$user = User::load($account->id());
$name = $user->field_lastname->value . ' ' . $user->field_firstname->value;
}
/**
* Implements hook_views_data_alter().
*/
function halo_front_page_views_data_alter(array &$data) {
$data['review']['assignable_filter'] = [
'title' => t('Assignable filter'),
'filter' => [
'title' => t('Assignable filter'),
'help' => t('Filters by assignable entities.'),
'field' => 'id',
'id' => 'assignable_filter',
],
];
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter