Контактная информация            Баг трекер            Предложение хостинг-провайдерам

Cоздание страницы со скачиваемыми файлами

Тимур Вафин Автор: Тимур Вафин
Дата: 31 августа 2007
Рубрика: How-to

Иногда при создании сайта требуется страница, на которой нужно организовать скачивание определённых файлов. В данной статье рассмотрен пример создания такой страницы.

Для начала нам нужно создать раздел данных, где будут храниться файлы.

Для этого переходим во вкладку «Данные» и создаём раздел файлов.

В поле «Разрешенные типы файлов» нужно обязательно указать через запятую без пробелов расширения файлов, которые будут храниться в данном разделе, иначе вы не сможете закачать ни одного файла.

Для создания шаблона блока закачки файлов требуется перейти во вкладку «Шаблоны», открыть «Файлы / Список файлов», создать шаблон и написать в него HTML код блока.

HTML код блока:

<div class="downloads">
 {if $header}
  <h2>{$header}</h2>
 {/if}
 <table cellpadding="0" cellspacing="5"> 
  {foreach from=$files item=file} 
   <tr>
    <td><img src="/images/book_file.gif" width="24" height="30" border="0" alt="{$file.header}"></td>
    <td>
     <a href="{$file.href}" title="{$file.header}">{$file.header}</a>
     <span> {$file.type|upper} {$file.size|filesize_format}</span>
    </td>
   </tr>     
  {/foreach}
 </table>
</div>

Хочу обратить внимание на:

  1. img src="/images/{$file.type}.gif " — в зависимости от типа файла будет грузиться соответствующая иконка
  2. {$file.size|filesize_format} — модификатор filesize_format не является встроенным и написан отдельно, он используется для перевода размера файла из байтов в килобайты или мегабайты

Далее создаём объект «Файлы / Список файлов» и связываем этот объект с созданным шаблоном.

В объекте можно указать количество отображаемых файлов и по какому принципу их сортировать.

Далее ставим этот объект на нужную нам страницу и смотрим, что у нас получилось.

Комментарии

RSS RSS
Антон, 1 сентября 2007
т.е нужно кинуть в папку images картинку например (zip.gif или doc.gif) так?
Deebeer, 2 сентября 2007
не плохо бы привести пример написания модификатора filesize_format
Как, куда код засунуть и т.п.
Тимур, 3 сентября 2007
to Антон: Да.
Тимур, 3 сентября 2007

Для использования модификатора filesize_format нужно во вкладке «Данные» создать следующий PHP код:

<?php

function smarty_modifier_filesize_format( $size )

{

  if( is_null($size) || $size === FALSE || $size == 0 )

    return $size;

  if( $size > 1024*1024*1024 )

    $size = sprintf( "%.1f ГБ", $size / (1024*1024*1024) );

  if( $size > 1024*1024 )

    $size = sprintf( "%.1f МБ", $size / (1024*1024) );

  elseif( $size > 1024 )

    $size = sprintf( "%.1f КБ", $size / 1024 );

  elseif( $size < 0 )

    $size = '&nbsp;';

  else

    $size = sprintf( "%d Б", $size );

  return $size;

}

$ctx->_smarty->register_modifier('filesize_format','smarty_modifier_filesize_format');

?>

 

Далее создаём объект PHP код / Обратный вызов и связываем этот объект с созданным PHP кодом. Затем ставим этот объект на нужную нам страницу (страница со списком файлов) на событие onCreateSmarty.

Влад, 8 августа 2009
Как правильно возпроизвести список файлов в составе ГД? Опишите правильное создание шаблона и обьекта чтоб выбирал именно файлы в списке данного елемента ГД.

Добавить комментарий

Имя:     Email:
Комментарий:
Введите символы, которые видите на картинке.
Если символы неразборчивы, кликните по картинке несколько раз.