Newer
Older
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_preprocess_page(&$vars, $hook) {
// Render the library as laid out in herchel.libraries.yml
$libraries['#attached']['library'][] = 'asc_bootstrap/asc_bootstrap-corescripts';
drupal_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');
Brian Canini
committed
function asc_bootstrap_preprocess_node(&$vars, $hook) {
$vars['site_mail'] = \Drupal::config('system.site')->get('mail');
$vars['site_name'] = \Drupal::config('system.site')->get('name');
//get research landing page url alias
$nids = \Drupal::entityQuery('node')->condition('type','research_landing_page')->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')->execute();
$lid2 = array_shift($nids2);
$vars['resrch_gall_landing'] = \Drupal::service('path.alias_manager')->getAliasByPath('/node/'.$lid2);
Brian Canini
committed
}
Brian Canini
committed
/*
* adds content type to theme suggestions so that landing page doesn't default to page.html.twig
*/
function asc_bootstrap_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());
Brian Canini
committed
}
}
Brian Canini
committed
/*
* adds content type to variable to be used in paragraph twig files.
Brian Canini
committed
*/
function asc_bootstrap_preprocess_paragraph(&$variables) {
$node = \Drupal::request()->attributes->get('node');
if ($node != null) {
$variables['page_content_type'] = $node->getType();
}
Brian Canini
committed
}
function asc_bootstrap_preprocess_block(&$vars) {
$vars['site_mail'] = \Drupal::config('system.site')->get('mail');
$vars['site_name'] = \Drupal::config('system.site')->get('name');
}
Brian Canini
committed
/*
* alters news and events filters so that AJAX doesn't remove headings, etc. upon request
*/
function asc_bootstrap_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')
) {
Brian Canini
committed
/*
* 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(
Brian Canini
committed
'#markup' => '<h2 class="filter-heading">Filter</h2>',
Brian Canini
committed
'#weight' => -10,
);
$form['filter_search_heading'] = array(
Brian Canini
committed
'#markup' => '<h2 class="filter-heading search-heading">Search</h2>',
Brian Canini
committed
'#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;
Brian Canini
committed
$form['field_evt_taxonomy_target_id_1']['#weight'] = 2;
Brian Canini
committed
$form['field_news_terms_1_target_id']['#weight'] = 2.5;
$form['field_evt_taxonomy2_target_id']['#weight'] = 3;
Brian Canini
committed
$form['field_news_terms_2_target_id']['#weight'] = 3.5;
Brian Canini
committed
$form['keys']['#weight'] = 5;
$form['keys']['#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')
) {
$form['spacer'] = array(
'#markup' => '<div class="filter-spacer"></div>',
'#weight' => 1.5,
);
/*
* setting up weights for form elements
*/
$form['keys']['#weight'] = 5;
$form['keys']['#attributes']['placeholder'] = t('Search Keywords');
}
Brian Canini
committed
/*
* checking if taxonomy has vocabulary - if not, don't display field
*/
//events
if ($form['#id'] == 'views-exposed-form-events-page-1') {
Brian Canini
committed
if(count($form['field_evt_taxonomy_target_id_1']['#options']) == 1) {
$form['field_evt_taxonomy_target_id_1']['#access'] = FALSE;
}
Brian Canini
committed
if(count($form['field_evt_taxonomy2_target_id']['#options']) == 1) {
$form['field_evt_taxonomy2_target_id']['#access'] = FALSE;
}
//news
if ($form['#id'] == 'views-exposed-form-news-page-1') {
Brian Canini
committed
if(count($form['field_news_terms_1_target_id']['#options']) == 1) {
$form['field_news_terms_1_target_id']['#access'] = FALSE;
}
Brian Canini
committed
if(count($form['field_news_terms_2_target_id']['#options']) == 1) {
$form['field_news_terms_2_target_id']['#access'] = FALSE;
Brian Canini
committed
}
//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);
$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_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);
$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_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);
$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_research_year_target_id']['#options']['All'] = $vocab_label;
}
}
Brian Canini
committed
}
//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') {
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
$tarr = array_slice(array_keys($form['field_research_departments_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_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);
$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_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);
$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_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($form['field_research_gallery_tags_target_id']['#options']) == 1) {
$form['field_research_gallery_tags_target_id']['#access'] = FALSE;
}
if(count($form['field_research_gallery_tags_2_target_id']['#options']) == 1) {
$form['field_research_gallery_tags_2_target_id']['#access'] = FALSE;
}
if(count($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);
$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_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);
$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_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);
$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_research_gallery_tags_3_target_id']['#options']['All'] = $vocab_label;
}
}
}
}
Brian Canini
committed
/*
* people filters
*/
if($form['#id'] == 'views-exposed-form-people-directory-page-1') {
Brian Canini
committed
/*
* 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']['#access'] = FALSE;
}
else {
$tid = array_shift(array_keys($form['field_appointment_target_id']['#options']));
$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['#info']['filter-field_appointment_target_id']['label'] = $vocab_label;
}
}
}
if(count($form['field_research_interests_target_id']['#options']) == 0) {
$form['field_research_interests_target_id']['#access'] = FALSE;
}
else {
$tid = array_shift(array_keys($form['field_research_interests_target_id']['#options']));
$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['#info']['filter-field_research_interests_target_id']['label'] = $vocab_label;
}
}
}
if(count($form['field_other_target_id']['#options']) == 0) {
$form['field_other_target_id']['#access'] = FALSE;
}
else {
$tid = array_shift(array_keys($form['field_other_target_id']['#options']));
$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['#info']['filter-field_other_target_id']['label'] = $vocab_label;
}
}
}
}
Brian Canini
committed
/*
* 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(
Brian Canini
committed
'#markup' => '<h2 class="ppl-filter-heading ppl-taxon-heading">Filter</h2>',
Brian Canini
committed
'#weight' => 2,
);
$form['filter_search_heading'] = array(
Brian Canini
committed
'#markup' => '<h2 class="ppl-filter-heading ppl-search-heading">Search</h2>',
Brian Canini
committed
'#weight' => 0,
);
/*
* setting up weights for form elements
*/
$form['combine']['#weight'] = 1;
$form['field_appointment_target_id']['#weight'] = 3;
$form['field_research_interests_target_id']['#weight'] = 4;
}
if(count($form['field_appointment_target_id']['#options']) == 0) {
$form['field_appointment_target_id']['#access'] = FALSE;
}
if(count($form['field_research_interests_target_id']['#options']) == 0) {
$form['field_research_interests_target_id']['#access'] = FALSE;
}
if(count($form['field_other_target_id']['#options']) == 0) {
$form['field_other_target_id']['#access'] = FALSE;
}
}
function asc_bootstrap_views_pre_render(\Drupal\views\ViewExecutable $view) {
// print " - view_current_display: " . $view->current_display;
if($view->id() == 'research_project_directory' || $view->id() == 'research_project_directory_mobile') {
// 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;
}
}