Back to top

Autore Topic: K2: rendere visibile un campo extra solo al gruppo admins  (Letto 1870 volte)

Offline mygink

  • Esploratore
  • **
  • Post: 51
  • Sesso: Maschio
    • Mostra profilo
Ciao a tutti, sono giorni che cerco una soluzione per impostare un extra fields di K2 visibile solo a utenti loggati del gruppo admins. Uso Joomla 3.3.1 e K2 2.6.8. Ho trovato questo codice ma non conoscendo php non so come utilizzarlo o in quale file di K2 debba essere inserito:
Citazione
<?php if(!JFactory::getUser()->guest): ?>
// RENDER YOUR EXTRA FIELD HERE
<?php endif; ?>

qualcuno riesce a darmi qualche dritta in più?

Offline thewebsurfer

  • Abituale
  • ****
  • Post: 904
    • Mostra profilo
Re:K2: rendere visibile un campo extra solo al gruppo admins
« Risposta #1 il: 11 Lug 2014, 19:26:04 »
Ciao a tutti, sono giorni che cerco una soluzione per impostare un extra fields di K2 visibile solo a utenti loggati del gruppo admins. Uso Joomla 3.3.1 e K2 2.6.8. Ho trovato questo codice ma non conoscendo php non so come utilizzarlo o in quale file di K2 debba essere inserito:qualcuno riesce a darmi qualche dritta in più?


dato che nessuno risponde per ora,
ti rispondo io anche se non so darti la risposta precisa non conoscendo bene le classi del core, ma solo un'indicazione su come io arriverei alla soluzione, ovviamente con un pelo di ingegneria inversa (approccio che magari ti servirà per molto altro, se tocchi il codice spesso):
vedi quell'if?evidentemente lì ci sono info dell'accesso dell'user loggato.
quindi nell'if fai un bel var_dump(JFactory::getUser());
ti logghi prima come admin e vedi i valori stampati, poi come user semplice e vedi le differenze.
così capirai quale controllo fare.
probabilmente quel che ti serve è getUser()->groups




ps: se proprio vuoi un parere personale, abbandona k2 e torna al gestore di default.
« Ultima modifica: 11 Lug 2014, 19:31:01 da thewebsurfer »

Offline mygink

  • Esploratore
  • **
  • Post: 51
  • Sesso: Maschio
    • Mostra profilo
Re:K2: rendere visibile un campo extra solo al gruppo admins
« Risposta #2 il: 11 Lug 2014, 20:33:45 »
Grazie thewebsurfer per la risposta!
Quel che devo fare è: nascondere il valore di un solo campo degli extra fileds di K2 a tutti tranne che all' admin. Premetto che non capisco un tubo di php ma probabilmente ho trovato la soluzione, ho sbirciato nel file item.php di K2 ed ho visto il ciclo dove vengono stampati tutti i campi, ho usato
Codice: [Seleziona]
<?php $user =& JFactory::getUser(); ?> che salva nella variabile $user l'utente che è loggato (oppure il guest) a questo punto ho pensato di far verificare nel ciclo se il campo è quello da nascondere E se l'utente NON è l'admin non stampo il campo, altrimenti stampo il campo, ecco il codice:
Codice: [Seleziona]
<div class="itemExtraFields">
          <h3><?php echo JText::_('K2_ADDITIONAL_INFO'); ?></h3>
          <ul>
            <!-- Ottiene l'utente loggato -->
            <?php $user =& JFactory::getUser(); ?>
            <?php foreach ($this->item->extra_fields as $key=>$extraField): ?>
            <?php if($extraField->value != ''): ?>
            <li class="<?php echo ($key%2) ? "odd" "even"?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group?>">
                <?php if($extraField->type == 'header'): ?>
                <h4 class="itemExtraFieldsHeader"><?php echo $extraField->name?></h4>
                <?php else: ?>
                <span class="itemExtraFieldsLabel"><?php echo $extraField->name?>:</span>
                <!-- se il campo extra ha il nome da nascondere  e l'utente loggato NON ha id dell amministratore -->
                <?php if($extraField->name == 'nomecampodanascondere' && $user->id != numeroidadmin): ?>
                    /NON STAMPA IL CAMPO /

                <?php else: ?>
                    <span class="itemExtraFieldsValue"><?php echo $extraField->value?></span>
                <?php endif; ?>   
                <?php endif; ?>
            </li>
            <?php endif; ?>
            <?php endforeach; ?>
            </ul>
        <div class="clr"></div>
      </div>
