Développement module: Difference between revisions

Jump to navigation Jump to search
→‎File:Art.png Ajouter vos onglets sur les fiches entités (optionnel): Ajout d'une section pour l'affichage des onglets existant sur de nouvelles pages
No edit summary
(→‎File:Art.png Ajouter vos onglets sur les fiches entités (optionnel): Ajout d'une section pour l'affichage des onglets existant sur de nouvelles pages)
Line 75: Line 75:
Un fichier '''out.nomtable_script.php''' a également été généré et contient un exemple de code pour utiliser la classe pour chacune des 4 méthodes CRUD.
Un fichier '''out.nomtable_script.php''' a également été généré et contient un exemple de code pour utiliser la classe pour chacune des 4 méthodes CRUD.


= [[File:Art.png]] Ajouter vos onglets sur les fiches entités (optionnel) =
= [[File:Art.png]] Affichage des onglets (optionnel) =
'''Quand''': Pour ajouter un onglet sur une fiche entité (facture, commande, proposition commercial, adhérent...)
 
== Ajouter vos onglets sur les fiches entités ==
'''Quand''' : Pour ajouter un onglet sur une fiche entité (facture, commande, proposition commercial, adhérent...)


Pour cela, aller dans le fichier descripteur de module précédemment créé et modifier le tableau $this->tabs:
Pour cela, aller dans le fichier descripteur de module précédemment créé et modifier le tableau $this->tabs:
Line 113: Line 115:


Pour alimenter le contenu de l'onglet avec des données issues de la base, voir le chapitre suivant.
Pour alimenter le contenu de l'onglet avec des données issues de la base, voir le chapitre suivant.
== Ajouter les onglets d'une fiche entité sur ses propres pages ==
'''Quand''' : Pour afficher les mêmes onglets qu'une fiche entité (produit, tiers, etc.) sur vos IHM.
Il faut appliquer la procédure suivante :
'''1. Inclure les fichiers définissant les fonctions utiles dans vos fichiers'''
Pour chaque fiche entité, il y a deux fichiers à inclure avec l'instruction
<source lang="php">require_once($url_fichier) ;</source>
Voici la liste de ces fichiers (DOL_DOCUMENT_ROOT correspond au dossier dolibarr/htdocs/) :
* Entité tiers (thirdparty) :
** DOL_DOCUMENT_ROOT/societe.class.php
** DOL_DOCUMENT_ROOT/lib/company.lib.php
* Entité produit (product) :
** DOL_DOCUMENT_ROOT/product.class.php
** DOL_DOCUMENT_ROOT/lib/product.lib.php
* Entité facture (invoice) :
** ''À compléter''
'''2. Créer un objet correspondant à l'entité voulue'''
Créer un objet de la classe voulue, et récupérer les données de l'objet à partir de la base de données. Pour cela il faut utiliser les fonctions fetch($id) de la classe correspondante, en passant en paramètre l'identifiant de l'objet à récupérer.
Il faudrait donc avoir passé cet identifiant dans l'url (ex : view.php?id=1).
''Exemple :''
<source lang="php">
$product = new Product($db) ;
$result = $product->fetch($id) ; //Tester $result pour vérifier que l'accès à la base s'est bien passé
</source>
'''3. Préparer la liste des onglets correspondants à l'entité choisie'''
Utiliser la fonction XX_prepare_head($obj), ou XX est le nom de l'entité, permettant de créer un tableau contenant les définitions des onglets à afficher. Le paramètre à passer est l'objet pour lequel vous voulez afficher les onglets.
Le tableau retourné est composé de la façon suivante :
<source lang="php">
$head        // Tableau des onglets
$head[$h]    // Élément décrivant un onglet. Il y aura autant de $h que d'onglets à afficher
$head[$h][0] // Url de la page affichée quand on clique sur l'onglet
$head[$h][1] // Titre de l'ongLet
$head[$h][2] // Code de l'onglet, à utiliser pour choisir quel onglet sera 'actif' (voir paragraphe suivant)
</source>
''Exemple :''
<source lang="php">
$head = product_prepare_head($product, $user) ; //le paramètre $user n'est pas présent sur certaines fonctions
</source>
'''4. Afficher les onglets'''
Utiliser la fonction dol_fiche_head() qui affiche les onglets contenus dans le tableau $head retourné par XX_prepare_head().
<source lang="php">
dol_fiche_head($links, $active='0', $title='', $notab=0, $picto='')
$links  // Tableau des onglets, appelé $head plus haut.
$active // Onglet actif (mettre le nom de l'onglet défini dans votre fichier de module, ou un nom contenu dans $head[$h][2]). Cet onglet sera mis en surbrillance
$title  // ?
$notab  // Mettre ce paramètre à 1 permet de ne pas afficher de zone bleue en dessous des onglets.
$picto  // Nom de l'image à utiliser au début de la barre des onglet. Les choix suivant sont possibles :
//            product
//            service
//            company
</source>
Cette fonction affiche les onglets voulus et ouvre un élément <div class=''> qui correspond à la zone bleue sous les onglets (si paramètre $notab = 0). Pour fermer la zone bleue, il suffit de fermer l'élément (</div>) dans le code PHP.
''Remarque''
Pour plus de détail, se référer à la [http://www.dolibarr.fr/doxygen/ documentation Doxygen] ou directement au code de Dolibarr.


= [[File:Art.png]] Créer vos pages écran PHP (optionnel) =
= [[File:Art.png]] Créer vos pages écran PHP (optionnel) =
10

edits

Navigation menu