source: sipes/modules_contrib/pathauto/pathauto.tokens.inc @ 49072ea

stableversion-3.0
Last change on this file since 49072ea was 49072ea, checked in by José Gregorio Puentes <jpuentes@…>, 8 años ago

se actualizo el modulo

  • Propiedad mode establecida a 100644
File size: 3.8 KB
Línea 
1<?php
2
3/**
4 * @file
5 * Builds placeholder replacement tokens for pathauto.
6 *
7 * @ingroup pathauto
8 */
9
10/**
11 * Implements hook_token_list().
12 */
13function _pathauto_token_list($type = 'all') {
14  $tokens = array();
15
16  if (module_exists('taxonomy')) {
17    if ($type == 'taxonomy' || $type == 'all') {
18      $tokens['taxonomy']['catpath'] = t('As [cat], but including its supercategories separated by /.');
19      $tokens['taxonomy']['catpath-raw'] = t('As [cat-raw], but including its supercategories separated by /.');
20      $tokens['taxonomy']['catalias'] = t('The URL alias of the taxonomy term.');
21      $tokens['taxonomy']['catalias-raw'] = t('The URL alias of the taxonomy term.');
22    }
23    if ($type == 'node' || $type == 'all') {
24      $tokens['node']['termpath'] = t('As [term], but including its supercategories separated by /.');
25      $tokens['node']['termpath-raw'] = t('As [term-raw], but including its supercategories separated by /.');
26      $tokens['node']['termalias'] = t('The URL alias of the taxonomy term.');
27      $tokens['node']['termalias-raw'] = t('The URL alias of the taxonomy term.');
28    }
29  }
30
31  if (module_exists('book')) {
32    if ($type == 'node' || $type == 'all') {
33      $tokens['node']['bookpathalias'] = t('The URL alias of the parent book of the node.');
34      $tokens['node']['bookpathalias-raw'] = t('The URL alias of the parent book of the node.');
35    }
36  }
37
38  return $tokens;
39}
40
41/**
42 * Implements hook_token_values().
43 */
44function _pathauto_token_values($type, $object = NULL, $options = array(), $label = NULL) {
45  $values = array();
46
47  if ($type == 'node' && !empty($object)) {
48    // Token [bookpathalias].
49    if (module_exists('book')) {
50      $values['bookpathalias'] = '';
51      $values['bookpathalias-raw'] = '';
52      if (!empty($object->book['plid']) && $parent = book_link_load($object->book['plid'])) {
53        $values['bookpathalias-raw'] = drupal_get_path_alias($parent['href']);
54        $values['bookpathalias']     = check_plain($values['bookpathalias-raw']);
55      }
56    }
57
58    // Tokens [termpath], [termpath-raw], and [termalias].
59    if (module_exists('taxonomy')) {
60      // Get the lowest-weighted term from the lowest-weighted vocabulary.
61      // This query is copied from @taxonomy_node_get_terms()
62      $term = db_fetch_object(db_query_range('SELECT t.* FROM {term_node} r INNER JOIN {term_data} t ON r.tid = t.tid INNER JOIN {vocabulary} v ON t.vid = v.vid WHERE r.vid = %d ORDER BY v.weight, t.weight, t.name', $object->vid, 0, 1));
63      if ($term) {
64        $values = array_merge($values, _pathauto_token_values('taxonomy', $term, $options, 'term'));
65      }
66      else {
67        $values['termpath'] = '';
68        $values['termpath-raw'] = '';
69        $values['termalias'] = '';
70      }
71    }
72  }
73
74  if ($type == 'taxonomy' && !empty($object)) {
75    // In the realm of nodes these are 'terms', in the realm of taxonomy, 'cats'.
76    if (!isset($label)) {
77      $label = 'cat';
78    }
79
80    $values[$label . 'path'] = '';
81    $values[$label . 'path-raw'] = '';
82    $values[$label . 'alias'] = '';
83    $values[$label . 'alias-raw'] = '';
84
85    // Tokens [catpath] and [catpath-raw].
86    if (isset($object->tid)) {
87      $parents = taxonomy_get_parents_all($object->tid);
88      $catpath = $catpath_raw = array();
89      foreach ($parents as $parent) {
90        array_unshift($catpath, check_plain($parent->name));
91        array_unshift($catpath_raw, $parent->name);
92      }
93
94      $values[$label . 'path'] = !empty($options['pathauto']) ? $catpath : implode('/', $catpath);
95      $values[$label . 'path-raw'] = !empty($options['pathauto']) ? $catpath_raw : implode('/', $catpath_raw);
96
97      // Token [catalias-raw] and [catalias].
98      $values[$label . 'alias-raw'] = drupal_get_path_alias(taxonomy_term_path($object));
99      $values[$label . 'alias']     = check_plain($values[$label . 'alias-raw']);
100    }
101  }
102
103  return $values;
104}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.