info:joomla:easycreator

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
info:joomla:easycreator [2018/07/18 09:45] – ↷ Page déplacée de info:git:homepage:joomla:easycreator à info:joomla:easycreator radeffinfo:joomla:easycreator [2019/09/11 12:34] (Version actuelle) – supprimée radeff
Ligne 1: Ligne 1:
-====== EasyCreator ====== 
-http://extensions.joomla.org/extensions/miscellaneous/development/5908 
- 
-EasyCreator est un formidable outil de développement d'extensions pour Joomla 1.5. Il permet d'accélérer le processus de création de composants, modules, plugins mais également du code de vos templates. Vous pouvez créer un environnement pour votre extension et un package zip installable en quelques clics. 
- 
-Au départ, vous pouvez vous aider du "magicien" qui vous proposera de sélectionner un composant sur 7 modèles au choix de composants au standard MVC ou encore  un module public ou admin, un plugin d'authentification ou  de contenu ou utilisateur ainsi qu'une copie des templates d'origine (beez, rhuk milkyway). il s'en suit une personnalisation des informations et votre extension est prête à fonctionner. La structure de base est pleinement opérationnel, vous pouvez déjà tester et ajouter votre code dans le mode bac à sable (sandbox) également inclus dans Easycreator. 
-  
- La traduction en français est inclus. Pour installer EasyCreator, rien de plus simple :  c'est un composant pour Joomla qui s'installe par le menu extensions/intaller.  
- 
-http://www.joomlafrance.org/telecharger/fileinfo/EasyCreator.html 
- 
-Voir aussi cet excellent tutoriel: http://christophehagnere.eu/tag/joomla/ 
-====== CRUD / Note Fred ====== 
-Au départ, pour les opérations de CRUD*, j'utilisais [[:info:cake]], mais après plein de problèmes d'encodage UTF-8 -isoXXYY, j'ai regardé de plus près comment faire ça avec Joomla! et ce composant EasyCreator, c'est très simple - mais il faut un peu de patience et être au calme, compter 1-2h: 
- 
- 
-  * créer une table MySQL en suivant le "JoomlaMVCStyle" - soit EN TOUT CAS un champ id auto-incrémental - on peut bidouiller si on a pas, mais ça rend les choses plus compliquées 
-  * installer EasyCreator 
-  * suivre le "wizard" pour un MVC 4 admin (il y a un tutoriel correspondant sur le site de joomla) 
- 
-{{:info:joomla:easycreator.png?400|}} 
- 
-  * modifier les fichiers créés, d'abord 
-  * table 
- 
-{{:info:joomla:easycreatorcrud.png?400|}} 
- 
-puis 
- 
-  * views 
- 
- 
-ce serait intéressant d'automatiser tout cela... script à faire! Mais déjà là, montre en main, si la table n'est pas trop compliquée, en moins d'une heure vous avez votre CRUD "Joomla like"... 
- 
- 
-* CRUD désigne les quatre opérations de base pour la persistance des données, en particulier le stockage d'informations en base de données. Soit : Create, Read (ou Retrieve), Update et Delete (ou Destroy). C'est-à-dire : créer, lire, mettre à jour et supprimer. source: http://fr.wikipedia.org/wiki/CRUD 
- 
-====== HowTo ====== 
- 
-//une petite méthode pour faire le CRUD, à améliorer mais c'est un début//  
- 
-  * créer un composant MVC 4 admin, ici com_livres 
-  * récupérer dans mysql la liste des champs de la table, qui doit s'appeller jos_livres (changer pour le bon nom), le plus simple est de faire un export csv avec nom des champs en 1e ligne 
-  * s'assurer comme a bien un champ identifiant "id" 
- 
-exemple: 
-<code> 
-"id";"auteur";"titre";"support";"localisation";"groupe_carton";"type";"date";"remarques";"owner";"datein";"user_id" 
-</code> 
- 
-===== Changement admin ===== 
- 
-==== préparation ==== 
-=== nom des variables === 
- 
-dans (x)emacs: 
-<code> 
-CTRL-SHIFT-ALT-% 
-";" 
-ALT-J 
-</code> 
-soit (query-replace "\";\"" "\n" nil) 
- 
-puis  
-<code> 
-CTRL-SHIFT-ALT-% 
-^\(.*\)$ 
-var $\1 = null; 
-</code> 
-=== search === 
-<code> 
-CTRL-SHIFT-ALT-% 
-^\(.*\)$ 
-\1 LIKE "%'.$filter_search.'%" OR  
-</code> 
-garder le résultat et corriger la dernière ligne, eg. 
-<code> 
-auteur LIKE "%'.$filter_search.'%" OR  
-titre LIKE "%'.$filter_search.'%" OR  
-support LIKE "%'.$filter_search.'%" OR  
-localisation LIKE "%'.$filter_search.'%" OR  
-groupe_carton LIKE "%'.$filter_search.'%" OR  
-type LIKE "%'.$filter_search.'%" OR  
-date LIKE "%'.$filter_search.'%" OR  
-remarques LIKE "%'.$filter_search.'%" OR  
-owner LIKE "%'.$filter_search.'%" OR  
-datein LIKE "%'.$filter_search.'%" OR  
-user_id LIKE "%'.$filter_search.'% 
-</code> 
- 
-==== tables ==== 
- 
-placer le résultat des variables supra dans /tables/ 
- 
-ex. 
-<code> 
-var $auteur = null; 
-var $titre = null; 
-var $support = null; 
-var $localisation = null; 
-var $groupe_carton = null; 
-var $type = null; 
-var $date = null; 
-var $remarques = null; 
-var $owner = null; 
-var $datein = null; 
-var $user_id = null; 
-</code> 
-==== models ==== 
-=== livress === 
-[[info:joomla:modellivress|détail]] un peu plus compliqué, alors détaillé 
-=== livres === 
-rien à changer 
- 
-==== controllers ==== 
-rien à changer 
- 
-==== views ==== 
-=== livress (liste de tous les items) === 
-/views/.../tmpl/default.php 
-== style == 
- 
-<code> 
-<style> 
-a { 
-text-decoration: none; 
-} 
-a:hover{ 
-color: red; 
-} 
-td { 
-vertical-align: top; 
-padding-bottom: 3px; 
-padding-right: 5px; 
-} 
-.row0{ 
-background-color: #e5e5e5; 
-} 
-.row1{ 
-background-color: #ffffff; 
-} 
-.fenetrerecherche { 
-width: 150px; height: 13px; 
-padding-bottom: 3px;  
-text-align: left; 
-} 
-</style> 
-</code> 
-== moteur de recherche et pagination == 
-ajouter après la ligne qui commence par <table 
- 
-NOTE: attention au **target** du form, qui doit être de la forme  
-<code> 
-<form action="index.php?option=com_musiques&controller=musiques" method="post" name="form"> 
-</code> 
---- 
- 
-<code> 
-<div id="editcell"> 
-<table> 
-<!-- search engine begin --> 
-    <tr> 
-        <td align="left" width="100%"> 
-            <?php echo JText::_('Filter'); ?>: 
-            <input type="text" name="filter_search" id="search" value="<?php echo $this->lists['search'];?>" class="text_area" onchange="document.adminForm.submit();" /> 
-            <button onclick="this.form.submit();"><?php echo JText::_('Go'); ?></button> 
-            <button onclick="document.adminForm. filter_search.value='';this.form.submit();"><?php echo JText::_('Reset'); ?></button> 
-        </td> 
- 
-    </tr> 
-<!-- search engine end --> 
-<!-- pagination begin --> 
-    <tr> 
-      <td colspan="9"> 
-      <?php  
-      #getPagination(); 
-      jimport('joomla.html.pagination'); 
-        // Get data from the model 
-        $items =& $this->get('Data');       
-        $pagination =& $this->get('Pagination'); 
-         // push data into the template 
-        $this->assignRef('items', $items);      
-        $this->assignRef('pagination', $pagination); 
-        echo $this->pagination->getListFooter();  
-        ?></td> 
-    </tr> 
-<!-- pagination end --> 
-</table> 
-</code> 
- 
-**libellé des colonnes** 
-<code> 
-CTRL-SHIFT-ALT-% 
- 
-^\(.*\)$ 
- 
-<th> 
- <?php echo JText::_( '\1' ); ?> 
-</th> 
- 
-</code> 
-copier-coller le résultat et corriger la dernière ligne, [[info:joomla:libelle_des_colonnes|résultat]] 
- 
- 
-**contenu des colonnes** 
- 
-changer:  
-<code> 
-         <td> 
-            <?php echo $row->id; ?> 
-         </td> 
-         <td> 
-            <?php echo $checked; ?> 
-         </td> 
-         <td> 
-            <a href="<?php echo $link; ?>"><?php echo $row->greeting; ?></a> 
-         </td> 
-</code> 
-pour 
-<code> 
-         <td> 
-            <a href="<?php echo $link; ?>"><?php echo $row->id; ?></a> 
-         </td> 
-         <td> 
-            <?php echo $checked; ?> 
-         </td> 
- 
-</code> 
----- 
-**ajouter après** 
- 
-<code> 
-CTRL-SHIFT-ALT-% 
- 
-^\(.*\)$ 
- 
-<td> 
-  <?php echo $row->\1; ?> 
-</td> 
-</code> 
- 
- 
- 
-si vous voulez cacher des colonnes à l'affichage liste, faites-le! (mais gardez bien id) 
- 
-[[info:joomla:contenu_des_colonnes|résultat]] 
- 
- 
- 
-=== livres (vue d'un item) === 
-/views/.../tmpl/form.php 
- 
- 
- 
- 
-<code> 
-CTRL-SHIFT-ALT-% 
- 
-^\(.*\)$ 
- 
-<tr> 
-   <td width="100" align="right" class="key"> 
-<label for="\1"> 
-   <?php echo JText::_( '\1' ); ?>: 
-</label> 
-   </td> 
-   <td> 
-<input class="text_area" type="text" name="\1" id="\1" size="32" maxlength="250" value="<?php echo $this->livres->\1;?>" /> 
-   </td> 
-</tr> 
-</code> 
- 
-si vous devez faire des textarea, changer à la main, ex.  
-<code> 
-         <td> 
-            <input class="text_area" type="text" name="D_RAPPEL" id="D_RAPPEL" size="32" maxlength="250" value="<?php echo $this->adresses->D_RAPPEL;?>" /> 
-         </td> 
-</code> 
- 
-[[info:joomla:viewform|résultat]] 
- 
-===== Changement frontend ===== 
- 
-FIXME 
- 
-copier le module administrator/component/... 
-dans la racine /component 
- 
-cd module 
-mv admin.module.php module.php 
- 
-rm -fR *.xml *.xml* CHANGELOG* *install* 
- 
-**views/musiquess/view.html.php** 
- 
-delete 
-<code> 
- JToolBarHelper::title(   JText::_( 'musiques Manager' ), 'generic.png' ); 
- JToolBarHelper::deleteList(); 
- JToolBarHelper::editListX(); 
- JToolBarHelper::addNewX(); 
- 
- /** 
- * musiquess view display method 
- * @return void 
- **/ 
- function display($tpl = null) 
- { 
- // Get data from the model 
- $items = & $this->get( 'Data'); 
- 
- $this->assignRef('items', $items); 
- 
- parent::display($tpl); 
- } 
-</code> 
-**views/musiquess/tmpl/default.php** 
- 
-delete 
- 
-<code> 
- <th width="5"> 
- <?php echo JText::_( 'ID' ); ?> 
- </th> 
- <th width="20"> 
- <input type="checkbox" name="toggle" value="" onclick="checkAll(<?php echo count( $this->items ); ?>);" /> 
- </th>  
- 
-.... 
- 
- <td> 
- <?php echo $row->id; ?> 
- </td> 
- <td> 
- <?php echo $checked; ?> 
- </td> 
-</code> 
- 
-changer 
-<code> 
-<input type="text" name="filter_search" id="search" value=" 
-<?php echo $this->lists['search'];?>" class="text_area"  
-onchange="document.adminForm.submit();" /> 
- 
-</code> 
- 
-pour 
- 
-<code> 
-<input type="text" name="filter_search" id="search" value="" 
- size="10" onchange="document.adminForm.submit();" style="width: 150px; height: 20px; text-align: left" /> 
-</code> 
----- 
-**views/musiques/view.html.php** 
- 
-effacer 
- 
-<code> 
- JToolBarHelper::title(  'musiques: <small><small>[ ' . $text.' ]</small></small>' ); 
- JToolBarHelper::save(); 
- if ($isNew)  { 
- JToolBarHelper::cancel(); 
- } else { 
- // for existing items the button is renamed `close` 
- JToolBarHelper::cancel( 'cancel', JText::_('Close') ); 
- } 
-</code> 
-**views/musiques/tmpl/form.php** 
- 
-effacer 
-<code> 
-<form action="index.php" method="post" name="adminForm" id="adminForm"> 
-... 
-<input type="hidden" name="option" value="com_musiques" /> 
-<input type="hidden" name="id" value="<?php echo $this->musiques->id; ?>" /> 
-<input type="hidden" name="task" value="" /> 
-<input type="hidden" name="controller" value="musiques" /> 
-</form> 
- 
- 
- 
-</code> 
- 
-**changer partout** 
- 
-//note: si quelqu'un m'écrit l'ereg pour emacs, je veux bien!// 
- 
-<code> 
-<input class="text_area" type="text" name="genre" id="genre" size="32" maxlength="250" value="<?php echo $this->musiques->genre;?>" /> 
--> 
-<?php echo $this->musiques->genre;?> 
-</code> 
- 
-**ajouter à la fin** 
- 
-<br><a href="index.php?option=com_musiques">Retour</a> 
- 
-====== Dates ====== 
-Pour ajouter un calendrier javascript (js calendar) pour un champ date, rien de plus simple: 
-  * au début du fichier 
-<code> 
-//to display a js calendar 
-    JHTML::_('behavior.calendar'); 
-</code> 
- 
-puis dans le formulaire d'édition / d'ajout (normalement views/nomtablesingulier/tmpl/form.php): 
-<code> 
-<input class="inputbox" type="text" name="date" id="date"  
-size="25" maxlength="19" value="<?php echo $this->livres->date;?>" /> 
-<input name="reset" type="reset" class="button"  
-onclick="return showCalendar('date', '%Y-%m-%d %H:%M');" value="..." /> 
-</code> 
- 
  
  • info/joomla/easycreator.1531899936.txt.gz
  • Dernière modification : 2018/07/18 09:45
  • de radeff