Закачка файла посетителем на странице сайта — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
[[Категория:Верстка в TPL]][[Категория: Верстка в XSLT]][[Категория: Модуль Новости]]
+
[[Категория:Верстка в TPL]][[Категория: Вопросы и уроки разработки сайтов на UMI.CMS]]
 
'''Актуально для версии 2.9.6'''<br/><br/>
 
'''Актуально для версии 2.9.6'''<br/><br/>
'''Задача:''' <br/><br/>
+
'''Задача:''' Дать возможность закачки файла посетителям сайта<br/><br/>
 
'''Реализация:'''  
 
'''Реализация:'''  
  
 +
В типе данных страниц, на которых будет располагаться форма закачки файла, в модуле "Шаблоны данных" добавим поле типа "Файл" c идентификатором "fs_file".
 +
Если типом данных страниц является тип "Скачиваемый файл", то в нем уже присутствует описанное выше поле. Для того, чтобы посетители сайта имели возможность закачать файл для страниц, необходимо установить группе "Все" права на их (страниц) редактирование (секция "Права доступа").<br/><br/>
 +
В шаблон вывода этих страниц добавим вызов макроса %filemanager shared_file()%:
 +
<source lang="html4strict">
 +
%filemanager shared_file('upload')%
 +
</source>
 +
Создадим файл tpls\filemanager\upload.tpl и добавим в него следующее содержимое:
 +
<source lang="html4strict">
 +
<?php
  
Как можно реализовать возможность закачивать пользователям файлы на сервер с фронтенда?
+
$FORMS['shared_file'] = <<<END
 
+
Имя файла: %file_name% <br />
Для этого создаем шаблон ~/tpls/filemanager/upload.tpl c содержимым:
+
Размер файла: %file_size% Kb <br />
  
<?php
+
Если закачивание файла не начнется через 10 сек, кликните
+
<a href="%download_link%">по этой ссылке</a>  
$FORMS['shared_file'] = <<<END
+
<script languge="text/javascript">  
Имя файла: % file_name% <br />
+
    window.setTimeout('document.location.href="%download_link%";', 10000);  
Размер файла: % file_size% Kb<br /><br />
 
Если закачивание файла не начнется через 10 сек,  
 
кликните <a href="% download_link%">по этой ссылке</a>
 
<script languge="text/javascript">
 
window.setTimeout('document.location.href="% download_link%";', 10000);
 
 
</script>
 
</script>
 
 
END;
 
END;
+
 
 
$FORMS['upload_file'] = <<<END
 
$FORMS['upload_file'] = <<<END
<form method="post" enctype="multipart/form-data" action="">
+
<form method="post" enctype="multipart/form-data" action="">  
<input type="file" name="shared_files[upload]" /> <input type="submit" value="Закачать" />
+
    <input type="file" name="shared_files[upload]" />  
</form>
+
    <input type="submit" value="Закачать" />  
 +
</form>  
 
END;
 
END;
+
 
 
$FORMS['broken_file'] = <<<END
 
$FORMS['broken_file'] = <<<END
    Файл не существует.
+
  Файл не существует.
    % upload_file%
+
  %upload_file%
 
END;
 
END;
+
 
 
?>
 
?>
 +
</source>
  
+
Если файл еще не был закачен, то будет выведена форма для его закачки, или ссылка для его скачивания в ином случае.
 
 
Теперь вызовем этот шаблон, без указания файла для загрузки, например так:
 
 
 
% filemanager shared_file('upload')%
 
 
 
Осталось выставить права доступа для Гостя на использование Файловой системы.
 

Текущая версия на 09:03, 11 апреля 2014

Актуально для версии 2.9.6

Задача: Дать возможность закачки файла посетителям сайта

Реализация:

В типе данных страниц, на которых будет располагаться форма закачки файла, в модуле "Шаблоны данных" добавим поле типа "Файл" c идентификатором "fs_file". Если типом данных страниц является тип "Скачиваемый файл", то в нем уже присутствует описанное выше поле. Для того, чтобы посетители сайта имели возможность закачать файл для страниц, необходимо установить группе "Все" права на их (страниц) редактирование (секция "Права доступа").

В шаблон вывода этих страниц добавим вызов макроса %filemanager shared_file()%:

%filemanager shared_file('upload')%

Создадим файл tpls\filemanager\upload.tpl и добавим в него следующее содержимое:

<?php

$FORMS['shared_file'] = <<<END
Имя файла: %file_name% <br />
Размер файла: %file_size% Kb <br />

Если закачивание файла не начнется через 10 сек, кликните 
<a href="%download_link%">по этой ссылке</a> 
<script languge="text/javascript"> 
    window.setTimeout('document.location.href="%download_link%";', 10000); 
</script>
END;

$FORMS['upload_file'] = <<<END
<form method="post" enctype="multipart/form-data" action=""> 
    <input type="file" name="shared_files[upload]" /> 
    <input type="submit" value="Закачать" /> 
</form> 
END;

$FORMS['broken_file'] = <<<END
   Файл не существует.
   %upload_file%
END;

?>

Если файл еще не был закачен, то будет выведена форма для его закачки, или ссылка для его скачивания в ином случае.