module homecustom : appel de last news
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
Reprise du message précédent
Bonjour,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
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
La chose à l'air beaucoup plus compliqué que je ne l'imaginé... Je vais essayer encore de cherché en attendant d'avoir ton code parce que ça m'énerve de ne pas trouver je suis sur c'est un truc tout con qui me pose problème !
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

Visiteur
Boosteur Inactif
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014

PS : néanmoins tu traites les derniers articles selon leurs catégories c'est ce que j'ai du mal à enlever et reprendre pour toutes catégories confondue il doit y avoir une fonction intégrer dans php qui reprend tous les id_cat non ?
NB : Tu triches avec les URLS et j'aime pas trop cette option qui rend le site moins dynamique, or le but du php c'est de le rendre totalement dynamique mdr mais ça fonctionne effectivement lol
Édité par jpalbert92 Le 16/02/2015 à 23h28
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
Alors après avoir vu le topic d'Aufildariane et m'être basé sur les urls que Janus à pu m'expliqué j'ai essayer de faire le petit codage mais en local le résultat est une page blanche... J'ai touché le fond ça y est ! Mdr
Voilà le code du fichier .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(false); $columns_disabled->set_disable_top_central(false); $columns_disabled->set_disable_bottom_central(false); 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() { $id_cats = array('1'); $querier = PersistenceContext::get_querier(); $results_last_articles = $querier->select('SELECT id, id_category, title, description, date_created, picture_url, name user.login FROM ' . PREFIX . 'articles, ' . PREFIX . 'articles_cats LEFT JOIN ' . DB_TABLE_MEMBER . ' user ON user.user_id = author_user_id AND ' . PREFIX . 'articles.id_category.=' . PREFIX . 'articles.articles_cats WHERE published = 1 ORDER BY timestamp DESC'); $this->build_last_article_view($results_last_articles); private function build_last_articles_view(SelectQueryResult $results) { $tpl = new FileTemplate('HomeCustom/last_articles.tpl'); $i = 0; foreach ($results as $row) { if ($i >= 3) { break; } $link = new Url('/articles/' . url($row['id_cats'] . '-' . url($row['name'] . '/' . url($row['id'] . '-' . Url::encode_rewrite($row['title']) . '/')); $tpl->assign_block_vars('item', array( 'U_LINK' => $link->absolute(), 'U_IMG' => Url::to_absolute($row['picture_url']), 'C_IMG' => !empty($row['picture_url']), 'TITLE' => $row['title'], 'DESC' => $row['description'], 'PSEUDO' => $row['login'] )); $i++; } $this->template->put('last_articles', $tpl); } } ?>
Celui de last_articles.tpl :
Code TPL :
<div style="display:flex;"> # START last_articles # <div class="center" style="width:25%;"> <a href="{last_articles.U_LINK}"> # IF last_articles.C_IMG # <img src="{last_articles.U_IMG}" title="{last_articles.TITLE}" alt="{last_articles.TITLE}" /> # ENDIF # </a> <a href="{last_articles.U_LINK}">{last_articles.TITLE}</a> </div> # END last_articles # </div>
et enfin celui du home.tpl :
Code TPL :
Quelqu'un pourrait m'indiquer mon erreur s'il vous plait?
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Code PHP :
public function execute(HTTPRequestCustom $request) { }
Edit : Mal lu, ma réponse est fausse.
Par contre tu n'as pas fermé ta méthode build_view, il te manque une accolade.
Édité par Dramaturge Le 17/02/2015 à 21h57
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Déjà je te remercie de ton implication. Neanmoins, pourrais-tu m'en dire un peu plus au sujet de cette balises ? Je pense que c'est pour gérer si on est en en écriture ou non des URLS ? Mais comment utilisé cette balise ? Parce que j'ai rajouté bêtement ces 3 lignes de codes pour voir ce que ça me donné, et toujours une page blanche.
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Il te manque simplement une accolade à la fin de ta méthode build_view afin de la fermer
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
si tu as pas un IDE PHP pu un logiciel qui fait de la bonne coloration syntaxique poste ton code en entier sur ce site : http://fr.piliapp.com/php-syntax-check/
Résultat : Parse error: syntax error, unexpected 'private' (T_PRIVATE) in CODE on line 68
Errors parsing CODE
Ce qui donne en corrigé :
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(false); $columns_disabled->set_disable_top_central(false); $columns_disabled->set_disable_bottom_central(false); 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() { $id_cats = array('1'); $querier = PersistenceContext::get_querier(); $results_last_articles = $querier->select('SELECT id, id_category, title, description, date_created, picture_url, name user.login FROM ' . PREFIX . 'articles, ' . PREFIX . 'articles_cats LEFT JOIN ' . DB_TABLE_MEMBER . ' user ON user.user_id = author_user_id AND ' . PREFIX . 'articles.id_category.=' . PREFIX . 'articles.articles_cats WHERE published = 1 ORDER BY timestamp DESC'); $this->build_last_article_view($results_last_articles); } private function build_last_articles_view(SelectQueryResult $results) { $tpl = new FileTemplate('HomeCustom/last_articles.tpl'); $i = 0; foreach ($results as $row) { if ($i >= 3) { break; } $link = new Url('/articles/' . url($row['id_cats'] . '-' . url($row['name'] . '/' . url($row['id'] . '-' . Url::encode_rewrite($row['title']) . '/')))); $tpl->assign_block_vars('item', array( 'U_LINK' => $link->absolute(), 'U_IMG' => Url::to_absolute($row['picture_url']), 'C_IMG' => !empty($row['picture_url']), 'TITLE' => $row['title'], 'DESC' => $row['description'], 'PSEUDO' => $row['login'] )); $i++; } $this->template->put('last_articles', $tpl); } } ?>
EDIT :
Par contre j'ai un gros doute sur $link, perso je dirais qu'il est faux :/
Cordialement janus57
Édité par janus57 Le 17/02/2015 à 22h07
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Eh mince j'aime pas vous déranger pour un truc bête comme ça !! Merci de ta réponse Dramaturge et t'inquiète tout le monde à le droit de se tromper mdr.
Ah super ton site pour regarder si la syntaxe est bonne Janus, je le garde sous la main. Néanmoins une fois le "bon" code insérer il m'indique que les balise name et une autre est ambiguë je pense qu'il faut donc préciser la table d'origine (ce qui est d'ailleurs une erreur de la part de phpboost puisque toute propriété doit être unique et le fait de définir l'entité d'origine ne devrait pas se faire car ça alourdi le code et rend cette technique obsolète sur une question d'optimisation, cf. mes cours de sql, mcd et mrd). Bref après avoir placé
Code PHP :
il m'affiche un problème au niveau de ma jointure : ' . PREFIX . 'articles_cats.name
Code SQL :
AND ' . PREFIX . 'articles.id_category.=' . PREFIX . 'articles.articles_cats
En effet, j'ai appris le langage sql brut donc je me dis que peut être en php on la déclare pas de la même façon en voyant le LEFT JOIN ... ON = ... . En faisant des recherche il existe des RIGHT JOIN et d'autres différent aussi donc je ne sais trop lequel utiliser, avez-vous une réponse ?
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
voilà comme dit sur l'autre topic, le merci pour m'avoir mis sur la piste du "contournement"


P.S. oui tu peu cliquer sur l'image

P.S.2 vu l'heure je garantie pas que le code soit optimale à 100%, mais il fonctionne très bien car je l'ai testé sur mon nouveau site de test en V4.1.4
Cordialement, janus57
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Ah mais t'inquiète le forum est fait pour s'aider mutuellement

Waaaa super !!! Merci beaucoup tu gères !! maintenant que j'ai la base je vais l'améliorer, le faire pour le module news et calendrier pour récupérer les événements puis je partagerais sur le forum merci beaucoup en tout cas !!
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
si tu bloque n'hésite pas à faire ton propre sujet (plus simple pour les recherches
).Cordialement, janus57
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie