2012-07-09 44 views
3

我有一個詞彙類別和四個詞語。我想要做的是如果內容被標記爲特定的終端,例如「term1」將url生成爲word1/[node:title],並且所有其他標記只是標準的url格式。基於分類術語生成url別名

,如果我想在URL中明顯標識的使用模式替換術語,但我想如果一個特定的標籤使用

回答

0

發現實際上是一個簡單的方法,任何人誰需要一個類似的解決方案使用模塊實體引用。

http://drupal.org/project/entityreference

我剛剛創建了一個新的領域爲用戶帳戶選擇實體引用,那麼你可以選擇參考的Drupal內的任何實體。 (即所以你可以選擇一個術語/內容/任何東西)

5

我想不出一個簡單的插件和播放方式使用另一個詞實現這一點。您可能需要創建自己的令牌在Pathauto的URL別名設置中的「默認路徑模式」:

/** 
* Implementation of hook_token_info(). 
*/ 
function MODULE_token_info() { 
    $info['tokens']['node']['node-term-path'] = array(
    'name'  => t('Node path by term'), 
    'description' => t('The path to a node based on its taxonomy terms.'), 
); 
    return $info; 
} 

/** 
* Implementation of hook_tokens(). 
*/ 
function MODULE_tokens($type, $tokens, array $data = array(), array $options = array()) { 
    $replacements = array(); 
    if ($type == 'node' && !empty($data['node'])) { 
    $node = $data['node']; 

    foreach ($tokens as $name => $original) { 
     switch ($name) { 
     case 'node-term-path': 
      $items = field_get_items('node', $node, 'TAXONOMY_FIELD_NAME'); 
      foreach ($items as $item) { 
      $tids[] = $item['tid']; 
      } 
      if (in_array(TID_OF_TERM1, $tids)) { 
      // Path for nodes with term1 
      $replacements[$original] = 'word1/'. pathauto_cleanstring($node->title); 
      } 
      else { 
      // Path for other nodes 
      $replacements[$original] = 'content/'. pathauto_cleanstring($node->title); 
      } 
      break; 
     } 
    } 
    } 
    return $replacements; 
}