Multimag  0.2.992
files.php
См. документацию.
1 <?php
2 
3 // MultiMag v0.2 - Complex sales system
4 //
5 // Copyright (C) 2005-2018, BlackLight, TND Team, http://tndproject.org
6 //
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
11 //
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
16 //
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 
20 namespace modules\service;
21 
23 class files extends \IModule {
24 
25  public function __construct() {
26  parent::__construct();
27  $this->acl_object_name = 'service.files';
28  $this->table_name = 'intfiles';
29  }
30 
31  public function getName() {
32  return 'Прикреплённые файлы (служебные)';
33  }
34 
35  public function getDescription() {
36  return 'Модуль для просмотра и редактирования служебных прикреплённых файлов';
37  }
38 
39  public function run() {
40  global $tmpl;
41  $tmpl->addBreadcrumb($this->getName(), $this->link_prefix);
42  $sect = request('sect');
43  switch ($sect) {
44  case '':
45  $tmpl->addBreadcrumb($this->getName(), '');
46  $tmpl->addContent("<p>".$this->getDescription()."</p>"
47  . "<ul>"
48  . "<li><a href='" . $this->link_prefix . "&amp;sect=list'>Смотреть список</li>"
49  . "</ul>");
50  break;
51  case 'attachto':
52  $attach_to = request('attachto');
53  $this->attachToPage($attach_to);
54  break;
55  default:
56  throw new \NotFoundException("Секция не найдена");
57  }
58  }
59 
60  public function attachToPage($object_name) {
61  global $tmpl;
62  \acl::accessGuard($this->acl_object_name, \acl::CREATE | \acl::UPDATE);
63  $tmpl->addBreadcrumb('Прикрепление файла к '.$object_name, '');
64  $tmpl->addContent($this->getAttachFileForm($object_name));
65  }
66 
67 
68  protected function getAttachFileForm($attach_to) {
70  $max_fs_size = \webcore::toStrDataSizeInaccurate($max_fs);
71  $ret = "
72  <form action='{$this->link_prefix}' method='post' enctype='multipart/form-data'>
73  <input type='hidden' name='sect' value='filesave'>
74  <input type='hidden' name='attachto' value='" . html_out($attach_to) . "'>
75  <table cellpadding='0' class='list'>
76  <tr><td><b style='color:#f00;'>*</b>Выберите файл:</td>
77  <td><input type='hidden' name='MAX_FILE_SIZE' value='$max_fs'>
78  <input name='userfile' type='file' required placeholder='Выберите файл'>
79  <br><small>Не более $max_fs_size</small></td></tr>
80  <tr><td><b style='color:#f00;'>*</b>Описание файла (до 128 символов)</td>
81  <td><input type='text' name='description' placeholder='Вложение' maxlength='128' required>
82  <tr><td colspan='2' align='center'>
83  <input type='submit' value='Сохранить'>
84  </table>";
85  return $ret;
86  }
87 }
$module link_prefix
Definition: news.php:24
getAttachFileForm($attach_to)
Definition: files.php:68
static toStrDataSizeInaccurate($size)
Definition: webcore.php:72
html_out($data)
Обёртка над htmlentities.
Definition: core.php:249
request($varname, $def='')
Definition: core.php:190
const CREATE
Создание
Definition: acl.php:27
Страница со статьёй внутренней базы знаний в wiki формате
Definition: files.php:23
Базовый класс для модулей
Definition: imodule.php:21
static accessGuard($object, $flags, $no_redirect=false)
То же, что и testAccess, но бросает исключение, если нет доступа
Definition: acl.php:213
$tmpl
static getMaxUploadFileSize()
Вычисляет максимально допустимый размер загружаемых файлов, в байтах
Definition: webcore.php:41
const UPDATE
Обновление
Definition: acl.php:28
attachToPage($object_name)
Definition: files.php:60