Изменение папки для входящих файлов — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «'''Актуально для версии 2.9.6''' Задача - изменить папку для файлов, отправляемых пользователе…»)
 
 
(не показаны 4 промежуточные версии 3 участников)
Строка 1: Строка 1:
'''Актуально для версии 2.9.6'''
+
'''Актуально для версии 18.'''
  
Задача - изменить папку для файлов, отправляемых пользователем через обратную связь. Изначально они попадают в /files, где куча других файлов, и это не всегда удобно.  
+
Задача: изменить папку для файлов, отправляемых пользователем через обратную связь. Изначально они попадают в /files, где куча других файлов, и это не всегда удобно.  
  
Для начала создайте файл events.php в classes/moduls/webforms/ с содержанием
+
Для начала создайте файл custom_events.php в  
 +
 
 +
-classes/modules/webforms/ (для старой реализации модулей)
 +
 
 +
-classes/components/webforms/ (для новой реализации модулей)
 +
 
 +
с содержанием
 
<source lang="php">
 
<source lang="php">
 
<?php
 
<?php
Строка 10: Строка 16:
 
</source>
 
</source>
  
Теперь в файле classes/moduls/webforms/__custom.php после слов //TODO: Write here your own macroses вставьте следующий код
+
Теперь в файле  
 +
 
 +
-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) {
 
            
 
            
            $message_id = $event->getParam('message_id');
+
    $message_id = $event->getParam('message_id');
            $file = umiObjectsCollection::getInstance()->getObject($message_id)->getValue('fajl');
+
    $file = umiObjectsCollection::getInstance()->getObject($message_id)->getValue('fajl');
            $old_path = $file->getFilePath();
+
    $old_path = $file->getFilePath();
            $file_name = $file->getFileName();
+
    $file_name = $file->getFileName();
            rename($old_path, "./files/webforms/$file_name");
+
    rename($old_path, "./files/webforms/$file_name");
            return true;
+
    return true;
        }
+
}
 
</source>
 
</source>
  
Теперь все файлы, отправленные через форму обратной связи, будут загружены в папку /files/webforms/ . Данную папку необходимо создать самостоятельно.
+
''''fajl'''' - это идентификатор поля с типом "Файл" в вашей форме.
 +
Директорию /files/webforms/ необходимо создать самостоятельно.
 +
Теперь все файлы, отправленные через форму обратной связи, будут загружены в указанную папку.
  
  

Текущая версия на 08:25, 28 мая 2018

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

Задача: изменить папку для файлов, отправляемых пользователем через обратную связь. Изначально они попадают в /files, где куча других файлов, и это не всегда удобно.

Для начала создайте файл custom_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/ необходимо создать самостоятельно. Теперь все файлы, отправленные через форму обратной связи, будут загружены в указанную папку.