-1

所以我想找到一种方法来显示我的数据库中的第二个最新行。所以我的例子(为了帮助更好地解释它)如果我有 10 行。我只想显示第二个最新的。不是最新的,而是紧随其后的。或者甚至可能是第三个。我在下面有我的工作代码,我看到了 for each 循环。但我不确定如何只显示我希望它显示的那个。我也不认为我如何设置它是实现这一目标的最有效方式。

我在这个网站上使用concrete5,主要想法是作曲家,所以我可以发布一个新帖子并拉出最近的新闻提要,但显示第二个帖子。

这是我当前的代码:(这显示了第一篇文章)

    <?php 
    defined('C5_EXECUTE') or die("Access Denied.");
    ?>
    <div id="blog-index">
        <?php  
        $isFirst = true; //So first item in list can have a different css class (e.g. no top border)
        $excerptBlocks = ($controller->truncateSummaries ? 1 : null); //1 is the number of blocks to include in the excerpt
        $truncateChars = ($controller->truncateSummaries ? $controller->truncateChars : 255);
        $imgHelper = Loader::Helper('image');
        foreach ($cArray as $cobj):
            $title = $cobj->getCollectionName();
            $date = $cobj->getCollectionDatePublic(DATE_APP_GENERIC_MDY_FULL);
            $author = $cobj->getVersionObject()->getVersionAuthorUserName();
            $link = $nh->getLinkToCollection($cobj);
            $firstClass = $isFirst ? 'first-entry' : '';

            $entryController = Loader::controller($cobj);
            if(method_exists($entryController,'getCommentCountString')) {
                $comments = $entryController->getCommentCountString('%s '.t('Comment'), '%s '.t('Comments'));
            }
            $isFirst = false;
        ?>
        <div class="entry">
            <div class="title">
                <h3>
                    <a href="<?php  echo $link; ?>" class="text-error"><?php  echo $title; ?></a>
                </h3>
                <h6 class="post-date">
                    <?php  
                    echo t('Posted by %s on %s',$author,$date);
                    ?>
                </h6>
            </div>
            <div class="excerpt">
                <?php
                    $a = new Area('Main');
                    $a->disableControls();
                    if($truncateChars) {
                      $th = Loader::helper('text');
                      ob_start();
                        $a->display($cobj);
                      $excerpt = ob_get_clean();
                      echo $th->entities($th->shorten($excerpt,$truncateChars));
                    } else {
                      $a->display($cobj);
                    }
                  ?>
            </div>
            <div class="ccm-spacer"></div>
            <br />
            <div class="meta">
                <?php  echo $comments; ?> <a href="<?php  echo $link; ?>" class="btn btn-danger"><?php  echo t('Read the full post'); ?> <i class="icon-chevron-right"></i></a>
            </div>
        </div>
        <hr class="blog-entry-divider"/>
        <?php  endforeach; ?>
    </div>
4

1 回答 1

1

以其他人所写的评论为基础:

您粘贴的是一个具体的视图。您会注意到那里没有数据库查询或 PageList 构建。为此,您需要查看控制器。(这看起来像一个页面列表块视图,因此控制器将位于 /concrete/core/controllers/blocks/page_list.php(在 c5.6+ 上)。

执行其他人建议的具体5 api代码(让mysql处理跳过)在->get()调用中完成。所以,大约在第 135 行:

$pl->get(1, 1);

请记住不要直接修改文件,而是以 c5 方式覆盖它们。c5 网站上有很多这方面的教程。

于 2013-07-02T13:31:22.630 回答