module homecustom : appel de last news
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Reprise du message précédent
Bonjour,J'ai un petit soucis avec le code que Reidlos à passer, je m'explique : Je copie le code dans le fichier recommander et j'ai un message d'erreur qui s'affiche :
Code TEXT :
Sorry, we encountered a problem and we cannot complete your request...
Quelqu'un aurait une solution pour résoudre ce problème s'il vous plait ?
Merci, Jpa92.
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

babsolune Membre non connecté
-
Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
-
Equipe Développement
http://www.phpboost.com//wiki/homecustom-ajout-d-elements-recuperes-dans-la-base-de-donnee
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Ma dernière version la plus semblable selon moi est :
Code PHP :
<?php /*################################################## * HomeCustomHomePageExtensionPoint.class.php * ------------------- * begin : August 25, 2012 * copyright : (C) 2012 Kevin MASSY * email : kevin.massy@phpboost.com * * ################################################### * * 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() { $columns_disabled = Environment::get_graphical_environment()->get_columns_disabled(); $columns_disabled->set_disable_left_columns(true); $columns_disabled->set_disable_right_columns(true); $columns_disabled->set_disable_top_central(true); $columns_disabled->set_disable_bottom_central(true); 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(); return $this->template; } private function build_view() { $querier = PersistenceContext::get_querier(); $results = $querier->select(' SELECT id, title, contents, timestamp, img, user_id FROM ' . PREFIX . 'blog WHERE visible = 1 ORDER BY timestamp DESC LIMIT 3'); $this->build_modules_view($results); } private function build_modules_view(SelectQueryResult $results) { $tpl = new FileTemplate('HomeCustom/modules.tpl'); $i = 0; foreach ($results as $row) { if ($i >= 3) { break; } $link = new Url('/blog/blog.php?id=' . $row['id']); $date = new Date(DATE_TIMESTAMP, TIMEZONE_AUTO, $row['timestamp']); $tpl->assign_block_vars('item', array( 'U_LINK' => $link->absolute(), 'U_IMG' => Url::to_absolute($row['image']), 'C_IMG' => !empty($row['image']), 'TITLE' => $row['title'], 'DESC' => $row['short_contents'], 'PSEUDO' => $row['login'] )); $i++; } $this->template->put('MODULES', $tpl); } } ?>
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
quel sont les erreurs ? testé sur un site en ligne ou local ?
Si c'est un site local je conseil l'activation du débug, et si c'est un site en ligne je conseil de passer en local.
Cordialement, janus57
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Je suis actuellement en local l'activation de débug c'est quoi en fait ? Je ne comprends ce qui changerai et surtout comment l'activer ?
Et je voulais savoir si mon code php est juste puisque je ne suis pas un expert sur php...
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
comme ça la syntaxe (PHP) du code est juste, après donner un bout de code sans explication c'est très subjectif, mais visiblement il va chercher les infos dans PREFIX.blog
Après je pourrais pas en dire plus vu que y a pas de module "blog" dans PHPBoost et encore moins en non MVC (d'après le lien).
Citation :
Je suis actuellement en local l'activation de débug c'est quoi en fait ? Je ne comprends ce qui changerai et surtout comment l'activer ?
Cela sert à avoir de très important détails lors d'erreurs et cela s'active dans l'administration.
En tout cas sans détails ou sans savoir ce que vous comptez faire, dans l'absolu le code ne présente pas d'erreur de syntaxe, mais de là à dire qu'il va fonctionner c'est pas possible.
Cordialement, janus57
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Bonjour Janus,
Au temps pour moi Janus comme un âne j'ai pas pensé a renommé blog en news car c'est sur le module news que je souhaite utilisé ça et sur le module article aussi et c'est grâce à la fonction Debug que je l'ai remarqué merci bien.
Néanmoins, maintenant je n'ai plus aucune erreur mais aucun résultat ne s'affiche...
ça ne marche jamais du premier coup mdr !HomeCustomHomePageExtensionPoint.class.php
Code PHP :
<?php /*################################################## * HomeCustomHomePageExtensionPoint.class.php * ------------------- * begin : August 25, 2012 * copyright : (C) 2012 Kevin MASSY * email : kevin.massy@phpboost.com * * ################################################### * * 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() { $columns_disabled = Environment::get_graphical_environment()->get_columns_disabled(); $columns_disabled->set_disable_left_columns(true); $columns_disabled->set_disable_right_columns(true); $columns_disabled->set_disable_top_central(true); $columns_disabled->set_disable_bottom_central(true); 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(); return $this->template; } private function build_view() { $querier = PersistenceContext::get_querier(); $results = $querier->select(' SELECT id, name, short_contents, creation_date, picture_url, author_user_id FROM ' . PREFIX . 'news WHERE approbation_type=1 ORDER BY creation_date DESC LIMIT 3'); $this->build_modules_view($results); } private function build_modules_view(SelectQueryResult $results) { $tpl = new FileTemplate('HomeCustom/feed_news.tpl'); $i = 0; foreach ($results as $row) { if ($i >= 3) { break; } $link = new Url('/news/news' . url('.php?id=' . $row['id'], '-' . $row['id'] . '+' . Url::encode_rewrite($row['name']) . '.php')); $date = new Date(DATE_TIMESTAMP, TIMEZONE_AUTO, $row['creation_date']); $tpl->assign_block_vars('feed_news', array( 'U_LINK' => $link->absolute(), 'U_IMG' => Url::to_absolute($row['picture_url']), 'C_IMG' => !empty($row['picture_url']), 'TITLE' => $row['name'], 'DESCR' => $row['short_contents'], 'AUTHOR' => $row['author_user_id'] )); $i++; } $this->template->put('feed_news', $tpl); } } ?>
feed_news.tpl
Code HTML :
# START feed_news # <div class="votre classe CSS"> <a href="{feed_news.U_LINK}"> <p class="lm_img_container"> # IF feed_news.C_IMG # <img src="{feed_news.U_IMG}" title="{feed_news.TITLE}" alt="{feed_news.TITLE}" class="votre classe CSS" /> # ENDIF # </p> </div> <p class="votre classe CSS">{feed_news.TITLE}</p> <p class="votre classe CSS">{feed_news.DESCR}</p> <p class="votre classe CSS"> par : <span>{feed_news.AUTHOR}</span></p> </a> </div> # END feed_news #
Home.tpl
Édité par jpalbert92 Le 14/02/2015 à 11h35
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
vous souhaitez récupérer les dernière news ?
Si oui suffit simplement de reprendre le code complet du wiki : http://www.phpboost.com/wiki/homecustom-ajout-d-elements-recuperes-dans-la-base-de-donnee
Et d'adapter au module news et de surtout pas faire de mix de code, ici votre code ne va rien retourner dans "feed_news.tpl" car ce template n'a jamais été déclaré.
Et dans "Home.tpl" y aura rien non plus car le HTML aurait du être de la forme (faut adapter les variables) :
Code TPL :
# START feed_news # <div class="votre classe CSS"> <a href="{item.U_LINK}"> <p class="lm_img_container"> # IF item.C_IMG # <img src="{item.U_IMG}" title="{item.TITLE}" alt="{item.TITLE}" class="votre classe CSS" /> # ENDIF # </p> </div> <p class="votre classe CSS">{item.TITLE}</p> <p class="votre classe CSS">{item.DESC}</p> <p class="votre classe CSS"> par : <span>{item.PSEUDO}</span></p> </a> </div> # END feed_news #
Et après je sais pas si on peu faire l'include vu les noms utilisé :/
Cordialement, janus57
Édité par janus57 Le 14/02/2015 à 12h28
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Citation :
ici votre code ne va rien retourner dans "feed_news.tpl" car ce template n'a jamais été déclaré.
A quoi me sert cette ligne alors ? Que siginifie déclarer peut être que j'ai mal compris aussi.
Code PHP :
$this->template->put('feed_news', $tpl);
De plus j'ai bien remplacer les "items" par "feed_news" dans le fichier .php aussi donc pourquoi je devrais dans le Home.tpl mettre des variables {item.XXX} et non pas des {feed_news.XXX} ?
Merci du temps que tu m'accordes pour répondre à mes questions en tout cas Janus !
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
regardez le code d'exemple :
Code PHP :
$this->template->put('MODULES', $tpl);
Plus loin dans le lien on vois ceci :
Citation :
Finalement, il faut appeler ce second tpl dans le tpl principal home.tpl
Pour cela, il suffit d'ajouter Code TPL :
dans le fichier home.tpl à l'endroit souhaité.
Finalement, il faut appeler ce second tpl dans le tpl principal home.tpl
Pour cela, il suffit d'ajouter Code TPL :
Code TPL :
# INCLUDE MODULES #
dans le fichier home.tpl à l'endroit souhaité.
Tu coup je pense que maintenant vous voyez la corrélation
Citation :
De plus j'ai bien remplacer les "items" par "feed_news" dans le fichier .php aussi donc pourquoi je devrais dans le Home.tpl mettre des variables {item.XXX} et non pas des {feed_news.XXX} ?
non les variables sont effectivement correcte à première vue (sauf que pour le U_LINK qui n'utilise pas le bon format d'URL à première vue).
Ce qui pose problème c'est que vous mettez ce code dans "feed_news.tpl" qui n'a jamais déclaré et donc ne sera jamais utilisé.
Donc il faut mettre ce code dans "home.tpl" tout simplement.
Cordialement, janus57
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Excuse moi pour la réponse tardive mais j'ai fais plusieurs essai en vain.
En fait, j'ai d'abord simplement ajouter ce code à la page Home.tpl, ce qui m'a affiché
Code TPL :
# INCLUDE MODULES #
Code HTML :
Ensuite tu m'as expliqué que la page feed_news.tpl n'a pas été déclaré du coup j'ai mis ce code dans le Home.tpl et ça n'a toujours pas fonctionné, aucun résultat ne s'affiché. Peut être que je ne sais pas comment déclarer feed_news ? Comment puis-je m'y prendre ?
J'aimerais bien que vous me passez le code que je dois insérer dans la page .php et celle du .tpl pour ce qui concerne le module news et je me chargerai de faire de même pour le module calendrier et article et je pourrais le partager sur le forum afin que d'autres membres l'utilisent s'il vous plait car j'ai l'impression de tourner autour du pot sans parvenir au résultat voulu
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
la doc du wiki a été faite pour la version 4.1 qui est la dernière

Je vais voir pour te faire un code d'exemple + archive qui récupère les news.
Mais je sais pas quand j'arriverais à le faire.
Cordialement, janus57
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
En tout cas merci de ton implication Janus57 !!
Édité par jpalbert92 Le 16/02/2015 à 19h57
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
pour le template a déclarer c'est dans le code du wiki

Sinon pour les lien (juste lien pas MVC) il faut bien que les liens match avec les liens de la news existante non ?
Car si je reprend ton code :
Code PHP :
$link = new Url('/news/news' . url('.php?id=' . $row['id'], '-' . $row['id'] . '+' . Url::encode_rewrite($row['name']) . '.php'));
Le lien généré sera de la forme : /news/news.php?id=id-id-name.php
Hors en V4.1 les liens sont soit de la forme : /news/idcategory-namecategory/idnews-namenews/
OU
/news/?url=/idcategorie-namecategory/idnews-namenews /
idcategorie = id de la catégorie
namecategory = nom de la catégorie
idnews = id de la news
namenews = nom de la news
Après la différence entre les 2 c'est avec et sans réécriture des URLs.
Cordialement, janus57
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
