HomeCustom : last_articles, last_news, last_events [Réglé]
Mettre les derniers articles, news, événements sur le HomeCustom
Créations de Modules
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
Janus oui j'aurai besoin de toucher au module parce que j'aimerai bien faire ça aussi (surtout) sur le module Articles (et News) donc n'hésite pas t'inquiète après à chaque MAJ je modifierais le code c'est pas un soucis ça. Et on évitera de se prendre la tête avec ton code du HomeCustom qui est impeccable ! lolÉdité par jpalbert92 Le 15/03/2015 à 18h35
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
jpalbert92 :
Janus oui j'aurai besoin de toucher au module parce que j'aimerai bien faire ça aussi (surtout) sur le module Articles (et News) donc n'hésite pas t'inquiète après à chaque MAJ je modifierais le code c'est pas un soucis ça. Et on évitera de se prendre la tête avec ton code du HomeCustom qui est impeccable ! lol
Bonjour,
non tu as pas compris, ce que je te dit depuis un petit bout de temps et que tu n'aura jamais besoin de toucher au module pour y créer ta propre variable TPL.
Car déjà de 1 c'est inutile vu que les fonctions du module sont inclus dans le homecustom, de 2 tu va te faire chier à chaque fois qu'une MAJ va toucher le module et de 3 pourquoi créer un variable global à tout le module qui ne sera utilisé uniquement sur le homecustom (sa sert à rien concrètement).
Donc le plus simple, tu créer la variable TPL personnalité dans le homecustom et elle sera valable uniquement pour le homecustom, pas de gâchis.
Va voir le gist, il a été mis à jour

EDIT :
d'ailleurs normalement si tu t'inscrit sur github tu peu "forker" mon gist le modifier dans ton coin et soit le rendre public, soit privé et le partager (je trouve ça plus simple que de mettre à chaque fois les quelques centaines de lignes sur le forum et surtout on a un historique des changements).
Cordialement, janus57
Édité par janus57 Le 15/03/2015 à 18h55
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
janus57 :
et de 3 pourquoi créer un variable global à tout le module qui ne sera utilisé uniquement sur le homecustom (sa sert à rien concrètement).
Non justement, j'aimerais bien utiliser cette variable dans le module Articles (et News) et pas uniquement dans le HomeCustom. J'avais bien compris que tu ne parler que du HomeCustom (en même temps c'est le titre du Sujet tu me diras
) mais l'idée et de l'utiliser et pour le HomeCustom et pour le module News et pour le module Articles. Soit faudra bien que je modifie le code à chaque MAJ mais ce n'est pas un soucis ne t'inquiète pas. lolJe vais jeter un coup d'oeil au code que tu as partagé et l'inscription sera pour plus tard je prépare le Tuto pour PHPBoost là histoire de reprendre tous nos messages pour que le prochain intéressé ne cherche pas la solution pendant 2h.
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
jpalbert92 :
Non justement, j'aimerais bien utiliser cette variable dans le module Articles (et News) et pas uniquement dans le HomeCustom. J'avais bien compris que tu ne parler que du HomeCustom (en même temps c'est le titre du Sujet tu me diras
) mais l'idée et de l'utiliser et pour le HomeCustom et pour le module News et pour le module Articles. Soit faudra bien que je modifie le code à chaque MAJ mais ce n'est pas un soucis ne t'inquiète pas. lol
Non justement, j'aimerais bien utiliser cette variable dans le module Articles (et News) et pas uniquement dans le HomeCustom. J'avais bien compris que tu ne parler que du HomeCustom (en même temps c'est le titre du Sujet tu me diras
) mais l'idée et de l'utiliser et pour le HomeCustom et pour le module News et pour le module Articles. Soit faudra bien que je modifie le code à chaque MAJ mais ce n'est pas un soucis ne t'inquiète pas. lolPerso je dupliquerais le module articles (ce qui au passage me permet de le renommer entièrement pour le personnaliser encore un peu plus), comme ça je peu faire les MAJs sans avoir peur d'effacer mes modifs et en prime je peu continuer à modifier le module tout en appliquant les MAJs officiels à la main
Voilà pour moi la solution la plus simple à ce que tu cherche à faire

Cordialement, janus57
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014

Une fois le tutoriel fini je proposerais un lien sur cette page et vice-versa.
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
jpalbert92 :
Ok je vois ce que tu veux dire, effectivement astucieux l'astuce. Je le dupliquerais une fois le tutoriel fini (et ça fera l'objet d'un autre sujet si je rencontre une difficulté) en tout cas merci beaucoup Janus tu m'as enlevé une épine d'une pied là ! 
Une fois le tutoriel fini je proposerais un lien sur cette page et vice-versa.

