Skip to main content
SMACK it Blog
K2 Hide Specific field hack

K2 Hide Specific field hack

Blog geschreven door Pieter op 16 april

K2, het blijft een moois systeem, maar soms loop je toch tegen kleine dingen op... want hoe geef je nu een K2 extra field weer. Je hebt daarvoor twee manieren. Bijvoorbeeld, je wilt in het TAG overzicht een bepaald extrafielt weergeven, dan doe je dat door de volgende code in je tag.php te zetten

zet in je tag.php

<?php $extrafields = json_decode($item->extra_fields);?>
<?php foreach($extrafields as $key=>$value): ?>
<?php if($extrafields[$key]->id == 'XX'&&$extrafields[$key]->value!=''): ?>
<span class="pricetag"><?php echo $extrafields[$key]->value; ?></span>
<?php endif; ?>
<?php endforeach; ?>

verwijs XX naar het ID nummer van je extra field.:

Maar je hebt ook een andere manier, deze manier moet je bijvoorbeeld gebruiken in je Category_item.php

 <?php 
// if form is empty show default form
$k2obj = new K2ModelItem();
$fields = $k2obj->getItemExtraFields($this->item->extra_fields, $this->item);
//echo $this->item->extraFields->State->name;
echo $this->item->extraFields->XXXXXXX->value;
?>

verwijs XXXXXXX naar je Extrafield naam (dus niet het ID nummer!)

 

Dan als klap op de vuurpijl heb je ook nog fields die je bijvoorbeeld wel op je TAG overzicht wilt hebben, maar die je niet tussen je item view wilt hebben. Zo had ik een pricelabel die ik alleen zichtbaar wilde hebben op de tag view, maar de value wilde ik niet in het item overzicht. Het was even puzzelen, maar uiteindelijk kwam ik met deze code toch tot het juiste resultaat. Zorg hierbij dat dit extrafielt op de eerste plek komt te staan. Wil je meerdere fields onzichtbaar maken verhoog dan de (-n+1) naar 2 voor 2 velden and so on!

Zet in je item.php

<?php 
$k2obj = new K2ModelItem();
$fields = $k2obj->getItemExtraFields($this->item->extra_fields, $this->item);
if (!empty($this->item->extraFields->SitePriceFrom->value))
echo '<style> div.itemExtraFields ul li:nth-child(-n+1) { display:none; } </style>';
?>

 

Pieter Bos
Eigenaar SMACK it Creations

Deel dit artikel

Vorige Blog

Remove ids from article urls in Joomla

16 april
It quite simple, no big hacks. In fact, Joomla already had it build in, it is just not shown in the admin menu (don't ask us why.    simple change the file: administrator\components\com_content\config.xml. and add somewhere between the other items:   <field name="sef_advanced_link"    type="radio"    default="0"    label="Sef Advanced Mode"    description="Remove ItemID from Content URL?">        <option    value="0">JNO</option>        <option    value="1">JYES&l...