Forum CMS Made Simple FR
[Résolu] Module orders, desactiver les champs facturation required - 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] Module orders, desactiver les champs facturation required (/thread-3025.html)



[Résolu] Module orders, desactiver les champs facturation required - Piet - 08/12/2013

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.9
#~ Url du site : www.mangez-composez.be
#~ Hébergeur / Soft : ovh
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.9
#~ Installed Modules:
#~ CMSMailer: 5.2.2
#~ CMSPrinting: 1.0.5
#~ FileManager: 1.4.3
#~ MenuManager: 1.8.6
#~ MicroTiny: 1.2.5
#~ ModuleManager: 1.5.5
#~ AceEditor: 1.0
#~ Search: 1.7.11
#~ ThemeManager: 1.1.8
#~ FormBuilder: 0.7.4
#~ JQueryTools: 1.2.5
#~ CGSimpleSmarty: 1.7
#~ Products: 2.20.1
#~ CGEcommerceBase: 1.4.3
#~ CGExtensions: 1.38
#~ Cart: 1.10
#~ CGPaymentGatewayBase: 1.2.2
#~ FrontEndUsers: 1.22.2
#~ Orders: 1.15.3
#~ CGSmartImage: 1.14.1
#~ News: 2.13
#~ Gallery: 1.6.1
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 64000000
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.4.21
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 2048
#~ E_DEPRECATED: 8192
#~ memory_limit: 512M
#~ max_execution_time: 120
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 64M
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: fpm-fcgi
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.1.66
#~ Server Db Grants: Impossible de trouver un privilège "GRANT ALL". Cela peut signifier que vous pourriez avoir des problèmes pour installer ou retirer des modules, ou encore l 'ajout et la suppression d'éléments, y compris les pages.
#~ Server Time Diff: Aucune différence de date du système de fichiers trouvées
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour les pros!

Grâce à la superbe démo e-commerce cmsms, j'ai réussi à mettre en place tout le processus de produit, panier...

Il me reste une petite épine dans le pied et je ne trouve pas de solution.

Avec le module orders, dans le gabarit de formulaire de facturation, certains champs sont requis. Or je n'ai pas besoin de tous ces champs, et je souhaite les masquer.

Mais il y a une vérification sur les champs requis et si je les supprime, ou les masque, le formulaire me renvoie le message:"L'adresse que vous avez entrée pour "Facturation" est invalide. Merci de vérifier que tous les champs requis sont renseignés."

comment puis-je modifier les champs requis? (Ca fonctionne parfaitement si tous les champs sont présents)

Voici, au cas où, le code du gabarit problématique:
Code :
[== Indéfini ==]
{* billing form template *}
{* this is a frontend template *}
<h3>{$Orders->Lang('order_processing')}:</h3>
{if isset($status)}
  {* there is an error of some type.... you can check the $status variable for the type of error *}
  <div class="error">
  <ul>
  {foreach from=$errors item='error'}
    <li>{$error}</li>
  {/foreach}
  </ul>
  </div>
{/if}

{$formstart}

<div class="billing_info">
<fieldset>
<legend>&nbsp;{$Orders->Lang('billing_info')}:&nbsp;</legend>
<span class="required">{$Orders->Lang('company')}: {$input_billing_company}</span><br />
<span class="required">{$Orders->Lang('first_name')}:* {$input_billing_first_name}</span><br />
<span class="required">{$Orders->Lang('last_name')}:* {$input_billing_last_name}</span><br />
<span class="required">{$Orders->Lang('address1')}:* {$input_billing_address1}</span><br />
{$Orders->Lang('address2')}: {$input_billing_address2}<br />
<span class="required">{$Orders->Lang('city')}:* {$input_billing_city}</span><br />
<span class="required">{$Orders->Lang('state/province')}:* {$input_billing_state}</span><br />
<span class="required">{$Orders->Lang('postal')}:* {$input_billing_postal}</span><br />
<span class="required">{$Orders->Lang('country')}:* {$input_billing_country}</span><br />
{$Orders->Lang('phone')}: {$input_billing_phone}<br />
{$Orders->Lang('fax')}: {$input_billing_fax}<br />
{$Orders->Lang('email')}:* {$input_billing_email}<br />
</fieldset>
</div>
<br/>

{* if you do not need shipping information, just hide these fields using css *}
{foreach from=$shipping_inputs item='one' name='shipments'}
<div class="shipping_info">
{assign var='addr' value=$one.data->get_shipping_address()}
<fieldset>
{* this next part is a bit hackish *}
{capture assign='name'}{$one.data->get_name()}{/capture}
<legend> {if $smarty.foreach.shipments.total == 1}{$Orders->Lang('shipping_info_if_different')}:{else}{$Orders->Lang('shipping_info_for')}: {$name}:{/if}</legend>
<span class="required">{$Orders->Lang('company')}: {$one.input_company}</span><br />
<span class="required">{$Orders->Lang('first_name')}:* {$one.input_first_name}</span><br />
<span class="required">{$Orders->Lang('last_name')}:* {$one.input_last_name}</span><br />
<span class="required">{$Orders->Lang('address1')}:* {$one.input_address1}</span><br />
{$Orders->Lang('address2')}: {$one.input_address2}<br />
<span class="required">{$Orders->Lang('city')}:* {$one.input_city}</span><br />
<span class="required">{$Orders->Lang('state/province')}:* {$one.input_state}</span><br />
<span class="required">{$Orders->Lang('postal')}:* {$one.input_postal}</span><br />
<span class="required">{$Orders->Lang('country')}:* {$one.input_country}</span><br />
{$Orders->Lang('phone')}: {$one.input_phone}<br />
{$Orders->Lang('fax')}: {$one.input_fax}<br />
{$Orders->Lang('email')}:* {$one.input_email}<br />
</fieldset>
<br/>
</div>
{/foreach}

<fieldset>
<legend>&nbsp;{$Orders->Lang('order_notes')}:&nbsp;</legend>
<p>{$Orders->Lang('info_order_notes')}</p>
{$order_notes}
</fieldset>
<br/>

<input type="submit" name="{$actionid}submit" value="{$Orders->Lang('next')}"/>

{$formend}

Si je change la classe -> marche pas, si je supprime la ligne dans les 2 boucles -> marche pas

peut-être dois-je changer quelque chose dans le fichier class order adress du module mais j'ai peur de faire des bêtises...
Code :
[== Indéfini ==]
class orders_address extends cge_address
{
  // a dumb class that just extends cge_address to change the name
  public function __construct()
  {
    parent::__construct();
  }    


  public function is_valid()
  {
    if( $this->get_firstname() == '' ) return FALSE;
    if( $this->get_lastname() == '' ) return FALSE;
    if( $this->get_address1() == '' ) return FALSE;
    if( $this->get_city() == '' ) return FALSE;
    if( $this->get_state() == '' && orders_helper::state_required() ) return FALSE;
    if( $this->get_postal() == '' && orders_helper::postal_required() ) return FALSE;
    if( $this->get_country() == '' ) return FALSE;
    if( $this->get_email() == '' ) return FALSE;
    return TRUE;
  }
}

// EOF
?>

Merci de votre aide,
cordialement,
Piet


[Résolu] Module orders, desactiver les champs facturation required - Piet - 08/12/2013

Sad :| Smile Big Grin

Coup de génie, je me suis dit "regarde les préférences..." et il y a une coche pour rendre obligatoire 'state', et c'est ça qui bloquait mon form...

Merci à moi de m'avoir aidé, si en plus ça peut aider d'autres ânes comme moi...