Une fois le tutoriel fini je proposerais un lien sur cette page et vice-versa.
Bonjour,
y a déjà une doc sur la duplication de modules, donc pas de grosse difficulté normalement

Perso je mettrais le liens de ton tuto sur le gist et le passerais peut être en public (je sais pas encore).
EDIT :
Même si tu as pas finit le tuto tu peu déjà le poster dans le wiki et le finir plus tard, cela peu déjà permettre de te remonter certaines infos via MP.
Cordialement, janus57
Édité par janus57 Le 15/03/2015 à 19h28
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Oui j'irais jeter un coup d'oeil en temps voulu sur la duplication du module merci de l'infos ! lol
Ok ça marche pour le tuto je le posterais et je le finirais plus tard
.
Édité par jpalbert92 Le 15/03/2015 à 19h40
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
Citation :
Janus es-tu sur que la variable DATE_DAY_MONTH fonctionne bien ?
en local cela fonctionne à 100% chez moi.
Citation :
article 4 (cat 1)
article 4 (cat 1)
le :14 mars <== DATE_DAY_MONTH
par : janus57
article 4 (cat 1)
article 4 (cat 1)
le :14 mars <== DATE_DAY_MONTH
par : janus57
Cordialement, janus57
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
Je suis en local aussi est j'ai rien qui s'affiche... J'ai copié coller le code que tu as partagé (en pensant que c'était une erreur de manipulation de ma part) mais rien ne s'affiche.
C'est à dire ce code :
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(false); //passer à "true" pour désactiver $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() { //for the date setlocale(LC_ALL, 'french', 'fr_FR.UTF8', 'fr.UTF8', 'fr_FR.UTF-8', 'fr.UTF-8', 'fr_FR'); $this->build_articles_view($this->articles_results()); $this->build_news_view($this->news_results()); $this->build_events_view($this->events_results()); } private function articles_results() { $now = new Date(); $querier = PersistenceContext::get_querier(); $results = $querier->select('SELECT articles.*, member.*, com.number_comments, notes.average_notes, notes.number_notes, note.note, cat.rewrited_name AS rewrited_name_cat FROM ' . PREFIX . 'articles articles LEFT JOIN ' . PREFIX . 'articles_cats cat ON cat.id = articles.id_category LEFT JOIN ' . DB_TABLE_MEMBER . ' member ON member.user_id = articles.author_user_id LEFT JOIN ' . DB_TABLE_COMMENTS_TOPIC . ' com ON com.id_in_module = articles.id AND com.module_id = 'articles' LEFT JOIN ' . DB_TABLE_AVERAGE_NOTES . ' notes ON notes.id_in_module = articles.id AND notes.module_name = 'articles' LEFT JOIN ' . DB_TABLE_NOTE . ' note ON note.id_in_module = articles.id AND note.module_name = 'articles' AND note.user_id = :user_id AND (published = 1 OR (published = 2 AND publishing_start_date < :timestamp_now AND (publishing_end_date > :timestamp_now OR publishing_end_date = 0))) ORDER BY articles.date_created DESC LIMIT 3', array( 'user_id' => AppContext::get_current_user()->get_id(), 'timestamp_now' => $now->get_timestamp() )); return $results; } private function news_results() { $now = new Date(); $querier = PersistenceContext::get_querier(); $results = $querier->select('SELECT news.*, member.*, cat.rewrited_name AS rewrited_name_cat FROM ' . PREFIX . 'news news LEFT JOIN ' . PREFIX . 'news_cats cat ON cat.id = news.id_category LEFT JOIN ' . DB_TABLE_MEMBER . ' member ON member.user_id = news.author_user_id AND (approbation_type = 1 OR (approbation_type = 2 AND start_date < :timestamp_now AND (end_date > :timestamp_now OR end_date = 0))) ORDER BY news.creation_date DESC LIMIT 3', array( 'timestamp_now' => $now->get_timestamp() )); return $results; } private function events_results() { $now = new Date(); $today = strtotime(date("Y-m-d", $now->get_timestamp())); $querier = PersistenceContext::get_querier(); $results = $querier->select('SELECT * FROM '. PREFIX . 'calendar_events event LEFT JOIN ' . PREFIX . 'calendar_events_content event_content ON event_content.id = event.content_id LEFT JOIN ' . DB_TABLE_MEMBER . ' member ON member.user_id = event_content.author_id LEFT JOIN '. PREFIX . 'calendar_cats cat ON cat.id = event_content.id_category WHERE approved = 1 AND start_date >= :timestamp_now ORDER BY start_date LIMIT 3', array( 'timestamp_now' => $today )); return $results; } private function build_articles_view(SelectQueryResult $results) { // results send in articles.tpl $tpl = new FileTemplate('HomeCustom/articles.tpl'); while($row = $results->fetch()) { $article = new Article(); $article->set_properties($row); $tpl->assign_block_vars('articles_items', $article->get_tpl_vars()); // create a new custom TPL variable made with the help of $article $tpl->put_all(array( 'DATE_DAY_MONTH' => strftime('%d %b', $article->get_date_created()->get_timestamp()), )); } // "push" articles.tpl with # INCLUDE ARTICLES # in home.tpl $this->template->put('ARTICLES', $tpl); } private function build_news_view(SelectQueryResult $results) { // results send in news.tpl $tpl = new FileTemplate('HomeCustom/news.tpl'); while ($row = $results->fetch()) { $news = new News(); $news->set_properties($row); $tpl->assign_block_vars('news_items', $news->get_array_tpl_vars()); } // "push" news.tpl with # INCLUDE NEWS # in home.tpl $this->template->put('NEWS', $tpl); } private function build_events_view(SelectQueryResult $results) { // results send in events.tpl $tpl = new FileTemplate('HomeCustom/events.tpl'); foreach ($results as $row) { // if "rewrited_name" is empty it's root category (root) $row['rewrited_name'] = !empty($row['id_category']) ? $row['rewrited_name_cat'] : 'root'; // using the "CalendarUrlBuilder" to build link $link = CalendarUrlBuilder::display_event($row['id_category'], $row['rewrited_name'], $row['id_event'], $row['rewrited_title']); // here is the loop to correspond the row in database with the right TPL variable $tpl->assign_block_vars('events_items', array( 'U_LINK' => $link->absolute(), 'TITLE' => $row['title'], 'CONTENTS' => $row['contents'], 'PSEUDO' => $row['login'], 'LOCATION' => $row['location'], 'LAST_DATE' => $row['last_registration_date'], 'MAX_MEMBER' => $row['max_registered_members'], 'START_DATE' => strftime('%d/%m/%Y', $row['start_date']), 'END_DATE' => strftime('%d/%m/%Y', $row['start_date']), 'CAT' => $row['name'], 'START_DATE_FULL' => strftime('%d %B %Y', $row['start_date']), )); } // "push" events.tpl with # INCLUDE EVENTS # in home.tpl $this->template->put('EVENTS', $tpl); } } ?>
et l'ai déclarer avec : {articles_items.DATE_DAY_MONTH}
Édité par jpalbert92 Le 15/03/2015 à 20h01
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
jpalbert92 :EDIT : J'ai compris l'erreur ! il ne faut pas mettre articles_items. devant la variable ! Je suis une banane !
Je suis en local aussi est j'ai rien qui s'affiche... J'ai copié coller le code que tu as partagé (en pensant que c'était une erreur de manipulation de ma part) mais rien ne s'affiche.
Heu...
Normalement dans mon code c'est juste {DATE_DAY_MONTH}

