Ga naar hoofdinhoud

Toevoegen IB-module

Inhoudsopgave

  1. Handmatig
  2. M.b.v CSVI
  3. Python

1. Handmatig

Een IB-module vraagt om deze volgende zaken: 1 Interface Builder moet zijn geïnstalleerd.

Stappen:

  1. Voeg een IB-module.
  2. Voeg een menu-item toe.
  3. Creëer view voor het lijst-overzicht
  4. Maak lijst-overzicht gebaseerd op view uit vorige stap

1. Voeg een IB-module toe

2. Voeg een menu-item toe

3. Creëer view voor het lijst-overzicht

Maak twee varianten. Een "_all" en een "_list"-variant. De "_all"-variant bevat alle velden en alle joins. Deze view is daarmee 'over-compleet' en zal daardoor niet snel worden gebruikt. Het is wel een goed startpunt voor andere, meer maatwerk-views op dezelfde tabel.

De "_list"-variant wordt gebaseerd op de "_all"-variant en alle 'overbodige' velden worden eruit gehaald. Precies op maat voor de lijstweergave in de IB-module.

Gebruik voor de tabellen een alias. Kies een alias die ook kan worden gebruikt in combinatie met andere tabellen. Voorbeeld: jnxt_jne_aem_process_steps => alias: ps En niet bijvoorbeeld p omdat p ook zou moeten kunnen worden gebruikt voor jnxt_jne_aem_processes

4. Maak lijst-overzicht gebaseerd op view uit vorige stap

5. Andere instellingen

Tabblad 'Form': Stel de Crud en de andere instellingen in.

Tabblad 'Menu Assignment': Wijs de module toe aan de juiste pagina('s).

Tabblad 'Group': Stel de tabelnaam en de primary key in.

Tabblad 'Views / Table': Verberg de id kolom uit de list

Tabblad 'Views / Detail view': Stel de kolom in die dient als koppeling naar de detail-view. Gebruik hiervoor de naam zoals die in de List wordt getoond.

6. Elements

2. M.b.v. CSVI

1. Exports maken

2. Importeren

Volgorde van importeren

  1. Artikel-categorieën
  2. Artikelen
  3. Sub-menu's. Maak eerst een separaat submenu aan met de goede naam! Te vinden in het exportbestand onder 'menutype'.

3. M.b.v. Python

1. Importeren van instellingen

Dit is al mogelijk via een optie in de backend-tool. Op het moment van schrijven (21-2-2023), optie 41: Import / Update IB-settings. Onder importeren wordt verstaan het importeren naar Gitlab!

2. Bijwerken van bestaande modules

Dezelfde optie maakt het mogelijk om bestaande opties met nieuwe instellingen uit Gitlab te bijwerken. Daarbij moet aan twee voorwaarden worden voldaan (21-2-2023): 1 De in Joomla geïnstalleerde module moet dezelfde versie hebben als de module-instelling in de backendtool. De module-instellingen van de backendtool staan in het bestand interfacebuilder.py onder functie def __init__(self). 2 De slug van de modulenaam moet overeenkomen met de naam van het import-bestand.

3. Creëren van module via python

Het is uiteraard prima mogelijk om m.b.v. een record toe te voegen aan de jnxt_module-tabel. Echter, als binnen Joomla een module wordt gecreëerd, dan maakt Joomla ook records aan in andere tabellen. En die records hebben uiteraard waarden. Waarden die afhankelijk zijn van, bijvoorbeeld, bestaande modules.

Joomla maakt records aan in de volgende tabellen:

  • jnxt_action_logs
  • jnxt_assets
  • jnxt_modules
  • jnxt_modules_menu
  • jnxt_session

jnxt_action_logs De handeling wordt vastgelegd. Niet per se noodzakelijk, vermoed ik.

jnxt_session Weet niet precies wat hier gebeurt, maak ik vermoed dat dit niet noodzakelijk voor bij de creatie van een module-record.

jnxt_modules_menu Bevat een verwijzing naar een item in de jnxt_menu-tabel. Waarschijnlijk volstaat hier met een verwijzing naar een bestaand menu.

Blijven over: jnxt_modules Uiteraard. Het toevoegen van een record is eenvoudig. Is in feite al gemaakt met de update-functie.

jnxt_assets De nieuwe module wordt toegevoegd aan de assets en ingevoegd in de 'nested tree' (left en right waarden). Dit betekent dat een deel van de elementen in dezelfde subtree hernummerd worden. Lastig om zelf te reproduceren.

De enige bottle neck is dus de assets-tabel.