Forum CMS Made Simple FR
[Résolu]Création d'un module - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : [Résolu]Création d'un module (/thread-1965.html)



[Résolu]Création d'un module - Celtic MAn - 09/05/2012

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site :
#~ Hébergeur / Soft : Ovh
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~

Bonjour,

je vous explique mon "problème", je veux mettre à disposition une sorte d'annuaire professionnel sur un de mes sites qui listera des structures dans le domaine du social (un peu comme ici http://mda44.free.fr/2009/pros/annuaire.php) : une BDD contenant des structures (15 champs : principalement des zones de texte et 2 checkboxes). Rien de bien compliqué jusque là (en html + php + MYSQL ça me pose pas de soucis). Maintenant que j'utilise CMSMS, j'aimerai le faire sous forme de module. J'ai essayé CTL Module Maker (qui est vraiment sympa et qui me donnait pas mal de possibilité comme l'édition "frontend"...) mais apparemment il y a des soucis avec ma version... J'ai vu sur le forum qu'on pouvait essayer mcfactory mais quand j'installe les dépendances j'ai quelques erreurs.

Que me conseillez vous ?

Merci d'avance.


[Résolu]Création d'un module - jissey - 09/05/2012

Bonjour,
tu peux rechercher sur la forge ( http://dev.cmsmadesimple.org ) avec le mot clé : listit
Il y a listit extended et module generator, peut-être cela fera-t-il ton bonheur...tiens nous au courant.


[Résolu]Création d'un module - Celtic MAn - 09/05/2012

Merci,

mon retour : listit extended s'appelle maintenant ListIt2, il me parait pas mal, je vais bidouiller un peu et vous tenir au courant avant la fin de la semaine.

Pour ce qui est de Module Generator j'ai une "erreur" : Strict Standards: Non-static method generator_tools::get_extra() should not be called statically, assuming $this from incompatible context in /homez.520/pierjean/www/mda37/modules/ModuleGenerator/lib/class.generator_filters.php on line 62

Du coup je vais regarder listit pour le moment, et au besoin je m'attaquerai à MG


[Résolu]Création d'un module - bess - 09/05/2012

Citation :Pour ce qui est de Module Generator j'ai une "erreur" : Strict Standards: Non-static method generator_tools::get_extra() should not be called statically, assuming $this from incompatible context in /homez.520/pierjean/www/mda37/modules/ModuleGenerator/lib/class.generator_filters.php on line 62

Strict est un avertissement PHP, ce n'est pas une erreur en soit. Regarde ton php.ini pour désactiver le strict (et le deprecated s'il est activé)


[Résolu]Création d'un module - airelibre - 09/05/2012

Regarde CompanyDirectory. A mon avis tu n'as pas besoin de partir sur un module custom


[Résolu]Création d'un module - Celtic MAn - 16/05/2012

Je vais tester ce module. Merci pour l'info


[Résolu]Création d'un module - Celtic MAn - 21/05/2012

Après avoir tester différent module, je pense opter pour le dernier : CompanyDirectory.

Par contre j'ai une petite question : j'ai ajouté des champs supplémentaires pour présenter les différentes structures. J'ai utilisé le code suivant {CompanyDirectory action="fe_edit"} pour permettre aux utilisateurs de crée leur structure.
Mais car il y en a un, mes champs "perso" n'apparaisse pas dans le formulaire.
Pourtant que je vais voir dans le fichier "orig_frontendform_template.tpl" :
Code :
[== HTML ==]
{if $companyid > 1}
<h4>{$mod->Lang('editcompany')}</h4>
{else}
<h4>{$mod->Lang('addcompany')}</h4>
{/if}

{cgerror}{$message}{/cgerror}

{$startform}
    <div class="pagerow">
        <div class="rowtext">{$nametext}</div>
        <div class="rowinput">{$inputname}</div>
    </div>

        {if isset($inputstatus)}
        <div class="pagerow">
           <div class="rowtext">{$mod->Lang('status')}</div>
           <div class="rowinput">{$inputstatus}</div>
        </div>
        {/if}

        <div class="pagerow">
           <div class="rowtext">{$addresstext}</div>
           <div class="rowinput">{$inputaddress}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$mod->Lang('latitude')}</div>
           <div class="rowinput">{$inputlatitude}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$mod->Lang('longitude')}</div>
           <div class="rowinput">{$inputlongitude}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$telephonetext}</div>
           <div class="rowinput">{$inputtelephone}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$faxtext}</div>
           <div class="rowinput">{$inputfax}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$emailtext}</div>
           <div class="rowinput">{$inputemail}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$websitetext}</div>
           <div class="rowinput">{$inputwebsite}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$detailstext}</div>
           <div class="rowinput">{$inputdetails}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$imagetext}</div>
           <div class="rowinput">{$imagecurrent}{$imagecurrenthidden}{$imageupload}{$deletetext}{$imagecurrentdelete}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$logotext}</div>
           <div class="rowinput">{$logocurrent}{$logocurrenthidden}{$logoupload}{$deletetext}{$logocurrentdelete}</div>
        </div>
        {if $customfieldscount gt 0}
            {foreach from=$customfields item=customfield}
            <div class="pagerow">
                <p class="rowtext">{$customfield->name}:</p>
                <p class="rowinput">{$customfield->input_box}</p>
                                {if isset($customfield->thumb_url)}
                                <a class="fancybox" href="{$customfield->image_url}"><img src="{$customfield->thumb_url}"></a>
                                {/if}
            </div>
            {/foreach}
          {/if}
        <div class="pagerow">
           <div class="rowtext">{$mod->Lang('hierarchy')}:</div>
           <div class="rowinput">{$inputhier}</div>
        </div>
           {if $categoriescount gt 0}
                  <div class="pagerow">
                <p class="rowtext">{$mod->Lang('categories')}:</p>
                     <p class="rowinput">
                       <select name="{$actionid}cd_categories[]" multiple="multiple" size="5">
                         {html_options options=$catnames selected=$sel_categories"}
                       </select>
                     </p>
                  </div>
        {/if}
        <div class="pagerow">
          <p class="rowtext">&nbsp;</p>
            <p class="rowinput">{$submit}</p>
        </div>
      {$endform}

Il y a bien la variable custumfield.

Apres dans le gabarit du module pour la page d'édition j'ai bien ceci :
Code :
[== HTML ==]
{if $companyid > 1}
<h4>{$mod->Lang('editcompany')}</h4>
{else}
<h4>{$mod->Lang('addcompany')}</h4>
{/if}

{cgerror}{$message}{/cgerror}

{$startform}
    <div class="pagerow">
        <div class="rowtext">{$nametext}</div>
        <div class="rowinput">{$inputname}</div>
    </div>

        {if isset($inputstatus)}
        <div class="pagerow">
           <div class="rowtext">{$mod->Lang('status')}</div>
           <div class="rowinput">{$inputstatus}</div>
        </div>
        {/if}

        <div class="pagerow">
           <div class="rowtext">{$addresstext}</div>
           <div class="rowinput">{$inputaddress}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$telephonetext}</div>
           <div class="rowinput">{$inputtelephone}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$faxtext}</div>
           <div class="rowinput">{$inputfax}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$emailtext}</div>
           <div class="rowinput">{$inputemail}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$websitetext}</div>
           <div class="rowinput">{$inputwebsite}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$detailstext}</div>
           <div class="rowinput">{$inputdetails}</div>
        </div>
        <div class="pagerow">
                   <div class="rowtext">nbabobpdb</div>
           <div class="rowinput">{$inputdetails}</div>
        </div>
        <div class="pagerow">
           <div class="rowtext">{$logotext}</div>
           <div class="rowinput">{$logocurrent}{$logocurrenthidden}{$logoupload}{$deletetext}{$logocurrentdelete}</div>
        </div>
        {if $customfieldscount gt 0}
            {foreach from=$customfields item=customfield}
            <div class="pagerow">
                <p class="rowtext">{$customfield->name}:</p>
                <p class="rowinput">{$customfield->input_box}</p>
                                {if isset($customfield->thumb_url)}
                                <a class="fancybox" href="{$customfield->image_url}"><img src="{$customfield->thumb_url}"></a>
                                {/if}
            </div>
            {/foreach}
          {/if}
        <div class="pagerow">
           <div class="rowtext">{$mod->Lang('hierarchy')}:</div>
           <div class="rowinput">{$inputhier}</div>
        </div>
           {if $categoriescount gt 0}
                  <div class="pagerow">
                <p class="rowtext">{$mod->Lang('categories')}:</p>
                     <p class="rowinput">
                       <select name="{$actionid}cd_categories[]" multiple="multiple" size="5">
                         {html_options options=$catnames selected=$sel_categories"}
                       </select>
                     </p>
                  </div>
        {/if}
        <div class="pagerow">
          <p class="rowtext">&nbsp;</p>
            <p class="rowinput">{$submit}</p>
        </div>
      {$endform}

Normal jusqu'ici sauf que mes champs perso ne sont pas visible... (je précise qu'ils apparaissent bien quand je les crée à partir de panneau admin).


