4,395
edits
No edit summary |
|||
| Line 64: | Line 64: | ||
Un archivo '''out.nombretabla_script.php''' se genera igualmente y contiene un ejemplo de código para utilizar la clase para cada uno de los cuatro métodos CRUD. | Un archivo '''out.nombretabla_script.php''' se genera igualmente y contiene un ejemplo de código para utilizar la clase para cada uno de los cuatro métodos CRUD. | ||
= [[File:Art.png]] Añadir pestañas (opcional) = | |||
==Añadir sus pestañas en las fichas entidad== | |||
{{ToTranslate}} | |||
'''Quand''' : Pour ajouter votre propre onglet parmi les onglets standard d'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: | |||
<source lang="php"> | |||
// Array to add new pages in new tabs | |||
$this->tabs = array('product:ComposedProducts:@composition:/composition/show_composition.php?id=__ID__'); | |||
// where entity can be | |||
// 'thirdparty' to add a tab in third party view | |||
// 'intervention' to add a tab in intervention view | |||
// 'supplier_order' to add a tab in supplier order view | |||
// 'supplier_invoice' to add a tab in supplier invoice view | |||
// 'invoice' to add a tab in customer invoice view | |||
// 'order' to add a tab in customer order view | |||
// 'product' to add a tab in product view | |||
// 'propal' to add a tab in propal view | |||
// 'member' to add a tab in foundation member view | |||
// 'contract' to add a tab in contract view | |||
</source> | |||
Le tableau doit contenir une liste de chaine, chaque chaine représentant un nouvel onglet. | |||
Le format de la chaine étant composée de 4 parties séparées par ":" | |||
* Partie 1: Le code entité dans lequel doit apparaitre l'onglet qui est une valeur parmi celle-ci: | |||
** 'thirdparty' | |||
** 'intervention' | |||
** 'supplier_order' | |||
** 'supplier_invoice' | |||
** 'invoice' | |||
** 'order' | |||
** 'product' | |||
** 'propal' | |||
** 'member' | |||
** 'contract' | |||
* Partie 2: Le titre de l'onglet. Cela peut être un libellé en dur ou mieux un code traduction présent dans un fichier lang. | |||
* Partie 3: Le nom du fichier .lang qui contient la correspondance entre le code traduction et le libellé à afficher. | |||
* Partie 4: L'url de la page à afficher quand on clique sur l'onglet. La chaine __ID__ sera remplacée automatiquement par l'Id de l'entité concernée. | |||
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 onglets standard d'une fiche entité (produit, tiers, etc.) sur votre propre page onglet d'une entité. | |||
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) : | |||
** DOL_DOCUMENT_ROOT/facture.class.php | |||
** DOL_DOCUMENT_ROOT/lib/invoice.lib.php | |||
'''2. Créer et charger l'objet à afficher dans votre onlget''' | |||
Créer l'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() de la classe correspondante, en passant en paramètre l'identifiant de l'objet que vous récupérer depuis l'url (ex : /mononglet.php?id=1). | |||
''Exemple :'' | |||
<source lang="php"> | |||
$id=$_GET["id"]; | |||
$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. Récupérer la liste des onglets correspondants à l'entité choisie''' | |||
Utiliser la fonction XXX_prepare_head($obj), ou XXX 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 sur votre page onglet''' | |||
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]] Crear tus páginas pantalla PHP (opcional)= | = [[File:Art.png]] Crear tus páginas pantalla PHP (opcional)= | ||