你好,我一直在和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 ?>