danielebarchiesi@0: t('View'), danielebarchiesi@0: 'description' => t('Tokens related to views.'), danielebarchiesi@0: 'needs-data' => 'view', danielebarchiesi@0: ); danielebarchiesi@0: $info['tokens']['view']['name'] = array( danielebarchiesi@0: 'name' => t('Name'), danielebarchiesi@0: 'description' => t('The human-readable name of the view.'), danielebarchiesi@0: ); danielebarchiesi@0: $info['tokens']['view']['description'] = array( danielebarchiesi@0: 'name' => t('Description'), danielebarchiesi@0: 'description' => t('The description of the view.'), danielebarchiesi@0: ); danielebarchiesi@0: $info['tokens']['view']['machine-name'] = array( danielebarchiesi@0: 'name' => t('Machine name'), danielebarchiesi@0: 'description' => t('The machine-readable name of the view.'), danielebarchiesi@0: ); danielebarchiesi@0: $info['tokens']['view']['title'] = array( danielebarchiesi@0: 'name' => t('Title'), danielebarchiesi@0: 'description' => t('The title of current display of the view.'), danielebarchiesi@0: ); danielebarchiesi@0: $info['tokens']['view']['url'] = array( danielebarchiesi@0: 'name' => t('URL'), danielebarchiesi@0: 'description' => t('The URL of the view.'), danielebarchiesi@0: 'type' => 'url', danielebarchiesi@0: ); danielebarchiesi@0: danielebarchiesi@0: return $info; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Implements hook_tokens(). danielebarchiesi@0: */ danielebarchiesi@0: function views_tokens($type, $tokens, array $data = array(), array $options = array()) { danielebarchiesi@0: $url_options = array('absolute' => TRUE); danielebarchiesi@0: if (isset($options['language'])) { danielebarchiesi@0: $url_options['language'] = $options['language']; danielebarchiesi@0: } danielebarchiesi@0: $sanitize = !empty($options['sanitize']); danielebarchiesi@0: $langcode = isset($options['language']) ? $options['language']->language : NULL; danielebarchiesi@0: danielebarchiesi@0: $replacements = array(); danielebarchiesi@0: danielebarchiesi@0: if ($type == 'view' && !empty($data['view'])) { danielebarchiesi@0: $view = $data['view']; danielebarchiesi@0: danielebarchiesi@0: foreach ($tokens as $name => $original) { danielebarchiesi@0: switch ($name) { danielebarchiesi@0: case 'name': danielebarchiesi@0: $replacements[$original] = $sanitize ? check_plain($view->human_name) : $view->human_name; danielebarchiesi@0: break; danielebarchiesi@0: danielebarchiesi@0: case 'description': danielebarchiesi@0: $replacements[$original] = $sanitize ? check_plain($view->description) : $view->description; danielebarchiesi@0: break; danielebarchiesi@0: danielebarchiesi@0: case 'machine-name': danielebarchiesi@0: $replacements[$original] = $view->name; danielebarchiesi@0: break; danielebarchiesi@0: danielebarchiesi@0: case 'title': danielebarchiesi@0: $title = $view->get_title(); danielebarchiesi@0: $replacements[$original] = $sanitize ? check_plain($title) : $title; danielebarchiesi@0: break; danielebarchiesi@0: danielebarchiesi@0: case 'url': danielebarchiesi@0: if ($path = $view->get_url()) { danielebarchiesi@0: $replacements[$original] = url($path, $url_options); danielebarchiesi@0: } danielebarchiesi@0: break; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: // [view:url:*] nested tokens. This only works if Token module is installed. danielebarchiesi@0: if ($url_tokens = token_find_with_prefix($tokens, 'url')) { danielebarchiesi@0: if ($path = $view->get_url()) { danielebarchiesi@0: $replacements += token_generate('url', $url_tokens, array('path' => $path), $options); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: return $replacements; danielebarchiesi@0: }