biopama_protected_areas-8.x-1.3/biopama_protected_areas.module

biopama_protected_areas.module
<?php

use \Drupal\views\ViewExecutable;

/*
* implements hook_preprocess_node()
*/
function biopama_protected_areas_preprocess_node(&$variables) {
	$node = $variables['node'];
	/*
	* turn on dev_mode to see stuff that's in development through the templates.
	*/
	$variables['dev_mode'] = "false";
 	switch($node->getType()){
		case 'protected_area':
			$variables['#attached']['library'][] = 'biopama_protected_areas/node-pa';
			break; 
		case 'country':
			$variables['#attached']['library'][] = 'biopama_protected_areas/node-country';
			break; 
		default:
			break; 
	}
}

/*
* implements hook_view_pre_render()
*/
function biopama_protected_areas_views_pre_render(\Drupal\views\ViewExecutable $view)
{
	if (isset($view)){
		switch($view->storage->id()){
			case 'pa_search':
				$view->element['#attached']['library'][] = 'biopama_protected_areas/pa-search';
				break;
			default:
			  break;
		}
	}
}

/**
* Implements hook_theme() to add the template definition.
**/
function biopama_protected_areas_theme($existing, $type, $theme, $path) {
  return array(
    'page__country' => array(
		'base hook' => 'page',
	),
  	'page__protected_area' => array(
		'base hook' => 'page',
	),
	'page__pa_search' => array(
		'base hook' => 'page',
	),
    'node__country' => array(
        'base hook' => 'node',
    ),
	'node__country__country_iso3_field' => array(
		'base hook' => 'node',
	),
	'node__country__search_preview' => array(
		'base hook' => 'node',
	),
	'node__country__teaser' => array(
		'base hook' => 'node',
	),
	'node__protected_area' => array(
		'base hook' => 'node',
	),
	'node__protected_area__search_preview' => array(
		'base hook' => 'node',
	),
	'views_view_fields__breadcrumb_country_summary' => array(
		'base hook' => 'views',
	),
	'views_view_fields__breadcrumb_protected_area_summary' => array(
		'base hook' => 'views',
	),
	'views_view_fields__breadcrumb_region_summary' => array(
		'base hook' => 'views',
	),
	'views_view__pa_search__pa_search' => array(
		'base hook' => 'views',
	),
  );
}
function biopama_protected_areas_preprocess_node__country(array &$variables) {
  biopamaModuleCheck($variables);
}
function biopama_protected_areas_preprocess_node__protected_area(array &$variables) {
  biopamaModuleCheck($variables);
}
function biopamaModuleCheck(array &$variables) {
  $moduleHandler = \Drupal::service('module_handler');
  $psrModuleCheck = "no";
  $panoramaModuleCheck = "no";
  if ($moduleHandler->moduleExists('biopama_psr')){
     $psrModuleCheck = "yes";
  }
  if ($moduleHandler->moduleExists('biopama_panorama')){
     $panoramaModuleCheck = "yes";
  }
  $variables['psr_module'] = $psrModuleCheck;
  $variables['panorama_module'] = $panoramaModuleCheck;
}
function biopama_protected_areas_preprocess_views_view_fields__breadcrumb_country_summary(array &$variables) {
  $variables['countryflags'] = '/' . drupal_get_path('module', 'biopama_protected_areas') . '/images/country_flags/';
}
/**
 * Implements hook_theme_suggestions_taxonomy_term_alter().
 */
function biopama_protected_areas_theme_suggestions_taxonomy_term_alter(array &$suggestions, array $variables) {
  /** @var \Drupal\taxonomy\TermInterface $term */
  $term = $variables['elements']['#taxonomy_term'];
  $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_');
  // Add view mode theme suggestions.
  $suggestions[] = 'taxonomy_term__' . $sanitized_view_mode;
  $suggestions[] = 'taxonomy_term__' . $term->bundle() . '__' . $sanitized_view_mode;
  $suggestions[] = 'taxonomy_term__' . $term->id() . '__' . $sanitized_view_mode;
}
function biopama_protected_areas_theme_suggestions_node_alter(array &$suggestions, array $variables, $hook) {
 $node = $variables['elements']['#node'];
 $type = $node->bundle();
 $view_mode = $variables['elements']['#view_mode'];
 $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_');
 $suggestions[] = 'node__'.$type;
 $suggestions[] = 'node__'.$type.'__'.$view_mode;
}

function biopama_protected_areas_theme_suggestions_page_alter(array &$suggestions, array $variables) {
  $node = NULL;
  $revision = NULL;
  if (\Drupal::routeMatch()->getParameter('node')) {
	//revision IDs are strings and node ids are strings when a revision is loaded.
    $node = \Drupal::routeMatch()->getParameter('node');
	$revision = \Drupal::routeMatch()->getRawParameter('node_revision');
  }
  $tid = NULL;
  $term = NULL;
  if (\Drupal::routeMatch()->getRawParameter('taxonomy_term')) {
	$tid = \Drupal::routeMatch()->getRawParameter('taxonomy_term');
    $term = Term::load($tid);
  }
  
  //node parameters loaded by getParameter are objects and the bundle can be accessed normally.
  if (!empty($node)) {
    if ($revision) {
      $revised_node = \Drupal::entityTypeManager()
                             ->getStorage('node')
                             ->loadRevision($revision);
      $content_type = $revised_node->bundle();
    }
    else {
      $content_type = $node->bundle();
    }
    $suggestions[] = 'page__' . $content_type;
  }
  if (!empty($term)) {
     $vid = $term->vid->getValue();
     $suggestions[] = 'page__taxonomy__vocabulary__' . $vid[0]['target_id'];
   }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc