csatlakozó képek blokk megjelenésének feltétele

wildface86 képe

Szép napot mindenkinek.
Készítettem egy nézetet és az argumentum részbe beirtam a köv. kódot :

if ($delta == 0) {
if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
if (isset($node->iid) && $node->iid) {
$image = node_load($node->iid);
if (node_access('view', $image)) {
$img = image_display($image, variable_get('blokk_csatlakozo_kepek-block_1_size', IMAGE_THUMBNAIL));
return array(
'subject' => t('Attached images'),
'content' => l($img, "node/$node->iid", array('html' => TRUE)),
);
}
}
}
}
break;

mint látjátok ezt az image_attachbol loptam ki :)
Magyarán mondva azt akarom elérni h csak akkor jelenjen meg a blokk ha van kép csatolva a tartalomhoz, de valahogy nem akar összejönni. :(

Drupal verzió: 
wildface86 képe

változtattam a kódon mert a fenti cucc befehérítette az oldalt. Probalkozom ezzel csak nem az igazi valamiért :

     if (arg(0) == 'node' && is_numeric(arg(1))) {
          $node = node_load(arg(1));
         }  if (isset($node->image_attach[0]['iid'])) {
            return $node->image_attach[0] ['iid'];
            }
else{
return FALSE;
}
 
0
0
wildface86 képe

sehogy sem tudok egyről a kettőre jutni ezzel a problémával. Senki nem találkozott hasonló problémával? A blokkot amugy view segítségével jelenítem meg (node: nid, node id from url, mezok: attached image és cim).

0
0
aboros képe

node->nid az argumentumod. az minden nodenál egy szám lesz, sluszpasz. nem ismerem annyira az image_attach modult, szóval nem tudom milyen argumentumot dob ki viewsba, ha van attached images argumentum, akkor azzal kellen feltételt szabni.

vagy ami sokkal egyszerűbb, ugyan ez a betöltöm node, megnézem van e csatolt kép, ha igen true ha nincs false, mehet a blokk megjelenítési beállításaihoz php módban és szevasz.

0
0

-
clear: both;

wildface86 képe

a modszerrel is amit te javasoltal "a blokk megjelenítési beállításaihoz php módban és szevasz" :)

eképpen:

if (arg(0) == 'node' && is_numeric(arg(1))) {
      $node = node_load(arg(1));  }
 if ($node->iid) {
       $image = node_load($node->iid); } 

na de nem akar csinálni semmit ez a félkegyelmü. Lassan úgy érzem Odin segítségét kell kérnem.
:)

0
0
aboros képe

nem látom pontosan a nézetedet, de amit leírtál az alapján az ok lesz, egy argumentum kell legyen, node: nid, node id from url. mezőknél meg legyen benne az attached images.

a blokk megjelenést szabályozó php kódnak true vagy false értékkel kell visszatérnie, tehát valami ilyesmi kell, hogy oda kerüljön:

if (arg(0) == 'node' && is_numeric(arg(1))) {
      $node = node_load(arg(1));
      if (isset($node->attached_images[0]) {
           return TRUE;
      } else {
           return FALSE;
      }
} else {
      return FASLE;
}

nem tudom, hogy pontosan hol van a node -ban az image attach -al csatolt képed, de azt kell vizsgálnod a node_load után, hogy van e ott érték és ha igen akkor true -val térsz vissza, minden más esetben false.

0
0

-
clear: both;

wildface86 képe

a következö kódot adtam meg:

if (arg(0) == 'node' && is_numeric(arg(1))) {
      $node = node_load(arg(1));
       if (isset($node->iid) && $node->iid){
           return TRUE;
      } else {
           return FALSE;
      }
} else {
      return FASLE;
}
0
0