Jump to content
  • 0

Верстка и smarty


Veon
 Share

Question

Все привет.

Есть задача вывести на страницу сайта некоторое кол-во фотографий ( в миниатюре ). Процесс стандартный php берет данные ( имя изображения, описание т.д. ) и сдает это smarty ( assign ) .

Шаблон:

 <table border="0" style="width: 100%;">
<tr>
{section name=index_last_photo loop=$id}
<td>
<a href="http://{$smarty.server.SERVER_NAME}/modules/gallery/uploads/{$id[index_last_photo].photo_file_id}.jpg"
rel="lyteshow[vacation]" title="{$id[index_last_photo].rus_photo_name}">
<img style=" border: 1px solid silver;width: 128px; height: 128px;" src="http://{$smarty.server.SERVER_NAME}/modules/gallery/uploads/{$id[index_last_photo].photo_file_id}.jpg"
alt="{$id[index_last_photo].rus_photo_name}" />
</a>
<a href="http://{$smarty.server.SERVER_NAME}/gallery/view/list/">
<span>{$id[index_last_photo].rus_photo_name}</span>
</a>
<br />
<a style="text-decoration: none;" href="http://{$smarty.server.SERVER_NAME}/users/view/{$id[index_last_photo].person_id|default:'0'}/">
<span>Автор: {$id[index_last_photo].person_name}</span>
</a>
</td>
{/section}
</tr>
</table>

Проблема в том, что фото выводятся один за другим в <td>, а нужно выводить по 5 штук в строку. То есть вывелось 5 фото, ниже еще пять фото и т. д. .Можно это как-то на smarty накрутить?

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

1. Можно попробовать assign.

2. Можно делать через foreach, если массив не ассоциативный и проверять как-то так

{foreach item=item key=key from=$photos}
{if $key%5==0}делаем переезд на следующую строку{/if}
{/foreach}

3. Я бы вообще отказался от таблицы и использовал бы div с float: left

Link to comment
Share on other sites

  • 0
1. Можно попробовать assign.

Не совсем понимаю каким образом

2. Можно делать через foreach, если массив не ассоциативный и проверять как-то так

{foreach item=item key=key from=$photos}
{if $key%5==0}делаем переезд на следующую строку{/if}
{/foreach}

Проверка индекса это понятно. Но как сделать сам переход на след. строку.

3. Я бы вообще отказался от таблицы и использовал бы div с float: left

Не силен, я вообще не верстальщик. Мне щас лижбы работало, а шаблон все равно переделывать будут.

Link to comment
Share on other sites

  • 0
а почему у вас в коде некоторые тэги не в угловых скобках а в фигурных?

Перестань задавать глупые вопросы. Потому что это JavaScript, это во-первых. Во-вторых, не угловые, а квадратные. :(

Link to comment
Share on other sites

  • 0
Надо вситавлять </tr><tr>. Наверное.

Огромное спасибо. В итоге сделал так как Вы подсказали. Плюс сделал на дивах. Единственное пришлось в if добавить условие

<div id="gallery_form">
<div><h3 style="font-weight: lighter;">{$gallery_title|default:''}</h3></div>
<hr />
{foreach from=$id key=myId item=i}
<div style="float: left;margin-right: 10px;">
<a href="http://{$smarty.server.SERVER_NAME}/modules/gallery/uploads/{$i.photo_file_id}.jpg"
rel="lyteshow[vacation]" title="{$i.rus_photo_name}">
<img style=" border: 1px solid silver;width: 128px; height: 128px;" src="http://{$smarty.server.SERVER_NAME}/modules/gallery/uploads/{$i.photo_file_id}.jpg"
alt="{$i.rus_photo_name}" />
</a>
<div>
<a href="http://{$smarty.server.SERVER_NAME}/gallery/view/list/">
<span>{$i.rus_photo_name}</span>
</a>
</div>
<div>
<a style="text-decoration: none;" href="http://{$smarty.server.SERVER_NAME}/users/view/{$i.person_id|default:'0'}/">
<span>Автор: {$i.person_name}</span>
</a>

</div>

</div>

{if $myId%5 == 0 && $myId <> 0}
<br />
{/if}
{/foreach}
</div>

Перестань задавать глупые вопросы. Потому что это JavaScript, это во-первых. Во-вторых, не угловые, а квадратные. :(

Это не javascript, а темплейт движок smarty - http://smarty.net

Link to comment
Share on other sites

  • 0
Перестань задавать глупые вопросы. Потому что это JavaScript, это во-первых. Во-вторых, не угловые, а квадратные. :(

Перестань говорить глупости. Это не javascript, а php-шаблонизатор «Smarty». И угловые скобки (<>) не надо путать с квадратными ([])

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy