-
Brian Canini authored
- asc_bootstrap_bux
Brian Canini authored- asc_bootstrap_bux
asc_bootstrap_bux.theme 40.27 KiB
<?php
use \Drupal\taxonomy\Entity\Term;
use \Drupal\taxonomy\Entity\Vocabulary;
/**
* @file
* Bootstrap sub-theme.
*
* Place your custom PHP code in this file.
*/
function asc_bootstrap_bux_preprocess_page(&$vars, $hook)
{
// Render the library as laid out in herchel.libraries.yml
$libraries['#attached']['library'][] = 'asc_bootstrap/asc_bootstrap-corescripts';
\Drupal::service('renderer')->render($libraries);
//adds site name variable which is used as logo alt and title text
$vars['site_name'] = \Drupal::config('system.site')->get('name');
$vars['osu_logo'] = theme_get_setting('osu_logo', 'asc_bootstrap');
}
function asc_bootstrap_bux_preprocess_node(&$vars, $hook)
{
$vars['site_mail'] = \Drupal::config('system.site')->get('mail');
$vars['site_name'] = \Drupal::config('system.site')->get('name');
//get pathauto url alias for event
$config = \Drupal::service('config.factory')->get('pathauto.pattern.events');
$evpattern = explode('/', $config->get('pattern'));
$vars['evpattern'] = $evpattern[0];
//get research landing page url alias
$nids = \Drupal::entityQuery('node')->condition('type', 'research_landing_page')->accessCheck(TRUE)->execute();
$lid = array_shift($nids);
$vars['resrch_landing'] = \Drupal::service('path_alias.manager')->getAliasByPath('/node/' . $lid);
//get research gallery landing page url alias
$nids2 = \Drupal::entityQuery('node')->condition('type', 'research_gallery_landing_page')->accessCheck(TRUE)->execute();
$lid2 = array_shift($nids2);
$vars['resrch_gall_landing'] = \Drupal::service('path_alias.manager')->getAliasByPath('/node/' . $lid2);
}
/*
* adds content type to theme suggestions so that landing page doesn't default to page.html.twig
*/
function asc_bootstrap_bux_theme_suggestions_page_alter(array &$suggestions, array $variables)
{
// Add content type suggestions.
if (($node = \Drupal::request()->attributes->get('node')) && (strpos($_SERVER['REQUEST_URI'], "revisions") == false)) {
array_splice($suggestions, 1, 0, 'page__' . $node->getType());
}
}
/*
* adds content type to variable to be used in paragraph twig files.
*/
function asc_bootstrap_bux_preprocess_paragraph(&$variables)
{
if (\Drupal::routeMatch()->getRouteName() == 'entity.node.canonical') {
$node = \Drupal::routeMatch()->getParameter('node');
$variables['page_content_type'] = $node->getType();
}
}
function asc_bootstrap_bux_preprocess_block(&$vars)
{
$vars['site_mail'] = \Drupal::config('system.site')->get('mail');
$vars['site_name'] = \Drupal::config('system.site')->get('name');
}
/*
* alters news and events filters so that AJAX doesn't remove headings, etc. upon request
*/
function asc_bootstrap_bux_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id)
{
/*
* events and news filters
*/
if (
($form['#id'] == 'views-exposed-form-events-page-1')
|| ($form['#id'] == 'views-exposed-form-news-page-1')
|| ($form['#id'] == 'views-exposed-form-gallery-directory-page-1')
) {
/*
* add new HTML content to filters (headers and spacer)
* and setting weights for where they should appear in the form hierarchy
*/
$form['filter_heading'] = array(
'#markup' => '<h2 class="filter-heading">Filter</h2>',
'#weight' => -10,
);
$form['filter_search_heading'] = array(
'#markup' => '<div class="filter-linebreak"></div>',
'#weight' => 4,
);
$form['spacer'] = array(
'#markup' => '<div class="filter-spacer"></div>',
'#weight' => 1.5,
);
/*
* setting up weights for form elements
*/
$form['field_evt_date_range_value']['#weight'] = 1;
$form['end_date']['#weight'] = 1;
$form['field_evt_taxonomy_target_id_1']['#weight'] = 2;
$form['field_news_terms_1_target_id']['#weight'] = 2.5;
$form['field_evt_taxonomy2_target_id']['#weight'] = 3;
$form['field_news_terms_2_target_id']['#weight'] = 3.5;
$form['title']['#weight'] = 5;
$form['title']['#attributes']['placeholder'] = t('Search Keywords');
}
/*
* research filters
*/
if (
($form['#id'] == 'views-exposed-form-research-project-directory-page-1')
|| ($form['#id'] == 'views-exposed-form-research-project-gallery-page-1')
|| ($form['#id'] == 'views-exposed-form-research-project-directory-mobile-page-1')
|| ($form['#id'] == 'views-exposed-form-research-project-directory-block-1')
|| ($form['#id'] == 'views-exposed-form-research-project-gallery-block-1')
|| ($form['#id'] == 'views-exposed-form-research-project-directory-mobile-block-1')
) {
/*
* add new HTML content to filters (headers and spacer)
* and setting weights for where they should appear in the form hierarchy
*/
$form['filter_heading'] = array(
'#markup' => '<h2 class="filter-heading">Filter</h2>',
'#weight' => -10,
);
$form['filter_search_heading'] = array(
'#markup' => '<div class="filter-linebreak"></div>',
'#weight' => 4,
);
$form['spacer'] = array(
'#markup' => '<div class="filter-spacer"></div>',
'#weight' => 1.5,
);
/*
* setting up weights for form elements
*/
$form['title']['#weight'] = 5;
$form['title']['#attributes']['placeholder'] = t('Search Keywords');
}
/*
* checking if taxonomy has vocabulary - if not, don't display field
*/
//courses
if ($form['#id'] == 'views-exposed-form-courses-page-2') {
/*
* add new HTML content to filters (headers and spacer)
* and setting weights for where they should appear in the form hierarchy
*/
if ((count($form['field_course_term_1_target_id']['#options']) > 1)
|| (count($form['field_course_term_2_target_id']['#options']) > 1)
|| (count($form['field_course_term_3_target_id']['#options']) > 1)
) {
$form['filter_heading'] = array(
'#markup' => '<h2 class="filter-heading">Filter</h2>',
'#weight' => -10,
);
}
$form['filter_search_heading'] = array(
'#markup' => '<div class="filter-linebreak"></div>',
'#weight' => 4,
);
$form['spacer'] = array(
'#markup' => '<div class="filter-spacer"></div>',
'#weight' => 1.5,
);
/*
* setting up weights for form elements
*/
$form['title']['#weight'] = 5;
$form['title']['#attributes']['placeholder'] = t('Search Keywords');
if (count($form['field_course_term_1_target_id']['#options']) == 1) {
$form['field_course_term_1_target_id']['#access'] = FALSE;
}
if (count($form['field_course_term_2_target_id']['#options']) == 1) {
$form['field_course_term_2_target_id']['#access'] = FALSE;
}
if (count($form['field_course_term_3_target_id']['#options']) == 1) {
$form['field_course_term_3_target_id']['#access'] = FALSE;
}
if (isset($form['field_course_term_1_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_course_term_1_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_course_term_1_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_course_term_2_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_course_term_2_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_course_term_2_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_course_term_3_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_course_term_3_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_course_term_3_target_id']['#options']['All'] = $vocab_label;
}
}
}
}
//courses mobile
if ($form['#id'] == 'views-exposed-form-courses-page-3') {
if ((count($form['field_course_term_1_target_id']['#options']) > 1)
|| (count($form['field_course_term_2_target_id']['#options']) > 1)
|| (count($form['field_course_term_3_target_id']['#options']) > 1)
) {
$form['filter_heading'] = array(
'#markup' => '<h2 class="filter-heading">Filter</h2>',
'#weight' => -10,
);
}
$form['filter_search_heading'] = array(
'#markup' => '<div class="filter-linebreak"></div>',
'#weight' => 4,
);
$form['spacer'] = array(
'#markup' => '<div class="filter-spacer"></div>',
'#weight' => 1.5,
);
/*
* setting up weights for form elements
*/
$form['title']['#weight'] = 5;
$form['title']['#attributes']['placeholder'] = t('Search Keywords');
if (count($form['field_course_term_1_target_id']['#options']) == 1) {
$form['field_course_term_1_target_id']['#access'] = FALSE;
}
if (count($form['field_course_term_2_target_id']['#options']) == 1) {
$form['field_course_term_2_target_id']['#access'] = FALSE;
}
if (count($form['field_course_term_3_target_id']['#options']) == 1) {
$form['field_course_term_3_target_id']['#access'] = FALSE;
}
if (isset($form['field_course_term_1_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_course_term_1_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_course_term_1_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_course_term_2_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_course_term_2_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_course_term_2_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_course_term_3_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_course_term_3_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_course_term_3_target_id']['#options']['All'] = $vocab_label;
}
}
}
}
//departments and centers
if ($form['#id'] == 'views-exposed-form-departments-centers-page-1') {
if (count($form['field_dc_type_target_id']['#options']) == 1) {
$form['field_dc_type_target_id']['#access'] = FALSE;
}
if (count($form['field_dc_type_target_id']['#options']) > 1) {
$form['filter_heading'] = array(
'#markup' => '<h2 class="filter-heading">Filter</h2>',
'#weight' => -10,
);
}
if (isset($form['field_dc_type_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_dc_type_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
$term = Term::load($tid);
if (!empty($term)) {
$vid = array_shift($term->vid->getValue())['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_dc_type_target_id']['#options']['All'] = $vocab_label;
}
}
}
}
//events
if ($form['#id'] == 'views-exposed-form-events-page-1') {
if (count($form['field_evt_taxonomy_target_id_1']['#options']) == 1) {
$form['field_evt_taxonomy_target_id_1']['#access'] = FALSE;
}
if (count($form['field_evt_taxonomy2_target_id']['#options']) == 1) {
$form['field_evt_taxonomy2_target_id']['#access'] = FALSE;
}
if (isset($form['field_evt_taxonomy_target_id_1']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_evt_taxonomy_target_id_1']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_evt_taxonomy_target_id_1']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_evt_taxonomy2_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_evt_taxonomy2_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_evt_taxonomy2_target_id']['#options']['All'] = $vocab_label;
}
}
}
}
//gallery
if ($form['#id'] == 'views-exposed-form-gallery-directory-page-1') {
if (count($form['field_gallery_terms_1_target_id']['#options']) == 1) {
$form['field_gallery_terms_1_target_id']['#access'] = FALSE;
}
if (count($form['field_gallery_terms_2_target_id']['#options']) == 1) {
$form['field_gallery_terms_2_target_id']['#access'] = FALSE;
}
if (count($form['field_gallery_terms_3_target_id']['#options']) == 1) {
$form['field_gallery_terms_3_target_id']['#access'] = FALSE;
}
if (isset($form['field_gallery_terms_1_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_gallery_terms_1_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_gallery_terms_1_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_gallery_terms_2_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_gallery_terms_2_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_gallery_terms_2_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_gallery_terms_3_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_gallery_terms_3_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_gallery_terms_3_target_id']['#options']['All'] = $vocab_label;
}
}
}
}
//news
if ($form['#id'] == 'views-exposed-form-news-page-1') {
if (count($form['field_news_terms_1_target_id']['#options']) == 1) {
$form['field_news_terms_1_target_id']['#access'] = FALSE;
}
if (count($form['field_news_terms_2_target_id']['#options']) == 1) {
$form['field_news_terms_2_target_id']['#access'] = FALSE;
}
if (isset($form['field_news_terms_1_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_news_terms_1_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_news_terms_1_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_news_terms_2_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_news_terms_2_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_news_terms_2_target_id']['#options']['All'] = $vocab_label;
}
}
}
}
//research filters
if (
($form['#id'] == 'views-exposed-form-research-project-directory-block-1')
|| ($form['#id'] == 'views-exposed-form-research-project-directory-page-1')
|| ($form['#id'] == 'views-exposed-form-research-project-gallery-block-1')
|| ($form['#id'] == 'views-exposed-form-research-project-gallery-page-1')
) {
if (count($form['field_research_departments_target_id']['#options']) == 1) {
$form['field_research_departments_target_id']['#access'] = FALSE;
}
if (count($form['field_research_other_target_id']['#options']) == 1) {
$form['field_research_other_target_id']['#access'] = FALSE;
}
if (count($form['field_research_year_target_id']['#options']) == 1) {
$form['field_research_year_target_id']['#access'] = FALSE;
}
if (isset($form['field_research_departments_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_research_departments_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_departments_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_research_other_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_research_other_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_other_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_research_year_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_research_year_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_year_target_id']['#options']['All'] = $vocab_label;
}
}
}
}
//research - mobile
if (($form['#id'] == 'views-exposed-form-research-project-directory-mobile-block-1') || ($form['#id'] == 'views-exposed-form-research-project-directory-mobile-page-1')) {
if (count($form['field_research_departments_target_id']['#options']) == 0) {
$form['field_research_departments_target_id']['#access'] = FALSE;
}
if (count($form['field_research_other_target_id']['#options']) == 0) {
$form['field_research_other_target_id']['#access'] = FALSE;
}
if (count($form['field_research_year_target_id']['#options']) == 0) {
$form['field_research_year_target_id']['#access'] = FALSE;
}
if ($form['field_research_departments_target_id']['#theme_wrappers']['details']['#title'] == 'Departments') {
$tarr = array_slice(array_keys($form['field_research_departments_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_departments_target_id']['#theme_wrappers']['details']['#title'] = $vocab_label;
}
}
}
if ($form['field_research_other_target_id']['#theme_wrappers']['details']['#title'] == 'Other') {
$tarr = array_slice(array_keys($form['field_research_other_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_other_target_id']['#theme_wrappers']['details']['#title'] = $vocab_label;
}
}
}
if ($form['field_research_year_target_id']['#theme_wrappers']['details']['#title'] == 'Year') {
$tarr = array_slice(array_keys($form['field_research_year_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_year_target_id']['#theme_wrappers']['details']['#title'] = $vocab_label;
}
}
}
}
/*
* research gallery filters
*/
if (($form['#id'] == 'views-exposed-form-research-project-gallery-block-1') || ($form['#id'] == 'views-exposed-form-research-project-gallery-page-1')) {
if (count((array)$form['field_research_gallery_tags_target_id']['#options']) == 1) {
$form['field_research_gallery_tags_target_id']['#access'] = FALSE;
}
if (count((array)$form['field_research_gallery_tags_2_target_id']['#options']) == 1) {
$form['field_research_gallery_tags_2_target_id']['#access'] = FALSE;
}
if (count((array)$form['field_research_gallery_tags_3_target_id']['#options']) == 1) {
$form['field_research_gallery_tags_3_target_id']['#access'] = FALSE;
}
if (isset($form['field_research_gallery_tags_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_research_gallery_tags_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_gallery_tags_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_research_gallery_tags_2_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_research_gallery_tags_2_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_gallery_tags_2_target_id']['#options']['All'] = $vocab_label;
}
}
}
if (isset($form['field_research_gallery_tags_3_target_id']['#options']['All'])) {
$tarr = array_slice(array_keys($form['field_research_gallery_tags_3_target_id']['#options']), 1, 5, true);
$tid = array_shift($tarr);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_gallery_tags_3_target_id']['#options']['All'] = $vocab_label;
}
}
}
}
/*
* people filters
*/
if ($form['#id'] == 'views-exposed-form-people-directory-page-1') {
/*
* add new HTML content to filters (headers and spacer)
* and setting weights for where they should appear in the form hierarchy
*/
$form['filter_heading'] = array(
'#markup' => '<h2 class="filter-heading">Filter</h2>',
'#weight' => -10,
);
$form['filter_search_heading'] = array(
'#markup' => '<div class="filter-linebreak"></div>',
'#weight' => 4,
);
$form['spacer'] = array(
'#markup' => '<div class="filter-spacer"></div>',
'#weight' => 1.5,
);
/*
* setting up weights for form elements
*/
$form['field_appointment_target_id']['#weight'] = 1;
$form['field_research_interests_target_id']['#weight'] = 2;
$form['field_other_target_id']['#weight'] = 3;
$form['combine']['#weight'] = 5;
$form['keys']['#attributes']['placeholder'] = t('Search Keywords');
/*
* checking if taxonomy has vocabulary - if not, don't display field
*/
if (count($form['field_appointment_target_id']['#options']) == 0) {
$form['field_appointment_target_id_collapsible']['#access'] = FALSE;
} else {
$tmp = array_keys($form['field_appointment_target_id']['#options']);
$tid = array_shift($tmp);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_appointment_target_id_collapsible']['#title'] = $vocab_label;
}
}
}
if (count($form['field_research_interests_target_id']['#options']) == 0) {
$form['field_research_interests_target_id_collapsible']['#access'] = FALSE;
} else {
$tmp = array_keys($form['field_research_interests_target_id']['#options']);
$tid = array_shift($tmp);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_interests_target_id_collapsible']['#title'] = $vocab_label;
}
}
}
if (count($form['field_other_target_id']['#options']) == 0) {
$form['field_other_target_id_collapsible']['#access'] = FALSE;
} else {
$tmp = array_keys($form['field_other_target_id']['#options']);
$tid = array_shift($tmp);
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_other_target_id_collapsible']['#title'] = $vocab_label;
}
}
}
}
/*
* mobile people filters
*/
if ($form['#id'] == 'views-exposed-form-people-directory-page-2') {
/*
* add new HTML content to filters (headers and spacer)
* and setting weights for where they should appear in the form hierarchy
*/
$form['filter_heading'] = array(
'#markup' => '<h2 class="ppl-filter-heading ppl-taxon-heading">Filter</h2>',
'#weight' => 2,
);
$form['filter_search_heading'] = array(
'#markup' => '<div class="filter-linebreak"></div>',
'#weight' => 0,
);
/*
* setting up weights for form elements
*/
$form['combine']['#weight'] = 1;
$form['field_appointment_target_id_collapsible']['#weight'] = 3;
$form['field_research_interests_target_id_collapsible']['#weight'] = 4;
$form['field_other_target_id_collapsible']['#weight'] = 5;
if (count($form['field_appointment_target_id']['#options']) == 0) {
$form['field_appointment_target_id_collapsible']['#access'] = FALSE;
} else {
$tid = array_shift(array_keys($form['field_appointment_target_id']['#options']));
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_appointment_target_id_collapsible']['#title'] = $vocab_label;
}
}
}
if (count($form['field_research_interests_target_id']['#options']) == 0) {
$form['field_research_interests_target_id_collapsible']['#access'] = FALSE;
} else {
$tid = array_shift(array_keys($form['field_research_interests_target_id']['#options']));
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_research_interests_target_id_collapsible']['#title'] = $vocab_label;
}
}
}
if (count($form['field_other_target_id']['#options']) == 0) {
$form['field_other_target_id_collapsible']['#access'] = FALSE;
} else {
$tid = array_shift(array_keys($form['field_other_target_id']['#options']));
if (isset($tid)) {
$term = Term::load($tid);
}
if (!empty($term)) {
$tmp = $term->vid->getValue();
$vid = array_shift($tmp)['target_id'];
if (!empty($vid)) {
$vocab = Vocabulary::load($vid);
$vocab_label = $vocab->get('name');
$form['field_other_target_id_collapsible']['#title'] = $vocab_label;
}
}
}
}
}
function asc_bootstrap_bux_views_pre_render(\Drupal\views\ViewExecutable $view)
{
// print " - view_current_display: " . $view->current_display;
//Research Project Directory
if ($view->id() == 'research_project_directory' || $view->id() == 'research_project_directory_mobile') {
$view->element['#cache']['max-age'] = 0;
// get vocabulary name and set label to it
$vocab_dep = Vocabulary::load('departments');
$vocab_dep_label = $vocab_dep->get('name');
$vocab_year = Vocabulary::load('year');
$vocab_year_label = $vocab_year->get('name');
$vocab_other = Vocabulary::load('other');
$vocab_other_label = $vocab_other->get('name');
$view->field['field_research_departments']->options['label'] = $vocab_dep_label;
$view->field['field_research_year']->options['label'] = $vocab_year_label;
$view->field['field_research_other']->options['label'] = $vocab_other_label;
}
//Discover Your Path
if ($view->id() == 'discover_your_path') {
//gets filter values from url
$values = $view->getExposedInput();
//counts number of filters selected
if (isset($values['field_ap_interest_target_id'])) {
$count = count((array)$values['field_ap_interest_target_id']);
}
///////////////////////////////////////////////////////////////
//if no URL parameter is present
///////////////////////////////////////////////////////////////
if (\Drupal::request()->query->get('field_ap_interest_target_id') == '') {
//clear results
$view->result = [];
//changes text in header results if url parameter does not exist
$view->header['result']->options['content'] = '@total Programs<br/><br/>';
}
///////////////////////////////////////////////////////////////
//if URL parameters are present
///////////////////////////////////////////////////////////////
if (\Drupal::request()->query->get('field_ap_interest_target_id') != '') {
//displays number of matched interests vs number of interests selected
$view->field['nothing_2']->options['alter']['text'] = '<span class="dyp-interests">{{ field_ap_interest }}/' . $count . ' Interests</span>';
//get parameters from URL
$currentInterests = array_values(\Drupal::request()->query->get('field_ap_interest_target_id'));
//count length of currentInterests array
$currentInterestsLength = count($currentInterests);
$i = 0;
//set up variable to hold parameter values
$interestParams = '&';
//loop through currentInterests and add to interestParam variable
while ($i < $currentInterestsLength) {
//check if last time through loop - if so remove & from param
if ($i + 1 == $currentInterestsLength) {
$interestParams .= 'field_ap_interest_target_id[' . $currentInterests[$i] . ']=' . $currentInterests[$i];
} else {
$interestParams .= 'field_ap_interest_target_id[' . $currentInterests[$i] . ']=' . $currentInterests[$i] . '&';
}
$i++;
}
///////////////////////////////////////////////////////////////
//get all view results into an array to easily search through
///////////////////////////////////////////////////////////////
$view_result = $view->result;
if (!empty($view_result)) {
foreach ($view->result as $rid => $row) {
foreach ($view->field as $fid => $field) {
$viewValues[$rid][$fid] = $field->getValue($row);
}
}
}
///////////////////////////////////////////////////////////////
//creates matching interests
///////////////////////////////////////////////////////////////
$i = 0;
while ($i < count($viewValues)) {
//compares interest field values in url parameters with viewValues variable and
//removes values that don't match and save to variable
$interestResults = array_intersect($values['field_ap_interest_target_id'], $viewValues[$i]['field_ap_interest_1']);
//sets result for interest field to matched results saved in interestResults variable
$view_result[$i]->_entity->set('field_ap_interest', $interestResults);
$i++;
}
//setup counting variables
$majorsCount = 0;
$minorsCount = 0;
$certCount = 0;
$gradCount = 0;
$i = 0;
$majorsClasses = '';
$minorsClasses = '';
$certsClasses = '';
$gradClasses = '';
$allClasses = '';
///////////////////////////////////////////////////////////////
//loop through our viewValues array and count how many of each program exists
///////////////////////////////////////////////////////////////
while ($i < count($viewValues)) {
switch ($viewValues[$i]['field_ap_program']) {
case 51:
$majorsCount++;
break;
case 52:
$minorsCount++;
break;
case 53:
$certCount++;
break;
case 54:
$gradCount++;
break;
}
$i++;
}
///////////////////////////////////////////////////////////////
//get count from url if user is coming from a filtered search to a specific program
///////////////////////////////////////////////////////////////
//this insures that the counts on other programs aren't set to 0 when user
//selects a specific program
if (\Drupal::request()->query->get('major_count') != '') {
$majorsCount = \Drupal::request()->query->get('major_count');
}
if (\Drupal::request()->query->get('minor_count') != '') {
$minorsCount = \Drupal::request()->query->get('minor_count');
}
if (\Drupal::request()->query->get('cert_count') != '') {
$certCount = \Drupal::request()->query->get('cert_count');
}
if (\Drupal::request()->query->get('grad_count') != '') {
$gradCount = \Drupal::request()->query->get('grad_count');
}
///////////////////////////////////////////////////////////////
//check if program is active
///////////////////////////////////////////////////////////////
if (\Drupal::request()->query->get('active') != '') {
$active = \Drupal::request()->query->get('active');
//setting up active classes for buttons
if ($active == 'majors') {
$majorsClasses = 'active';
}
if ($active == 'minors') {
$minorsClasses = 'active';
}
if ($active == 'certs') {
$certsClasses = 'active';
}
if ($active == 'grad') {
$gradClasses = 'active';
}
if ($active == 'all') {
$allClasses = 'active';
}
} else {
$allClasses = 'active';
}
///////////////////////////////////////////////////////////////
//create program buttons and replace header textarea with them
///////////////////////////////////////////////////////////////
//in button link we're adding the program counts to the end of the URL parameters
//this insures that we will retain the program counts if the user selects one of
//the program buttons to filter to a specific program
$view->header['area_text_custom']->options['content'] = '
<a href="/discover-your-path?field_ap_program_target_id=51' . $interestParams . '&minor_count=' . $minorsCount . '&cert_count=' . $certCount . '&grad_count=' . $gradCount . '&active=majors" title="Majors" class="interest-majors ' . $majorsClasses . '">Majors (' . $majorsCount . ')</a>
<a href="/discover-your-path?field_ap_program_target_id=52' . $interestParams . '&major_count=' . $majorsCount . '&cert_count=' . $certCount . '&grad_count=' . $gradCount . '&active=minors" title="Minors" class="interest-minors ' . $minorsClasses . '">Minors (' . $minorsCount . ')</a>
<a href="/discover-your-path?field_ap_program_target_id=53' . $interestParams . '&major_count=' . $majorsCount . '&minor_count=' . $minorsCount . '&grad_count=' . $gradCount . '&active=certs" title="Certificates" class="interest-certs ' . $certsClasses . '">Certificates (' . $certCount . ')</a>
<a href="/discover-your-path?field_ap_program_target_id=54' . $interestParams . '&major_count=' . $majorsCount . '&minor_count=' . $minorsCount . '&cert_count=' . $certCount . '&active=grad" title="Graduate" class="interest-grad ' . $gradClasses . '">Graduate (' . $gradCount . ')</a>
<a href="/discover-your-path?field_ap_program_target_id=All' . $interestParams . '&active=all" title="All" class="interest-all ' . $allClasses . '">All</a>';
}
}
}
/*
* views
*/
function asc_bootstrap_bux_preprocess_views_view(&$vars)
{
//adds view name variable which is used to identify which view directory user is on (based off view id)
$vars['view_name'] = $vars['id'];
}