Jump to content

[Solved] Registrazione e possibilità di scegliere gruppi


Shella

Recommended Posts

Ciao a tutti, sto provando a dare la possibilità agli utent,i che fano una prima registrazione, in modo da fargli scegliere il gruppo attraverso una selezione con radiobox.
La versione di Prestashop che utilizzo è la 1.4.1

Le modifiche che ho apportato sono le seguenti:

authentication.php

require(dirname(__FILE__).'/config/config.inc.php');
$customer->id_default_group = (empty($_POST['group']) ? 1 : intval($_POST['group']));
ControllerFactory::getController('AuthController')->run();



authentication.tpl


{l s='group'}
           <input type="radio" name="group" id="group1" value="2" />
{l s='Avanzagas'}
           <input type="radio" name="group" id="group2" value="3"/>
{l s='Amicogas'}
           <input type="radio" name="group" id="group3" value="4"/>
{l s='GAC Olgiate'}


ed infine il Customer.php

//if (empty($this->id_default_group))
           //$this->id_default_group = 1;
       if ($this->id_default_group)
       $row = array('id_customer' => intval($this->id), 'id_group' =>$this->id_default_group);
       else
       $row = array('id_customer' => intval($this->id), 'id_group' => 1);



Riesco a vedere sul front-end la possibilità di selezionare le opzioni con i radiobox. Quando effettuo la registrazione però non viene scritto nulla e dall’admin infatti l’utente regustratosi non appartiene a nessun gruppo (nemmeno quello di default)

Sono anche disposto ad usufruire di un modulo a pagamento se ad un prezzo ragionevole ma non ne ho trovati.
Suggerimenti?

Grazie mille.

Shella

Link to comment
Share on other sites

  • 2 weeks later...

la scelta del gruppo di appartenenza al momento della registrazione la hai completata / risolta ?
E' possibile inoltre che un utente si registri, scelga il gruppo di appartenenza, rimanga momentaneamente disabilitato e venga poi abilitato dall'amministratore / referente ?

Link to comment
Share on other sites

Ciao, ti confermo entrambe le cose.. però distinte.
Intendo co questo che l'ambaradan (termine tecnico...) per i gruppi l'ho risolto prendendo spunto da questo thread:

http://www.prestashop.com/forums/viewthread/113300/#468046

Mentre per la richiesta di abilitazione da parte di amministratore ho trovato un modulo gratuito per prestashop 1.3 che gira anche su 1.4.1 (l'o testato e mi sembra andare bene). Lo trovi qui:

http://prestaportal.com/thread-112.html?highlight=customer+registration

Comunque questo ultimo modulo lo trovi più aggiornato su questo forum nella sezione inglese.. prova a cercare "Customer Registration" o roba simile e vedi che salta fuori. L'ultima versione che ho visto del modulo è la 2.0.

Ciao!

Shella

Link to comment
Share on other sites

ti ringrazio molto, proverò a dare un'occhiata appena trovol il tempo...
mi stò avvicinando ora al php e non sò se riuscirò a capirci qualcosa... prestashop mi sembra ottimo rispetto ad altri carrelli soprattutto mi interessava il discorso di gestione listini abilitati / disabilitati per gruppi, la gestione dei collaboratori, ecc.
Forse la "pecca" è che mi sembra che ci siano pochi moduli open source ad esempio l'import / export secondo me dovrebbe essere una cosa inclusa nel pacchetto: ho visto che ora si parla di web service che dovrebbero rendere le cose "più semplici" ?

Link to comment
Share on other sites

Si lo trovo ottimo anche io però ti avverto: non è il modo migliore per sforgiare le prime armi di php. Io lavoro con php da diverso tempo e, per carità personalmente, lo trovo molto ruvido da capire. Se vuoi capirci qualcosa devi smanettarti tutte le informazioni di Smarty perchè qui prima del php c'è lui e se non lo tieni presente impazisci letteralmete ;-)

Ciao!

Link to comment
Share on other sites

Anche io uso da un po il modulo che hai citato ma ora mi appare questo errore n el file di log mi viene scritto:

File does not exist: /home/mia cartella/public_html/500.shtml, referer: http://miosito/authentication.php'>http://miosito/authentication.php
[error] SoftException in Application.cpp:601: Directory "/home/mia cartella/public_html/modules" is writeable by group, referer: http://mio sito/authentication.php


non è che mi aiutereste a capire cos'è successo?

scusatemi ma non ci capisco nulla....

ho capito che l'errore potrebbe essere in autentication.php ma dove??? pensavo fosse qualcosa sui permessi ma cambiando da 755 a 777 non cambia nullla

47531_G4hWsE8dql192O50eorN_t

Link to comment
Share on other sites

Ciao, detto così non saprei aiutarti.
Hai controllato che il file citato esista effettivamente?
E poi se prima funzionava come mai ora non funziona più? Forse dovresti fare mente locle sulle ultime modifiche apportate che possono aver scatenato il tutto.
Scusami ma io, personalmente, non riesco ad esserti di ulteriore aiuto.

P.s. Le cartelle mancanti non sono buon segno... controlla che nella versione originale 1.3.2 siano presenti.

Ciao

Shella

Link to comment
Share on other sites

Ciao Shella e grazie per avermi risposto,

per le cartelle mancanti mi riferivo a quel post che hai usato per i gruppi...nella mia versione di prestashop non esistono controllers/AuthController.php...

Ho inserito il menu a tendina con tutti i gruppi nella pagina della registrazione ma quando l'utente ne seleziona uno nel database e nel BO non mi associa a nessun gruppo... come posso fare...

Quell'errore continua ad apparire io penso sia dovuto al cambio di server che è stato fatto in questi giorni e quindi secondo me è una questione di permessi ma non riesco a risolverlo :-(

In autentication.tpl ho messo

<!--Per far scegliere ad un cliente un gruppo-->



-- Seleziona un gruppo --
Installatore
Rivenditore
{l s='Seleziona il tuo gruppo di appartenenza'}




in Customer.php

/**

$this->id_default_group = 1; tolto per l'assegnazione automatica e aggiunto quello sotto**/


$res = parent::add($autodate, $nullValues);
if (!$res)
return false;
/**
$row = array('id_customer' => intval($this->id), 'id_group' => 1);tolto per l'assegnazione automatica e aggiunto quello sotto**/
$row = array('id_customer' => intval($this->id), 'id_group' => id_default_group);





cosa ho sbagliato???
Link to comment
Share on other sites

Per l'errore ho risolto era una questione di permessi :-) :-) il nuovo server non accettava il 777 nella cartella modules e l'ho cambiato a 755 :-) ma ancora non riesco a risolvere la questione dei gruppi...

