Показать сообщение отдельно

  #7  
Старый 31.05.2009, 22:18
Kuzya
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме:
140661

Репутация: 313
По умолчанию

3.5 Страница загрузки
Самый последний и самый лёгкий раздел. На этой странице пользователю будет предложено скачать программу в различных вариантах (архивы или exe-файл). Создайте контроллер download, а в нём метод отображающий страницу applications/views/download/index.php. Кода контроллера я приводить не буду потому что выше такие простые операции уже описывались. Вот код шаблона.

Код:
<?=$header?>
<body>
<?=$menu?>
<!-- start page -->
<div id="page">
<!-- start content -->
<div id="content">
<div class="post">
<h1 class="title"><a href="/download/">Скачать</a></h1>
<div class="entry">
<p>
<a href='/bred.exe'>Как EXE-файл</a><br />
<a href='/download/archive/zip/'>Как ZIP-архив</a><br />
<a href='/download/archive/tar/'>Как TAR-архив</a><br />
</p>
</div>
</div>
</div>
<!-- end content -->
<div style="clear: both;">&nbsp;</div>
</div>
<!-- end page -->
<hr />
<?=$footer?>
Как видно из шаблона, ссылка загрузки exe-файла ведёт прямо на него, а архивных файлов - на действие archive. И в случае с архивом, в ссылке передаётся его тип. Осуществлять формирование архивов мы будем с помощью модуля Archive (документация по нему - http://docs.kohanaphp.com/addons/archive). Просто создадим объект этого класса, добавим в него файл дистрибутива и выведем пользователю. Архив будем формировать в зависимости от переданного типа. По умолчанию будем использовать zip-архивы.

PHP код:
public function archive($type) {
// В зависимости от типа формируем архив
switch($type) {
case 
"zip":
$this->archive = new Archive("zip");
break;
case 
"tar":
$this->archive = new Archive("tar");
break;
// По умолчанию zip
default:
$type "zip";
$this->archive = new Archive("zip");
break;
}

// Добавляем в архив программу
$this->archive->add("bred.exe");
// Скачиваем под именем bred.расширение
$this->archive->download("bred.{$type}");

Вот и всё. Наш сайт полностью готов.

4. Заключение.
Мне очень понравился данный фреймворк. Раньше я думал что фреймворков проще Code Igniter просто быть не может. Но, как говорится, нет пределов совершенству. Вообщем от работы с Kohana я в восторге. Надеюсь на Вас он произвёл то же самое впечатление. Удачи!
P.S. Если у Вас что-то не получилось то Вы можете взять готовый исходный код в файле ready.zip.

5. Приложенные файлы
1.http://kuzya.name/files/kohana/ready.zip – готовый вариант сайта
2.http://kuzya.name/files/kohana/design.zip — дизайн
3.http://kuzya.name/files/kohana/database.sql — код базы данных
4.http://kuzya.name/files/kohana/additional_files.zip — дополнительный файлы (скриншоты + дистрибутив Bred3).
 
Ответить с цитированием