Développement avec Grocerycrud pour Codeigniter pHp

Table des matières
Lorsque nous développons une application ou des systèmes Web, nous devons généralement interagir avec des bases de données. Pour cela, nous devons créer des interfaces qui nous permettent de nous connecter, d'ajouter des données, de les modifier ou de les supprimer. Ce type d'opération est connu de différentes manières
CRUD est un acronyme qui signifie Créer, Lire, Mettre à jour et Supprimer. ABM est un acronyme qui signifie High, Low et Data Modification. ABCDE est un acronyme qui signifie Ajouter, Rechercher, Modifier, Afficher (afficher ou lister), Supprimer des données.
Chaque développeur web php cherche toujours à optimiser le temps de développement et faire ce type de tâche demande beaucoup de temps, par exemple créer un système d'administration web simple, stable et sécurisé. En fait, ce qui prend le plus de temps, c'est de comprendre et de traduire dans le code les exigences d'interaction avec la base de données, la logique métier, les modèles et les vues pour interagir avec chaque table de la base de données.
Une solution dans ce cas pour CodeIgniter, est d'utiliser le La librairie Grocerycrud, qui se chargera de tout générer en configurant juste quelques paramètres, Il intègre également la conception CSS, les JavaScripts, les tableaux, les formulaires, la grille de données, les fonctions, les modèles que nous pouvons utiliser directement dans notre système.
Grocery CRUD est une librairie développée en pHp, est un logiciel libre et open source sa licence GPL v3 et MIT. Pour l'utiliser, nous devons télécharger la bibliothèque à partir de http://www.grocerycrud.com/downloads
Après l'avoir téléchargé, nous décompressons et copions les fichiers

Nous ne détaillerons pas comment configurer Codeigniter au lieu de cela, nous allons nous concentrer sur l'utilisation directe. Supposons que nous ayons une base de données de propriétés, dont les tables sont les propriétés, les utilisateurs, les villes, les provinces, les types de propriétés et le type d'opération s'il s'agit de vente ou de location.

Pour générer le brut de la table immobilière nous allons créer un contrôleur appelé immobilier avec le code suivant
 charger-> base de données (); $ this-> load-> library ('grocery_CRUD');} index de fonction publique () {$ crud = new epicery_CRUD (); $ crud-> set_theme ('datatables'); $ crud-> set_table ('properties'); $ crud-> colonnes ('userid', 'property type id', 'price'); $ grid = $ crud-> render (); $ this-> load-> view ('real estate.php', $ grid);}}
Nous invoquons la bibliothèque de base de données et la bibliothèque épicerie puis nous définissons le thème ou le design que nous voulons utiliser pour la grille, nous définissons le tableau à afficher et nous indiquons quelles colonnes ou champs seront affichés en attribuant les champs du tableau que nous voulons afficher, nous générons tout avec la fonction rendre () et nous l'enregistrons dans une variable que nous envoyons à la vue. Ensuite, nous créons la vue que nous appelons liste immobilière.php
 
Dans la vue nous devrons afficher les css et js nécessaires pour que cela fonctionne, l'emplacement des fichiers est déjà défini par le modèle, dans ce cas nous avons décidé d'utiliser le modèle datables que l'on peut trouver dans le répertoire template :
 / actifs / épicerie_crud / thèmes / datatables /
Si nous testons notre application le résultat sera le suivant :

AGRANDIR

Nous voyons comment toute la grille a été générée avec peu de code, maintenant nous allons voir comment ajouter et améliorer des fonctionnalités. Par exemple, les colonnes d'identifiant, nous pouvons changer le nom et aussi au lieu de l'identifiant des données associées apparaissant, nous aimerions des données plus importantes, par exemple au lieu de l'identifiant de l'utilisateur, le nom apparaît, et au lieu de l'idtipoinmueble qui indique de quel type il s'agit si c'est à la maison, au bureau, etc. Pour cela, nous devons apporter quelques modifications au contrôleur.
Pour changer le nom d'une colonne, nous procédons comme suit dans le contrôleur, nous utilisons display_as (currentname, newname)
 $ crud-> colonnes ('userid', 'property type id', 'price'); $ crud-> display_as ('user id', 'User'); $ crud-> display_as ('property type id', ' Type de propriété');
Pour afficher les données au lieu de l'identifiant, nous devons indiquer avec set_subjet (table liée) et set_relation (identifiant relationnel, table liée, table liée au champ)
 $ crud-> set_subject ('user'); $ crud-> set_relation ('userid', 'users', 'name'); // l'identifiant est celui de la base de données que je montre, c'est-à-dire la relation dans immobilier $ crud -> set_relation ('property_type', 'property_type', 'name');
Ensuite, nous actualisons la page pour voir les changements avec le code que nous avons ajouté :