ho rimodificato Customer.php mettendo

if ($this->id_default_group)
$row = array('id_customer' => intval($this->id), 'id_group' =>$this->id_default_group);
else
$row = array('id_customer' => intval($this->id), 'id_group' => 1);
return Db::getInstance()->AutoExecute(_DB_PREFIX_.'customer_group', $row, 'INSERT');


ma non è cambiato molto

Link to comment
Share on other sites

Nel front end le vedi le radio box per la selezione giusto?

Io ho modificato il file Customer.php così:

//Ciclo If Else modificato da Shella
       if (!empty($this->id_default_group))
           $row = array('id_customer' => (int)($this->id), 'id_group' => (int)$this->id_default_group);
       else
           $row = array('id_customer' => (int)($this->id), 'id_group' => 1);
       //Fino qui... end of IF



AuthController così:
riga 85 circa

$id_default_group = $_POST['id_default_group'];


riga 148 circa:

$id_default_group = $_POST['id_default_group'];


riga 183 circa:

self::$cookie->id_default_group = $customer->id_default_group;


riga 266 circa

self::$cookie->id_default_group = $customer->id_default_group;



Infine nel file authentication.tpl ho dichiarato le variabili da passare nel form così:

<!--Modifiche Shella -->


       {php}
       echo '';
       $qry = "select * from ps_group_lang where id_lang = 1";
       $result = @mysql_query($qry);
       if($result) {
           while($row=mysql_fetch_array($result)){
               echo ''.$row["name"].'';
           }
       }
       echo '{l s='Seleziona gruppo'}';
       {/php}

       <!--Fine Modifiche Shella -->




In quest'ultima parte uso la select per listare tutti i gruppi così diventa dinamico il discorso... lineare alla facciazza delle classi ma funzionale. Ammetto che non è una soluzione pulita ed in linea con le direttive Smarty ma sinceramente funziona e quindi mi sta bene. Ah attenzione...

... nel file Smarty.class.php avevo modificato una variabile affinchè mi permettesse di usare il php alla vecchia maniera e se non sbaglio la riga (170) era questa:

public $php_handling = self::PHP_PASSTHRU;



Spero possa aiutarti, fammi sapere eh!

Shella

Link to comment
Share on other sites

  • 7 months later...
  • 2 months later...
  • 8 months 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...