Content taxonomy mezők tartalma egy sorban

prigo képe

Több content taxonomy mező tartalmát szeretném egy sorban megjeleníteni, vesszővel elválasztva. Most is megjelenik csak vessző nélkül, és nem jövök rá, hogy hová illeszthetném be. Illetve a mezőnév csak akkor jelenjen meg, ha van mögötte tartalom.
A kód:

print('<div class="field-label">'.t('Archaeological Period Researched').":</div>");
 
 
$rev=array_reverse($node->field_kutatottkorszak);
for ($c=0;$c<count($rev);$c++) {
  //print($rev[$c][view].":&nbsp;");
  $aktterm=$rev[$c]['value'];
  $nextterm=$rev[$c+1]['value'];
  $child_terms=taxonomy_get_children($aktterm);
  unset($childs);
  $childs=array();
  foreach ($child_terms as $child) {
    $childs[]=$child->tid;
  }
  //print_r(taxonomy_get_children($aktterm));
  //print("*".$nextterm);
  //print("<hr />");
  if (!in_array($nextterm,$childs)) {
   $term=taxonomy_get_term($rev[$c]['value']);
   print($term->name." ");
  }
}
 
$rev=array_reverse($node->field_kutkor2);
for ($c=0;$c<count($rev);$c++) {
  //print($rev[$c][view]."");
  $aktterm=$rev[$c]['value'];
  $nextterm=$rev[$c+1]['value'];
  $child_terms=taxonomy_get_children($aktterm);
  unset($childs);
  $childs=array();
  foreach ($child_terms as $child) {
    $childs[]=$child->tid;
  }
  //print_r(taxonomy_get_children($aktterm));
  //print("*".$nextterm);
  //print("<hr />");
  if (!in_array($nextterm,$childs)) {
   $term=taxonomy_get_term($rev[$c]['value']);
   print($term->name." ");
  }
}
 
$rev=array_reverse($node->field_kutkor3);
for ($c=0;$c<count($rev);$c++) {
  //print($rev[$c][view].",");
  $aktterm=$rev[$c]['value'];
  $nextterm=$rev[$c+1]['value'];
  $child_terms=taxonomy_get_children($aktterm);
  unset($childs);
  $childs=array();
  foreach ($child_terms as $child) {
    $childs[]=$child->tid;
  }
  //print_r(taxonomy_get_children($aktterm));
  //print("*".$nextterm);
  //print("<hr />");
  if (!in_array($nextterm,$childs)) {
   $term=taxonomy_get_term($rev[$c]['value']);
   print($term->name." ");
  }
}
 
$rev=array_reverse($node->field_kutkor4);
for ($c=0;$c<count($rev);$c++) {
  //print($rev[$c][view]."<br />");
  $aktterm=$rev[$c]['value'];
  $nextterm=$rev[$c+1]['value'];
  $child_terms=taxonomy_get_children($aktterm);
  unset($childs);
  $childs=array();
  foreach ($child_terms as $child) {
    $childs[]=$child->tid;
  }
  //print_r(taxonomy_get_children($aktterm));
  //print("*".$nextterm);
  //print("<hr />");
  if (!in_array($nextterm,$childs)) {
   $term=taxonomy_get_term($rev[$c]['value']);
   print($term->name." ");
  }
}
 
$rev=array_reverse($node->field_kutkor5);
for ($c=0;$c<count($rev);$c++) {
  //print($rev[$c][view]."<br />");
  $aktterm=$rev[$c]['value'];
  $nextterm=$rev[$c+1]['value'];
  $child_terms=taxonomy_get_children($aktterm);
  unset($childs);
  $childs=array();
  foreach ($child_terms as $child) {
    $childs[]=$child->tid;
  }
  //print_r(taxonomy_get_children($aktterm));
  //print("*".$nextterm);
  //print("<hr />");
  if (!in_array($nextterm,$childs)) {
   $term=taxonomy_get_term($rev[$c]['value']);
   print($term->name."<br />");
  }
}
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Laza képe

Ugyan nem tudom mi ez..., de itt írja ki a konkrétumokat:

  print($term->name." ");

Egészen pontosan a term nevéhez hozzáfűz egy spacet, aminek nem sok értelmét látom.
Mindenesetre ide be tudod dobni a vesszőt.

0
0
prigo képe

bocs elfelejtettem pontosítani a problémát. persze, ha oda teszem az jó, csak az a baj ha nincs mögötte tartalom akkor is odarakja a vesszőt...
szóval az lenne a lényeg, hogy ha üres, akkor az is maradjon.

0
0

Rigó Péter

pp képe

bár nem látom a kódot, de:

function nemtudommi() {
  static $elso = TRUE;
...
  if ($elso) {
    $elso = FALSE;
    print($term->name);
  }
  else {
    print(', '. $term->name);
  }
...
}

vagy rövidebben:
function nemtudommi() {
  static $elso = TRUE;
...
  $elso ? print($term->name) : print(', '. $term->name);
  $elso = FALSE;
...
}
0
0
szantog képe

Én ezt így csináltam meg, fél évvel ezelőtt, ma már lehet, tudnék rá szebb módot is:

Nekem az volt a lényeg, hogy ul liben jelenjenek meg. Nem fűzhettem a vesszőt magához az $itemhez, mert különben a vessző bekerült a linkbe, azt meg nem szeressük.

function SMINKNEVE_content_view_multiple_field($items, $field, $values) {
  $output = '';
  $i = 0;
//ezt a feltételt lehet bárhogy alakítani, ahogy jó, én már nem emlékszem, hogy nekem miért így volt jó..
  if ($field['field_name'] == 'MEZŐNEVE' && $field['type_name'] == 'TÍPUSENEVE') {
    $output .='<ul class="MEZŐNEVE">' ;
    foreach ($items as $item) {   
      if (!empty($item) || $item == '0') {
        $output .= '<li class="field-item field-item-'. $i .' '. ($i % 2 ? 'odd' : 'even');
        if ($i == 0) {
          $output .= ' first'; 
        } 
        if ($i != count($items)-1) {
          $output .= ' no-last'; 
        } 
        $output .= '">'. $item .'</li>';
        $i++;
      }
    }
    $output .= '</ul>';    
    return $output;
  }
//ez az eredeti theme_content_view_multiple_field.
  foreach ($items as $item) {
 
    if (!empty($item) || $item == '0') {
      $output .= '<div class="field-item field-item-'. $i .' '. ($i % 2 ? 'odd' : 'even');
      if ($i == 0) {
        $output .= ' first'; 
      } 
      if ($i != count($items)-1) {
        $output .= ' no-last'; 
      } 
      $output .= '">'. $item .'</div>';
      $i++;
    }
  }
  return $output;

Na és ezután css:

.no-last:after{
	content: ",";
}
0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

prigo képe

szia

köszönöm, hogy segítettél, "már" csak annyi nem tiszta, hogy melyik css-be, és hová illesszem be a kódot. a használt smink: acquia_marina

0
0

Rigó Péter

szantog képe

template.php-ba kell írni a php-t az 100%, a css-t meg gondolom valami style.css-szerűségbe, nem ismerem az acquia_marina-t, azt meg most nincs időm részletezni, hogy alsminket kellene létrehozni stb..

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

prigo képe

szia valami nem stimmel (valószínű, hogy velem)

Parse error: syntax error, unexpected $end in /home/-www/regeszet.org.hu/htdocs/kiki/sites/all/themes/acquia_marina/custom/content-field-field_kutatottkorszak-archeologist.tpl.php on line 40

bemásoltam a template.php-ba, de ott is hibát dob

0
0

Rigó Péter