Aide générale [Réglé] HomeCustom, plusieurs requête sur les news
Bonjour à tous !
Me voilà de retour sur le forum !
Je suis en train de créer un site en utilisant PHPBoost 4.1, et j'ai décidé de me baser sur le framework Bootstrap, et je vous demanderais de garder votre avis pour vous car beaucoup de monde trouve ce framework trop classique, mais bien utilisé, il peut donner un site très beau et facilement modifiable.
A ce niveau tout ce passe bien, sauf que je me lance maintenant dans la création d'une page d'accueil avec HomeCustom. Je n'es jamais vraiment étudié les modules de PHPBoost, mise à part les templates. ^^
Mon but:
Créer un caroussel, qui affichera les 3 dernières news de la catégorie "important" (id: 2)
Et en dessous afficher les 4 dernières news de tous les site (importantes et pas importantes)
Sauf que ma requête ne marche pas...
J'ai essayer de modifier une des variables qui est ensuite envoyé dans la template, et si je met du texte directement ça marche. C'est donc bien la requête qui ne récupère rien..
Je vous demande donc de l'aide.. :P
Voici mes fichiers:
HomeCustomHomePageExtensionPoint.class.php
home.tpl:
news.tpl:
items.tpl:
Cordialement, Navalex.
Me voilà de retour sur le forum !
Je suis en train de créer un site en utilisant PHPBoost 4.1, et j'ai décidé de me baser sur le framework Bootstrap, et je vous demanderais de garder votre avis pour vous car beaucoup de monde trouve ce framework trop classique, mais bien utilisé, il peut donner un site très beau et facilement modifiable.
A ce niveau tout ce passe bien, sauf que je me lance maintenant dans la création d'une page d'accueil avec HomeCustom. Je n'es jamais vraiment étudié les modules de PHPBoost, mise à part les templates. ^^
Mon but:
Créer un caroussel, qui affichera les 3 dernières news de la catégorie "important" (id: 2)
Et en dessous afficher les 4 dernières news de tous les site (importantes et pas importantes)
Sauf que ma requête ne marche pas...
J'ai essayer de modifier une des variables qui est ensuite envoyé dans la template, et si je met du texte directement ça marche. C'est donc bien la requête qui ne récupère rien..
Je vous demande donc de l'aide.. :P
Voici mes fichiers:
HomeCustomHomePageExtensionPoint.class.php
Code PHP :
<?php /*################################################## * HomeCustomHomePageExtensionPoint.class.php * ------------------- * begin : August 25, 2012 * copyright : (C) 2012 Kevin MASSY * email : [email protected] * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ class HomeCustomHomePageExtensionPoint implements HomePageExtensionPoint { private $template; public function get_home_page() { return new DefaultHomePage($this->get_title(), $this->get_view()); } private function get_title() { return LangLoader::get_message('title', 'common', 'HomeCustom'); } private function get_view() { $this->template = new FileTemplate('HomeCustom/home.tpl'); $this->build_view_item(); $this->build_view_news(); return $this->template; } //############################################# //# Séléction des 3 dernières news importante # //############################################# private function build_view_item() { $id_cats_item = array('2'); $querier_item = PersistenceContext::get_querier(); $results_item = $querier_item->select('SELECT cat.id, cat.rewrited_name, news.id, news.rewrited_name, news.picture_url, news.name, news.short_contents FROM ' . PREFIX . 'news news LEFT JOIN ' . PREFIX . 'news_cats cat ON cat.id = news.id_category WHERE news.id_category IN (' . implode(', ', $id_cats_item) . ') ORDER BY news.creation_date DESC'); $this->build_modules_view_item($results_item); } private function build_modules_view_item(SelectQueryResult $results_item) { $tpl_item = new FileTemplate('HomeCustom/items.tpl'); foreach ($results_item as $row_item) { if ($i_item >= 3) { break; } if($i_item==1){$class_item="item active";} else{$class_item="item";} $link_item = new Url('/news/' . $row_item['cat.id'] . '-' . $row_item['cat.rewrited_name'] . '/' . $row_item['news.id'] . '-' . $row_item['news.rewrited_name']); $tpl_item->assign_block_vars('item', array( 'U_LINK' => $link_item->absolute(), 'U_IMG' => Url::to_absolute($row_item['news.picture_url']), 'TITLE' => $row_item['news.name'], 'SHORT_CONTENT' => $row_item['news.short_contents'], 'CLASS' => $item_class )); $i_item++; } $this->template->put('ITEMS', $tpl_item); } //################################## //# Selection des 4 dernières news # //################################## private function build_view_news() { $id_cats_news = array('1', '2'); $querier_news = PersistenceContext::get_querier(); $results_news = $querier_news->select('SELECT cat.id, cat.rewrited_name, news.id, news.rewrited_name, news.picture_url, news.name, news.short_contents FROM ' . PREFIX . 'news news LEFT JOIN ' . PREFIX . 'news_cats cat ON cat.id = news.id_category WHERE news.id_category IN (' . implode(', ', $id_cats_news) . ') ORDER BY news.creation_date DESC'); $this->build_modules_view_news($results_news); } private function build_modules_view_news(SelectQueryResult $results_news) { $tpl_news = new FileTemplate('HomeCustom/news.tpl'); foreach ($results_news as $row_news) { if ($i_news >= 4) { break; } $link_news = new Url('/news/' . $row_news['cat.id'] . '-' . $row_news['cat.rewrited_name'] . '/' . $row_news['news.id'] . '-' . $row_news['news.rewrited_name']); $tpl_news->assign_block_vars('news', array( 'U_LINK' => $link_news->absolute(), 'U_IMG' => Url::to_absolute($row_news['news.picture_url']), 'TITLE' => $row_news['news.name'], 'SHORT_CONTENT' => $row_news['news.short_contents'] )); $i_news++; } $this->template->put('NEWS', $tpl_news); } } ?>
home.tpl:
Code TPL :
<div class="panel panel-info"> <div class="panel-heading"> <h1 class="panel-title">News importantes</h1> </div> <div id="news_slider" class="carousel slide" data-ride="carousel"> <!-- Indicators --> <ol class="carousel-indicators"> <li data-target="#news_slider" data-slide-to="0" class="active"></li> <li data-target="#news_slider" data-slide-to="1"></li> <li data-target="#news_slider" data-slide-to="2"></li> </ol> <!-- Wrapper for slides --> <div class="carousel-inner" role="listbox"> # INCLUDE ITEMS # </div> <!-- Controls --> <a class="left carousel-control" href="#news_slider" role="button" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#news_slider" role="button" data-slide="next"> <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> </div> <div class="row"> <div class="col-sm-4"> <div class="panel panel-default"> <div class="panel-heading"> <h1 class="panel-title">Twitter</h1> </div> <div class="panel-body"> <a class="twitter-timeline" href="https://twitter.com/ArkemisMG" data-widget-id="546351639968636928" data-chrome="noheader nofooter noscrollbar noborders transparent">Tweets de @ArkemisMG</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> </div> </div> </div> <div class="col-sm-4"> <div class="panel panel-default"> <div class="panel-heading"> <h1 class="panel-title">Rejoins Nous !</h1> </div> <div class="panel-body"> <p align="center"> Rejoins nous sur le serveur à l'adresse <br /><br /> <a><strong>mc.arkemis.fr</strong></a> </p> </div> </div> </div> <div class="col-sm-4"> <div class="panel panel-default"> <div class="panel-heading"> <h1 class="panel-title">Derniers Posts</h1> </div> <div class="panel-body"> Contenu </div> </div> </div> </div> <div class="row"> # INCLUDE NEWS # </div>
news.tpl:
Code TPL :
# START news # <div class="col-md-6"> <div class="thumbnail"> <a href="{news.U_LINK}" class="thumbnail"> <img src="{news.U_IMG}" title="{news.TITLE}" alt="{news.TITLE}" /> </a> <div class="caption"> <h3>{news.TITLE}</h3> <p>{news.SHORT_CONTENT}</p> <p><a href="{news.U_LINK}" class="btn btn-primary" role="button">Voir toute la news</a></p> </div> </div> </div> # END news #
items.tpl:
Code TPL :
Cordialement, Navalex.
Autant pour moi, je viens de trouver la solution:
Et on appel ensuite cat.rewrited_name par rewrited_name_cat dans la variable.
Code SQL :
SELECT news.id, news.id_category, news.name, news.rewrited_name, news.short_contents, news.creation_date, news.picture_url, cat.rewrited_name AS rewrited_name_cat
Et on appel ensuite cat.rewrited_name par rewrited_name_cat dans la variable.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie