K2 Hide Specific field hack
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>';
?>
