0

嗨,我一直在和柯比一起工作。我是 PHP 的一个完整的初学者,但设法完成了很多工作。只是需要一些画廊的帮助。

在主页上,单个图像显示为缩略图:

<?php foreach($articles as $article): ?>
    <li class="<?php foreach(str::split($article->tags()) as $tag): ?><?php echo $tag ?> <?php endforeach ?>">
    <a href="<?php echo $article->url() ?>" title="<?php echo html($article->title()) ?>"><?php foreach($article->images() as $image): ?><?php echo thumb($image, array('width' => 300, 'quality' => 70)) ?><?php endforeach ?><p><?php echo html($article->title()) ?></p></a>
    </li>             
<?php endforeach ?>  

在文章页面上,我想有一个画廊。画廊片段:

<?php if($page->hasImages()): ?>
    <ul class="gallery">
        <?php foreach($page->images() as $image): ?>
           <li>
           <a href="<?php echo $image->url() ?>"><img src="<?php echo $image->url() ?>" width="<?php echo $image->width() ?>" height="<?php echo $image->height() ?>" alt="<?php echo $image->name() ?>" /></a> 
           </li>
        <?php endforeach ?>
    </ul>
<?php endif ?>

使用 Kirby,我可以将所有文章项目存储在一个文件夹中。但如果我这样做,并使用上面提到的代码,画廊中的所有图像也会在主页上显示为缩略图。我想最好的办法是编辑图库片段,以便它可以从子文件夹中抓取图像。但是怎么做?

谢谢您的帮助!

4

2 回答 2

0

一种解决方案是将要在首页上显示的文件命名为front.jpg. 然后,您可以使用 直接访问此图像$page->images()->find('front.jpg')

所以你得到这个:

<?php foreach($articles as $article): ?>
  <li class="<?php foreach(str::split($article->tags()) as $tag): ?><?php echo $tag ?> <?php endforeach ?>">
  <a href="<?php echo $article->url() ?>" title="<?php echo html($article->title()) ?>">
    <?php echo thumb($article->images()->find('front.jpg'), array('width' => 300, 'quality' => 70)) ?>
    <p><?php echo html($article->title()) ?></p>
  </a>
  </li>             
<?php endforeach ?>

(请注意,您必须删除内部foreach循环,因为您只显示一张图像。)

图库片段保持不变。

于 2013-06-24T20:18:08.843 回答
0

在这里尝试:

       <?php foreach($page->image()->yaml() as $image): ?>
       <?php if($img = $page->image($image)): ?>

        <img src="<?= $img->url() ?>" alt="<?= $page->title()->html() ?>" width="100%" height="100%" />
      <?php endif ?>
    <?php endforeach ?>
于 2017-01-05T09:33:25.923 回答