EDIT :
Et pour info c'est juste {DATE_DAY_MONTH} car déclaré dans le HomeCustom, si tu déclare cette variable TPL dans le module ce sera {articles_items.DATE_DAY_MONTH}
Cordialement, janus57
Édité par janus57 Le 15/03/2015 à 20h05
Visiteur
Boosteur Inactif
Je suis ce topic depuis sa création, et je voulais savoir si on pouvait avoir un screen du rendu quand ça sera finalisé ?
Car le topic est un peu technique à suivre, et je suis sûr que le partage du code final et rendu final en intéresseront plus d'un
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
A vrai dire la visualisation, le coté esthétique est vraiment pas jolie. Ici on ne parle pas d'esthétique mais on cherche à avoir quelque chose de fonctionnel. C'est à dire que tu pourras utiliser toutes sorte de fonction grâce à ce sujet mais côté personnalisation graphique ça sera à toi de le faire. Tu vois ce que je veux dire ? C'est surtout du PHP et du MySQL qui est utilisé le HTML et CSS n'est pas du tout exploité lol
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
@Aufildariane : sur le code que je donne y a 0 esthétique c'est purement technique, la mise en forme est strictement minimale.
Après si tu souhaite un rendu y a @jpalbert92 qui a mis un petit screen avec une mise en forme.
Cordialement, janus57
jpalbert92 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre jpalbert92
- Inscrit le : 27/04/2014
J'essaierais de faire une impression de mon écran pour vous montrer ce qu'on peut faire.
Juste je fais ce petit post pour vous dire que la documentation n'est pas encore finie, mais est déjà en ligne ! Je la finirais plus tard que pour aujd ça suffit !

Une documentation est disponible à propos de ce sujet qui vous expliquera comment personnaliser votre page d'accueil.
LE LIEN EST => ICILe lien est présent au début du sujet !
Jpa92, don't panik !
Because I need a signature... You were supposed to know ! 

Visiteur
Boosteur Inactif
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Super boulot les gars

Olivier.
Olivier


Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie