Commit a95de8ba authored by Yassine Doghri's avatar Yassine Doghri
Browse files

feat(components): add custom view renderer with ComponentRenderer adapted from bonfire2

- update Component class structure and remove component helper function and ComponentLoader
- update residual activitypub naming to fediverse
parent 5083cd2f
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -154,8 +154,7 @@ public/media/persons/*
!public/media/persons/index.html

# Generated files
app/Language/en/PersonsTaxonomy.php
app/Language/fr/PersonsTaxonomy.php
modules/Admin/Language/*/PersonsTaxonomy.php

#-------------------------
# Docker volumes
+8 −10
Original line number Diff line number Diff line
@@ -43,16 +43,14 @@ class Autoload extends AutoloadConfig
     */
    public $psr4 = [
        APP_NAMESPACE => APPPATH,
        'Modules' => ROOTPATH . 'modules',
        'Modules\Admin' => ROOTPATH . 'modules/Admin',
        'Modules\Auth' => ROOTPATH . 'modules/Auth',
        'Modules\Analytics' => ROOTPATH . 'modules/Analytics',
        'Modules\Install' => ROOTPATH . 'modules/Install',
        'Modules\Fediverse' => ROOTPATH . 'modules/Fediverse',
        'Config' => APPPATH . 'Config',
        'ActivityPub' => APPPATH . 'Libraries/ActivityPub',
        'Analytics' => APPPATH . 'Libraries/Analytics',
        'ViewComponents' => APPPATH . 'Libraries/ViewComponents',
        'Modules' => ROOTPATH . 'modules/',
        'Modules\Admin' => ROOTPATH . 'modules/Admin/',
        'Modules\Auth' => ROOTPATH . 'modules/Auth/',
        'Modules\Analytics' => ROOTPATH . 'modules/Analytics/',
        'Modules\Install' => ROOTPATH . 'modules/Install/',
        'Modules\Fediverse' => ROOTPATH . 'modules/Fediverse/',
        'Config' => APPPATH . 'Config/',
        'ViewComponents' => APPPATH . 'Libraries/ViewComponents/',
    ];

    /**
+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ Events::on('logout', function (User $user): void {

/*
 * --------------------------------------------------------------------
 * ActivityPub events
 * Fediverse events
 * --------------------------------------------------------------------
 */
/**
+2 −2
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ use CodeIgniter\Filters\CSRF;
use CodeIgniter\Filters\DebugToolbar;
use CodeIgniter\Filters\Honeypot;
use Modules\Auth\Filters\PermissionFilter;
use Modules\Fediverse\Filters\ActivityPubFilter;
use Modules\Fediverse\Filters\FediverseFilter;
use Myth\Auth\Filters\LoginFilter;
use Myth\Auth\Filters\RoleFilter;

@@ -27,7 +27,7 @@ class Filters extends BaseConfig
        'login' => LoginFilter::class,
        'role' => RoleFilter::class,
        'permission' => PermissionFilter::class,
        'activity-pub' => ActivityPubFilter::class,
        'activity-pub' => FediverseFilter::class,
    ];

    /**
+21 −0
Original line number Diff line number Diff line
@@ -7,11 +7,14 @@ namespace Config;
use App\Libraries\Breadcrumb;
use App\Libraries\Negotiate;
use App\Libraries\Router;
use App\Libraries\View;
use App\Libraries\Vite;
use CodeIgniter\Config\BaseService;
use CodeIgniter\HTTP\Request;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\Router\RouteCollectionInterface;
use Config\Services as AppServices;
use Config\View as ViewConfig;

/**
 * Services Configuration file.
@@ -46,6 +49,24 @@ class Services extends BaseService
        return new Router($routes, $request);
    }

    /**
     * The Renderer class is the class that actually displays a file to the user. The default View class within
     * CodeIgniter is intentionally simple, but this service could easily be replaced by a template engine if the user
     * needed to.
     */
    public static function renderer(?string $viewPath = null, ?ViewConfig $config = null, bool $getShared = true): View
    {
        if ($getShared) {
            return static::getSharedInstance('renderer', $viewPath, $config);
        }

        $viewPath = $viewPath ?: config('Paths')
            ->viewDirectory;
        $config = $config ?? config('View');

        return new View($config, $viewPath, AppServices::locator(), CI_DEBUG, AppServices::logger());
    }

    /**
     * The Negotiate class provides the content negotiation features for working the request to determine correct
     * language, encoding, charset, and more.
Loading