PHP (Kirby):将图库重定向到子文件夹


PHP (Kirby): redirect gallery to subfolder

你好,我一直在和Kirby一起工作。我是一个完全的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,使我将所有文章项存储在一个文件夹中。但是如果我这样做,并使用上面提到的代码,那么图库中的所有图像也会以缩略图的形式显示在主页上。我想最好的方法是编辑图库片段,这样它就可以从子文件夹中抓取图像。但如何?

谢谢你的帮助!

解决这个问题的一个方法是将你想要在首页显示的文件命名为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 -循环,因为您只显示一个图像。)

图库片段保持不变

这里试试:

       <?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 ?>