1

我们正在开发一个基于k2的网站。为此,我们利用额外字段为文章提供特定的 css 类。

但是当我们使用归档扩展时,这个类没有被应用,我们得到一个错误。

这是我们得到的错误

警告:在第 19 行的 /home/recall/domains/domain.com/public_html/templates/mytemplate/html/com_k2/generic.php 中为 foreach() 提供的参数无效

这是代码

<!-- START: Call to prepare extra fields -->
<?php  
//convertArray to use ids as key
$extrafields = array();
foreach($this->item->extra_fields as $item)
{    
$extrafields[$item->id] = $item->value;
}   
?>    
<!-- END: Call to prepare extra fields -->

<!-- Start K2 Generic (search/date) Layout -->
<div id="k2Container" class="genericView<?php echo $this->escape($this->params->get('page-id')); ?> nieuwsarchief">

        <?php if($this->params->get('genericFeedIcon',1)): ?>
        <!-- RSS feed icon -->
        <ul class="k2SendReceiveNews">
                <li class="legende_bestuur"><span>Bestuur</span></li>
                <li class="legende_regio"><span>Regio</span></li>
                <li class="legende_school"><span>School</span></li>
                <li><a href="#">Nieuws melden</a></li>
                <li><a href="#">Nieuws via e-mail ontvangen</a></li>
                <li class="rssfeed"><a href="<?php echo $this->feed; ?>" title="<?php echo JText::_('K2_SUBSCRIBE_TO_RSS'); ?>">
                        <span><?php echo JText::_('K2_SUBSCRIBE_TO_RSS'); ?></span>
                </a></li>
                <div class="clr"></div>
        </ul>
        <?php endif; ?>

        <?php if($this->params->get('show_page_title')): ?>
        <!-- Page title -->
        <div class="componentheading<?php echo $this->params->get('pageclass_sfx')?>">
                <?php echo $this->escape($this->params->get('page_title')); ?>
        </div>
        <?php endif; ?>

        <?php if(count($this->items)): ?>
        <div>
                <?php foreach($this->items as $item): ?>

                <!-- Start K2 Item Layout -->
                <div class="CatItem-<?php echo $extraFlds['Nieuwscategorie']; ?>">
                <?php
echo $item->extra_fields[11]->value;
?>

                        <div class="catItemContent catItemHeader">

                          <?php if($this->params->get('genericItemTitle')): ?>
                          <!-- Item title -->
                          <h3 class="catItemTitle">
                                <?php if ($this->params->get('genericItemTitleLinked')): ?>
                                        <a href="<?php echo $item->link; ?>">
                                        <?php echo $item->title; ?>
                                </a>
                                <?php else: ?>
                                <?php echo $item->title; ?>
                                <?php endif; ?>
                          </h3>
                          <?php endif; ?>
                          <?php if($this->params->get('genericItemDateCreated')): ?>
                                <!-- Date created -->
                                <span class="genericItemDateCreated">
                                        <?php echo JHTML::_('date', $item->created , JText::_('DATE_FORMAT_LC10')); ?>
                                </span>
                                <?php endif; ?>
                  </div>

                </div>
                <!-- End K2 Item Layout -->

                <?php endforeach; ?>
        </div>

        <!-- Pagination -->
        <?php if($this->pagination->getPagesLinks()): ?>
        <div class="k2Pagination">
                <?php echo $this->pagination->getPagesLinks(); ?>
                <div class="clr"></div>
                <?php echo $this->pagination->getPagesCounter(); ?>
        </div>
        <?php endif; ?>

        <?php endif; ?>

</div>
<!-- End K2 Generic (search/date) Layout -->

我自己找到了解决方案。

这是最终代码:

<?php
/**
 * @version     $Id: generic.php 1618 2012-09-21 11:23:08Z lefteris.kavadas $
 * @package     K2
 * @author      JoomlaWorks http://www.joomlaworks.net
 * @copyright   Copyright (c) 2006 - 2012 JoomlaWorks Ltd. All rights reserved.
 * @license     GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
 */

// no direct access
defined('_JEXEC') or die;

?>

<!-- Start K2 Generic (search/date) Layout -->
<div id="k2Container" class="genericView<?php echo $this->escape($this->params->get('page-id')); ?> nieuwsarchief">

    <?php if($this->params->get('genericFeedIcon',1)): ?>
    <!-- RSS feed icon -->
    <ul class="k2SendReceiveNews">
        <li class="legende_bestuur"><span>Bestuur</span></li>
        <li class="legende_regio"><span>Regio</span></li>
        <li class="legende_school"><span>School</span></li>
        <li><a href="#">Nieuws melden</a></li>
        <li><a href="#">Nieuws via e-mail ontvangen</a></li>
        <li class="rssfeed"><a href="<?php echo $this->feed; ?>" title="<?php echo JText::_('K2_SUBSCRIBE_TO_RSS'); ?>">
            <span><?php echo JText::_('K2_SUBSCRIBE_TO_RSS'); ?></span>
        </a></li>
        <div class="clr"></div>
    </ul>
    <?php endif; ?>

    <?php if($this->params->get('show_page_title')): ?>
    <!-- Page title -->
    <div class="componentheading<?php echo $this->params->get('pageclass_sfx')?>">
        <?php echo $this->escape($this->params->get('page_title')); ?>
    </div>
    <?php endif; ?>

    <?php if(count($this->items)): ?>
    <div>

        <?php foreach($this->items as $item): ?>

        <!-- START: Call to prepare extra fields -->
        <?php
        //convertArray to use ids as key
        $extrafields = array();
        foreach($item->extra_fields as $extraFlds)
        {    
        $extrafields[$extraFlds->id] = $extraFlds->value;
        }   
        ?>    
        <!-- END: Call to prepare extra fields -->

        <!-- Start K2 Item Layout -->
        <div class="CatItem-<?php echo $extrafields[11];?>">

            <div class="catItemContent catItemHeader">

              <?php if($this->params->get('genericItemTitle')): ?>
              <!-- Item title -->
              <h3 class="catItemTitle">
                <?php if ($this->params->get('genericItemTitleLinked')): ?>
                    <a href="<?php echo $item->link; ?>">
                    <?php echo $item->title; ?>
                </a>
                <?php else: ?>
                <?php echo $item->title; ?>
                <?php endif; ?>
              </h3>
              <?php endif; ?>
              <?php if($this->params->get('genericItemDateCreated')): ?>
                <!-- Date created -->
                <span class="genericItemDateCreated">
                    <?php echo JHTML::_('date', $item->created , JText::_('DATE_FORMAT_LC10')); ?>
                </span>
                <?php endif; ?>
          </div>

        </div>
        <!-- End K2 Item Layout -->

        <?php endforeach; ?>
    </div>

    <!-- Pagination -->
    <?php if($this->pagination->getPagesLinks()): ?>
    <div class="k2Pagination">
        <?php echo $this->pagination->getPagesLinks(); ?>
        <div class="clr"></div>
        <?php echo $this->pagination->getPagesCounter(); ?>
    </div>
    <?php endif; ?>

    <?php endif; ?>

</div>
<!-- End K2 Generic (search/date) Layout -->

对于正确的值,在k2额外字段的后端找到对应的id(在右边)

对我来说是id 11

<?php echo $extrafields[11];?>
4

0 回答 0