Voyons comment l'enregistrement ou la modification des données est généré, à partir des champs de la structure de la table, le formulaire d'enregistrement des données est généré. Certains peuvent les configurer en fonction du type de données, d'autres nous devons indiquer quel type de données et d'élément de formulaire doit être affecté.

Nous voyons que les champs de type texte deviennent textarea et le plugin cfkeditor est ajouté, nous pouvons le voir sur le site ckeditor.com, les champs de date deviennent datepicker, les champs associés deviendront des combos ou des éléments de sélection déroulants.
Un aspect important est de savoir comment valider les données que nous enregistrons, pour cela nous devons utiliser la fonction required_fields (champ), donc dans le contrôleur, nous pouvons ajouter le code suivant pour valider qu'un champ est requis.
 $ crud-> required_fields ('userid', 'price');
On peut aussi établir le type de données que l'on va valider avec la fonction set_rules
 $ crud-> set_rules ('price', 'Location price', 'numeric'); $ crud-> set_rules ('email', 'User email', 'email');
De cette façon, il indiquera ci-dessous le formulaire lors de l'envoi s'il y a une erreur :

En plus des données que nous pouvons saisir, dans ce cas, nous devons télécharger des fichiers image des propriétés, pour eux, nous devons utiliser la fonction set_field_upload ('champ,' répertoire '), par défaut nous pouvons utiliser le répertoire actifs / téléchargements / fichiers, qui intègre déjà épicerieSinon, nous pouvons configurer le nôtre.
 $ crud-> set_field_upload ('image1', 'assets / uploads / files'); $ crud-> set_field_upload ('image2,' actifs / téléchargements / fichiers'); $ crud-> set_field_upload ('image3', 'assets / uploads / files'); $ crud-> set_field_upload ('image4', 'assets / uploads / files');

Comment faire une grille de données multilingue
Dans le répertoire / actifs / épicerie_crud nous avons le répertoire Langues avec toutes les traductions dans chaque langue de l'interface que la grille montre,
On peut aller dans la configuration depuis le répertoire application / config / épicerie_crud.php et indiquer la langue par défaut que nous voulons utiliser dans la configuration de la langue.
 $ config ['grocery_crud_default_language'] = 'espagnol';
Si nous voulons le faire dynamiquement, par exemple via un menu pour choisir la langue sur le Web, nous ajoutons la langue à notre code
 $ crud-> set_language ("anglais").
Supprimer des fonctionnalités de la grille
L'une des possibilités est de supprimer les fonctionnalités que nous ne voulons pas afficher ou de désactiver les champs pour cela que nous utiliserons un jeu et ses différentes possibilités unset_add, unset_edit, unset_delete et unset_list
Donc par exemple si on utilise $ crud-> unset_edit (); le bouton d'édition n'apparaîtra pas dans la liste, si nous utilisons $ crud-> unset_texteditor ('description'); la zone de texte correspondant à la description n'utilisera pas le plugin cfkeditor. Si nous voulons seulement afficher une liste sans pouvoir effectuer d'opération autre que la recherche, nous utilisons la fonction.
 $ crud-> unset_operations ();
Comment invoquer une fonction à partir d'un événement
Grocerycurd nous permet de gérer les rappels, c'est-à-dire d'invoquer une fonction avant, pendant ou après qu'un événement se produise. Quelques exemples. Si nous voulons ajouter un rappel lorsque le formulaire est généré et affecter un champ particulier, nous utiliserons la fonction suivante :
 $ crud-> callback_add_field ('email', array ($ this, 'color change'));
Ensuite, dans le contrôleur, nous définissons la fonction que nous invoquons dans le rappel
 fonction changement de couleur () {return '';}
Si nous voulons manipuler n'importe quelle colonne, nous utiliserons ce qui suit :
 code $ crud-> callback_column ('price', array ($ this, 'allocatecurrency')); fonction allowcurrency ($ value, $ row) {return $ value. ' € ';}

Nous pouvons également utiliser le rappel avant d'insérer ou d'enregistrer des données :
 $ crud-> callback_before_insert (array ($ this, 'calculate_total));
Il existe de nombreux autres événements pour invoquer des rappels que nous pouvons consulter sur le site de Crud d'épicerie. D'autres utilitaires dont il dispose est la possibilité d'exporter vers excel et d'imprimer la grille avec ses données, si nous voulons ajouter un bouton avec des fonctionnalités supplémentaires telles que l'exportation vers pdf, nous devons modifier le code du modèle qui se trouve dans le répertoire actifs \ épicerie_crud \ thèmes \ mypantilla \ vues, dans le répertoire du modèle que nous utilisons nous modifions les fichiers liste_template.php et nous ajoutons ce dont nous avons besoin.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif
wave wave wave wave wave