Commit 7253e13a authored by Yassine Doghri's avatar Yassine Doghri
Browse files

feat: add Plugins module with base files for plugins architecture

parent 3fd5efc7
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -187,3 +187,7 @@ data
castopod/
castopod-*.zip
castopod-*.tar.gz

# Plugins
plugins/*
!plugins/.gitkeep
+2 −0
Original line number Diff line number Diff line
@@ -50,10 +50,12 @@ class Autoload extends AutoloadConfig
        'Modules\Media'           => ROOTPATH . 'modules/Media/',
        'Modules\MediaClipper'    => ROOTPATH . 'modules/MediaClipper/',
        'Modules\Platforms'       => ROOTPATH . 'modules/Platforms/',
        'Modules\Plugins'         => ROOTPATH . 'modules/Plugins/',
        'Modules\PodcastImport'   => ROOTPATH . 'modules/PodcastImport/',
        'Modules\PremiumPodcasts' => ROOTPATH . 'modules/PremiumPodcasts/',
        'Modules\Update'          => ROOTPATH . 'modules/Update/',
        'Modules\WebSub'          => ROOTPATH . 'modules/WebSub/',
        'Plugins'                 => ROOTPATH . 'plugins',
        'Themes'                  => ROOTPATH . 'themes',
        'ViewComponents'          => APPPATH . 'Libraries/ViewComponents/',
        'ViewThemes'              => APPPATH . 'Libraries/ViewThemes/',
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ return ECSConfig::configure()
    ->withPaths([
        __DIR__ . '/app',
        __DIR__ . '/modules',
        __DIR__ . '/plugins',
        __DIR__ . '/themes',
        __DIR__ . '/tests',
        __DIR__ . '/public',
+33 −0
Original line number Diff line number Diff line
<?php

declare(strict_types=1);

namespace Modules\Plugins;

use App\Entities\Episode;
use App\Entities\Podcast;
use App\Libraries\SimpleRSSElement;

abstract class BasePlugin implements PluginInterface
{
    public function __construct()
    {
        // load metadata from json
        // load name, description, etc.
    }

    public function init(): void
    {
        // add to admin navigation

        // TODO: setup navigation and views?
    }

    public function setChannelTag(Podcast $podcast, SimpleRSSElement $channel): void
    {
    }

    public function setItemTag(Episode $episode, SimpleRSSElement $item): void
    {
    }
}
+18 −0
Original line number Diff line number Diff line
<?php

declare(strict_types=1);

namespace Modules\Fediverse\Commands;

use CodeIgniter\CLI\BaseCommand;

class InstallCommand extends BaseCommand
{
    /**
     * @param array<int|string, string|null> $params
     */
    public function run(array $params): void
    {
        // TODO:
    }
}
Loading