Blog

K2 Hide Specific field hack

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

Volgende Blog

16 april 2019

Remove ids from article urls in Joomla

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</option>

</field>



Now go back to your article options, and you have a new option :) SEF Advanced Modus, just put it on and your done :)

Is een full-service internet en vormgevingsbureau. Smack it bouw websites, webshops, en crowdfundingplatforms. Daarnaast maak ik logo's, beeldmerken en huisstijlen.

  • Leehove 117D
    2678 MB
    De Lier

  • Dit e-mailadres wordt beveiligd tegen spambots. JavaScript dient ingeschakeld te zijn om het te bekijken.
  • BTW: NL002066431B04

© 2022 SMACK it CREATIONS All Rights Reserved