Jump to content

Come rendere obbligatori i campi Azienda e Informazioni addizionali?


crisfiore

Recommended Posts

Ciao a tutti
sto cercando da un pò di utilizzare la versione 1.3.6 di prestashop, dovrei rendere obbligatori i campi Azienda (company) e Informazioni Addizionali (other) che compaiono nel modulo di iscrizione al sito dell'utente (li devo usare per altri scopi, ho già modificato le etichette). Avevo già modificato in questo modo il campo del Codice fiscale con successo e ho cercato di fare le stesse cose per questi altri campi ma non funziona. Ho modificato i seguenti files:

themes/address.tpl
themes/ authentication.tpl
classes/customer.php
modules/paypalapi/express/authentication.tpl

ho aggiunto ' required ' al tag

in questo modo

per il campo ' company '
ho aggiunto ' required ' al tag

in questo modo

per il campo ' other '

ho aggiunto i tag * prima del tag di chiusura



Tutto questo l' ho fatto in tutti i file elencati sopra.

Poi ho modificato il file ' prestashop/classes/customer.php ' aggiungendo ' company ' e ' other ' in fondo alla riga 85 in questo modo:

protected $fieldsRequired = array('lastname', 'passwd', 'firstname', 'email','cf','company','other');

Non mi pare che ci siano altri file con queste righe di codice a parte quelli nella cartella Tools/Smary/Compile che non credo di dover modificare. Dove sbaglio?

Ringrazio chiunque voglia darmi una dritta. Grazie
Link to comment
Share on other sites

Ciao
Mi son accorto ora che non tutto il testo che avevo copiato e incollato da notepad è stato visualizzato nel topic per cui mancavano gli altri file che ho modificato, ora li ho aggiunti, comunque fra questi non c'è classes/address.php, per cui lo vado a vedere anche se non capisco totalmente quello che mi suggerisci, sto scercando di studiare php e html, ma sono tutt'altro che un maestro.
Ti ringrazio mostissimo per le informazioni che mi hai dato
Ciao

Link to comment
Share on other sites

Ciao
Ho modificato il file classes/Address.php aggiungendo al fondo della riga Company e Other in questo modo:

protected $fieldsRequired = array(‘lastname’, ‘passwd’, ‘firstname’, ‘email’,‘cf’,‘company’,‘other’);

Ma non ho ottenuto alcun risultato. Non so più cosa fare, questa modifica è essenziale per me. Qualcuno ha qualche idea in proposito?
Ringrazio e saluto tutti.

Link to comment
Share on other sites

  • 3 weeks later...

nella 1.3.7 avevo trovato questa guida

dovresti fare questo per ogni campo, salva il file prima non si sa mai.....



PIVA E CF OBBLIGATORI
classes/Customer.php
Trova:
protected    $fieldsRequired = array('lastname', 'passwd', 'firstname', 'email');
Sostituisci con:
protected    $fieldsRequired = array('lastname', 'passwd', 'firstname', 'email', 'cf');

authentication.tpl:


    {l s='CF'}
    <input type="text" class="text" name="cf" id="cf" value="{if isset($smarty.post.cf)}{$smarty.post.cf|escape:'htmlall':'UTF-8'}{/if}" maxlength="16" />
    *

Link to comment
Share on other sites

Ti ringrazio Clalla anche se un pò in ritardo.

Quello che mi consigli lo avevo già provato ed aveva funzionato perfettamento con il campo CF ma non funziona con i campi che devo modificare ora. Se qualcuno leggesse questo post non ho ancora risolto questa cosa, al punto che sono in effetti bloccato ed ho un pò messo da parte la cosa perchè l' uso di questi campi è assolutamente necessario per la mia attività.
Comprendo che non saranno in molti fra quelli che mi leggono a poter risolvere questa cosa ed i pochissimi che potrebbero farlo avranno altri problemi. Grazie comunque per le opportunità offerte da questo forum.

Link to comment
Share on other sites

  • 4 months later...

devi anche modificare il tpl del tuo layout.

 

