Sujet : Hoa_View & manipulation de tableaux
Bonjour à tous!
J'ai une première question sur les variables que l'on passe à la vue ($this->view->__)
Jusqu'à présent tout fonctionnait très bien, et là je suis face à une variable récalcitrante!
je vous livre le code complet du module:
<?php
import('Database.Dal.~');
/**
* On se connecte à notre base de données.
*/
$db = Hoa_Database_Dal::getInstance(
'mysql',
Hoa_Database_Dal::PDO,
'mysql:host=localhost;dbname=****',
'root',
'****'
);
class MediasController extends Hoa_Controller_Action_Standard {
public function PhotosAction(){
$this->view->pageNumber = 14;
echo $this->view->render();
}
public function VideosAction(){
$this->view->playerFlv='<object type="application/x-shockwave-flash" data="'.PUBLIC_URL.'Medias/dewtube.swf" width="657" height="389" id="dewtube">'.
'<param name="allowFullScreen" value="true" />'.
'<param name="movie" value="dewtube.swf" />'.
'<param name="quality" value="high" />'.
'<param name="bgcolor" value="#000000" />'.
'<param id="videourl" name="flashvars" value="movie=%1$s&width=657&height=389&autostart=%2$s" />'.
'</object>';
$this->view->playerDailymotion='<object width="657" height="389">'.
'<param name="movie" value="http://www.dailymotion.com/swf/%1$s&autoPlay=%2$s"></param>'.
'<param name="allowFullScreen" value="true"></param>'.
'<param name="allowScriptAccess" value="always"></param>'.
'<embed src="http://www.dailymotion.com/swf/%1$s&autoPlay=%2$s" type="application/x-shockwave-flash" width="657" height="389" allowfullscreen="true" allowscriptaccess="always"></embed>'.
'</object>';
$this->view->playerYoutube='<object width="657" height="389">'.
'<param name="movie" value="http://www.youtube.com/v/%1$s&hl=fr_FR&autoplay=%2$s"></param>'.
'<param name="allowFullScreen" value="true"></param>'.
'<param name="allowscriptaccess" value="always"></param>'.
'<embed src="http://www.youtube.com/v/%1$s&hl=fr_FR&autoplay=%2$s" type="application/x-shockwave-flash" width="657" height="389" allowscriptaccess="always" allowfullscreen="true"></embed>'.
'</object>';
$db = Hoa_Database_Dal::getLastInstance();
$statement = null;
try {
$statement = $db->query(
'SELECT
v.id_video,
v.url,
v.nom,
v.nom_url,
v.description,
v.type,
c.nom AS nom_categorie
FROM
videos AS v
JOIN
categories AS c
ON
v.id_categorie=c.id_categorie'
);
$videoListSql = $statement->fetchAll();
}
catch ( Hoa_Database_Dal_Exception $e ) {
$statement->closeCursor();
}
$tmp=array();
$this->view->videoList=array();
foreach($videoListSql as $entry){
$url=($entry['type']=='flv' ? PUBLIC_URL.'Medias/Videos/':'').$entry['url'];
$id_video=(int)$entry['id_video'];
$this->view->videoList[$id_video]=array(
'name'=>$entry['nom'],
'nameUrl'=>$entry['nom_url'],
'type'=>$entry['type'],
'url'=>$url
);
$tmp[]=$id_video.':{\'url\':\''.$url.'\',\'type\':\''.$entry['type'].'\'}';
}
$this->view->videoListJs='{'.implode(',',$tmp).'}';
var_dump($this->view->videoList);
$params = $this->getParameters();
if(!empty($params['data.array']['idVideo'])){
$videoId = (int)$params['data.array']['idVideo'];
$autostart = 1;
}
else {
$videoId = 1;
$autostart = 0;
}
switch($this->view->videoList[$videoId]['type']){
case 'dailymotion':
$player = $this->view->playerDailymotion;
break;
case 'youtube':
$player = $this->view->playerYoutube;
break;
default:
$player = $this->view->playerFlv;
break;
}
$this->view->player=sprintf($player,$this->view->videoList[$videoId]['url'],$autostart);
$this->view->pageNumber = 15;
echo $this->view->render();
}
}Pour toute les variables (pageNumber,videoListJs, etc...) tout fonctionne, mais le var_dump() de ma variable $this->view->videoList reste invariablement null... (le comble pour une variable... :-° )
Je ne sais pas si c'est à cause des clés de tableau que j'essaye de définir?
Merci d'avance pour les réponses ![]()
Dernière fois dit par jojolapine (27 Jan. 2010 21:50)