Я создаю шаблон в CMS Made simple, который использует Smarty engine
. Я новичок в smarty / php.
Я перебираю изображения в папке и отображаю их в Bootstrap Carusel
. Это работает нормально.
С другой стороны, мне нужно отображать текст и подпись для каждого изображения.
Я пришел к решению поставить файл .txt
, который содержит заголовок и текстсодержимое для каждого изображения в папке. Например, у меня есть img1.jpg
и файл с именем img1.txt
в той же папке (img2.jpg
- img2.txt
, img3.jpg
- img3.txt
и т. Д.). Каждое изображение имеет соответствующий .txt
файл, который содержит содержимое, которое необходимо прочитать в разделе заголовка и текста в приведенном ниже коде)
Я не уверен, как бы я реализовал это решение для {foreach}
и мне нужна помощь.
Я использовал этот фрагмент ниже для доступа к .txt
, но использование *.txt
не работает. *.txt
дает пустой массив.
Обновление
{"{uploads_url}/images/{$entry->Picfolder}/*.txt"|file_get_contents|parse_str:$result|glob}
{foreach from=$result key=text item=foo}
<p>{$text}</p>
{/foreach}
Вот весь код карусели:
<!--Carousel Wrapper-->
<div id="carousel-thumb" class="carousel slide carousel-fade carousel-thumbnails" data-ride="carousel">
<!--Slides-->
<div class="carousel-inner" role="listbox">
{assign var='pics' value="uploads/images/{$entry->Picfolder}/*.jpg"|glob} <!--finding all .jpgs in the folder -->
{foreach from=$pics item='pic'}<!-- loop through .jpgs -->
{if $pic@first}
<div class="carousel-item active">
{else}
<div class="carousel-item">
{/if}
<img class="d-block w-100" src='{root_url}/{$pic}' alt="First slide"> <!-- add jpgs from loop -->
<div class="carousel-caption d-md-block">
<h5>Caption</h5><!-- need to insert content from .txt file here -->
<p>Image text</p><!-- need to insert content from .txt file here -->
</div>
</div>
{/foreach}
</div>
<!--/.Slides-->
<!--Controls-->
<a class="carousel-control-prev" href="#carousel-thumb" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carousel-thumb" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
<!--/.Controls-->
<ol class="carousel-indicators">
{foreach from=$pics item='pic' name=img}
<li data-target="#carousel-thumb" data-slide-to="{$smarty.foreach.img.index}" class="active"> <img class="d-block w-100" src='{root_url}/{$pic}' height="50" width="50" class="img-fluid"></li>
{/foreach}
</ol>
</div>
<!--/.Carousel Wrapper-->
Может кто-нибудь помочь мне с этим? Я действительно застрял в этой проблеме. Заранее спасибо ..