Exemple de Module

Module d'exemple

Config/Routes.php

<?php

$routes->get('/{locale}/community', '\Modules\Community\Controllers\CommunityController::ShowPage');

Config/version.json

{
    "callname": "Community",
    "version": "1.0",
    "author": "Florian Prache",
    "author_url": "https://altitude-dev.com",
    "description": "",
    "feature": "/back/img/panel01.webp",
    "acp":{
        "menu_name": "",
        "menu_route": ""
    }
}

Controllers/CommunityController.php

<?php 

namespace Modules\Community\Controllers;
use App\Controllers\BaseController;

class CommunityController extends BaseController {

    public function ShowPage(){
        $data = array_merge([
            'global'        => $this->viewData,
            'lang'          => $this->viewData['locale'],
            'view_class'    => 'community_index',
            'title'         => 'My Super title seo',
            'desc'          => 'My Super seo description'
        ]);
        return twig(false, false, false)->render('Modules\Community\Views\home.twig', $data);
    }

}

Views/home.twig

{% extends 'Views/front/themes/' ~ THEME ~ '/base.twig' %}

{# injection dans le head #}
{% block headextends %}
    INJECTION DANS LE <head></head>
{% endblock %}

{% block content %}
    VOTRE CONTENU HTML/TWIG...
{% endblock %}

{# injection dans le footer #}
{% block footextends %}
    INJECTION en fin de BODY
{% endblock %}

Models/MyModel.php

<?php 
namespace Modules\Community\Models;
use CodeIgniter\Model;

class MyModel extends Model {

    protected $table = 'my_module';

    public function mysuperModel(){
        return true;
    }

}

Pour finir si vous devez avoir des assets "PUBLIC" (CSS, JS, HTML, MEDIAS) il vous suffit juste de crée un dossier dans Public/modules/Community/vos assets ici et de les required via le footextends ou le headextends de votre .TWIG

Il est tout a fait possible de recrée un nouveau theme dans votre base twig, dans l'exemple nous héritons du theme principal, mais vous pouvez choisir que non.

Dernière mise à jour