web-dev-qa-db-fra.com

Comment faire pour que Item's ExtraField soit affiché dans latest.php of K2 - Joomla

J'essaie d'obtenir ExtraFields de K2 Articles. J'ai assigné mon menu à Latest from Users or Categories afin d'afficher tous les articles de plusieurs catégories.

Il affiche bien. Mais ces articles contiennent des informations ExtraFields que je souhaite afficher, mais il n’existe aucune option permettant d’afficher ExtraFields. Je suppose donc que pour ce faire, je dois modifier latest.php page, qui est la page utilisée pour afficher tous les articles de différentes catégories.

Comme latest.php n'affiche pas ExtraFields. J'essaie de le coder comme suit:

<?php  
$extrafields = array();
foreach($this->item->extra_fields as $item)
{    
$extrafields[$item->id] = $item->value;
}   
?>    
<?php if(isset($extrafields[X]) === true):?>
<?php echo $extrafields[X]; ?>
<?php endif; ?>

Bien que j'obtienne l'erreur suivante:

Argument non valide fourni pour foreach () dans ...

J'ai cherché des moyens d'obtenir ExtraFields, j'ai trouvé des solutions, mais c'est l'erreur que je reçois à chaque fois.

Des idées ou des solutions?

Meilleures salutations.

J'utilise joomla 2.5.

2
azhpo

Je viens de le faire comme ça:

Ce code vient dans le fichier latest_item.php:

<?php if (isset($this->item->extra_fields)) : ?>
  <div class="catItemExtraFields">
    <ul>
    <?php if (is_string($this->item->extra_fields)) {
        $this->item->extra_fields = json_decode($this->item->extra_fields);
      }
      foreach ($this->item->extra_fields as $key=>$extraField) {
        if ($extraField->value != '') {
          echo "<li>".$extraField->name.": ".$extraField->value."</li>";
        }
      }
    ?>
    </ul>
  </div>
<?php endif; ?>

Vous pouvez vérifier davantage les membres existants, etc.

2
lars k.

En supposant que vous souhaitiez afficher des données à partir des champs supplémentaires du fichier latest.php, alors:

Dans la boucle foreach appropriée qui parcourt vos éléments de contenu et imprime chaque élément k2, procédez comme suit:

<?php $extra = json_decode($item->extra_fields); ?>

$ extra sera un tableau avec les champs supplémentaires et leurs valeurs.

<pre>
<?php print_r($extra); ?>
</pre>
0
FFrewin