Forum CMS Made Simple FR

Version complète : [Résolu]Création d'un module
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
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.
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.
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
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é)
Regarde CompanyDirectory. A mon avis tu n'as pas besoin de partir sur un module custom
Je vais tester ce module. Merci pour l'info
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).
Est-ce que les champs custom sont marqués "publiques" dans tes préférences de module (définitions des champs) ?
La checkbox pour "Publique" est cochée.
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
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".
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
Merci pour l'info.
De rien, je ferme le sujet - Bonne continuation !