Back to top

Autore Topic: [RISOLTO]COMMUNIty BUILDER + $SESSION  (Letto 4973 volte)

Offline mondisommersi2

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
[RISOLTO]COMMUNIty BUILDER + $SESSION
« il: 14 Set 2010, 22:58:50 »
Buonasera, avrei bisogno di un piccolo aiuto: nel file php del modulo di COmmunity Builder (che vi ho allegato) dovrei includere un istruzione per salvare  il nome utente nella $SESSION una volta effettuato il login. Purtroppo la mia conoscienza è troppo limitata per la complessità di questo file, quindi mi rivolgo gentilmente a voi. Inoltre vorrei anche la giusta sintassi delle istruzioni per il salvataggio del nome utente nella $SESSION: VI ringrazio in anticipo per il vostro prezioso aiuto.
Cordialmente,

Flavio

[allegato eliminato da un amministratore]
« Ultima modifica: 17 Set 2010, 01:12:07 da mondisommersi2 »

mau_develop

  • Visitatore
Re:COMMUNIty BUILDER + $SESSION
« Risposta #1 il: 15 Set 2010, 13:38:14 »
devi fare un plugin che all'evento onAutentication (<- nn è scritto proprio così :) )

recuperi la sessione
      $this->currsess =& JFactory::getSession();

recuperi variabili di sessione

               $this->currsess->get( 'NOME', false )) //-> n var : default

o ne inserisci

               $this->currsess->set( 'NOME', valore);

M

Offline mondisommersi2

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #2 il: 15 Set 2010, 14:25:33 »
Anzitutto grazie per l'aiuto. Non credo sia una buona idea fare un plugin, in primis perchè cmq non ho nemmeno le competenze necessarie per farlo. Preferirei invece capire dove collocare, all interno del file del modulo di login di community builder l'istruzione per il salvataggio del nome utente nella $session. Spero mi possiate aiutare in questo. Cordialmente,

Flavio Paterno

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #3 il: 15 Set 2010, 16:17:05 »
Comuqnue se vuoi salvare il nome utente al momento del login non penso che tu debba lavorare a livello di modulo, ma bensi a livello di componente, non sono super esperto di CB ma penso che la form punti al login del componente e sara li che controlla l'autenticazione, quindi o scrivi un plugin come ti hanno gia detto oppure cerchi al funzione di login del CB
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline mondisommersi2

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #4 il: 15 Set 2010, 16:19:45 »
Guarda, ti dico, credo che il file PHP che ho postato sia il core del meccanismo di login. Li ci sono tutte le istruzioni, il mio problema è che non essendo esperto di php non capisco dove sia il punto esatto in cui avviene il login.

mau_develop

  • Visitatore
Re:COMMUNIty BUILDER + $SESSION
« Risposta #5 il: 15 Set 2010, 17:10:37 »
sicuro che sia li e non va invece a fare l'auth con joomla?

comunque ci sono delle righedove recupera l'user dal db .. rova a piazzarlo lì e guardi se lo scrive nella sessione con un dump della sessione ( al "giro" dopo...)

M.

.

Offline mondisommersi2

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #6 il: 15 Set 2010, 19:34:02 »
sicuro che sia li e non va invece a fare l'auth con joomla?

comunque ci sono delle righedove recupera l'user dal db .. rova a piazzarlo lì e guardi se lo scrive nella sessione con un dump della sessione ( al "giro" dopo...)

M.

.

EH ma è propri oquesto l aiuto che cerco.... quelle righe che dici tu vorrei sapere quali sono, e quindi dove piazzarlo...

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #7 il: 15 Set 2010, 22:25:35 »
perché vuoi fare ciò? per farne che?

