Views invalid arguments passed

slampy képe

Sziasztok,

Létrehoztam Views-al egy kapcsolódó anyagok című blokkot, ami a taxonomy alapján egy képhez hozzárendel egy adott cikket.

Az argomentumba ezt a PHP kódot adtam meg:
$node = node_load(arg(1));
if($node) {
foreach($node->taxonomy as $term) { $terms[] = $term->tid; }
return implode('+',$terms);
}
else { return; }

De hiba keletkezik, ha éppen nincs a képhez taxonomy hozzárendelve. Legalábbis ezt gondolom.
A logban ezt az üzenetet látom:
implode() [function.implode]: Invalid arguments passed
/views/plugins/views_plugin_argument_default_php.inc(48) : eval()'d code - 4. sor.

Tudnátok segíteni hogyan tüntessem el ezt a hibaüzenetet?

Köszi.

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
hosszu.kalman képe

Ha nincs taxonomy a $terms tömböd üres, így nem tud lefutni az implode() fgv.

Ha az arg fgv-t szeretnéd használni akkor szerintem először ellenőrizd le a dolgokat:

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
  $node = node_load(arg(1));
}
?>

Azt hogy van-e tartama a $terms tömbnek azt meg szerintem nézd meg így:

<?php
if (count($terms)) {
  return implode('+',$terms);
} else {
  return;
}
?>

És ilyenkor a foreach is hibát szokott dobni, azt is hasolnó képpen le kéne ellenőrizni.

Persze lehet máshol van a baj, de én itt keresgélnék.

0
0
Illyés Edit képe

Enter PHP code that returns TRUE or FALSE. No return is the same as FALSE, so be SURE to return something if you do not want to declare the argument invalid.

Legalább egy FALSE kell a Views-nak. Kérdés, hogy önmagában a return; ad-e vissza valamit. Van egy olyan érzésem, hogy nem, de utána kell nézni. Pl. úgy, hogy kipróbálod ezzel:

<?php
if () {
...
}
else {
  return FALSE;
}
?>
0
0
slampy képe

Köszönöm.

Már nem jelentkezik a hiba. :-)

0
0