Изменение папки для входящих файлов — различия между версиями
Alexei (обсуждение | вклад) |
Po4emu4ka (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | '''Актуально для версии 2. | + | '''Актуально для версии 2.18''' |
Задача - изменить папку для файлов, отправляемых пользователем через обратную связь. Изначально они попадают в /files, где куча других файлов, и это не всегда удобно. | Задача - изменить папку для файлов, отправляемых пользователем через обратную связь. Изначально они попадают в /files, где куча других файлов, и это не всегда удобно. | ||
− | Для начала создайте файл events.php в classes/ | + | Для начала создайте файл events.php в |
+ | |||
+ | -classes/modules/webforms/ (для старой реализации модулей) | ||
+ | |||
+ | -classes/components/webforms/ (для новой реализации модулей) | ||
+ | |||
+ | с содержанием | ||
<source lang="php"> | <source lang="php"> | ||
<?php | <?php | ||
Строка 10: | Строка 16: | ||
</source> | </source> | ||
− | Теперь в файле classes/ | + | Теперь в файле |
+ | |||
+ | -classes/modules/webforms/__custom.php (для старой реализации модулей) | ||
+ | |||
+ | -classes/modules/webforms/customMacros.php.php (для новой реализации модулей) | ||
+ | |||
+ | после слов //TODO: Write here your own macroses вставьте следующий код | ||
<source lang="php"> | <source lang="php"> | ||
public function changeFileDirectory(umiEventPoint $event) { | public function changeFileDirectory(umiEventPoint $event) { | ||
Строка 23: | Строка 35: | ||
</source> | </source> | ||
− | Теперь все файлы, отправленные через форму обратной связи, будут загружены в папку | + | ''''fajl'''' - это идентификатор поля с типом "Файл" в вашей форме. |
+ | Директорию /files/webforms/ необходимо создать самостоятельно. | ||
+ | Теперь все файлы, отправленные через форму обратной связи, будут загружены в указанную папку. | ||
Версия 08:32, 23 мая 2018
Актуально для версии 2.18
Задача - изменить папку для файлов, отправляемых пользователем через обратную связь. Изначально они попадают в /files, где куча других файлов, и это не всегда удобно.
Для начала создайте файл events.php в
-classes/modules/webforms/ (для старой реализации модулей)
-classes/components/webforms/ (для новой реализации модулей)
с содержанием
<?php
new UmiEventListener("webforms_post", "webforms", "changeFileDirectory");
?>
Теперь в файле
-classes/modules/webforms/__custom.php (для старой реализации модулей)
-classes/modules/webforms/customMacros.php.php (для новой реализации модулей)
после слов //TODO: Write here your own macroses вставьте следующий код
public function changeFileDirectory(umiEventPoint $event) {
$message_id = $event->getParam('message_id');
$file = umiObjectsCollection::getInstance()->getObject($message_id)->getValue('fajl');
$old_path = $file->getFilePath();
$file_name = $file->getFileName();
rename($old_path, "./files/webforms/$file_name");
return true;
}
'fajl' - это идентификатор поля с типом "Файл" в вашей форме. Директорию /files/webforms/ необходимо создать самостоятельно. Теперь все файлы, отправленные через форму обратной связи, будут загружены в указанную папку.