a parte che in nome utente è già salvato in $_SESSION (occhio all'underscore) e ti basta un print_r per appurarlo, poi sempre usare JFactory::getUser() per avere i dati dell'utente.

sicuramente anche CB si salverà qualcosa in sessione, appena scritto:
http://extensions.joomla.org/extensions/access-a-security/backend-a-full-access-control/13883
usalo per verificare che cosa esiste già.

ps: non mettere i titoli in maiuscolo.

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mondisommersi2

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #8 il: 16 Set 2010, 00:58:49 »
Sto facendo un sito per un club juve in cui c è un form di prenotazione biglietti delle partite. Allora mi serve pescare in maniera trasparente un campo (il numero di tesseramento) per poterlo salvare nel db delle prenotazioni al fine di poter applicare una stored procedure che possa limitare il numero di prenotazioni per ciascun utente. Cmq ti ringrazio moltissimo per la tua risposta, ora vedo di mettere in pratica cioche dici. Il nome utente è proprio cio che mi serve per fare la query che mi garantisce di fare join e recuperare il numero tesseramento. Però certo, a pensarci bene a sto punto perche non usare direttamente il nome utente al posto del numero di tesseramento (a patto che il nome utente sia univocoovviamente)?


Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #9 il: 16 Set 2010, 09:14:37 »
Citazione
un sito per un club juve
 
e allora arrangiati!  ;D ;D ;D

lo username è univoco nel sistema, anche se il controllo è fatto via programma e non usando una chiave unique.

scusa, mi sa che tu sei una succursale dell'ufficio complicazione cose semplici  ;)
visto che dalla sessione, o con getuser(), puoi recuperare l'id dell'utente, che è la primary key della tabella, perché non usi questo? immagino che anche le tabelle di CB saranno legate (1:1) a quella utenti sull'id.

stored procedure: fai un select count() sulle prenotazioni prima di presentare la maschera di input, e nel caso gli dici che ha già oltrepassato i limiti.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mondisommersi2

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #10 il: 16 Set 2010, 14:34:58 »
Si si ma infatti nonappena uun utente prova a prenotare un altro biglietto parte una stored procedure scatenata dall evento di prenotazione che controlla..Perche non ti piace la stored procedure?La posso richiamare direttamente da programma.. Ok per lo username, hai decisamente ragione.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #11 il: 16 Set 2010, 14:59:27 »
perché in questo caso non ha senso usarla: la gestione dell'errore deve essere fatta comunque da programma, e quindi conviene effettuare il check da programma nel metodo check della Jtable associata alla tabella delle prenotazioni. in questo modo:

. il check si trova ove uno si aspetta che sia in Joomla (convenzioni di coding)
. il codice è meno vincolato ad una specifica versione/release del db
. il flusso logico dei dati nel processo non salta da un tier all'altro.

almeno questa è la mia visione.

ciao,
marco


mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mondisommersi2

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #12 il: 16 Set 2010, 15:10:28 »
Assolutamente, mi trovo pienamente daccordo con te, anzi è pure più semplicifativo. Però non ho molto ben presente come farlo, potresti spiegarmelo per favore? Considera che è la primissima volta che mi trovo di fronte a questo tipo di problematica. Grazie ancora per il tuo aiuto,
Cordialmente,

Flavio


PS: Se non è chiedere troppo mi potresti gentilmente indicare la sintassi corretta per mettere il valore del getuser in un hidden input? Non me ne intendo di php, cmq se non sbaglio l'idea è:

<?php
echo '<input name="userid" type="hidden" value='.getserid().'>';
« Ultima modifica: 16 Set 2010, 15:16:56 da mondisommersi2 »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #13 il: 16 Set 2010, 15:53:06 »
ahi! qui diventa difficile...

in joomla le interazioni tra i dati rappresentati dal model e le rispettive tabelle del db avvengono tramite estensioni della classe JTable. è compito di queste classi derivate gestire le operazioni fisiche sul db, in particolare insert ed update. uno dei metodi presenti nelle classi è check() che verifica i dati inseriti e restituisce il risultato della verifica: qui vanno, ovviamente, inseriti i controlli. vorrei dirti di leggerti un po' di documentazione, ma se devi partire da quella di php5 allora è dura!

// jimport( 'joomla.user.user' ); // di solito è presente in ogni punto del framework
$user =& JFactory::getUser();
echo '<input name="userid" type="hidden" value='. $user->id .'>';

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mondisommersi2

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #14 il: 16 Set 2010, 18:51:07 »
Marco sei un salvatore, grazie, grazie, grazie davvero! Con quelle 3 righe di codice ho risolto un problema che mi angosciava non poco. Sai sono laureato in informatica, ma non ho mai studiato php, quest anno pensavo di metterlo come corso facoltativo, che dici, faccio bene?

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #15 il: 16 Set 2010, 22:12:49 »
php? dipende da quali linguaggi conosci e da in quale ambito vorrai lavorare.
immagino che java si studi ancora (è un po' di anni che non bazzico più l'università (quando studiavo le interfacce erano testuali ed i servers tosti non arrivavano ad 1M di ram!!! al massimo si arrivava al C++ ed il mio compagno di studi era fred flinstone  ;D ), ma io consiglierei il C# per il curriculum. php puoi studiartelo da solo e poi dare l'esame zend, del resto hai una laurea in informatica.
è meglio imparare con un insegnate come scrivere correttamente in C#. il php non è un buon linguaggio per imparare (e con questo mi sono giocato le ultime simpatie in questo  forum) almeno finché non sarà fortemente tipizzato, fondamentalmente resta una versione semplificata e liberalizzata del C, con tutti i suoi, pochi, grandissimi pro e i suoi innumerevoli contro.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mondisommersi2

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #16 il: 16 Set 2010, 23:48:15 »
Direi che sei stato profetico, seguiro il tuo consiglio. Cosa puoi dirmi invece del check di cui mi parlavi nei post precedenti?

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #17 il: 17 Set 2010, 00:16:15 »
comunque segui i consigli dei tuoi prof...

i miei consigli, non di vita, si basavano sullo standard coding di joomla. come moderatore non dovrei auto promuovermi, od autoincensarmi, ma ti propongo questo fichissimo  ;D tool:

http://extensions.joomla.org/extensions/tools/development-tools/12073

link che poi rimanda al mio sito...
il giocattolino in questione scrive lo scheletro del componente, date le tabelle di appoggio.
ora non ricordo, dato che lo sviluppo avviene a salti nel tempo libero, se nella classe derivata da JTable vi è già il metodo check(). se non c'è basta inserire in admin/tables/[tuatabella].php

Codice: [Seleziona]
function check(){
// codice di validazione
return [esito check: true|false]
}

all'interno del metodo verifichi il numero di prenotazioni già fatte e restituisci true o false a seconda del caso.

per il resto dovrai cavartela con i vari tutorials on line... (scusa ma posso dedicare poco tempo al forum e va diviso un po' tra tutti  :( )

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mondisommersi2

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #18 il: 17 Set 2010, 01:00:03 »
Mmmmmm....Ho dato un occhiata, ma in tutta franchezza non credo di essere in grado con le mie attuali capacità di realzzare questo controllo col check. Opterei dunque per la stored procedure, che, anche se magarai complica di più le cose, almeno è una cosa alla mia portata... Grazie lo stesso dell aiuto.

Cordialmente,

Flavio

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:COMMUNIty BUILDER + $SESSION
« Risposta #19 il: 17 Set 2010, 01:09:23 »
ricordati il [RISOLTO] nel titolo del post di apertura del topic!

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif