it-swarm-eu.dev

Visualizza campi aggiuntivi solo per determinati utenti o livelli di accesso

Ho una serie di campi extra (prezzi) per i miei articoli K2 che voglio mostrare solo agli utenti che hanno effettuato l'accesso. Per aggiungere altro, devo mostrare un campo a un gruppo utenti (prezzo A) e un campo diverso a un gruppo utenti diverso (prezzo B). Come posso farlo?

So di poter effettuare controlli del livello di accesso per i moduli, ma poiché si tratta di campi aggiuntivi associati agli elementi K2, sto cercando un modo per ottenere questo risultato.

1
Michael Yaeger

Sono stato in grado di ottenere questo risultato utilizzando il seguente codice (in forma abbreviata):

<?php $user = JFactory::getUser(); ?>
<?php if(!$user->guest): ?>
<!-- Prices -->
<div class="moduletable">
<h3 class="specs">Pricing</h3>
<?php
  $none = true; 
  foreach ($this->item->extra_fields as $key=>$extraField) {
    if($extraField->value && $extraField->name=='Price A' && in_array(25,$user->groups)) {
      echo $extraField->value;
      $none = false;
      break;
    }
    elseif($extraField->value && $extraField->name=='Price B' && in_array(26,$user->groups)) {
      echo $extraField->value;
      $none = false;
      break;
    }
  }
  if ($none) echo '<br/><p>Coming Soon!</p>';
?>
</div>
<?php endif; ?>

Fondamentalmente, controllo per vedere se l'utente ha effettuato l'accesso, quindi corro attraverso i campi extra per vedere se il nome del campo è "Prezzo A" e l'utente è nel gruppo utenti "Prezzo A" (ID = 25). Se corrisponde, ho prodotto il prezzo e andare avanti. In caso contrario, esegue lo stesso controllo per "Prezzo B." Se non viene assegnato un campo aggiuntivo per il prezzo o l'utente non ha un livello di prezzo, do un messaggio incoraggiante! ;)

2
Michael Yaeger

Senza installare K2 e armeggiare con il codice posso solo darti i miei pensieri. È necessario sostituire la visualizzazione per la visualizzazione dei campi personalizzati. Passa attraverso ciascuno dei campi e usa le istruzioni condizionali per determinare la visibilità dei campi in base al livello di accesso o al gruppo.

0
Terry Carter