Bonjour,
Voilà un moment que je n'ai plus mis les pied sur CakePHP et je dois m'y remettre. Je dois faire un changement un peu urgent concernant un flux RSS.
J'extrais des informations d'une base de donnée et je l'affiche en flux RSS
Voici le code de mon controller
/**
* Feed RSS
**/
function feed($id=null){
if($id==null){
$id = 0;
} else if( $id == 0){
if($this->RequestHandler->isRss()){
$d['user'] = $this->User->find('all',array(
'limit'=>100,
'conditions' => array(
'User.former'=>1
)
));
}
}else{
if($this->RequestHandler->isRss()){
$d['user'] = $this->User->find('all',array(
'limit'=>100,
'conditions' => array(
'User.id'=>$id
)
));
}
}
return $this->set($d);
}
et voici le code de mon fichier feed.cpt
<?php
$this->set('channelData', array(
'title' => __('Users interest'),
'link' => $this->Html->url(array('controller'=>'users','action'=>'index'), true), // Le true ajout l'URL absolue
'description' => __("Flux User interest"),
'language' => 'fr-fr')
);
foreach($user as $k=>$v){ $v = current($v);
if($v['former'] == 1)
{
$description = "former ".$v['fonction_id'];
}
else
{
$description = "<img src='http://www.site.ites.ddd.ch/files/Images/People/".$v['id'].".jpg' style='width:150px;float:left;margin-right:20px;margin-bottom:10px;' />eeeee".$v['interest'];
}
echo $this->Rss->item(array(), array(
'title' => $v['firstname'].' '.$v['lastname'],
'link' => $this->Html->url('http://www.site.ites.ddd.ch/users/index/'.$v['id'], false),
'guid' => array('url' => $this->Html->url('/', true), 'isPermaLink' => 'false'), // Le lien permanent
'description' => $description,
// 'pubDate' => $v['created']
'pubDate' => "2014-09-23" // This is hidden from the CQ5 web site
));
}
Cette partie affiche en fait un id
if($v['former'] == 1)
{
$description = "function: ".$v['fonction_id'];
}
qui fait le lien avec ma table fonctions qui contient seulement deux colonnes : id et name.
Pour le moment ca m'affiche "function: 4", ou "function: 2",
Mais j'aimerais avoir "function : secretary", ou "function: administrator".
Je ne sais pas pourquoi, mais pour admin_edit(), ca fonctionne, mais pas pour feed().
Merci pour vos lumières
En fait, j'ai trouvé. J'ai ajouté
$this->loadModel('Fonction');
$d['fonctions'] = $this->Fonction->find('list',array('order'=>'name ASC'));
function feed($id=null){
if($id==null){
$id = 0;
} else if( $id == 0){
if($this->RequestHandler->isRss()){
$d['user'] = $this->User->find('all',array(
'limit'=>100,
'conditions' => array(
'User.former'=>1
)
));
$this->loadModel('Fonction');
// Le list recupere la valeur des IDs et cherche un champs qui a la valeur "name"
$d['fonctions'] = $this->Fonction->find('list',array('order'=>'name ASC'));
}
}else{
if($this->RequestHandler->isRss()){
$d['user'] = $this->User->find('all',array(
'limit'=>100,
'conditions' => array(
'User.id'=>$id
)
));
}
}
Bonjour.
Puisque ton problème est solutionné, marques le sujet comme résolu sur ton dernier post.