1

经过数小时的头撞砖墙后,真的需要一些帮助!

基本上我有一个用 K2 组件制作的 Joomla 新闻页面。该页面将有头条新闻,接下来的两个,然后是接下来的四个,然后是接下来的四个,它们都有自己的类,因此它们可以采用不同的样式来强调(就像大多数新闻网站一样)。

所以会有一行一列 - 主要新闻(项目图像和文本在大约 150 个单词后被切断,并带有“阅读更多”)第二行 - 两列 - 接下来的两个新闻片段(项目图像和文本被切断后大约 150 个单词,带有“阅读更多”)第三行 - 四列 - 接下来的四个新闻片段(项目图像和文本在大约 150 个单词带有“阅读更多”后被截断)第四行 - 一列八个链接(无图片只是链接的标题)

这是我要修改的文件:

    <?php


// no direct access

defined('_JEXEC') or die;

$selectedFilters=$params->get('extraFieldsSelect'); //get selected fields in module params



?>

<div id="k2ModuleBox<?php echo $module->id; ?> k2FiltrifyContainer" class="k2Filtrify k2ItemsBlock<?php if($params->get('moduleclass_sfx')) echo ' '.$params->get('moduleclass_sfx'); ?>">

    <?php if($params->get('itemPreText')): ?>

    <p class="modulePretext"><?php echo $params->get('itemPreText'); ?></p>

    <?php endif; ?>



    <!--Filtrify Placeholder-->

    <div id="k2FiltrifyPlaceHolder"></div>



    <?php //set placeholder, if LEGEND is the selected callback method

    if($placeholder == 'legend'): ?>

        <!--Filtrify legend placeholder-->

        <div id="legend"><i><?php echo JText::_('K2_VIEWING_ALL'); ?></i></div>

    <?php endif; ?>



    <?php  //set placeholder, if PAGINATION is the selected callback method

    if($placeholder == 'pagination'): ?>

        <!--Filtrify pagination placeholder-->

        <div id="pagination"></div>

    <?php endif; ?>



    <?php if(count($items)): //Filtrify Container?>

      <ul id="k2FiltrifyContainer">

        <p>
          <?php foreach ($items as $keyItem=>$item):    ?>



            <?php

                // Define a CSS class for the last container on each row

                if( (($keyItem+1)%($params->get('num_columns'))==0) || count($items)<$params->get('num_columns') )

                    $lastContainer= ' itemContainerLast';

                else

                    $lastContainer='';

                ?>

          <li class="itemContainer<?php echo $lastContainer; ?>" <?php echo (count($items)==1) ? '' : ' style="width:'.number_format(100/$params->get('num_columns'), 1).'%;"'; ?>





          <?php 



          if( count($item->extra_fields) && $selectedFilters != ''): //check if there are extrafields and selected fields?>

                <?php foreach ($item->extra_fields as $key=>$extraField): //adding extrafields as data parameter?>

                    <?php if(in_array($extraField->id,(array)$selectedFilters, TRUE)) : ?>

                             data-<?php echo preg_replace("/[^A-Za-zA-yA-y0-9а-яА-Яa-zA-Z?-??-?sctzlldSCTZLD]/ui", "_", $extraField->name); ?>="<?php echo $extraField->value; //set the values, and remove special chars?>"

                    <?php endif; ?>

                <?php endforeach; ?>

            <?php endif; ?>





          <?php if($params->get('showCatFilter')==1): //check for param - show category filter?>

                data-<?php echo preg_replace("/[^A-Za-zA-yA-y0-9а-яА-Яá-źÁ-ŹΑ-Ωα-ωščťžľĺďŠČŤŽĹĎ]/ui", "_", JText::_('K2_CATEGORIES')); ?>="<?php echo $item->categoryname;?>"





            <?php endif; ?>



            <?php if($params->get('showTagFilter')==1): //check for param - show tag filter?>

                data-<?php echo preg_replace("/[^A-Za-zA-yA-y0-9а-яА-Яá-źÁ-ŹΑ-Ωα-ωščťžľĺďŠČŤŽĹĎ]/ui", "_", JText::_('K2_TAGS')); ?>="<?php foreach ($item->tags as $tag): ?><?php echo $tag->name; ?>, <?php endforeach; ?>"

            <?php endif; ?>



        >
        </p>
        <p>
          <?php if(isset($item->event->BeforeDisplay)): ?>

          <!-- Plugins: BeforeDisplay -->

          <?php echo $item->event->BeforeDisplay; ?>

          <?php endif; ?>





          <!-- K2 Plugins: K2BeforeDisplay -->

          <?php echo $item->event->K2BeforeDisplay; ?>



          <?php if($params->get('itemAuthorAvatar')): ?>

          <a class="k2Avatar moduleItemAuthorAvatar" rel="author" href="<?php echo $item->authorLink; ?>">

            <img src="<?php echo $item->authorAvatar; ?>" alt="<?php echo K2HelperUtilities::cleanHtml($item->author); ?>" style="width:<?php echo $avatarWidth; ?>px;height:auto;" />

          </a>

          <?php endif; ?>



          <?php if($params->get('itemTitle')): ?>

          <a class="moduleItemTitle" href="<?php echo $item->link; ?>"><?php echo $item->title; ?></a>

          <?php endif; ?>



          <?php if($params->get('itemAuthor')): ?>

        </p>
          <div class="moduleItemAuthor">

              <?php echo K2HelperUtilities::writtenBy($item->authorGender); ?>



                    <?php if(isset($item->authorLink)): ?>

                    <a rel="author" title="<?php echo K2HelperUtilities::cleanHtml($item->author); ?>" href="<?php echo $item->authorLink; ?>"><?php echo $item->author; ?></a>

                    <?php else: ?>

                    <?php echo $item->author; ?>

                    <?php endif; ?>



                    <?php if($params->get('userDescription')): ?>

                    <?php echo $item->authorDescription; ?>

                    <?php endif; ?>



                </div>

                <?php endif; ?>





            <?php if(isset($item->event->AfterDisplayTitle)): ?>

                 <!-- Plugins: AfterDisplayTitle -->

                 <?php echo $item->event->AfterDisplayTitle; ?>

            <?php endif; ?>



          <!-- K2 Plugins: K2AfterDisplayTitle -->

          <?php echo $item->event->K2AfterDisplayTitle; ?>





            <?php if(isset($item->event->BeforeDisplayContent)): ?>

              <!-- Plugins: BeforeDisplayContent -->

                <?php echo $item->event->BeforeDisplayContent; ?>

            <?php endif; ?>



          <!-- K2 Plugins: K2BeforeDisplayContent -->

          <?php echo $item->event->K2BeforeDisplayContent; ?>



          <?php if($params->get('itemImage') || $params->get('itemIntroText')): ?>

          <div class="moduleItemIntrotext">

              <?php if($params->get('itemImage') && isset($item->image)): ?>

              <a class="moduleItemImage" href="<?php echo $item->link; ?>" title="<?php echo JText::_('K2_CONTINUE_READING'); ?> &quot;<?php echo K2HelperUtilities::cleanHtml($item->title); ?>&quot;">

                <img src="<?php echo $item->image; ?>" alt="<?php echo K2HelperUtilities::cleanHtml($item->title); ?>"/>

              </a>

              <?php endif; ?>



            <?php if($params->get('itemIntroText')): ?>

            <?php echo $item->introtext; ?>

            <?php endif; ?>

          </div>

          <?php endif; ?>

          <div class="clr"></div>



          <?php if($params->get('itemExtraFields') && count($item->extra_fields)): ?>

          <div class="moduleItemExtraFields">

              <b><?php echo JText::_('K2_ADDITIONAL_INFO'); ?></b>

              <ul>

                <?php foreach ($item->extra_fields as $extraField): ?>

                        <?php if($extraField->value): ?>

                        <li class="type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">

                            <span class="moduleItemExtraFieldsLabel"><?php echo $extraField->name; ?></span>

                            <span class="moduleItemExtraFieldsValue"><?php echo $extraField->value; ?></span>

                            <div class="clr"></div>

                        </li>

                        <?php endif; ?>

                <?php endforeach; ?>

              </ul>

          </div>

          <?php endif; ?>



          <div class="clr"></div>



          <?php if($params->get('itemVideo')): ?>

          <div class="moduleItemVideo">

            <?php echo $item->video ; ?>

            <span class="moduleItemVideoCaption"><?php echo $item->video_caption ; ?></span>

            <span class="moduleItemVideoCredits"><?php echo $item->video_credits ; ?></span>

          </div>

          <?php endif; ?>



          <div class="clr"></div>





            <?php if(isset($item->event->AfterDisplayContent)): ?>

                  <!-- Plugins: AfterDisplayContent -->

                  <?php echo $item->event->AfterDisplayContent; ?>

            <?php endif; ?>



          <!-- K2 Plugins: K2AfterDisplayContent -->

          <?php echo $item->event->K2AfterDisplayContent; ?>



          <?php if($params->get('itemDateCreated')): ?>

          <span class="moduleItemDateCreated"><?php echo JText::_('K2_WRITTEN_ON') ; ?> <?php echo JHTML::_('date', $item->created, JText::_('K2_DATE_FORMAT_LC2')); ?></span>

          <?php endif; ?>



          <?php if($params->get('itemCategory')): ?>

          <?php echo JText::_('K2_IN') ; ?> <a class="moduleItemCategory" href="<?php echo $item->categoryLink; ?>"><?php echo $item->categoryname; ?></a>

          <?php endif; ?>



          <?php if($params->get('itemTags') && count($item->tags)>0): ?>

          <div class="moduleItemTags">

            <b><?php echo JText::_('K2_TAGS'); ?>:</b>

            <?php foreach ($item->tags as $tag): ?>

            <a href="<?php echo $tag->link; ?>"><?php echo $tag->name; ?></a>

            <?php endforeach; ?>

          </div>

          <?php endif; ?>



          <?php if($params->get('itemAttachments') && count($item->attachments)): ?>

                <div class="moduleAttachments">

                    <?php foreach ($item->attachments as $attachment): ?>

                    <a title="<?php echo K2HelperUtilities::cleanHtml($attachment->titleAttribute); ?>" href="<?php echo $attachment->link; ?>"><?php echo $attachment->title; ?></a>

                    <?php endforeach; ?>

                </div>

          <?php endif; ?>



                <?php if($params->get('itemCommentsCounter') && $componentParams->get('comments')): ?>      

                    <?php if(!empty($item->event->K2CommentsCounter)): ?>

                        <!-- K2 Plugins: K2CommentsCounter -->

                        <?php echo $item->event->K2CommentsCounter; ?>

                    <?php else: ?>

                        <?php if($item->numOfComments>0): ?>

                        <a class="moduleItemComments" href="<?php echo $item->link.'#itemCommentsAnchor'; ?>">

                            <?php echo $item->numOfComments; ?> <?php if($item->numOfComments>1) echo JText::_('K2_COMMENTS'); else echo JText::_('K2_COMMENT'); ?>

                        </a>

                        <?php else: ?>

                        <a class="moduleItemComments" href="<?php echo $item->link.'#itemCommentsAnchor'; ?>">

                            <?php echo JText::_('K2_BE_THE_FIRST_TO_COMMENT'); ?>

                        </a>

                        <?php endif; ?>

                    <?php endif; ?>

                <?php endif; ?>



                <?php if($params->get('itemHits')): ?>

                <span class="moduleItemHits">

                    <?php echo JText::_('K2_READ'); ?> <?php echo $item->hits; ?> <?php echo JText::_('K2_TIMES'); ?>

                </span>

                <?php endif; ?>



                <?php if($params->get('itemReadMore') && $item->fulltext): ?>

                <a class="moduleItemReadMore" href="<?php echo $item->link; ?>">

                    <?php echo JText::_('K2_READ_MORE'); ?>

                </a>

                <?php endif; ?>



            <?php if(isset($item->event->AfterDisplay)): ?>

                 <!-- Plugins: AfterDisplayContent -->

                 <?php echo $item->event->AfterDisplay; ?>

            <?php endif; ?>



          <!-- K2 Plugins: K2AfterDisplay -->

          <?php echo $item->event->K2AfterDisplay; ?>

          <div class="clr"></div>

        </li>



        <?php if((($keyItem+1)%($params->get('num_columns'))==0) && (($placeholder != 'pagination'))) : ?>

        <div class="clr"></div>

        <?php endif; ?>





        <?php endforeach; ?>



        <li class="clearList"></li>

      </ul>

  <?php endif; ?>



    <?php if($params->get('itemCustomLink')): ?>

    <a class="moduleCustomLink" href="<?php echo $params->get('itemCustomLinkURL'); ?>" title="<?php echo K2HelperUtilities::cleanHtml($itemCustomLinkTitle); ?>"><?php echo $itemCustomLinkTitle; ?></a>

    <?php endif; ?>



    <?php if($params->get('feed')): ?>

    <div class="k2FeedIcon">

        <a href="<?php echo JRoute::_('index.php?option=com_k2&view=itemlist&format=feed&moduleID='.$module->id); ?>" title="<?php echo JText::_('K2_SUBSCRIBE_TO_THIS_RSS_FEED'); ?>">

            <span><?php echo JText::_('K2_SUBSCRIBE_TO_THIS_RSS_FEED'); ?></span>

        </a>

        <div class="clr"></div>

    </div>

    <?php endif; ?>



</div>

就像我说的那样,我已经尝试并尝试使此模板正常工作,但无济于事!

4

1 回答 1

3

你用错误的文件试试!该文件属于过滤模块!

你必须:

  1. 设置为类别“默认”的模板
  2. 编辑 K2 原生类别设置,
  3. 编辑 K2 原生类别项目设置,
  4. 编辑 K2 原生项目设置,

设置所有原生 K2 参数后,您必须克隆您的默认 k2 模板。这样做:

  • 进入组件/com_k2/模板。
  • 将您所见的全部复制到本地。
  • 然后在您的模板/您的模板/html 文件夹中创建名为 com_k2。
  • 将之前从 components/com_k2/templates 获得的内容复制到其中。
  • 然后复制名为“default”的文件夹并给他们自己的名字。这将是您的 K2 覆盖模板。

然后进入 K2 管理并将您之前设置的类别模板从默认更改为新名称。刚才您可以从模板覆盖开始,但只能在模板/您的模板/html/com_k2/your-k2-template 内部。您需要覆盖的文件是用于类别视图的 category-item.php 和用于单个项目视图的 item.php。

于 2013-02-10T13:06:42.910 回答