forum

Créations de Modules » [HomeLanding] Page d'accueil personnalisée avec administration version finale

Modérateur

rank_modo.png

Avatar

Equipe Graphique

Inscrit le: 16/05/2008

Messages: 2270

Le 04/03/2016 à 11h05
Nom du module : HomeLanding
Description : Afficher une page d'accueil personnalisée paramétrable depuis l'administration

Téléchargement : HomeLanding

Configuration : l'administration du module se trouve dans l'onglet Contenu
  • Gestion de l'affichage des colonnes de menus (gauche - droite - central haut - central bas - sur pied de page)
  • Gestion du titre du module
  • Gestion de l'affichage d'un carrousel paramétrable
  • Gestion de l'affichage d'un édito
  • Gestion de l'affichage des derniers commentaires (nombre de coms + nombre de caractères/com)
  • Gestion de l'affichage d'un fil rss d'un site externe

Affichage d'un module complet sans distinction de catégorie : Articles - Calendrier(événements) - Contact - Téléchargement - Forum - Galerie - Livre d'or - Multimédia - News - Liens web(partenaires)
  • Gestion de l'affichage
  • Gestion du nombre d'entrées (max 100)
  • Gestion du nombre de caractères par entrée (max 512)

Affichage d'une seule catégorie d'un module : Articles - Téléchargement - News - Liens web(partenaires)
  • Gestion de l'affichage
  • Gestion du choix de la catégorie
  • Gestion du nombre d'entrées (max 100)
  • Gestion du nombre de caractères par entrée (max 512)
  • Gestion de l'affichage des sous-catégories


Positionnement :
Organisation de l'ordre d'affichage des modules sur la page d'accueil via la page "Position des éléments sur la page d'accueil" (système drag & drop).

A savoir :
Les modules ne s'affichent pas dans l'administration s'ils sont désactivés ou désinstallés
Les derniers commentaires ne s'affichent pas dans l'administration si l'url rewriting est désactivée

Crédits : Un grand merci à j1.seth pour l'optimisation du module qui permet d'ajouter facilement des modules (connaissances en PHP nécessaires)



Edité par babsolune Le 26/04/2017 à 14h43


Site web    

Modérateur

rank_modo.png

Avatar

Equipe Graphique

Inscrit le: 16/05/2008

Messages: 2270

Le 04/03/2016 à 11h22
Donc ... dans l'idée, le but est de fournir un module page d'accueil qui récupère les entrées de plusieurs modules

L'admin permet de sélectionner les modules à afficher parmis Articles, News, Web(partenaires only), pour l'instant

Je suis confronté à une première erreur :
je souhaite gérer le nombre d'articles à afficher pour un module donné
le nombre défini dans l'admin est bien renvoyé, mais j'obtiens une erreur sql

Code PHP :
private function articles_results()
    {
        $now = new Date();
        $number = $this->config->get_articles_number();
        $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 :articles_number
            ', array(
                'user_id' => AppContext::get_current_user()->get_id(),
                'timestamp_now' => $now->get_timestamp(),
                'articles_number' => $number
            ));
        return $results;
    }


erreur retournée
Code SQL :
invalid query. (ERRNO 1064) You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near ''5'' at line 10query: SELECT articles.*, member.*, com.number_comments, notes.average_notes, notes.number_notes, note.note, cat.rewrited_name AS rewrited_name_cat
FROM phpboost_articles articles
LEFT JOIN phpboost_articles_cats cat ON cat.id = articles.id_category
LEFT JOIN phpboost_member member ON member.user_id = articles.author_user_id
LEFT JOIN phpboost_comments_topic com ON com.id_in_module = articles.id AND com.module_id = 'articles'
LEFT JOIN phpboost_average_notes notes ON notes.id_in_module = articles.id AND notes.module_name = 'articles'
LEFT JOIN phpboost_note note ON note.id_in_module = articles.id AND note.module_name = 'articles' AND note.user_id = 1
AND (published = 1 OR (published = 2 AND publishing_start_date < 1457086358 AND (publishing_end_date > 1457086358 OR publishing_end_date = 0)))
ORDER BY articles.date_created DESC
LIMIT '5' 


De ce que je crois comprendre, les quotes autour du nombre défini pour LIMIT posent problème, puisque si je devais définir cette limite en dur je ne mettrais que 5 au lieu de '5'

Est-ce que je comprends bien le message d'erreur ?
Est-ce que ma syntaxe est bonne ?


Site web    

Administrateur

rank_admin.png

Avatar

Chef de Projet
Equipe Développement

Inscrit le: 01/09/2008

Messages: 2662

Le 04/03/2016 à 14h57
Oui ton interprétation est bonne.
Essayes de forcer en int :

$number = (int)$this->config->get_articles_number();

Bonne initiative pour le module en tout cas, il nous en faut un.
Site web    