sembra funzionare!
Ora mi rimangono solo un paio di dubbi:
1) dovrei usare l'override copiando il file modificato nella cartella del mio template, ma è sicuro al 100%? Solo nel caso cambiassi il template il mio campo nascosto verrebbe visto, giusto?
2) esistono altri modi di visualizzare gli extra fields di K2 credo, quindi devo controllare anche altri file php... quali?

Offline mygink

  • Esploratore
  • **
  • Post: 51
  • Sesso: Maschio
    • Mostra profilo
Re:K2: rendere visibile un campo extra solo al gruppo admins
« Risposta #3 il: 11 Lug 2014, 20:38:17 »
Citazione
ps: se proprio vuoi un parere personale, abbandona k2 e torna al gestore di default.
ma senza K2 come potrei gestire campi extra? C'è altro modo? Io lo uso per creare degli articoli che contengono anche una sorta di scheda tecnica con dei parametri (appunto gli extra fields di K2) e questi parametri sono anche ricercabili per rintracciare l'articolo di interesse.

Offline thewebsurfer

  • Abituale
  • ****
  • Post: 904
    • Mostra profilo
Re:K2: rendere visibile un campo extra solo al gruppo admins
« Risposta #4 il: 11 Lug 2014, 21:02:23 »
1. se fai un override corretto si
2. non so, magari chiedi nel forum di k2


Citazione
ma senza K2 come potrei gestire campi extra? C'è altro modo? Io lo uso per creare degli articoli che contengono anche una sorta di scheda tecnica con dei parametri (appunto gli extra fields di K2) e questi parametri sono anche ricercabili per rintracciare l'articolo di interesse.
è proprio quello il fatto.. a fronte di un paio (veramente un paio..) di miglioramenti che hai (cmq riproducibili col gestore di contenuti di default + plugin esterni) hai molte altre scomodità..


la prima che mi viene in mente è che non puoi impostare un layout di default per tutti gli articoli o tutte le categorie, non so se rendo l'idea  :o cose da pazzi.. puoi solo definire l'ereditarietà delle impostazioni.

poi magari tu ti trovi bene eh, ho espresso il mio parere.
se non ci hai già perso troppo tempo per pensare di cambiare tutto puoi dare un'occhio a form2content o anche chronoform..
« Ultima modifica: 11 Lug 2014, 21:05:34 da thewebsurfer »

Offline mygink

  • Esploratore
  • **
  • Post: 51
  • Sesso: Maschio
    • Mostra profilo
Re:K2: rendere visibile un campo extra solo al gruppo admins
« Risposta #5 il: 11 Lug 2014, 21:27:39 »
sì, ci ho già perso un bel po' di tempo, a causa della mia poca esperienza credo... comunque ti ringrazio molto per lo scambio di idee e per i suggerimenti sempre utili. ;) Chronoform l'ho usato parecchio tempo fa per dei form che inserissero dati nel database, tu dici che avrei potuto usarlo per creare "articoli" con tutti i campi che mi occorrevano, il testo e le foto varie, e riuscire ad impostare la visualizzazione del tutto proprio come un articolo? :o ... se ho capito bene, per la prossima volta, devo dare un'occhiata a questi due strumenti!  :D

Offline thewebsurfer

  • Abituale
  • ****
  • Post: 904
    • Mostra profilo
Re:K2: rendere visibile un campo extra solo al gruppo admins
« Risposta #6 il: 11 Lug 2014, 21:39:28 »
sì, ci ho già perso un bel po' di tempo, a causa della mia poca esperienza credo... comunque ti ringrazio molto per lo scambio di idee e per i suggerimenti sempre utili. ;) Chronoform l'ho usato parecchio tempo fa per dei form che inserissero dati nel database, tu dici che avrei potuto usarlo per creare "articoli" con tutti i campi che mi occorrevano, il testo e le foto varie, e riuscire ad impostare la visualizzazione del tutto proprio come un articolo? :o ... se ho capito bene, per la prossima volta, devo dare un'occhiata a questi due strumenti!  :D


esattamente, se hai già usato chronoform per query nel db magari ti era pure più facile che impostare k2 da capo, certo con chronoform poi c'è il problema che è complicato editare gli articoli già pubblicati..


f2c invece è un po' incasinato nella versione free (più che altro perché non puoi nascondere dei campi se non via css, quindi se dai lo strumento in mano ad un cliente non troppo capace può andare in confusione), ma permette molta libertà.

 



Web Design Bolzano Kreatif