Joomla.it Forum
Joomla! 3 => Joomla! 3 => : pbjolly 08 Mar 2017, 21:34:51
-
Salve,
devo fare una query su una tabella Visform_1 per visualizzare tutti i dati immessi dall'utente corrente in linea ;
nella tabella VIsform_1 ho il campo ID "created_by" che è corrispondente all'ID della tabella users.
Come imposto la query ma soprattutto come faccio a capire qual'è la tabella giusta che restituisce l'ID dell'utente corrente in linea ? C'è un modo per capirlo ?
Grazie
-
Non devi capirlo ma solo chiedere al sistema con la funzione get user.
-
Spiegati meglio, io devo fare la query su ua tabella e devo utilizzare il componente ArtTable.
Saluti
-
http://www.joomla.it/articoli-della-community/5208-recupero-dati-utente-da-sessione-joomla.html
-
Ciao,
ma questo codice mi serve nel mio caso ?
Io devo fare una query da gestire sull'articolo e devo vedere in quel momento chi è in linea con il profilo che sta gestendo la query. Non so se ho reso l'idea.
Come poteri fare ?
Grazie
-
Ciao,
ma questo codice mi serve nel mio caso ?
Uff! Il codice te lo ha dato, che è giusto ciò che si può ragionevolmente chiedere ad un forum. Per il resto qui è pieno di programmatori ... basta chiedere.
Ciao!
-
Scusami,
ma ti chiedo la cortesia di non commentare in maniera sgarbata; il tutto non è chiaro se non l'hai capito e non mastico molto bene il php.
Comunque tante cose non sono chiare :
1) Se ho ben capito non tutto il codice va inserito, giusto ? Dove lo posso collocare, in Index.php ?
2) la variabile $utente mi restituisce l'utente in linea, giusto ?
3) Questa variabile, è globale e la posso utilizzare nella mia query del mio componente ArtTable?
4) fammi sapere se non ti costa molto il ritaglio di codice che può servirmi e semmai chiedo la cortesia a te o qualcuno mi dia delle risposte a riguardo.
5) H anche il problema come va utilizzato ArtTable ma per questo ho messo un altro post (ve ne sarei grati se voleste aiutarmi anche in questo)
Grazie
Saluti
-
@pbjolly
Non voglio scoraggiarti ma mi sembra che tu stia prendendo una strada veramente troppo complessa per le tue capacità.
Probabilmente ti conviene usare un cck come fabrik che ti renderebbe la vita molto più semplice.
Qui trovi guide e tutorial che possono darti molti spunti:
https://www.icagenda.it/fabrik.html
P.S. E' solo un consiglio spassionato che mi sento di darti, ovviamente sei totalmente libero di utilizzare il metodo che preferisci.
-
Visform comunque è ottimo anche se manca qualcosa.
Saluti
-
Ciao,
che mi dici di Frabrik Databasejoin ? L'hai mai usato ? Io lo vedo molto meglio e anche la guida è semplice anche se in Inglese.
Se lo utilizzo, dove posso agganciare il codice che hai postato per creare la variabile $utente?
Come lo aggancio all'articolo ?
Grazie
-
Segui le guide sia in italiano che in inglese su fabrik e vedrai che riesci ad ottenere quello che ti serve.
-
Scusami,
ma ti chiedo la cortesia di non commentare in maniera sgarbata; il tutto non è chiaro se non l'hai capito e non mastico molto bene il php.
Comunque tante cose non sono chiare :
1) Se ho ben capito non tutto il codice va inserito, giusto ? Dove lo posso collocare, in Index.php ?
2) la variabile $utente mi restituisce l'utente in linea, giusto ?
3) Questa variabile, è globale e la posso utilizzare nella mia query del mio componente ArtTable?
4) fammi sapere se non ti costa molto il ritaglio di codice che può servirmi e semmai chiedo la cortesia a te o qualcuno mi dia delle risposte a riguardo.
5) H anche il problema come va utilizzato ArtTable ma per questo ho messo un altro post (ve ne sarei grati se voleste aiutarmi anche in questo)
Saluti
Ok ok hai le tue ragioni anche tu. :)
1). Il codice non va inserito in index.php a motivo che per accedere all' utente bisogna che siano prima caricate le librerie di Joomla. Salvo errori il codice va inserito in quello dell'estensione visform. La posizione dipende da come è fatta l'estensione stessa; un file di nome helper.php oppure default.php dovrebbe andare bene. Anzi, meglio ancora: fai un tuo file da immergere in uno dell'estensione tramite include del php, sarà più facile la manutenzione in caso di aggiornamenti.
2). $utente = $user->username; restituisce l'utente in linea. Questa variabile fa parte del più generale oggetto JUser che contiene tutte le informazioni che potrebbero servirti al riguardo.
3). La variabile è utilizzabile nella tua query, esatto.
4). Posto un frammento di codice che, come il precedente trova l'user presente ed è anche molto simile al codice dell'articolo menzionato. Il nucleo è sempre JFactory::getUser(); però è assente un passaggio per riferimento che invece c'era in joomla 1.5 e quindi il frammento non ha problemi con le versioni recenti di php. Il frammento, come il precedente articolo, se ricordo giusto funziona senza bisogno di immergerlo in un file di joomla, si esegue anche da solo ed è utile come esempio dell'oggetto JUser e come estrarlo.
Non lamentarti che mastichi poco il php. Joomla utilizza un php complesso in grado di dare filo da torcere a chiunque!
<?php
if (!defined('_JEXEC')){
// Initialize Joomla framework
define('_JEXEC', 1);
}
// Load system defines
if (file_exists(dirname(__FILE__) . '/defines.php')){
require_once dirname(__FILE__) . '/defines.php';
}
if (!defined('JPATH_BASE')){
define('JPATH_BASE', dirname(__FILE__));
}
if (!defined('_JDEFINES')){
require_once JPATH_BASE . '/includes/defines.php';
}
// Get the framework.
require_once JPATH_BASE . '/includes/framework.php';
$app = JFactory::getApplication('site');
$app->initialise();
$user = JFactory::getUser();
echo "id:".$user->id;
echo '<br>';
var_dump($user);
/* output:
id:0
object(JUser)#44 (26) {
["isRoot":protected]=> bool(false)
["id"]=> int(0)
["name"]=> NULL
["username"]=> NULL
["email"]=> NULL
["password"]=> NULL
["password_clear"]=> string(0) ""
["block"]=> NULL
["sendEmail"]=> int(0)
["registerDate"]=> NULL
["lastvisitDate"]=> NULL
["activation"]=> NULL
["params"]=> NULL
["groups"]=> array(1) {
[0]=> string(1) "1"
}
["guest"]=> int(1)
["lastResetTime"]=> NULL
["resetCount"]=> NULL
["requireReset"]=> NULL
["_params":protected]=> object(Joomla\Registry\Registry)#45 (2) {
["data":protected]=> object(stdClass)#46 (0) { }
["separator"]=> string(1) "."
}
["_authGroups":protected]=> array(1) { [0]=> int(1) }
["_authLevels":protected]=> array(2) { [0]=> int(1) [1]=> int(1) }
["_authActions":protected]=> NULL
["_errorMsg":protected]=> NULL
["userHelper":protected]=> object(JUserWrapperHelper)#47 (0) { }
["_errors":protected]=> array(0) { }
["aid"]=> int(0)
}
*/
Ciao!
-
Grazie mille soprattutto per la tua disponibilità e pazienza; gentilissimo;
stasera lo provo e ti farò sapere; mi resta solo il nodo da sciogliere con la query; proverò anche fabrik. ;)
Saluti
-
Ciao,
un ultima cosa ma il plugin Fabrik in databasejoin è nel pacchetto ?
Oppure c'è un plugin a parte che non trovo ?
Grazie ancora
Saluti
-
Ciao,
utilizzando fabrik come posso creare un form che mi faccia vedere solo i campi di una form legato all'ID utente in linea ?
Grazie
@pbjolly
Non voglio scoraggiarti ma mi sembra che tu stia prendendo una strada veramente troppo complessa per le tue capacità.
Probabilmente ti conviene usare un cck come fabrik che ti renderebbe la vita molto più semplice.
Qui trovi guide e tutorial che possono darti molti spunti:
https://www.icagenda.it/fabrik.html (https://www.icagenda.it/fabrik.html)
P.S. E' solo un consiglio spassionato che mi sento di darti, ovviamente sei totalmente libero di utilizzare il metodo che preferisci.
-
Utilizzando fabrik
posso fare una form con alcuni campi che vengono visualizzati solo dall'Utente ID che è in linea ? Come
Devo fare anche in modo che gli stessi campi e record vengano visualizzati da tutti? Come
Esempio Form1 utilizzato solo dall'utente ID in linea:
ID
Campo1
Campo2
La stessa Form1 in un'altro menù da tutti (Public o SuperUSer)
ID
Campo1
Campo2
Saluti
-
ciao @pbjolly
perche fai tutti qui spazzi tra una riga e l'altra , un quaderno tu lo finisci scrivendo un tema di 3 pagine ;D
-
Scusa ma tu cerchi aiuto su come fare o chi te lo fa al posto tuo? Perlomeno dai questa impressione. Perché sul come ti è stato spiegato, nella seconda ipotesi devi postare nella seziine annunci.
-
il fatto che scrivi che non c'è il plug in datbasejoin mi dice che non hai letto nessuna guida