2016-02-12 66 views
1

我有,我只是想展現給登錄的用戶我的K2項目的一系列額外的字段。爲了增加更多的複雜性,我需要向一個用戶組顯示一個字段,向不同的用戶組顯示不同的字段。怎麼樣,我可以做到這一點?顯示的Joomla K2額外的字段只有特定用戶或組

我知道我可以做的模塊訪問級別檢查,但由於這些都是連接到K2項目額外的字段,我摸索一種方式來做到這一點。

回答

0

我能做到這一點使用下面的代碼(以縮寫形式):

<?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; ?> 

基本上,我檢查,看看用戶是否登錄,然後運行通過額外的字段,看是否字段名稱爲「價格A」,並且用戶在用戶組「價格A」(ID = 25)中。如果它匹配,我輸出價格並繼續。如果不是,則對「價格B」執行相同的檢查。如果沒有分配額外的價格字段或者用戶沒有價格水平,我會給出鼓勵的消息! ;)

注意:必須確保你的主題調用其中的一項額外的領域有代碼,以防止這些額外的字段從顯示的內容,或者你可能顯示的內容向公衆中所有的K2模板。這可以包括您的com_k2/templates文件夾中的任何PHP文件,其中您的K2設置指定要顯示的額外字段,或手動強制它們顯示在模板中的位置。

相關問題