Drupal »Yazdır taksonomisi terimler

3 Cevap php

Ben bir düğüm MyContentType.tpl theming ve ben sadece belirli bir Kelime 'baskı' yeteneği istiyorum.

Diğer bir deyişle, ben böyle bir şey istiyorum:

<Title>
<Vocabulary [1]>
<Body> 
<Vocabulary [2]>

I think it should be fairly easy, but I'm struggling.... Ideally, I would love to pass arguments to:

  • (Ben şu vea bir modül ile bunu yapıyorum) kelime "etiket" yazdırmak
  • bir bağlantı olarak dönem yazdırmak
  • bu terimin açıklamasını yazdırmak

Biri, teşekkürler bana yardımcı olabilir umuyoruz.

Update:

Burada ben bugüne kadar ne var:

<?php
foreach ( (array)$node->taxonomy as $term ) {
  // $term->name has the taxonomy term name
  // $term->tid has the taxonomy term id

$TermTitle = $term->name;
$TermDescription = $term->description;

print ($TermTitle);
print $TermDescription;
}
?>

Bu sadece, teşekkür belirli bir kelime yazdırmak ki şimdi, biri bana yardımcı olabilir.

3 Cevap

Taxonomy Hide modülü size ekrana gelen sözlükler ve terimler gizlemek için bazı fantezi yapılandırmaları verir. Eğer zamanla değişebilir karmaşık bir kullanım durumunda yoksa, sabit kod buna isteyebilirsiniz.

Sizin ihtiyaçlarınıza uyacak şekilde ayarlamak nasıl bazı fikirler almak için taxonomy_hide_nodeapi() bir göz atın. İlginç pasajı:

foreach ($node->taxonomy as $key => $value) {
  if (array_key_exists($value->vid, $hidden)) {
    unset($node->taxonomy[$key]);

Bunun için Hit kullanmak istiyorsunuz.

Başlatmak için Bu Görünümü ithal

$view = new view;
$view->name = 'taxonomy_terms2';
$view->description = '';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'term_data';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
  'name' => array(
    'label' => '',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'link_class' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'target' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'html' => 0,
      'strip_tags' => 0,
    ),
    'empty' => '',
    'hide_empty' => 0,
    'empty_zero' => 0,
    'link_to_taxonomy' => 0,
    'exclude' => 1,
    'id' => 'name',
    'table' => 'term_data',
    'field' => 'name',
    'relationship' => 'none',
  ),
  'phpcode' => array(
    'label' => '',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'link_class' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'target' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'html' => 0,
      'strip_tags' => 0,
    ),
    'empty' => '',
    'hide_empty' => 0,
    'empty_zero' => 0,
    'value' => '<?php
$term_link = \'taxonomy/term/\'.$data->tid;
if (arg(0)==\'node\') { // If we\'re on a node, get the node\'s term and compare it to this term
  $node = node_load(arg(1));
  foreach ($node->taxonomy as $term) {
    if ($data->tid == $term->tid) {
            $extra_class = "active-term";
    }
  }  
} else if (arg(0)==\'topic\') { // If we\'re on a view, compare the first two arguments of the view\'s alias to the term\' alias
  if(drupal_lookup_path(\'alias\', $term_link) == arg(0) . \'/\' . arg(1)) {
    $extra_class = "active-term";
  }
}
print l($data->term_data_name, $term_link, array(\'attributes\' => array(\'class\' => $extra_class)));
?>',
    'exclude' => 0,
    'id' => 'phpcode',
    'table' => 'customfield',
    'field' => 'phpcode',
    'relationship' => 'none',
  ),
));
$handler->override_option('sorts', array(
  'weight' => array(
    'order' => 'ASC',
    'id' => 'weight',
    'table' => 'term_data',
    'field' => 'weight',
    'relationship' => 'none',
  ),
));
$handler->override_option('filters', array(
  'vid' => array(
    'operator' => 'in',
    'value' => array(),
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'vid',
    'table' => 'term_data',
    'field' => 'vid',
    'relationship' => 'none',
    'override' => array(
      'button' => 'Override',
    ),
  ),
));
$handler->override_option('access', array(
  'type' => 'none',
));
$handler->override_option('cache', array(
  'type' => 'none',
));
$handler->override_option('footer_format', '5');
$handler->override_option('footer_empty', 0);
$handler->override_option('style_plugin', 'list');
$handler->override_option('style_options', array(
  'grouping' => '',
  'type' => 'ul',
));
$handler = $view->new_display('block', 'Block', 'block_1');
$handler->override_option('filters', array(
  'vid' => array(
    'operator' => 'in',
    'value' => array(
      '49' => '49',
    ),
    'group' => '0',
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'vid',
    'table' => 'term_data',
    'field' => 'vid',
    'relationship' => 'none',
    'override' => array(
      'button' => 'Use default',
    ),
  ),
));
$handler->override_option('block_description', '');
$handler->override_option('block_caching', -1);

Sonra sadece sizin kelime almak

Ben kelime id 1. Zor kodlanmıştır eşleşti Taksonomisi adını yazdırmak için kullanılan bu, ama benim ihtiyaçları için yeterince iyi oldu.

// Print the Product Type
// Print Taxonomy terms where vid == 1
foreach ($node->taxonomy as $key => $value) {
  if ( $node->taxonomy[$key] -> vid == 1) {
    print ( $node->taxonomy[$key] -> name );
  }
}