Address field modul mező sorrend

buda képe

Sziasztok!

Egy Europass CV nyomtatási nézetet kell készítenem egy tartalom típushoz.
Normál node mezők és field collection mezők is vannak, amelyeket egyedi módon kell megjelenítenem. Mindent sikerült megoldanom, kivéve az Address field modul által generált mezők sorrendjét. Mező beállításoknál nem találtam erre lehetőséget, így kilométer hosszú tömbökből kell kiszednem az adatokat.

Az alábbi tömbnél akadtam meg:

  1. FieldCollectionItemEntity Object
  2. (
  3.   [fieldInfo:protected] =>
  4.   [hostEntity:protected] => stdClass Object
  5.     (
  6.      [vid] => 12
  7.      ...
  8.      ...
  9.      ...

A [hostEntity:protected] objektum utáni részből kellene kiszednem a cím egyes elemeit, de az objektum nevében lévő ":" miatt mindig hibát kapok.

Hogy kell hivatkozni erre a kettősponttal elválasztott objektumra?
Vagy van ennél esetleg normálisabb megoldás is?

Nagyon hálás lennék bármilyen ötletért!

üdv,
bb

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

Elnézést a sok  -ért! :) Elcsesztem!
Remélem ettől még értelmezhető(?)

0
0
Sk8erPeter képe

Gondolom print_r()-rel íratod ki az objektumot. Általában ez a függvény amúgy is használhatatlan kimenetet produkál, itt bővebben kifejtettem, miért: http://prohardver.hu/tema/php_kerdesek_2/hsz_11597-11597.html
Csúnya, kódban nem felhasználható.

A lényeg, hogy amit Te látsz, az az, hogy a $fieldInfo protected láthatóságú, tehát kívülről nem fogod elérni, csak az osztályon belül, meg a leszármazottakból, erről bővebben lásd ezt:
http://php.net/manual/en/language.oop5.visibility.php

ergo ha csinálnál egy ilyet:
echo $obj->hostEntity; // Fatal Error
Akkor kapnál egy fatal errort az orcádba. :)

Viszont van publikus, azonos nevű metódus is:

http://api.drupalecommerce.org/api/misc/field_collection--field_collecti...

szóval az $obj->hostEntity() hívás kimenetének felhasználása akár működhet is (nem tudom, mit tudsz vele kezdeni, még nem próbáltam).

Bár szerintem tuti, hogy ennél értelmesebb módon is meg tudod változtatni az Address Field kimenetét, és nem feltétlenül a Field Collection dolgain keresztül, hanem a modul saját theme_ függvényein keresztül, template-jeiből (nem tudom, milyenek vannak neki).

Szerk.:
ja, és mielőbb kezdd el használni a Devel (azonbelül pl. a dsm() függvényt) és Theme developer modulokat, hogy megkönnyítsd az életedet! :)

0
0