Forum

[HomeLanding] Page d'accueil personnalisée avec administration

version finale Créations de Modules
Avatar

babsolune Membre non connecté

Equipe Développement Administrateur
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)

Édité par babsolune Le 26/04/2017 à 14h43

Pour un support plus efficace, pensez à déclarer dans votre profil, le lien vers votre site

ban_wind

Avatar

babsolune Membre non connecté

Equipe Développement Administrateur
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 ?
Pour un support plus efficace, pensez à déclarer dans votre profil, le lien vers votre site

ban_wind

Avatar

j1.seth Membre non connecté

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.
Avatar

babsolune Membre non connecté

Equipe Développement Administrateur
Au poil :)
merci m'sieu :)
et merci pour les encouragements
Pour un support plus efficace, pensez à déclarer dans votre profil, le lien vers votre site

ban_wind

Avatar

babsolune Membre non connecté

Equipe Développement Administrateur
teaser <img src="/images/smileys/smile.png" alt=":)" class="smiley" />
<a href="http://prnt.sc/abfhtq">http://prnt.sc/abfhtq</a>
Pour un support plus efficace, pensez à déclarer dans votre profil, le lien vers votre site

ban_wind

Avatar

vtt64 Membre non connecté

Booster Roquette
  • Booster Roquette Rang
  • Voir le profil du membre vtt64
  • Inscrit le : 16/12/2009
  • Email
  • Site internet
  • Groupes :
:top
Avatar

ElenWii Membre non connecté

Equipe Graphique Administrateur
Pour l'affichage tu reprend le principe du homecustom ou tu fais autrement ?
Avatar

babsolune Membre non connecté

Equipe Développement Administrateur
oui chacun son fichier que je réuni dans le home.tpl
Pour un support plus efficace, pensez à déclarer dans votre profil, le lien vers votre site

ban_wind

Avatar

j1.seth Membre non connecté

Je te donnerai quelques optimisations aussi ;)
Avatar

babsolune Membre non connecté

Equipe Développement Administrateur
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
Pour un support plus efficace, pensez à déclarer dans votre profil, le lien vers votre site

ban_wind

Avatar

babsolune Membre non connecté

Equipe Développement Administrateur
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

Édité par babsolune Le 09/03/2016 à 06h18

Pour un support plus efficace, pensez à déclarer dans votre profil, le lien vers votre site

ban_wind

Avatar

vtt64 Membre non connecté

Booster Roquette
  • Booster Roquette Rang
  • Voir le profil du membre vtt64
  • Inscrit le : 16/12/2009
  • Email
  • Site internet
  • Groupes :
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 .
Avatar

babsolune Membre non connecté

Equipe Développement Administrateur
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
Pour un support plus efficace, pensez à déclarer dans votre profil, le lien vers votre site

ban_wind

Avatar

vtt64 Membre non connecté

Booster Roquette
  • Booster Roquette Rang
  • Voir le profil du membre vtt64
  • Inscrit le : 16/12/2009
  • Email
  • Site internet
  • Groupes :
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 !
Avatar

babsolune Membre non connecté

Equipe Développement Administrateur
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
Pour un support plus efficace, pensez à déclarer dans votre profil, le lien vers votre site

ban_wind

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

AltStyle によって変換されたページ (->オリジナル) /