Dernière mise à jour : 08/03/2022 à 15h23
Table des matières
Base de données
Objectif: Ajouter une colonne dans la table des catégories du forum.
Dans l'Administration/Outils/Base de données/Requêtes SQL
Taper
Code SQL :
ALTER TABLE `phpboost_forum_cats` ADD `thumbnail` VARCHAR( 255 ) AFTER `url` ;
puis Exécuter
Fonctions php
Objectif: création des relations avec la base de données
Dans le fichier /forum/services/ForumCategory.class.php
après
Code PHP :
ajouter private $url;
Code PHP :
private $thumbnail;
après
Code PHP :
public function get_url() { return $this->url; }
ajouter
Code PHP :
public function set_thumbnail($thumbnail) { $this->thumbnail = $thumbnail; } public function get_thumbnail() { return $this->thumbnail; }
après
Code PHP :
ajouter 'url' => $this->get_url(),
Code PHP :
!!Attention à bien mettre la "," entre les deux'thumbnail' => $this->get_thumbnail()
après
Code PHP :
ajouter $this->set_url($properties['url']);
Code PHP :
$this->set_thumbnail($properties['thumbnail']);
Au cas où le module venait à être désinstallé/réinstallé, cet ajout permettra de ne pas avoir à recommencer la déclaration SQL :
après
Code PHP :
ajouter 'rewrited_name' => array('type' => 'string', 'length' => 250, 'default' => "''"),
Code PHP :
'thumbnail' => array('type' => 'string', 'length' => 255, 'default' => "''"),
Formulaire
Objectif: ajouter la déclaration de la vignette dans le formulaire d'ajout/édition des catégories
Fichiers de langue
forum/lang/french/common.php :
$lang['forum.label.thumbnail'] = 'Vignette';
forum/lang/english/common.php :
$lang['forum.label.thumbnail'] = 'Thumbnail';
Fichier du formulaire
Dans le fichier /forum/controllers/categories/ForumCategoryFormController.class.php
On déclare le champ Vignette
après
Code PHP :
$fieldset->add_field(new FormFieldTextEditor('rewrited_name', self::$common_lang['form.rewrited_name'], $this->get_category()->get_rewrited_name(), array( 'description' => self::$common_lang['form.rewrited_name.description'], 'hidden' => !$this->get_category()->rewrited_name_is_personalized() ), array(new FormFieldConstraintRegex('`^[a-z0-9\-]+$`iu'))));
ajouter
Code PHP :
$fieldset->add_field(new FormFieldUploadPictureFile('thumbnail', LangLoader::get_message('forum.label.thumbnail', 'common', 'forum'), $this->get_category()->get_thumbnail()));
On sauvegarde ce qui a été renseigné dans le champ Vignette
après
Code PHP :
if ($this->get_category()->get_type() == ForumCategory::TYPE_URL) $this->get_category()->set_url($this->form->get_value('url')); else $this->get_category()->set_url('');
ajouter
Code PHP :
if ($this->form->get_value('thumbnail')) $this->get_category()->set_thumbnail($this->form->get_value('thumbnail'));
Variables de template
Objectif: récupérer les données des vignettes et les afficher
/forum/controllers/ForumHomeController.class.php
On ajoute la vignette dans la liste des données à afficher
après
Code PHP :
insérer $result = PersistenceContext::get_querier()->select('SELECT c.id AS cid, c.id_parent, c.name, c.rewrited_name,
Code PHP :
c.thumbnail,
On défini les variables d'affichage
après
Code PHP :
ajouter if ($row['id_parent'] == Category::ROOT_CATEGORY) { $this->view->assign_block_vars('forums_list.cats', array(
Code PHP :
'C_HAS_THUMBNAIL' => !empty($row['thumbnail']), 'U_THUMBNAIL' => Url::to_rel($row['thumbnail']),
idem après
Code PHP :
if ($display_cat) { $this->view->assign_block_vars('forums_list.cats', array(
et après
Code PHP :
$this->view->assign_block_vars('forums_list.subcats', array_merge( Date::get_array_tpl_vars($last_msg_date, 'LAST_MSG_DATE'), array(
/forum/templates/forum_index.tpl
On déclare les variables d'affichage
Dans le tableau
après ajouter
après ajouter
Code HTML :
après
Code HTML :
ajouter Code HTML :
/forum/templates/forum_index.tpl
On déclare les variables d'affichage
Remplacer
Code HTML :
par Code HTML :
/forum/forum.php
On ajoute la vignette dans la liste des données à afficher pour les sous-catégories
après
Code PHP :
insérer $result = PersistenceContext::get_querier()->select('SELECT c.id AS cid, c.id_parent, c.name, c.rewrited_name,
Code PHP :
c.thumbnail,
On défini les variables d'affichage
après
Code PHP :
ajouter $tpl->assign_block_vars('subcats', array_merge( Date::get_array_tpl_vars($last_msg_date, 'LAST_MSG_DATE'), array(
Code PHP :
'C_HAS_THUMBNAIL' => !empty($row['thumbnail']), 'U_THUMBNAIL' => Url::to_rel($row['thumbnail']),
après
Code PHP :
ajouter $tpl->assign_block_vars('syndication_cats', array(
Code PHP :
'C_HAS_THUMBNAIL' => !empty($cat->get_thumbnail()), 'U_THUMBNAIL' => Url::to_rel($cat->get_thumbnail()),
/forum/templates/forum_forum.tpl
On déclare les variables d'affichage
après ajouter
après
Code HTML :
ajouter Code HTML :
après
Code HTML :
ajouter Code HTML :
après
Code TPL :
ajouter # START syndication_cats #
Code HTML :
# IF syndication_cats.C_HAS_THUMBNAIL #<img class="forum-cat-thumbnail" src="{syndication_cats.U_THUMBNAIL}" alt="{syndication_cats.LABEL}" /># ENDIF #
le refaire plus bas si on veut les voir apparaitre sous les tableaux
/forum/templates/forum.css
On limite la taille des images
Ajouter
Code CSS :
.forum-cat-thumbnail { max-width: 25px; max-height: 25px; }