PDA

Vollständige Version anzeigen : Gehversuche


Timo Trallala
22.06.2007, 10:39
Hallihallo,

aller Anfang ist schwer. Ich hab es jetzt geschafft, das meine Seite dargestellt wird.

application\views\scripts
header
top_cont
left_cont
main_cont
footerjetzt geht es darum, die Menues und andere Informationen aus der Datenbank auszulesen.
Wenn ich das jetzt alles richtig verstehe, gehts jetzt beim indexController weiter.

ich würde dort jetzt in etwa so vorgehen
ffunction indexAction()
{
....
$feeds = new Feeds();
$this->view->feeds = $feeds->fetchAll();und dann in der left_cont-View
<?php foreach($this->feeds as $item) : ?>
.....nur hab ich keine Ahnung wie und wo ich meine Statements angebe ... fetch all ist zwar schön und gut ... aber in den seltesten Fällen ungeeignet.

Und wie siehts denn mit ungebufferten Anfragen aus?

Fragen über Fragen

Liebe Grüße
derTrallala

KingCrunch
22.06.2007, 11:03
ungebuffert? Meinst du ungepuffert? Bin leider Gegner von bösen Denglisch-Konstruktionen ;)

Versteh dein Problem nicht ganz ^^ Feeds werden idR vollständig oder eben die ersten x angezeigt. Insofern weiß ich nicht, wieso man dort filtern sollte. Benutzt den Feeder für Menüs? Mag vielleicht Fehler im Konzept sein ^^

Timo Trallala
22.06.2007, 11:20
Wie gesagt bin neu beim ZendFramework.

Es gibt da ja ein Blog-Tutorial zu einer älteren Version ...

Es geht doch eigentlich momentan nur um folgendes:

Es sollen diverse Daten - u.a. auch die Menues aus der datenbak ausgelesen und dargestellt werden.

So z.B. die menu-punkte Feeds

sind abgelegt in der tabelle 'feeds'. Diese sollen im View left_cont über eine Schleife dargestellt werden.
Allerdings nur solche, die den status 'active' haben. Es geht also nur erst mal um die Menu-generierung. Zur Darstellung hab ich bis dato immer simplepie verwendet. Aber soweit ich das mitbekommen habe, besitzt das FW ein eigenes Modul.

eine Verbindung zur Datenbank ist erstellt (boottrap)

Zend_Loader::loadClass('Zend_Db');
Zend_Loader::loadClass('Zend_Db_Table');

// load configuration
$config = new Zend_Config_Ini('./application/config.ini', 'general');
$registry = Zend_Registry::getInstance();
$registry->set('config', $config);

// setup database

$db = Zend_Db::factory($config->db->adapter,
$config->db->config->toArray());
Zend_Db_Table::setDefaultAdapter($db);
nun weiss ich momentan nicht wie es weiter gehen soll? Verwende die neueste version von ZF

Gruß
derTrallala

Timo Trallala
22.06.2007, 13:38
So ein weiter Schritt vorraus:

Mein Feed-Menu wird jetzt korrekt dargestellt

class IndexController extends Zend_Controller_Action
{
function init()
{
$this->view->baseUrl = $this->_request->getBaseUrl();
Zend_Loader::loadClass('Feeds');
}
function indexAction()
{

$feeds = new Feeds();
$this->view->feeds = $feeds->fetchAll();

$this->render();
}
}

<?php foreach ($this->feeds as $feeds):?>
<li class="f11_sc">
<a href="" title="">RSS: <?php echo $this->escape($feeds->rss_name);?></a>
</li>
<?php endforeach; ?>

jetzt weiss ich leider partout nicht weiter
Es geht um das Service menu. Das hab ich bisher so aus der DB geholt
$sql =
"SELECT mnu_level,mnu_id,mnu_childs,nav_linkname,nav_url,n av_field_name FROM navigation_menues
LEFT JOIN navigation_options ON nav_id=mnu_nav_id WHERE mnu_level='%d'
ORDER BY mnu_sort asc";
$result=$this->dao->query($sql,2);

Evt. könnte mir da ein schlauer Zendler ein bischen support geben
beste Grüße
derTrallala

Timo Trallala
22.06.2007, 19:34
So hab es jetzt folgendermaßen gelöst

class IndexController
extends Zend_Controller_Action
{
function init()
{
$this->view->baseUrl=$this->_request->getBaseUrl();
Zend_Loader::loadClass('Feeds');
Zend_Loader::loadClass('NavigationMenues');
}

function indexAction()
{
$feeds=new Feeds();
$this->view->feeds=$feeds->fetchAll();

/*
SELECT mnu_level,mnu_id,mnu_childs,nav_linkname,nav_url,n av_field_name FROM navigation_menues
LEFT JOIN navigation_options ON nav_id=mnu_nav_id WHERE mnu_level='%d' ORDER BY mnu_sort asc";*/

$tag=new NavigationMenues();
$db=$tag->getAdapter();
$select=$db->select();
$select->from('navigation_menues', '*');
$select->join('navigation_options', 'nav_id=mnu_nav_id');
$select->where('mnu_level = ?', '1');
$select->order('mnu_sort asc');

$menu=$db->fetchAll($select);warum funktioniert es so nicht
$select->from('navigation_menues', 'mnu_level, mnu_id', 'mnu_childs','nav_linkname','nav_url','nav_field_n ame');Kann ich denn nicht ein Model konstruieren, das schon verknüpfte daten liefert?

Ich nerv eigentlich sehr ungern ...

Gruß
derTrallala

budcha
22.06.2007, 22:42
schau mal im db manual unter "defining relationships" nach :) da wird dir erklärt wie du fk's um model umsetzt.