[Résolu]Création d'un module - airelibre - 21/05/2012

Est-ce que les champs custom sont marqués "publiques" dans tes préférences de module (définitions des champs) ?


[Résolu]Création d'un module - Celtic MAn - 21/05/2012

La checkbox pour "Publique" est cochée.


[Résolu]Création d'un module - airelibre - 21/05/2012

C'est un bug connu et corrigé dans la version SVN : http://dev.cmsmadesimple.org/bug/view/7841

La solution est sur cette page Smile


[Résolu]Création d'un module - Celtic MAn - 21/05/2012

airelibre a écrit :C'est un bug connu et corrigé dans la version SVN : http://dev.cmsmadesimple.org/bug/view/7841

La solution est sur cette page Smile

Merci beaucoup Big Grin

Maintenant je m'attaque à la recherche par "filtre".


[Résolu]Création d'un module - airelibre - 21/05/2012

Ok ca marche - peux-tu marquer le sujet en [Résolu] dans le sujet ?

Pour le filtre, normalement ca marche bien. Utilises le module PostCode pour gérer les distances par km autour de ton adresse par exemple


[Résolu]Création d'un module - Celtic MAn - 21/05/2012

Merci pour l'info.


[Résolu]Création d'un module - airelibre - 21/05/2012

De rien, je ferme le sujet - Bonne continuation !