[Résolu]Création d'un module

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
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.
Cool
#1
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.
Cool
#2
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.
{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
#2
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.
{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
#3
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
Cool
#3
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
Cool
#4
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é)
#4
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é)
#5
Regarde CompanyDirectory. A mon avis tu n'as pas besoin de partir sur un module custom
#5
Regarde CompanyDirectory. A mon avis tu n'as pas besoin de partir sur un module custom
#6
Je vais tester ce module. Merci pour l'info
Cool
#6
Je vais tester ce module. Merci pour l'info
Cool
#7
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).
Cool
#7
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).
Cool
#8
Est-ce que les champs custom sont marqués "publiques" dans tes préférences de module (définitions des champs) ?
#8
Est-ce que les champs custom sont marqués "publiques" dans tes préférences de module (définitions des champs) ?
#9
La checkbox pour "Publique" est cochée.
Cool
#9
La checkbox pour "Publique" est cochée.
Cool
#10
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
#10
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
#11
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".
Cool
#11
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".
Cool
#12
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
#12
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
#13
Merci pour l'info.
Cool
#13
Merci pour l'info.
Cool
#14
De rien, je ferme le sujet - Bonne continuation !
#14
De rien, je ferme le sujet - Bonne continuation !


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)