Yii Framework Forum: CMenu & superfish - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

CMenu & superfish Rate Topic: -----

#1 User is offline   rebus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 31
  • Joined: 07-December 09
  • Location:Ancona

Posted 13 May 2010 - 05:00 AM

Seguendo quanto descritto nella documentazione (http://www.yiiframew...oc/cookbook/61/) sto cercando di creare un menu dinamico che preleva i dati dal dbase.

Nell'esempio i dati vengono estrapolati direttamente dalla tabella 'Hierarchy' ma visto che ho l'esigenza di avere dei link piu' seo li prendo da una seconda tabella che contiene il contenuto delle pagine 'Page'.

Nella tabella 'Page' ho il link della pagina ma non riesco a prelevare il contenuto.

Ho creato la relazione nel modello Page.php:

public function relations()
{
return array(
'menu'=>array(self::BELONGS_TO, 'Menutree', 'menuID','alias'=>'menu'),
);
}

Nel layout main.php prelevo i dati (Relazione ->menu):

$model = Page::model()->with(array('menu'))->findByPk(1);


La funzione getListed viene richiamata dal modello Page.php:

public function getListed() {
$subitems = array();
if($this->menu[childs]) foreach($this->menu[childs] as $child) {
$subitems[] = $child->getListed(); <---- Va a Hierarchy model
}
if($this->url =='home') $this->url=Yii::app()->baseUrl;
$returnarray = array('label' => $this->title, 'url' => $this->url);
if($subitems != array()) $returnarray = array_merge($returnarray, array('items' => $subitems));
return $returnarray;
}

A questo punto sorge il problema, quando vengono trovati dei sottomenu viene richiamata la funzione dal modello Hierarchy e non riesco ad estrapolare il link contenuto nella tabella Page.

Spero di essere stato chiaro....
0

#2 User is offline   Giovanni D. 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 223
  • Joined: 23-December 08
  • Location:London (UK)

Posted 13 May 2010 - 11:49 AM

ciao,
non so se ho capito bene il problema perché ho letto un po' di corsa.. ma forse al posto di fare il foreach su $this->menu dovresti farlo solo su $this e leggere poi $this->menu da dentro la getListed..

Giovanni.
Yii Playground: collaborative demo app with small examples to play with.. join us ;) [Fork on github]

>> My Linkedin Profile
0

#3 User is offline   rebus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 31
  • Joined: 07-December 09
  • Location:Ancona

Posted 14 May 2010 - 02:29 AM

Grazie di aver risposto,
ad ogni modo mettendo $this il foreach non puo' funzionare poiche' la funzione getListed non riesce a trovare l'oggetto child.

Non riesco ad uscirne...

L'idea insomma e' questa:

Tabella Page:
id,
menuID, <---- Relazione con tabella Menutree HAS_MANY ('Pages')
body,
url <-------- L'url della Pagina
......
Tabella Menutree:
id, <---- Relazione con tabella Page BELONGS_TO with('menu')
title,
sort,
parent

Per semplificare l'intento e' quello di visualizzare il menu andando a richiamare l'url della pagina e visualizzarlo. Probabilmente e' la relazione tra le tabelle che non soddisfa tutti i requisiti.

Si accettano consigli...
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users