Re: ページリストで、最新記事で並べ替えた時に、最新から2件目のリスト以降のみを表示させたい

2017年9月29日 at 5:55

nipper様

ご返答ありがとうございます。

頂いたヒントをもとに色々試してみたのですが、さっぱりうまくいきません。
もう少しアドバイスを頂けるとありがたいのですが。

view.php

<?php
defined('C5_EXECUTE') or die("Access Denied.");
$th = Loader::helper('text');
$c = Page::getCurrentPage();
$dh = Core::make('helper/date'); /* @var $dh \Concrete\Core\Localization\Service\Date */
?>

<?php if ( $c->isEditMode() && $controller->isBlockEmpty()) { ?>
<div class="ccm-edit-mode-disabled-item"><?php echo t('Empty Page List Block.')?></div>
<?php } else { ?>

<div class="news-list hfeed">

<?php
$includeEntryText = false;
if (
(isset($includeName) && $includeName)
||
(isset($includeDescription) && $includeDescription)
||
(isset($useButtonForLink) && $useButtonForLink)
) {
$includeEntryText = true;
}

foreach ($pages as $page):
// Prepare data for each page being listed...
$page2 = $page

$title = $th->entities($page2->getCollectionName());
$url = $nh->getLinkToCollection($page2);
$target = ($page2->getCollectionPointerExternalLink() != '' && $page2->openCollectionPointerExternalLinkInNewWindow()) ? '_blank' : $page2->getAttribute('nav_target');
$target = empty($target) ? '_self' : $target;
$date = $page2->getCollectionDatePublic();
$date = $dh->date(' Y.m.d', strtotime($date));

$description = $page2->getCollectionDescription();
$description = $controller->truncateSummaries ? $th->wordSafeShortText($description, $controller->truncateChars) : $description;

?>

<div class="news-list">
<ul>
<li>
<div class="news-list-date"> <!-- 日時、任意の記入日 //-->
<?php echo $date?>
</div>
</li>
<li>
<div class="news-list-title"> <!-- 記事のタイトル、リンク付き //-->
<a href="<?php echo $url ?>" target="<?php echo $target ?>" rel="bookmark">
<?php echo $title ?>
</a>
</div>
</li>

<li>
<div class="news-list-link"> <!--詳細はこちら、リンク付き //-->
<?php echo $comments; ?> <a href="<?php echo $link; ?>">詳細はこちら »</a>
</div>
</li>


<li>
<div class="news-list-link"> <!-- 追加してみた、記事本文かと思ったらページ属性の説明欄? //-->
<?php if (isset($includeDescription) && $includeDescription) {
?>
<div class="ccm-block-page-list-description"> <!-- 追加してみた、記事本文を表示させたいがしかし、、、 //-->
<?php echo h($description) ?>
</div>
<?php }
?>
</div>
</li>

<div class="clear"> <!-- フロート解除のおまじない //-->
</div>
</ul>

</div>
<?php endforeach; ?>






<?php if (count($pages) == 0): ?>
<div class="ccm-block-page-list-no-pages"><?php echo $noResultsMessage?></div>
<?php endif;?>

</div>

<?php if ($showPagination): ?>
<?php echo $pagination;?>
<?php endif; ?>

<?php } ?>

Re: ページリストで、最新記事で並べ替えた時に、最新から2件目のリスト以降のみを表示させたい

2017年9月29日 at 10:27
aboさま

コードを拝見すると『array_shift』を使われていないようですが...

これ以上はヒントというより答えになってしまうと思いますが、『foreach ($pages as $page):』の前に『$offset = array_shift($pages);』と記述してみてください。

これで、最初の1件は表示しないと思います。

よろしくお願いします。
 

Re: ページリストで、最新記事で並べ替えた時に、最新から2件目のリスト以降のみを表示させたい

2017年9月30日 at 0:46
nipper様

ご回答ありがとうございます。

>array_shiftを使っていない

3日間、色々なところに入れて、ほかを書き換えてみても、
エラーにしかならなくて、結局消して戻した状態を載せたのかと思います。

教えていただいた、『$offset = array_shift($pages);』を使用した所、
目的通りの状態になりました。
『$offset = array_shift($pages);』をダブルで使用してみた所、
3件目以降の表記になりました。

array_shiftのマニュアルは複数サイトのものを読んでみていたのですが、
勘違いしてました。$offset に2件目以降のデータが残るのかと。

有難うございました。