Modérateur

rank_modo.png

Avatar

Equipe Graphique

Inscrit le: 16/05/2008

Messages: 2270

Le 04/03/2016 à 15h12
Au poil :)
merci m'sieu :)
et merci pour les encouragements


Site web    

Modérateur

rank_modo.png

Avatar

Equipe Graphique

Inscrit le: 16/05/2008

Messages: 2270

Le 05/03/2016 à 10h35


Site web    

Booster Bazooka

rank_2.png

Avatar

Inscrit le: 16/12/2009

Messages: 247

Le 05/03/2016 à 11h03
:top

Administrateur

rank_admin.png

Avatar

Equipe Graphique

Inscrit le: 14/08/2009

Messages: 4731

Le 05/03/2016 à 13h46
Pour l'affichage tu reprend le principe du homecustom ou tu fais autrement ?
Site web    

Modérateur

rank_modo.png

Avatar

Equipe Graphique

Inscrit le: 16/05/2008

Messages: 2270

Le 05/03/2016 à 14h30
oui chacun son fichier que je réuni dans le home.tpl


Site web    

Administrateur

rank_admin.png

Avatar

Chef de Projet
Equipe Développement

Inscrit le: 01/09/2008

Messages: 2662

Le 05/03/2016 à 18h19
Je te donnerai quelques optimisations aussi ;)
Site web    

Modérateur

rank_modo.png

Avatar

Equipe Graphique

Inscrit le: 16/05/2008

Messages: 2270

Le 06/03/2016 à 08h57
je veux bien parce que, même si je me discipline à commenter et garder le même ordre dans chaque fichier, ça commence à faire usine à gaz


Site web    

Modérateur

rank_modo.png

Avatar

Equipe Graphique

Inscrit le: 16/05/2008

Messages: 2270

Le 09/03/2016 à 06h16
Ajout d'un édito
News et Download finalisés (affichage complet et/ou d'une catégorie)
Ajout du livre d'or
Calendrier fonctionnel
+ (admin) si une option est désactivée, les paramètres sont cachés
exemple: afficher le module articles décoché => nombre d'articles disparait

Admin : http://prntscr.com/acy2u5
Front : http://prntscr.com/acy2yn



Edité par babsolune Le 09/03/2016 à 06h18


Site web    

Booster Bazooka

rank_2.png

Avatar

Inscrit le: 16/12/2009

Messages: 247

Le 09/03/2016 à 07h50
Bonjour babsolune,

Félicitations ! tu vas faire des heureux.
Pour le calendrier, je pense que tu devrais aussi ajouter le nombre 'événements à venir dans l'admin.
Une option aussi intéressante à mon avis : les derniers commentaires .

Modérateur

rank_modo.png

Avatar

Equipe Graphique

Inscrit le: 16/05/2008

Messages: 2270

Le 21/03/2016 à 17h33
samerlipopette !! , j'en ch.. des ronds d'chapeau mais personne n'a dit que je n'y arriverai pas :)

+ nombre d'événements à afficher
+ derniers commentaires (nb de com + nb de caractères/com)
+ affichage d'une seule catégorie du module web
+ limite du nombre de caractères pour:
. les événements du calendrier
. le livre d'or
. les articles des modules articles, download, news, web quand on affiche seulement une catégorie
(lorsqu'on choisi le module complet, c'est l'admin du module qui défini cette limite)


module en version alpha dans le 1er post


Site web    

Booster Bazooka

rank_2.png

Avatar

Inscrit le: 16/12/2009

Messages: 247

Le 21/03/2016 à 20h55
Whouaa !

Installation sans soucis.
La colonne de menus gauche à disparu chez moi, elle réapparaît quand on clique sur un élément.

Je n'ai pas vu la gestion du forum, c'est volontaire ?

Félicitations babsolune !

Modérateur

rank_modo.png

Avatar

Equipe Graphique

Inscrit le: 16/05/2008

Messages: 2270

Le 21/03/2016 à 21h23
merci :)

la colonne de gauche en front ou dans l'admin ?

si c'est en front, le module gère l'affichage des menus indépendamment de la config du site (menu gauche/droite/top-central/bottom-central/top-footer), c'est déjà implémenté dans le module mais je n'arrive toujours pas à gérer ça via l'admin. Par défaut (à l'install) tous ces menus sont désactivés.

Si tu veux récupérer les menus, il faut passer la valeur du menu que tu veux à "false" dans le fichier HomeLanding/phpboost/HomeLandingHomePageExtensionPoint.class.php

pour le forum, c'est prévu. Pour l'instant je n'ai pas encore mis le nez dedans, au pire j'utiliserai la récupération du feed


Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
2 Utilisateurs en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 2 Visiteurs
Utilisateurs en ligne : Aucun membre connecté