Browse Source

Add file uploads 1/...

Visman 2 năm trước cách đây
mục cha
commit
02e8fc4021

+ 6 - 0
app/Controllers/Routing.php

@@ -780,6 +780,12 @@ class Routing
                 'AdminLogs:action',
                 'AdminLogsAction'
             );
+            $r->add(
+                $r::DUO,
+                '/admin/uploads',
+                'AdminUploads:view',
+                'AdminUploads'
+            );
         }
 
         $uri = $_SERVER['REQUEST_URI'];

+ 1 - 0
app/Models/Pages/Admin.php

@@ -81,6 +81,7 @@ abstract class Admin extends Page
                 'censoring'   => [$r->link('AdminCensoring'), 'Censoring'],
                 'logs'        => [$r->link('AdminLogs'), 'Logs'],
                 'maintenance' => [$r->link('AdminMaintenance'), 'Maintenance'],
+                'uploads'     => [$r->link('AdminUploads'), 'Uploads'],
             ];
         }
 

+ 6 - 0
app/Models/Pages/Admin/Install.php

@@ -116,6 +116,7 @@ class Install extends Admin
             $this->c->DIR_CONFIG . '/db',
             $this->c->DIR_CACHE,
             $this->c->DIR_PUBLIC . '/img/avatars',
+            $this->c->DIR_PUBLIC . '/upload',
         ];
 
         foreach ($folders as $folder) {
@@ -829,6 +830,9 @@ class Install extends Admin
                 'g_pm_limit'             => ['INT(10) UNSIGNED', false, 100],
                 'g_sig_length'           => ['SMALLINT UNSIGNED', false, 400],
                 'g_sig_lines'            => ['TINYINT UNSIGNED', false, 4],
+                'g_up_ext'               => ['VARCHAR(255)', false, 'webp,jpg,jpeg,png,gif,avif'],
+                'g_up_size_kb'           => ['INT(10) UNSIGNED', false, 0],
+                'g_up_limit_mb'          => ['INT(10) UNSIGNED', false, 0],
             ],
             'PRIMARY KEY' => ['g_id'],
             'ENGINE' => $this->DBEngine,
@@ -1517,6 +1521,8 @@ class Install extends Admin
                 ], FORK_JSON_ENCODE
             ),
             's_РЕГИСТР'               => 'Ok',
+            'b_upload'                => 1,
+            'i_upload_img_quality'    => 75,
         ];
 
         foreach ($forkConfig as $name => $value) {

+ 30 - 1
app/Models/Pages/Admin/Update.php

@@ -25,7 +25,7 @@ class Update extends Admin
 {
     const PHP_MIN                    = '8.0.0';
     const REV_MIN_FOR_UPDATE         = 53;
-    const LATEST_REV_WITH_DB_CHANGES = 55;
+    const LATEST_REV_WITH_DB_CHANGES = 59;
     const LOCK_NAME                  = 'lock_update';
     const LOCK_TTL                   = 1800;
     const CONFIG_FILE                = 'main.php';
@@ -602,4 +602,33 @@ class Update extends Admin
 
         return null;
     }
+
+    /**
+     * rev.58 to rev.59
+     */
+    protected function stageNumber58(array $args): ?int
+    {
+        $config = $this->c->config;
+
+        $config->b_upload             = 1;
+        $config->i_upload_img_quality = 75;
+
+        $config->save();
+
+        $this->c->DB->addField('::groups', 'g_up_ext', 'VARCHAR(255)', false, 'webp,jpg,jpeg,png,gif,avif');
+        $this->c->DB->addField('::groups', 'g_up_size_kb', 'INT(10) UNSIGNED', false, 0);
+        $this->c->DB->addField('::groups', 'g_up_limit_mb', 'INT(10) UNSIGNED', false, 0);
+
+        $coreConfig = new CoreConfig($this->configFile);
+
+        $coreConfig->add(
+            'multiple=>AdminUploads',
+            '\\ForkBB\\Models\\Pages\\Admin\\Uploads::class',
+            'AdminLogs'
+        );
+
+        $coreConfig->save();
+
+        return null;
+    }
 }

+ 1 - 0
app/config/main.dist.php

@@ -390,6 +390,7 @@ return [
         'AdminParserSmilies' => \ForkBB\Models\Pages\Admin\Parser\Smilies::class,
         'AdminParserBBCode'  => \ForkBB\Models\Pages\Admin\Parser\BBCode::class,
         'AdminLogs'          => \ForkBB\Models\Pages\Admin\Logs::class,
+        'AdminUploads'       => \ForkBB\Models\Pages\Admin\Uploads::class,
 
         'AdminListModel'    => \ForkBB\Models\AdminList\AdminList::class,
         'BanListModel'      => \ForkBB\Models\BanList\BanList::class,

+ 3 - 0
app/lang/en/admin.po

@@ -77,3 +77,6 @@ msgstr "Logs"
 
 msgid "Admin menu"
 msgstr "Admin menu"
+
+msgid "Uploads"
+msgstr "Uploads"

+ 3 - 0
app/lang/ru/admin.po

@@ -77,3 +77,6 @@ msgstr "Логи"
 
 msgid "Admin menu"
 msgstr "Меню админки"
+
+msgid "Uploads"
+msgstr "Загрузки"

+ 1 - 0
public/upload/index.html

@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><title>.</title></head><body>.</body></html>