esempio di mia modifica per azienda e P.Iva obbligatori.

 

/classes/Address.php (verso la linea 90)

 

protected $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'city', 'company', 'vat_number');

 

/themes/tuotema/Address.tpl

 

<form action="{$link->getPageLink('address.php', true)}" method="post" class="std">
<fieldset>
 <h3>{if isset($id_address)}{l s='Your address'}{else}{l s='New address'}{/if}</h3>
 <p class="required text dni">
  <label for="dni">{l s='Identification number'}</label>
  <input type="text" class="text" name="dni" id="dni" value="{if isset($smarty.post.dni)}{$smarty.post.dni}{else}{if isset($address->dni)}{$address->dni|escape:'htmlall':'UTF-8'}{/if}{/if}" />
  <span class="form_info">{l s='DNI / NIF / NIE'}</span>
  <sup>*</sup>
 </p>
{if $vat_display == 2}
 <div id="vat_area">
{elseif $vat_display == 1}
 <div id="vat_area" style="display: none;">
{else}
 <div style="display: none;">
{/if}
 <div id="vat_number">
  <p class="text">
   <label for="vat_number">{l s='VAT number'}</label>
   <input type="text" class="text" name="vat_number" value="{if isset($smarty.post.vat_number)}{$smarty.post.vat_number}{else}{if isset($address->vat_number)}{$address->vat_number|escape:'htmlall':'UTF-8'}{/if}{/if}" />
  </p>
 </div>
 </div>
{assign var="stateExist" value="false"}
{foreach from=$ordered_adr_fields item=field_name}
 {if $field_name eq 'company'}
  <p class="text">
  <input type="hidden" name="token" value="{$token}" />
  <label for="company">{l s='Company'}</label>
  <input type="text" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{else}{if isset($address->company)}{$address->company|escape:'htmlall':'UTF-8'}{/if}{/if}" />
 </p>
 {/if}
 {if $field_name eq 'firstname'}
 <p class="required text">
  <label for="firstname">{l s='First name'}</label>
  <input type="text" name="firstname" id="firstname" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{else}{if isset($address->firstname)}{$address->firstname|escape:'htmlall':'UTF-8'}{/if}{/if}" />
  <sup>*</sup>
 </p>
 {/if}
 {if $field_name eq 'lastname'}
 <p class="required text">
  <label for="lastname">{l s='Last name'}</label>
  <input type="text" id="lastname" name="lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{else}{if isset($address->lastname)}{$address->lastname|escape:'htmlall':'UTF-8'}{/if}{/if}" />
  <sup>*</sup>
 </p>
 {/if}
 {if $field_name eq 'address1'}
 <p class="required text">
  <label for="address1">{l s='Address'}</label>
  <input type="text" id="address1" name="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{else}{if isset($address->address1)}{$address->address1|escape:'htmlall':'UTF-8'}{/if}{/if}" />
  <sup>*</sup>
 </p>
 {/if}
 {if $field_name eq 'address2'}
 <p class="required text">
  <label for="address2">{l s='Address (Line 2)'}</label>
  <input type="text" id="address2" name="address2" value="{if isset($smarty.post.address2)}{$smarty.post.address2}{else}{if isset($address->address2)}{$address->address2|escape:'htmlall':'UTF-8'}{/if}{/if}" />
 </p>
 {/if}
 {if $field_name eq 'postcode'}
 <p class="required postcode text">
  <label for="postcode">{l s='Zip / Postal Code'}</label>
  <input type="text" id="postcode" name="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{else}{if isset($address->postcode)}{$address->postcode|escape:'htmlall':'UTF-8'}{/if}{/if}" onkeyup="$('#postcode').val($('#postcode').val().toUpperCase());" />
  <sup>*</sup>
 </p>
 {/if}
 {if $field_name eq 'city'}
 <p class="required text">
  <label for="city">{l s='City'}</label>
  <input type="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{else}{if isset($address->city)}{$address->city|escape:'htmlall':'UTF-8'}{/if}{/if}" maxlength="64" />
  <sup>*</sup>
 </p>
 <!--
  if customer hasn't update his layout address, country has to be verified
  but it's deprecated
 -->
 {/if}
 {if $field_name eq 'Country:name' || $field_name eq 'country'}
 <p class="required select">
  <label for="id_country">{l s='Country'}</label>
  <select id="id_country" name="id_country">{$countries_list}</select>
  <sup>*</sup>
 </p>
 {if isset($vatnumber_ajax_call) && $vatnumber_ajax_call}
 <script type="text/javascript">
 var ajaxurl = '{$ajaxurl}';
 {literal}
   $(document).ready(function(){
 $('#id_country').change(function() {
  $.ajax({
   type: "GET",
   url: ajaxurl+"vatnumber/ajax.php?id_country="+$('#id_country').val(),
   success: function(isApplicable){
    if(isApplicable == "1")
    {
	 $('#vat_area').show();
	 $('#vat_number').show();
    }
    else
    {
	 $('#vat_area').hide();
    }
   }
  });
 });
   });
 {/literal}
 </script>
 {/if}
 {/if}
 {if $field_name eq 'State:name' || $field_name eq 'state'}
 {assign var="stateExist" value="true"}
 <p class="required id_state select">
  <label for="id_state">{l s='State'}</label>
  <select name="id_state" id="id_state">
   <option value="">-</option>
  </select>
  <sup>*</sup>
 </p>
 {/if}
 {/foreach}
 {if $stateExist eq "false"}
 <p class="required id_state select">
  <label for="id_state">{l s='State'}</label>
  <select name="id_state" id="id_state">
   <option value="">-</option>
  </select>
  <sup>*</sup>
 </p>
 {/if}
 <p class="textarea">
  <label for="other">{l s='Additional information'}</label>
  <textarea id="other" name="other" cols="26" rows="3">{if isset($smarty.post.other)}{$smarty.post.other}{else}{if isset($address->other)}{$address->other|escape:'htmlall':'UTF-8'}{/if}{/if}</textarea>
 </p>
 <p style="margin-left:50px;">{l s='You must register at least one phone number'} <sup style="color:red;">*</sup></p>
 <p class="text">
  <label for="phone">{l s='Home phone'}</label>
  <input type="text" id="phone" name="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{else}{if isset($address->phone)}{$address->phone|escape:'htmlall':'UTF-8'}{/if}{/if}" />
 </p>
 <p class="text">
  <label for="phone_mobile">{l s='Mobile phone'}</label>
  <input type="text" id="phone_mobile" name="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{else}{if isset($address->phone_mobile)}{$address->phone_mobile|escape:'htmlall':'UTF-8'}{/if}{/if}" />
 </p>
 <p class="required text" id="address_alias">
  <label for="alias">{l s='Assign an address title for future reference'}</label>
  <input type="text" id="alias" name="alias" value="{if isset($smarty.post.alias)}{$smarty.post.alias}{else}{if isset($address->alias)}{$address->alias|escape:'htmlall':'UTF-8'}{/if}{if isset($select_address)}{else}{l s='My address'}{/if}{/if}" />
  <sup>*</sup>
 </p>
</fieldset>
<p class="submit2 address_navigation" style="padding:0">
 {if isset($id_address)}<input type="hidden" name="id_address" value="{$id_address|intval}" />{/if}
 {if isset($back)}<input type="hidden" name="back" value="{$back}" />{/if}
 {if isset($mod)}<input type="hidden" name="mod" value="{$mod}" />{/if}
 {if isset($select_address)}<input type="hidden" name="select_address" value="{$select_address|intval}" />{/if}
 <a class="button" href="{$link->getPageLink('addresses.php', true)}" title="{l s='Previous'}">« {l s='Previous'}</a>
 <input type="submit" name="submitAddress" id="submitAddress" value="{l s='Save'}" class="button" />
 <br class="clear"/>
</p>
<p class="required"><sup>*</sup>{l s='Required field'}</p>
</form>

 

poi cancella la cache dello smarty

 

in /tools/smarty/compile e/o in /tools/smarty_v2/compile

Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...