Ajout de champ dans un module
Ajout de champ dans un module
Support des Modules
Masshyo Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre Masshyo
- Inscrit le : 21/02/2022
- Site internet
- Groupes :
J'utilise la version 6 de PHPBoost.
J'ai dupliqué et modifié le module 'Article' en 'Animé', et je cherche à y ajouter des champs.
Si quelqu'un pouvait me renseigner, merci d'avance.
Mon site sur les animées Otaku Planet
AnthoLaZone Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre AnthoLaZone
- Inscrit le : 17/12/2024
Merci.
AnthoLaZone Membre non connecté
Booster Minigun
-
Booster Minigun
- Voir le profil du membre AnthoLaZone
- Inscrit le : 17/12/2024
babsolune Membre non connecté
-
Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
-
Equipe Développement
Il y a 2 systèmes de module, le tuto en lien de @Antho, c'est pour l'ancien
Articles profite du nouveau système
@MassHyo, des connaissances en PHP ?
Tu as besoin de quoi comme type de champs ? ça peut être plus facile à expliquer avec les exemples concrets
Masshyo Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre Masshyo
- Inscrit le : 21/02/2022
- Site internet
- Groupes :
Les champ que je veut rajouté sont :
- origin
- studio
- status
- saison
- episode
Merci d'avance
Édité par Masshyo Le 23/01/2025 à 21h41
Mon site sur les animées Otaku Planet
babsolune Membre non connecté
-
Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
-
Equipe Développement
On va supposer que
animesest le dossier du module
dans
- animes
- +phpboost
- ++AnimesItem.class.php
on va ajouter des fonctions en protected
set_additional_attributes_list()pour ajouter les champs dans la table et dans le formulaire
get_additional_template_vars()pour transmettre les valeur des champs au template
il faut réinstaller le module après ces ajouts pour que la table prenne en compte les nouveaux champs
Code PHP :
protected function set_additional_attributes_list() { $this->add_additional_attribute( 'origin', [ 'type' => 'text', 'length' => 500, 'notnull' => 1, 'default' => '""', 'attribute_pre_content_field_parameters' => [ 'field_class' => 'FormFieldTextEditor', 'label' => LangLoader::get_message('animes.origin', 'common', 'animes') ] ] ); $this->add_additional_attribute( 'studio', [ 'type' => 'text', 'length' => 500, 'notnull' => 1, 'default' => '""', 'attribute_pre_content_field_parameters' => [ 'field_class' => 'FormFieldTextEditor', 'label' => LangLoader::get_message('animes.studio', 'common', 'animes') ] ] ); etc... } protected function get_additional_template_vars() { return [ 'ORIGIN' => $this->get_additional_property('origin'), 'STUDIO' => $this->get_additional_property('studio'), etc... ]; }
- animes
- +lang
- ++french
- +++common.php
Code PHP :
$lang['animes.origin'] = 'Origine'; $lang['animes.studio'] = 'Studio'; etc...
- animes
- +templates
- ++AnimesItemController.tpl
Code TPL :
{ORIGIN} {STUDIO} etc...
Masshyo Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre Masshyo
- Inscrit le : 21/02/2022
- Site internet
- Groupes :
Je voudrais ajouter un champ de sélection (select). Est-ce que la méthode utilisée est correcte ?
Code PHP :
$this->add_additional_attribute( 'status', [ 'type' => 'varchar', 'length' => 255, 'notnull' => 1, 'default' => '', 'attribute_pre_content_field_parameters' => [ 'field_class' => 'FormFieldSimpleSelectChoice', 'name' => 'status', 'label' => LangLoader::get_message('animes.status', 'common', 'animes'), 'value' => '', 'field_options' => [ 'items' => [ 'en_cours' => LangLoader::get_message('animes.en_cours', 'common', 'animes'), 'termine' => LangLoader::get_message('animes.termine', 'common', 'animes') ] ] ] ] );
Merci d'avance
Édité par Masshyo Le 24/01/2025 à 18h57
Mon site sur les animées Otaku Planet
babsolune Membre non connecté
-
Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
-
Equipe Développement
Code PHP :
$this->add_additional_attribute( 'status', [ 'type' => 'varchar', 'length' => 255, 'notnull' => 1, 'default' => '', 'attribute_pre_content_field_parameters' => [ 'field_class' => 'FormFieldSimpleSelectChoice', 'name' => 'status', 'label' => LangLoader::get_message('animes.status', 'common', 'animes'), 'value' => '', 'options' => [ new FormFieldSelectChoiceOption($this->lang['animes.ongoing'], 'ongoing'), new FormFieldSelectChoiceOption($this->lang['animes.completed'], 'completed') ] ] ] );
Masshyo Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre Masshyo
- Inscrit le : 21/02/2022
- Site internet
- Groupes :
Mon site sur les animées Otaku Planet
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
