update 2024-03-14

This commit is contained in:
Robot 2024-03-14 14:29:20 +02:00
parent c7492eb08e
commit 8f6a478760
Signed by: Robot
GPG Key ID: 14DECD44E7E1BB95
238 changed files with 18324 additions and 5130 deletions

View File

@ -81,6 +81,7 @@ This repository contains an index (see below) of all the approved powers within
- **final class CustomTabs** | [Details](src/9551b683-67b6-4367-bb14-4b016def37e3) | [Code](src/9551b683-67b6-4367-bb14-4b016def37e3/code.php) | [Settings](src/9551b683-67b6-4367-bb14-4b016def37e3/settings.json) | Super__9551b683_67b6_4367_bb14_4b016def37e3__Power - **final class CustomTabs** | [Details](src/9551b683-67b6-4367-bb14-4b016def37e3) | [Code](src/9551b683-67b6-4367-bb14-4b016def37e3/code.php) | [Settings](src/9551b683-67b6-4367-bb14-4b016def37e3/settings.json) | Super__9551b683_67b6_4367_bb14_4b016def37e3__Power
- **final class DatabaseKeys** | [Details](src/0d8db719-39a6-48b4-85a6-2f97e784e588) | [Code](src/0d8db719-39a6-48b4-85a6-2f97e784e588/code.php) | [Settings](src/0d8db719-39a6-48b4-85a6-2f97e784e588/settings.json) | Super__0d8db719_39a6_48b4_85a6_2f97e784e588__Power - **final class DatabaseKeys** | [Details](src/0d8db719-39a6-48b4-85a6-2f97e784e588) | [Code](src/0d8db719-39a6-48b4-85a6-2f97e784e588/code.php) | [Settings](src/0d8db719-39a6-48b4-85a6-2f97e784e588/settings.json) | Super__0d8db719_39a6_48b4_85a6_2f97e784e588__Power
- **final class DatabaseTables** | [Details](src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996) | [Code](src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/code.php) | [Settings](src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/settings.json) | Super__b3c36de1_9b18_4ea8_8383_6ab8f0e33996__Power - **final class DatabaseTables** | [Details](src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996) | [Code](src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/code.php) | [Settings](src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/settings.json) | Super__b3c36de1_9b18_4ea8_8383_6ab8f0e33996__Power
- **final class DatabaseUninstall** | [Details](src/a7fc4913-6b1a-4eea-a168-fceb75fcf6ac) | [Code](src/a7fc4913-6b1a-4eea-a168-fceb75fcf6ac/code.php) | [Settings](src/a7fc4913-6b1a-4eea-a168-fceb75fcf6ac/settings.json) | Super__a7fc4913_6b1a_4eea_a168_fceb75fcf6ac__Power
- **final class DatabaseUniqueGuid** | [Details](src/58b7f907-4195-4ca3-886c-17877be59887) | [Code](src/58b7f907-4195-4ca3-886c-17877be59887/code.php) | [Settings](src/58b7f907-4195-4ca3-886c-17877be59887/settings.json) | Super__58b7f907_4195_4ca3_886c_17877be59887__Power - **final class DatabaseUniqueGuid** | [Details](src/58b7f907-4195-4ca3-886c-17877be59887) | [Code](src/58b7f907-4195-4ca3-886c-17877be59887/code.php) | [Settings](src/58b7f907-4195-4ca3-886c-17877be59887/settings.json) | Super__58b7f907_4195_4ca3_886c_17877be59887__Power
- **final class DatabaseUniqueKeys** | [Details](src/ce0899a9-6271-4fc4-800a-697c122bb112) | [Code](src/ce0899a9-6271-4fc4-800a-697c122bb112/code.php) | [Settings](src/ce0899a9-6271-4fc4-800a-697c122bb112/settings.json) | Super__ce0899a9_6271_4fc4_800a_697c122bb112__Power - **final class DatabaseUniqueKeys** | [Details](src/ce0899a9-6271-4fc4-800a-697c122bb112) | [Code](src/ce0899a9-6271-4fc4-800a-697c122bb112/code.php) | [Settings](src/ce0899a9-6271-4fc4-800a-697c122bb112/settings.json) | Super__ce0899a9_6271_4fc4_800a_697c122bb112__Power
- **final class DoNotEscape** | [Details](src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2) | [Code](src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/code.php) | [Settings](src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/settings.json) | Super__0d9d3294_0bed_4c44_b1a1_e172f62cafb2__Power - **final class DoNotEscape** | [Details](src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2) | [Code](src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/code.php) | [Settings](src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/settings.json) | Super__0d9d3294_0bed_4c44_b1a1_e172f62cafb2__Power
@ -139,6 +140,7 @@ This repository contains an index (see below) of all the approved powers within
- **final class PermissionGlobalAction** | [Details](src/a601888d-12b6-427f-94ae-95004206e24e) | [Code](src/a601888d-12b6-427f-94ae-95004206e24e/code.php) | [Settings](src/a601888d-12b6-427f-94ae-95004206e24e/settings.json) | Super__a601888d_12b6_427f_94ae_95004206e24e__Power - **final class PermissionGlobalAction** | [Details](src/a601888d-12b6-427f-94ae-95004206e24e) | [Code](src/a601888d-12b6-427f-94ae-95004206e24e/code.php) | [Settings](src/a601888d-12b6-427f-94ae-95004206e24e/settings.json) | Super__a601888d_12b6_427f_94ae_95004206e24e__Power
- **final class PermissionViews** | [Details](src/480d11b9-783b-45d5-bce1-b0c2fcaad08a) | [Code](src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/code.php) | [Settings](src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/settings.json) | Super__480d11b9_783b_45d5_bce1_b0c2fcaad08a__Power - **final class PermissionViews** | [Details](src/480d11b9-783b-45d5-bce1-b0c2fcaad08a) | [Code](src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/code.php) | [Settings](src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/settings.json) | Super__480d11b9_783b_45d5_bce1_b0c2fcaad08a__Power
- **final class Request** | [Details](src/98419ff3-6628-4539-8365-37f88378bced) | [Code](src/98419ff3-6628-4539-8365-37f88378bced/code.php) | [Settings](src/98419ff3-6628-4539-8365-37f88378bced/settings.json) | Super__98419ff3_6628_4539_8365_37f88378bced__Power - **final class Request** | [Details](src/98419ff3-6628-4539-8365-37f88378bced) | [Code](src/98419ff3-6628-4539-8365-37f88378bced/code.php) | [Settings](src/98419ff3-6628-4539-8365-37f88378bced/settings.json) | Super__98419ff3_6628_4539_8365_37f88378bced__Power
- **final class Router** | [Details](src/4a4cf7a3-d0f9-439e-96fb-82d7a4ae0cf5) | [Code](src/4a4cf7a3-d0f9-439e-96fb-82d7a4ae0cf5/code.php) | [Settings](src/4a4cf7a3-d0f9-439e-96fb-82d7a4ae0cf5/settings.json) | Super__4a4cf7a3_d0f9_439e_96fb_82d7a4ae0cf5__Power
- **final class ScriptMediaSwitch** | [Details](src/17bf80af-3609-4f36-a520-be1a339c278b) | [Code](src/17bf80af-3609-4f36-a520-be1a339c278b/code.php) | [Settings](src/17bf80af-3609-4f36-a520-be1a339c278b/settings.json) | Super__17bf80af_3609_4f36_a520_be1a339c278b__Power - **final class ScriptMediaSwitch** | [Details](src/17bf80af-3609-4f36-a520-be1a339c278b) | [Code](src/17bf80af-3609-4f36-a520-be1a339c278b/code.php) | [Settings](src/17bf80af-3609-4f36-a520-be1a339c278b/settings.json) | Super__17bf80af_3609_4f36_a520_be1a339c278b__Power
- **final class ScriptUserSwitch** | [Details](src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36) | [Code](src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/code.php) | [Settings](src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/settings.json) | Super__9042fac6_5ca5_4ebe_94fe_cf9b0718ed36__Power - **final class ScriptUserSwitch** | [Details](src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36) | [Code](src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/code.php) | [Settings](src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/settings.json) | Super__9042fac6_5ca5_4ebe_94fe_cf9b0718ed36__Power
- **final class Search** | [Details](src/2e764839-8ec6-4726-af50-b5678e0714a4) | [Code](src/2e764839-8ec6-4726-af50-b5678e0714a4/code.php) | [Settings](src/2e764839-8ec6-4726-af50-b5678e0714a4/settings.json) | Super__2e764839_8ec6_4726_af50_b5678e0714a4__Power - **final class Search** | [Details](src/2e764839-8ec6-4726-af50-b5678e0714a4) | [Code](src/2e764839-8ec6-4726-af50-b5678e0714a4/code.php) | [Settings](src/2e764839-8ec6-4726-af50-b5678e0714a4/settings.json) | Super__2e764839_8ec6_4726_af50_b5678e0714a4__Power
@ -195,6 +197,11 @@ This repository contains an index (see below) of all the approved powers within
- **final class Layout** | [Details](src/a0f032db-2242-41df-8e4a-5e9e6f88201d) | [Code](src/a0f032db-2242-41df-8e4a-5e9e6f88201d/code.php) | [Settings](src/a0f032db-2242-41df-8e4a-5e9e6f88201d/settings.json) | Super__a0f032db_2242_41df_8e4a_5e9e6f88201d__Power - **final class Layout** | [Details](src/a0f032db-2242-41df-8e4a-5e9e6f88201d) | [Code](src/a0f032db-2242-41df-8e4a-5e9e6f88201d/code.php) | [Settings](src/a0f032db-2242-41df-8e4a-5e9e6f88201d/settings.json) | Super__a0f032db_2242_41df_8e4a_5e9e6f88201d__Power
- **final class Permission** | [Details](src/7f01622a-74c9-4e67-b111-3eb488035206) | [Code](src/7f01622a-74c9-4e67-b111-3eb488035206/code.php) | [Settings](src/7f01622a-74c9-4e67-b111-3eb488035206/settings.json) | Super__7f01622a_74c9_4e67_b111_3eb488035206__Power - **final class Permission** | [Details](src/7f01622a-74c9-4e67-b111-3eb488035206) | [Code](src/7f01622a-74c9-4e67-b111-3eb488035206/code.php) | [Settings](src/7f01622a-74c9-4e67-b111-3eb488035206/settings.json) | Super__7f01622a_74c9_4e67_b111_3eb488035206__Power
- **final class Request** | [Details](src/cfdf0968-f394-4459-933c-ad1674fb1041) | [Code](src/cfdf0968-f394-4459-933c-ad1674fb1041/code.php) | [Settings](src/cfdf0968-f394-4459-933c-ad1674fb1041/settings.json) | Super__cfdf0968_f394_4459_933c_ad1674fb1041__Power - **final class Request** | [Details](src/cfdf0968-f394-4459-933c-ad1674fb1041) | [Code](src/cfdf0968-f394-4459-933c-ad1674fb1041/code.php) | [Settings](src/cfdf0968-f394-4459-933c-ad1674fb1041/settings.json) | Super__cfdf0968_f394_4459_933c_ad1674fb1041__Power
- **final class Router** | [Details](src/1294a7c7-46fb-4527-a69d-f8db830fd39a) | [Code](src/1294a7c7-46fb-4527-a69d-f8db830fd39a/code.php) | [Settings](src/1294a7c7-46fb-4527-a69d-f8db830fd39a/settings.json) | Super__1294a7c7_46fb_4527_a69d_f8db830fd39a__Power
- **final class RouterConstructorDefault** | [Details](src/e5278bf3-6dfb-42a0-b699-148b5ab8e45f) | [Code](src/e5278bf3-6dfb-42a0-b699-148b5ab8e45f/code.php) | [Settings](src/e5278bf3-6dfb-42a0-b699-148b5ab8e45f/settings.json) | Super__e5278bf3_6dfb_42a0_b699_148b5ab8e45f__Power
- **final class RouterConstructorManual** | [Details](src/ec7bdbf9-8377-446e-9f40-64e23ae96b59) | [Code](src/ec7bdbf9-8377-446e-9f40-64e23ae96b59/code.php) | [Settings](src/ec7bdbf9-8377-446e-9f40-64e23ae96b59/settings.json) | Super__ec7bdbf9_8377_446e_9f40_64e23ae96b59__Power
- **final class RouterMethodsDefault** | [Details](src/17c590ed-8a44-485c-9be8-9a144a6b7429) | [Code](src/17c590ed-8a44-485c-9be8-9a144a6b7429/code.php) | [Settings](src/17c590ed-8a44-485c-9be8-9a144a6b7429/settings.json) | Super__17c590ed_8a44_485c_9be8_9a144a6b7429__Power
- **final class RouterMethodsManual** | [Details](src/6034587d-82a3-4b19-ac58-40507f79122a) | [Code](src/6034587d-82a3-4b19-ac58-40507f79122a/code.php) | [Settings](src/6034587d-82a3-4b19-ac58-40507f79122a/settings.json) | Super__6034587d_82a3_4b19_ac58_40507f79122a__Power
- **final class SiteFieldData** | [Details](src/15b4addf-bf6b-4691-9c92-858c7de9c2c1) | [Code](src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/code.php) | [Settings](src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/settings.json) | Super__15b4addf_bf6b_4691_9c92_858c7de9c2c1__Power - **final class SiteFieldData** | [Details](src/15b4addf-bf6b-4691-9c92-858c7de9c2c1) | [Code](src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/code.php) | [Settings](src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/settings.json) | Super__15b4addf_bf6b_4691_9c92_858c7de9c2c1__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Customcode](#vdm-joomla-componentbuilder-compiler-customcode) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Customcode](#vdm-joomla-componentbuilder-compiler-customcode)
@ -232,16 +239,21 @@ This repository contains an index (see below) of all the approved powers within
- **interface LanguageInterface** | [Details](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83) | [Code](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83/code.php) | [Settings](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83/settings.json) | Super__d6592c9b_93a6_41b3_83c7_c43a0a80cb83__Power - **interface LanguageInterface** | [Details](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83) | [Code](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83/code.php) | [Settings](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83/settings.json) | Super__d6592c9b_93a6_41b3_83c7_c43a0a80cb83__Power
- **interface PlaceholderInterface** | [Details](src/a6cdd935-c038-4a54-8446-54bed87f003c) | [Code](src/a6cdd935-c038-4a54-8446-54bed87f003c/code.php) | [Settings](src/a6cdd935-c038-4a54-8446-54bed87f003c/settings.json) | Super__a6cdd935_c038_4a54_8446_54bed87f003c__Power - **interface PlaceholderInterface** | [Details](src/a6cdd935-c038-4a54-8446-54bed87f003c) | [Code](src/a6cdd935-c038-4a54-8446-54bed87f003c/code.php) | [Settings](src/a6cdd935-c038-4a54-8446-54bed87f003c/settings.json) | Super__a6cdd935_c038_4a54_8446_54bed87f003c__Power
- **interface PowerInterface** | [Details](src/1133c2d7-ba7e-4c95-8cde-01f084d04682) | [Code](src/1133c2d7-ba7e-4c95-8cde-01f084d04682/code.php) | [Settings](src/1133c2d7-ba7e-4c95-8cde-01f084d04682/settings.json) | Super__1133c2d7_ba7e_4c95_8cde_01f084d04682__Power - **interface PowerInterface** | [Details](src/1133c2d7-ba7e-4c95-8cde-01f084d04682) | [Code](src/1133c2d7-ba7e-4c95-8cde-01f084d04682/code.php) | [Settings](src/1133c2d7-ba7e-4c95-8cde-01f084d04682/settings.json) | Super__1133c2d7_ba7e_4c95_8cde_01f084d04682__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\JoomlaFive](#vdm-joomla-componentbuilder-compiler-joomlafive)
- **final class Header** | [Details](src/95deb809-5f43-400b-939f-f9ceef720b13) | [Code](src/95deb809-5f43-400b-939f-f9ceef720b13/code.php) | [Settings](src/95deb809-5f43-400b-939f-f9ceef720b13/settings.json) | Super__95deb809_5f43_400b_939f_f9ceef720b13__Power
- **final class History** | [Details](src/8ab6fe75-ba5a-4316-9ef8-1eccceec813f) | [Code](src/8ab6fe75-ba5a-4316-9ef8-1eccceec813f/code.php) | [Settings](src/8ab6fe75-ba5a-4316-9ef8-1eccceec813f/settings.json) | Super__8ab6fe75_ba5a_4316_9ef8_1eccceec813f__Power
- **class Event** | [Details](src/77224dc6-8024-47eb-896e-18ec3aa23420) | [Code](src/77224dc6-8024-47eb-896e-18ec3aa23420/code.php) | [Settings](src/77224dc6-8024-47eb-896e-18ec3aa23420/settings.json) | Super__77224dc6_8024_47eb_896e_18ec3aa23420__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\JoomlaFour](#vdm-joomla-componentbuilder-compiler-joomlafour) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\JoomlaFour](#vdm-joomla-componentbuilder-compiler-joomlafour)
- **final class Event** | [Details](src/4729c2b0-f12b-4397-8d77-055d38bca98b) | [Code](src/4729c2b0-f12b-4397-8d77-055d38bca98b/code.php) | [Settings](src/4729c2b0-f12b-4397-8d77-055d38bca98b/settings.json) | Super__4729c2b0_f12b_4397_8d77_055d38bca98b__Power
- **final class Header** | [Details](src/1ee227b9-da0f-4e7b-ae66-99a9d53f6f49) | [Code](src/1ee227b9-da0f-4e7b-ae66-99a9d53f6f49/code.php) | [Settings](src/1ee227b9-da0f-4e7b-ae66-99a9d53f6f49/settings.json) | Super__1ee227b9_da0f_4e7b_ae66_99a9d53f6f49__Power - **final class Header** | [Details](src/1ee227b9-da0f-4e7b-ae66-99a9d53f6f49) | [Code](src/1ee227b9-da0f-4e7b-ae66-99a9d53f6f49/code.php) | [Settings](src/1ee227b9-da0f-4e7b-ae66-99a9d53f6f49/settings.json) | Super__1ee227b9_da0f_4e7b_ae66_99a9d53f6f49__Power
- **class Event** | [Details](src/4729c2b0-f12b-4397-8d77-055d38bca98b) | [Code](src/4729c2b0-f12b-4397-8d77-055d38bca98b/code.php) | [Settings](src/4729c2b0-f12b-4397-8d77-055d38bca98b/settings.json) | Super__4729c2b0_f12b_4397_8d77_055d38bca98b__Power - **final class History** | [Details](src/25c7ca86-6088-4f5f-b9fe-13504779c6ba) | [Code](src/25c7ca86-6088-4f5f-b9fe-13504779c6ba/code.php) | [Settings](src/25c7ca86-6088-4f5f-b9fe-13504779c6ba/settings.json) | Super__25c7ca86_6088_4f5f_b9fe_13504779c6ba__Power
- **class History** | [Details](src/25c7ca86-6088-4f5f-b9fe-13504779c6ba) | [Code](src/25c7ca86-6088-4f5f-b9fe-13504779c6ba/code.php) | [Settings](src/25c7ca86-6088-4f5f-b9fe-13504779c6ba/settings.json) | Super__25c7ca86_6088_4f5f_b9fe_13504779c6ba__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\JoomlaThree](#vdm-joomla-componentbuilder-compiler-joomlathree) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\JoomlaThree](#vdm-joomla-componentbuilder-compiler-joomlathree)
- **final class Event** | [Details](src/4b86f62e-ce41-4325-a11a-08148807d0df) | [Code](src/4b86f62e-ce41-4325-a11a-08148807d0df/code.php) | [Settings](src/4b86f62e-ce41-4325-a11a-08148807d0df/settings.json) | Super__4b86f62e_ce41_4325_a11a_08148807d0df__Power
- **final class Header** | [Details](src/7b56a097-9979-477b-b18a-c9dfc2f1e13b) | [Code](src/7b56a097-9979-477b-b18a-c9dfc2f1e13b/code.php) | [Settings](src/7b56a097-9979-477b-b18a-c9dfc2f1e13b/settings.json) | Super__7b56a097_9979_477b_b18a_c9dfc2f1e13b__Power - **final class Header** | [Details](src/7b56a097-9979-477b-b18a-c9dfc2f1e13b) | [Code](src/7b56a097-9979-477b-b18a-c9dfc2f1e13b/code.php) | [Settings](src/7b56a097-9979-477b-b18a-c9dfc2f1e13b/settings.json) | Super__7b56a097_9979_477b_b18a_c9dfc2f1e13b__Power
- **class Event** | [Details](src/4b86f62e-ce41-4325-a11a-08148807d0df) | [Code](src/4b86f62e-ce41-4325-a11a-08148807d0df/code.php) | [Settings](src/4b86f62e-ce41-4325-a11a-08148807d0df/settings.json) | Super__4b86f62e_ce41_4325_a11a_08148807d0df__Power - **final class History** | [Details](src/87db51b9-1126-4c21-858b-53dbd3a68b61) | [Code](src/87db51b9-1126-4c21-858b-53dbd3a68b61/code.php) | [Settings](src/87db51b9-1126-4c21-858b-53dbd3a68b61/settings.json) | Super__87db51b9_1126_4c21_858b_53dbd3a68b61__Power
- **class History** | [Details](src/87db51b9-1126-4c21-858b-53dbd3a68b61) | [Code](src/87db51b9-1126-4c21-858b-53dbd3a68b61/code.php) | [Settings](src/87db51b9-1126-4c21-858b-53dbd3a68b61/settings.json) | Super__87db51b9_1126_4c21_858b_53dbd3a68b61__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Joomlamodule](#vdm-joomla-componentbuilder-compiler-joomlamodule) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Joomlamodule](#vdm-joomla-componentbuilder-compiler-joomlamodule)
- **class Data** | [Details](src/cb11e8d9-69c2-4095-831c-59908ea402e7) | [Code](src/cb11e8d9-69c2-4095-831c-59908ea402e7/code.php) | [Settings](src/cb11e8d9-69c2-4095-831c-59908ea402e7/settings.json) | Super__cb11e8d9_69c2_4095_831c_59908ea402e7__Power - **class Data** | [Details](src/cb11e8d9-69c2-4095-831c-59908ea402e7) | [Code](src/cb11e8d9-69c2-4095-831c-59908ea402e7/code.php) | [Settings](src/cb11e8d9-69c2-4095-831c-59908ea402e7/settings.json) | Super__cb11e8d9_69c2_4095_831c_59908ea402e7__Power
@ -271,7 +283,6 @@ This repository contains an index (see below) of all the approved powers within
- **class Customalias** | [Details](src/5f8e8fa6-3793-44af-882d-9cfb209434e9) | [Code](src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.php) | [Settings](src/5f8e8fa6-3793-44af-882d-9cfb209434e9/settings.json) | Super__5f8e8fa6_3793_44af_882d_9cfb209434e9__Power - **class Customalias** | [Details](src/5f8e8fa6-3793-44af-882d-9cfb209434e9) | [Code](src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.php) | [Settings](src/5f8e8fa6-3793-44af-882d-9cfb209434e9/settings.json) | Super__5f8e8fa6_3793_44af_882d_9cfb209434e9__Power
- **class Custombuttons** | [Details](src/ebe3287d-bfa0-4519-b663-f442f4dea432) | [Code](src/ebe3287d-bfa0-4519-b663-f442f4dea432/code.php) | [Settings](src/ebe3287d-bfa0-4519-b663-f442f4dea432/settings.json) | Super__ebe3287d_bfa0_4519_b663_f442f4dea432__Power - **class Custombuttons** | [Details](src/ebe3287d-bfa0-4519-b663-f442f4dea432) | [Code](src/ebe3287d-bfa0-4519-b663-f442f4dea432/code.php) | [Settings](src/ebe3287d-bfa0-4519-b663-f442f4dea432/settings.json) | Super__ebe3287d_bfa0_4519_b663_f442f4dea432__Power
- **class Customimportscripts** | [Details](src/037c7274-fb16-455d-989a-bf1da022620b) | [Code](src/037c7274-fb16-455d-989a-bf1da022620b/code.php) | [Settings](src/037c7274-fb16-455d-989a-bf1da022620b/settings.json) | Super__037c7274_fb16_455d_989a_bf1da022620b__Power - **class Customimportscripts** | [Details](src/037c7274-fb16-455d-989a-bf1da022620b) | [Code](src/037c7274-fb16-455d-989a-bf1da022620b/code.php) | [Settings](src/037c7274-fb16-455d-989a-bf1da022620b/settings.json) | Super__037c7274_fb16_455d_989a_bf1da022620b__Power
- **class Customtabs** | [Details](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c) | [Code](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.php) | [Settings](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/settings.json) | Super__fa8c1125_d370_4cb6_a7ff_eb32193c198c__Power
- **class Dynamicget** | [Details](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6) | [Code](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.php) | [Settings](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/settings.json) | Super__79740ee8_4d10_4b51_9ff5_18e1386ec1c6__Power - **class Dynamicget** | [Details](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6) | [Code](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.php) | [Settings](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/settings.json) | Super__79740ee8_4d10_4b51_9ff5_18e1386ec1c6__Power
- **class Fields** | [Details](src/e6a64c41-405e-4bbc-9722-27402c22bbea) | [Code](src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.php) | [Settings](src/e6a64c41-405e-4bbc-9722-27402c22bbea/settings.json) | Super__e6a64c41_405e_4bbc_9722_27402c22bbea__Power - **class Fields** | [Details](src/e6a64c41-405e-4bbc-9722-27402c22bbea) | [Code](src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.php) | [Settings](src/e6a64c41-405e-4bbc-9722-27402c22bbea/settings.json) | Super__e6a64c41_405e_4bbc_9722_27402c22bbea__Power
- **class Filesfolders** | [Details](src/f4578c04-a81e-4218-b80d-b0612196eaf0) | [Code](src/f4578c04-a81e-4218-b80d-b0612196eaf0/code.php) | [Settings](src/f4578c04-a81e-4218-b80d-b0612196eaf0/settings.json) | Super__f4578c04_a81e_4218_b80d_b0612196eaf0__Power - **class Filesfolders** | [Details](src/f4578c04-a81e-4218-b80d-b0612196eaf0) | [Code](src/f4578c04-a81e-4218-b80d-b0612196eaf0/code.php) | [Settings](src/f4578c04-a81e-4218-b80d-b0612196eaf0/settings.json) | Super__f4578c04_a81e_4218_b80d_b0612196eaf0__Power
@ -290,6 +301,7 @@ This repository contains an index (see below) of all the approved powers within
- **class Phpadminview** | [Details](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe) | [Code](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe/code.php) | [Settings](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe/settings.json) | Super__c20a63e0_0eeb_4424_9d08_b1bf0f049dfe__Power - **class Phpadminview** | [Details](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe) | [Code](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe/code.php) | [Settings](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe/settings.json) | Super__c20a63e0_0eeb_4424_9d08_b1bf0f049dfe__Power
- **class Phpcustomview** | [Details](src/489da602-27c7-418c-bf59-1d45ad42bdcc) | [Code](src/489da602-27c7-418c-bf59-1d45ad42bdcc/code.php) | [Settings](src/489da602-27c7-418c-bf59-1d45ad42bdcc/settings.json) | Super__489da602_27c7_418c_bf59_1d45ad42bdcc__Power - **class Phpcustomview** | [Details](src/489da602-27c7-418c-bf59-1d45ad42bdcc) | [Code](src/489da602-27c7-418c-bf59-1d45ad42bdcc/code.php) | [Settings](src/489da602-27c7-418c-bf59-1d45ad42bdcc/settings.json) | Super__489da602_27c7_418c_bf59_1d45ad42bdcc__Power
- **class Relations** | [Details](src/a8eb2fb1-88ed-4af8-842d-898eb915b588) | [Code](src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.php) | [Settings](src/a8eb2fb1-88ed-4af8-842d-898eb915b588/settings.json) | Super__a8eb2fb1_88ed_4af8_842d_898eb915b588__Power - **class Relations** | [Details](src/a8eb2fb1-88ed-4af8-842d-898eb915b588) | [Code](src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.php) | [Settings](src/a8eb2fb1-88ed-4af8-842d-898eb915b588/settings.json) | Super__a8eb2fb1_88ed_4af8_842d_898eb915b588__Power
- **class Router** | [Details](src/402239e6-ceec-4ee0-af62-22d462417bf6) | [Code](src/402239e6-ceec-4ee0-af62-22d462417bf6/code.php) | [Settings](src/402239e6-ceec-4ee0-af62-22d462417bf6/settings.json) | Super__402239e6_ceec_4ee0_af62_22d462417bf6__Power
- **class Siteviews** | [Details](src/e0075978-315d-4807-8507-ce9c6922a885) | [Code](src/e0075978-315d-4807-8507-ce9c6922a885/code.php) | [Settings](src/e0075978-315d-4807-8507-ce9c6922a885/settings.json) | Super__e0075978_315d_4807_8507_ce9c6922a885__Power - **class Siteviews** | [Details](src/e0075978-315d-4807-8507-ce9c6922a885) | [Code](src/e0075978-315d-4807-8507-ce9c6922a885/code.php) | [Settings](src/e0075978-315d-4807-8507-ce9c6922a885/settings.json) | Super__e0075978_315d_4807_8507_ce9c6922a885__Power
- **class Sql** | [Details](src/d4b418a7-bf9b-4768-969d-e07c36916fd2) | [Code](src/d4b418a7-bf9b-4768-969d-e07c36916fd2/code.php) | [Settings](src/d4b418a7-bf9b-4768-969d-e07c36916fd2/settings.json) | Super__d4b418a7_bf9b_4768_969d_e07c36916fd2__Power - **class Sql** | [Details](src/d4b418a7-bf9b-4768-969d-e07c36916fd2) | [Code](src/d4b418a7-bf9b-4768-969d-e07c36916fd2/code.php) | [Settings](src/d4b418a7-bf9b-4768-969d-e07c36916fd2/settings.json) | Super__d4b418a7_bf9b_4768_969d_e07c36916fd2__Power
- **class Sqldump** | [Details](src/a6e1227c-1efe-407d-84ef-03c6989a6a88) | [Code](src/a6e1227c-1efe-407d-84ef-03c6989a6a88/code.php) | [Settings](src/a6e1227c-1efe-407d-84ef-03c6989a6a88/settings.json) | Super__a6e1227c_1efe_407d_84ef_03c6989a6a88__Power - **class Sqldump** | [Details](src/a6e1227c-1efe-407d-84ef-03c6989a6a88) | [Code](src/a6e1227c-1efe-407d-84ef-03c6989a6a88/code.php) | [Settings](src/a6e1227c-1efe-407d-84ef-03c6989a6a88/settings.json) | Super__a6e1227c_1efe_407d_84ef_03c6989a6a88__Power
@ -315,7 +327,8 @@ This repository contains an index (see below) of all the approved powers within
- **class Adminview** | [Details](src/2dd1289a-4000-43cc-8c62-77ff32de56bf) | [Code](src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.php) | [Settings](src/2dd1289a-4000-43cc-8c62-77ff32de56bf/settings.json) | Super__2dd1289a_4000_43cc_8c62_77ff32de56bf__Power - **class Adminview** | [Details](src/2dd1289a-4000-43cc-8c62-77ff32de56bf) | [Code](src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.php) | [Settings](src/2dd1289a-4000-43cc-8c62-77ff32de56bf/settings.json) | Super__2dd1289a_4000_43cc_8c62_77ff32de56bf__Power
- **class ArchitectureController** | [Details](src/56ba30f5-a5c4-4c4c-be6f-a56f7f9cbc60) | [Code](src/56ba30f5-a5c4-4c4c-be6f-a56f7f9cbc60/code.php) | [Settings](src/56ba30f5-a5c4-4c4c-be6f-a56f7f9cbc60/settings.json) | Super__56ba30f5_a5c4_4c4c_be6f_a56f7f9cbc60__Power - **class ArchitectureController** | [Details](src/56ba30f5-a5c4-4c4c-be6f-a56f7f9cbc60) | [Code](src/56ba30f5-a5c4-4c4c-be6f-a56f7f9cbc60/code.php) | [Settings](src/56ba30f5-a5c4-4c4c-be6f-a56f7f9cbc60/settings.json) | Super__56ba30f5_a5c4_4c4c_be6f_a56f7f9cbc60__Power
- **class ArchitectureModel** | [Details](src/bbd36fbf-d905-47e8-8e67-9ea6ec734712) | [Code](src/bbd36fbf-d905-47e8-8e67-9ea6ec734712/code.php) | [Settings](src/bbd36fbf-d905-47e8-8e67-9ea6ec734712/settings.json) | Super__bbd36fbf_d905_47e8_8e67_9ea6ec734712__Power - **class ArchitectureModel** | [Details](src/bbd36fbf-d905-47e8-8e67-9ea6ec734712) | [Code](src/bbd36fbf-d905-47e8-8e67-9ea6ec734712/code.php) | [Settings](src/bbd36fbf-d905-47e8-8e67-9ea6ec734712/settings.json) | Super__bbd36fbf_d905_47e8_8e67_9ea6ec734712__Power
- **class Builder** | [Details](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7) | [Code](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.php) | [Settings](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/settings.json) | Super__2c76c06e_a371_4b73_9fbe_b4d9b4df55d7__Power - **class BuilderAJ** | [Details](src/c7230c8c-ea88-4d8d-8c53-6136133195b7) | [Code](src/c7230c8c-ea88-4d8d-8c53-6136133195b7/code.php) | [Settings](src/c7230c8c-ea88-4d8d-8c53-6136133195b7/settings.json) | Super__c7230c8c_ea88_4d8d_8c53_6136133195b7__Power
- **class BuilderLZ** | [Details](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7) | [Code](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.php) | [Settings](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/settings.json) | Super__2c76c06e_a371_4b73_9fbe_b4d9b4df55d7__Power
- **class Compiler** | [Details](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69) | [Code](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69/code.php) | [Settings](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69/settings.json) | Super__ea5ed06e_72ae_4906_9167_1cc0fa32fe69__Power - **class Compiler** | [Details](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69) | [Code](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69/code.php) | [Settings](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69/settings.json) | Super__ea5ed06e_72ae_4906_9167_1cc0fa32fe69__Power
- **class Component** | [Details](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c) | [Code](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c/code.php) | [Settings](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c/settings.json) | Super__8a63e87b_b39b_4a15_8044_9b2a2f4fb61c__Power - **class Component** | [Details](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c) | [Code](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c/code.php) | [Settings](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c/settings.json) | Super__8a63e87b_b39b_4a15_8044_9b2a2f4fb61c__Power
- **class Creator** | [Details](src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b) | [Code](src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/code.php) | [Settings](src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/settings.json) | Super__8fdd604f_53e7_4a91_9935_afcfd2f6ac1b__Power - **class Creator** | [Details](src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b) | [Code](src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/code.php) | [Settings](src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/settings.json) | Super__8fdd604f_53e7_4a91_9935_afcfd2f6ac1b__Power
@ -378,6 +391,9 @@ This repository contains an index (see below) of all the approved powers within
- **class Generator** | [Details](src/a7101bbc-3c81-4b52-a4aa-522291f7594b) | [Code](src/a7101bbc-3c81-4b52-a4aa-522291f7594b/code.php) | [Settings](src/a7101bbc-3c81-4b52-a4aa-522291f7594b/settings.json) | Super__a7101bbc_3c81_4b52_a4aa_522291f7594b__Power - **class Generator** | [Details](src/a7101bbc-3c81-4b52-a4aa-522291f7594b) | [Code](src/a7101bbc-3c81-4b52-a4aa-522291f7594b/code.php) | [Settings](src/a7101bbc-3c81-4b52-a4aa-522291f7594b/settings.json) | Super__a7101bbc_3c81_4b52_a4aa_522291f7594b__Power
- **class Gitea** | [Details](src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae) | [Code](src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/code.php) | [Settings](src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/settings.json) | Super__510dc0f6_da3f_4a78_b43d_3a03e2cb5fae__Power - **class Gitea** | [Details](src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae) | [Code](src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/code.php) | [Settings](src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/settings.json) | Super__510dc0f6_da3f_4a78_b43d_3a03e2cb5fae__Power
- **class Power** | [Details](src/02bc072b-1e89-46c1-9732-4da77b1a9ac9) | [Code](src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/code.php) | [Settings](src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/settings.json) | Super__02bc072b_1e89_46c1_9732_4da77b1a9ac9__Power - **class Power** | [Details](src/02bc072b-1e89-46c1-9732-4da77b1a9ac9) | [Code](src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/code.php) | [Settings](src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/settings.json) | Super__02bc072b_1e89_46c1_9732_4da77b1a9ac9__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Component\JoomlaFive](#vdm-joomla-componentbuilder-compiler-component-joomlafive)
- **final class Settings** | [Details](src/69d2b980-a665-48cd-96f8-757bf3810b41) | [Code](src/69d2b980-a665-48cd-96f8-757bf3810b41/code.php) | [Settings](src/69d2b980-a665-48cd-96f8-757bf3810b41/settings.json) | Super__69d2b980_a665_48cd_96f8_757bf3810b41__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Component\JoomlaFour](#vdm-joomla-componentbuilder-compiler-component-joomlafour) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Component\JoomlaFour](#vdm-joomla-componentbuilder-compiler-component-joomlafour)
- **final class Settings** | [Details](src/e7fff971-b031-42bf-8009-ef554e30854d) | [Code](src/e7fff971-b031-42bf-8009-ef554e30854d/code.php) | [Settings](src/e7fff971-b031-42bf-8009-ef554e30854d/settings.json) | Super__e7fff971_b031_42bf_8009_ef554e30854d__Power - **final class Settings** | [Details](src/e7fff971-b031-42bf-8009-ef554e30854d) | [Code](src/e7fff971-b031-42bf-8009-ef554e30854d/code.php) | [Settings](src/e7fff971-b031-42bf-8009-ef554e30854d/settings.json) | Super__e7fff971_b031_42bf_8009_ef554e30854d__Power
@ -387,22 +403,30 @@ This repository contains an index (see below) of all the approved powers within
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Customcode\Extractor](#vdm-joomla-componentbuilder-compiler-customcode-extractor) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Customcode\Extractor](#vdm-joomla-componentbuilder-compiler-customcode-extractor)
- **class Paths** | [Details](src/053803e6-1251-4aed-aefe-46a8e84198d2) | [Code](src/053803e6-1251-4aed-aefe-46a8e84198d2/code.php) | [Settings](src/053803e6-1251-4aed-aefe-46a8e84198d2/settings.json) | Super__053803e6_1251_4aed_aefe_46a8e84198d2__Power - **class Paths** | [Details](src/053803e6-1251-4aed-aefe-46a8e84198d2) | [Code](src/053803e6-1251-4aed-aefe-46a8e84198d2/code.php) | [Settings](src/053803e6-1251-4aed-aefe-46a8e84198d2/settings.json) | Super__053803e6_1251_4aed_aefe_46a8e84198d2__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaFive](#vdm-joomla-componentbuilder-compiler-extension-joomlafive)
- **final class InstallScript** | [Details](src/73183d13-9b2e-4879-b05a-52298d5b31f7) | [Code](src/73183d13-9b2e-4879-b05a-52298d5b31f7/code.php) | [Settings](src/73183d13-9b2e-4879-b05a-52298d5b31f7/settings.json) | Super__73183d13_9b2e_4879_b05a_52298d5b31f7__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaFour](#vdm-joomla-componentbuilder-compiler-extension-joomlafour) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaFour](#vdm-joomla-componentbuilder-compiler-extension-joomlafour)
- **class InstallScript** | [Details](src/d42e1fac-3c05-4a22-8878-2abd43019811) | [Code](src/d42e1fac-3c05-4a22-8878-2abd43019811/code.php) | [Settings](src/d42e1fac-3c05-4a22-8878-2abd43019811/settings.json) | Super__d42e1fac_3c05_4a22_8878_2abd43019811__Power - **final class InstallScript** | [Details](src/d42e1fac-3c05-4a22-8878-2abd43019811) | [Code](src/d42e1fac-3c05-4a22-8878-2abd43019811/code.php) | [Settings](src/d42e1fac-3c05-4a22-8878-2abd43019811/settings.json) | Super__d42e1fac_3c05_4a22_8878_2abd43019811__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaThree](#vdm-joomla-componentbuilder-compiler-extension-joomlathree) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaThree](#vdm-joomla-componentbuilder-compiler-extension-joomlathree)
- **class InstallScript** | [Details](src/1d929017-a5de-4e0f-9b5a-838934857e26) | [Code](src/1d929017-a5de-4e0f-9b5a-838934857e26/code.php) | [Settings](src/1d929017-a5de-4e0f-9b5a-838934857e26/settings.json) | Super__1d929017_a5de_4e0f_9b5a_838934857e26__Power - **final class InstallScript** | [Details](src/1d929017-a5de-4e0f-9b5a-838934857e26) | [Code](src/1d929017-a5de-4e0f-9b5a-838934857e26/code.php) | [Settings](src/1d929017-a5de-4e0f-9b5a-838934857e26/settings.json) | Super__1d929017_a5de_4e0f_9b5a_838934857e26__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive](#vdm-joomla-componentbuilder-compiler-field-joomlafive)
- **final class CoreField** | [Details](src/4c143764-1b84-4b9f-86c5-8de119b26f1a) | [Code](src/4c143764-1b84-4b9f-86c5-8de119b26f1a/code.php) | [Settings](src/4c143764-1b84-4b9f-86c5-8de119b26f1a/settings.json) | Super__4c143764_1b84_4b9f_86c5_8de119b26f1a__Power
- **final class CoreRule** | [Details](src/8b56b62d-b960-4823-b9bb-c71675a71b85) | [Code](src/8b56b62d-b960-4823-b9bb-c71675a71b85/code.php) | [Settings](src/8b56b62d-b960-4823-b9bb-c71675a71b85/settings.json) | Super__8b56b62d_b960_4823_b9bb_c71675a71b85__Power
- **final class InputButton** | [Details](src/163fa7ca-21bd-4e7f-a618-26fe10b870fe) | [Code](src/163fa7ca-21bd-4e7f-a618-26fe10b870fe/code.php) | [Settings](src/163fa7ca-21bd-4e7f-a618-26fe10b870fe/settings.json) | Super__163fa7ca_21bd_4e7f_a618_26fe10b870fe__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFour](#vdm-joomla-componentbuilder-compiler-field-joomlafour) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFour](#vdm-joomla-componentbuilder-compiler-field-joomlafour)
- **final class CoreField** | [Details](src/c6818275-cdf7-4fce-a365-90d95a77a71c) | [Code](src/c6818275-cdf7-4fce-a365-90d95a77a71c/code.php) | [Settings](src/c6818275-cdf7-4fce-a365-90d95a77a71c/settings.json) | Super__c6818275_cdf7_4fce_a365_90d95a77a71c__Power
- **final class CoreRule** | [Details](src/43f46bb2-ab6d-47c7-9fd9-f1745a3576fb) | [Code](src/43f46bb2-ab6d-47c7-9fd9-f1745a3576fb/code.php) | [Settings](src/43f46bb2-ab6d-47c7-9fd9-f1745a3576fb/settings.json) | Super__43f46bb2_ab6d_47c7_9fd9_f1745a3576fb__Power
- **final class InputButton** | [Details](src/1b8a40e9-7847-4341-8a8e-dfdc2d531bbe) | [Code](src/1b8a40e9-7847-4341-8a8e-dfdc2d531bbe/code.php) | [Settings](src/1b8a40e9-7847-4341-8a8e-dfdc2d531bbe/settings.json) | Super__1b8a40e9_7847_4341_8a8e_dfdc2d531bbe__Power - **final class InputButton** | [Details](src/1b8a40e9-7847-4341-8a8e-dfdc2d531bbe) | [Code](src/1b8a40e9-7847-4341-8a8e-dfdc2d531bbe/code.php) | [Settings](src/1b8a40e9-7847-4341-8a8e-dfdc2d531bbe/settings.json) | Super__1b8a40e9_7847_4341_8a8e_dfdc2d531bbe__Power
- **class CoreField** | [Details](src/c6818275-cdf7-4fce-a365-90d95a77a71c) | [Code](src/c6818275-cdf7-4fce-a365-90d95a77a71c/code.php) | [Settings](src/c6818275-cdf7-4fce-a365-90d95a77a71c/settings.json) | Super__c6818275_cdf7_4fce_a365_90d95a77a71c__Power
- **class CoreRule** | [Details](src/43f46bb2-ab6d-47c7-9fd9-f1745a3576fb) | [Code](src/43f46bb2-ab6d-47c7-9fd9-f1745a3576fb/code.php) | [Settings](src/43f46bb2-ab6d-47c7-9fd9-f1745a3576fb/settings.json) | Super__43f46bb2_ab6d_47c7_9fd9_f1745a3576fb__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree](#vdm-joomla-componentbuilder-compiler-field-joomlathree) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree](#vdm-joomla-componentbuilder-compiler-field-joomlathree)
- **final class CoreField** | [Details](src/e6683873-b74e-4b54-8466-69f8a9282033) | [Code](src/e6683873-b74e-4b54-8466-69f8a9282033/code.php) | [Settings](src/e6683873-b74e-4b54-8466-69f8a9282033/settings.json) | Super__e6683873_b74e_4b54_8466_69f8a9282033__Power
- **final class CoreRule** | [Details](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957) | [Code](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957/code.php) | [Settings](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957/settings.json) | Super__24da9672_e47f_4bb1_b6c0_0ebfc17f0957__Power
- **final class InputButton** | [Details](src/2bc33733-e900-4a9c-8cb3-c537aa9db785) | [Code](src/2bc33733-e900-4a9c-8cb3-c537aa9db785/code.php) | [Settings](src/2bc33733-e900-4a9c-8cb3-c537aa9db785/settings.json) | Super__2bc33733_e900_4a9c_8cb3_c537aa9db785__Power - **final class InputButton** | [Details](src/2bc33733-e900-4a9c-8cb3-c537aa9db785) | [Code](src/2bc33733-e900-4a9c-8cb3-c537aa9db785/code.php) | [Settings](src/2bc33733-e900-4a9c-8cb3-c537aa9db785/settings.json) | Super__2bc33733_e900_4a9c_8cb3_c537aa9db785__Power
- **class CoreField** | [Details](src/e6683873-b74e-4b54-8466-69f8a9282033) | [Code](src/e6683873-b74e-4b54-8466-69f8a9282033/code.php) | [Settings](src/e6683873-b74e-4b54-8466-69f8a9282033/settings.json) | Super__e6683873_b74e_4b54_8466_69f8a9282033__Power
- **class CoreRule** | [Details](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957) | [Code](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957/code.php) | [Settings](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957/settings.json) | Super__24da9672_e47f_4bb1_b6c0_0ebfc17f0957__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Interfaces\Component](#vdm-joomla-componentbuilder-compiler-interfaces-component) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Interfaces\Component](#vdm-joomla-componentbuilder-compiler-interfaces-component)
- **interface PlaceholderInterface** | [Details](src/97698747-c2ce-4e09-a470-acf6d8e86281) | [Code](src/97698747-c2ce-4e09-a470-acf6d8e86281/code.php) | [Settings](src/97698747-c2ce-4e09-a470-acf6d8e86281/settings.json) | Super__97698747_c2ce_4e09_a470_acf6d8e86281__Power - **interface PlaceholderInterface** | [Details](src/97698747-c2ce-4e09-a470-acf6d8e86281) | [Code](src/97698747-c2ce-4e09-a470-acf6d8e86281/code.php) | [Settings](src/97698747-c2ce-4e09-a470-acf6d8e86281/settings.json) | Super__97698747_c2ce_4e09_a470_acf6d8e86281__Power
@ -427,12 +451,32 @@ This repository contains an index (see below) of all the approved powers within
- **interface CoreFieldInterface** | [Details](src/e2f5fddf-cbc8-44ee-836c-7f3fb08d8900) | [Code](src/e2f5fddf-cbc8-44ee-836c-7f3fb08d8900/code.php) | [Settings](src/e2f5fddf-cbc8-44ee-836c-7f3fb08d8900/settings.json) | Super__e2f5fddf_cbc8_44ee_836c_7f3fb08d8900__Power - **interface CoreFieldInterface** | [Details](src/e2f5fddf-cbc8-44ee-836c-7f3fb08d8900) | [Code](src/e2f5fddf-cbc8-44ee-836c-7f3fb08d8900/code.php) | [Settings](src/e2f5fddf-cbc8-44ee-836c-7f3fb08d8900/settings.json) | Super__e2f5fddf_cbc8_44ee_836c_7f3fb08d8900__Power
- **interface CoreRuleInterface** | [Details](src/b9f05dc4-d23a-499a-a826-9749b81818ed) | [Code](src/b9f05dc4-d23a-499a-a826-9749b81818ed/code.php) | [Settings](src/b9f05dc4-d23a-499a-a826-9749b81818ed/settings.json) | Super__b9f05dc4_d23a_499a_a826_9749b81818ed__Power - **interface CoreRuleInterface** | [Details](src/b9f05dc4-d23a-499a-a826-9749b81818ed) | [Code](src/b9f05dc4-d23a-499a-a826-9749b81818ed/code.php) | [Settings](src/b9f05dc4-d23a-499a-a826-9749b81818ed/settings.json) | Super__b9f05dc4_d23a_499a_a826_9749b81818ed__Power
- **interface InputButtonInterface** | [Details](src/c600f58c-3fe2-4d2d-b711-2660eab6effe) | [Code](src/c600f58c-3fe2-4d2d-b711-2660eab6effe/code.php) | [Settings](src/c600f58c-3fe2-4d2d-b711-2660eab6effe/settings.json) | Super__c600f58c_3fe2_4d2d_b711_2660eab6effe__Power - **interface InputButtonInterface** | [Details](src/c600f58c-3fe2-4d2d-b711-2660eab6effe) | [Code](src/c600f58c-3fe2-4d2d-b711-2660eab6effe/code.php) | [Settings](src/c600f58c-3fe2-4d2d-b711-2660eab6effe/settings.json) | Super__c600f58c_3fe2_4d2d_b711_2660eab6effe__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Interfaces\Model](#vdm-joomla-componentbuilder-compiler-interfaces-model)
- **interface CustomtabsInterface** | [Details](src/fcf42c53-0967-4c87-9699-a4d86adfdadf) | [Code](src/fcf42c53-0967-4c87-9699-a4d86adfdadf/code.php) | [Settings](src/fcf42c53-0967-4c87-9699-a4d86adfdadf/settings.json) | Super__fcf42c53_0967_4c87_9699_a4d86adfdadf__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaFive](#vdm-joomla-componentbuilder-compiler-model-joomlafive)
- **final class Customtabs** | [Details](src/92cc3144-1d3d-45b2-b49f-c7d356950033) | [Code](src/92cc3144-1d3d-45b2-b49f-c7d356950033/code.php) | [Settings](src/92cc3144-1d3d-45b2-b49f-c7d356950033/settings.json) | Super__92cc3144_1d3d_45b2_b49f_c7d356950033__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaFour](#vdm-joomla-componentbuilder-compiler-model-joomlafour)
- **final class Customtabs** | [Details](src/42648fb4-dfdc-4986-a180-69e5726a25c4) | [Code](src/42648fb4-dfdc-4986-a180-69e5726a25c4/code.php) | [Settings](src/42648fb4-dfdc-4986-a180-69e5726a25c4/settings.json) | Super__42648fb4_dfdc_4986_a180_69e5726a25c4__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaThree](#vdm-joomla-componentbuilder-compiler-model-joomlathree)
- **final class Customtabs** | [Details](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c) | [Code](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.php) | [Settings](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/settings.json) | Super__fa8c1125_d370_4cb6_a7ff_eb32193c198c__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Power\Repo](#vdm-joomla-componentbuilder-compiler-power-repo) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Power\Repo](#vdm-joomla-componentbuilder-compiler-power-repo)
- **class Readme** | [Details](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5) | [Code](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.php) | [Settings](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/settings.json) | Super__efb1d0f8_2d14_4d2c_8b5f_4fcdd9df45a5__Power - **class Readme** | [Details](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5) | [Code](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.php) | [Settings](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/settings.json) | Super__efb1d0f8_2d14_4d2c_8b5f_4fcdd9df45a5__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Power\Repos](#vdm-joomla-componentbuilder-compiler-power-repos) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Power\Repos](#vdm-joomla-componentbuilder-compiler-power-repos)
- **class Readme** | [Details](src/0d08c583-04d5-454e-b756-48ca05e1651a) | [Code](src/0d08c583-04d5-454e-b756-48ca05e1651a/code.php) | [Settings](src/0d08c583-04d5-454e-b756-48ca05e1651a/settings.json) | Super__0d08c583_04d5_454e_b756_48ca05e1651a__Power - **class Readme** | [Details](src/0d08c583-04d5-454e-b756-48ca05e1651a) | [Code](src/0d08c583-04d5-454e-b756-48ca05e1651a/code.php) | [Settings](src/0d08c583-04d5-454e-b756-48ca05e1651a/settings.json) | Super__0d08c583_04d5_454e_b756_48ca05e1651a__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Controller](#vdm-joomla-componentbuilder-compiler-architecture-joomlafive-controller)
- **final class AllowAdd** | [Details](src/005fce79-1b62-4a93-8d5e-8c89fee1afc6) | [Code](src/005fce79-1b62-4a93-8d5e-8c89fee1afc6/code.php) | [Settings](src/005fce79-1b62-4a93-8d5e-8c89fee1afc6/settings.json) | Super__005fce79_1b62_4a93_8d5e_8c89fee1afc6__Power
- **final class AllowEdit** | [Details](src/e85175fd-e297-46df-a497-27f7a37190fd) | [Code](src/e85175fd-e297-46df-a497-27f7a37190fd/code.php) | [Settings](src/e85175fd-e297-46df-a497-27f7a37190fd/settings.json) | Super__e85175fd_e297_46df_a497_27f7a37190fd__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Model](#vdm-joomla-componentbuilder-compiler-architecture-joomlafive-model)
- **final class CanDelete** | [Details](src/34df20ec-67db-4e7e-be61-fb94d360c408) | [Code](src/34df20ec-67db-4e7e-be61-fb94d360c408/code.php) | [Settings](src/34df20ec-67db-4e7e-be61-fb94d360c408/settings.json) | Super__34df20ec_67db_4e7e_be61_fb94d360c408__Power
- **final class CanEditState** | [Details](src/318a98a3-bb6f-42cb-a000-352d4c848b51) | [Code](src/318a98a3-bb6f-42cb-a000-352d4c848b51/code.php) | [Settings](src/318a98a3-bb6f-42cb-a000-352d4c848b51/settings.json) | Super__318a98a3_bb6f_42cb_a000_352d4c848b51__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller](#vdm-joomla-componentbuilder-compiler-architecture-joomlafour-controller) - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller](#vdm-joomla-componentbuilder-compiler-architecture-joomlafour-controller)
- **final class AllowAdd** | [Details](src/425b1107-933d-4436-87ac-63540ec101c5) | [Code](src/425b1107-933d-4436-87ac-63540ec101c5/code.php) | [Settings](src/425b1107-933d-4436-87ac-63540ec101c5/settings.json) | Super__425b1107_933d_4436_87ac_63540ec101c5__Power - **final class AllowAdd** | [Details](src/425b1107-933d-4436-87ac-63540ec101c5) | [Code](src/425b1107-933d-4436-87ac-63540ec101c5/code.php) | [Settings](src/425b1107-933d-4436-87ac-63540ec101c5/settings.json) | Super__425b1107_933d_4436_87ac_63540ec101c5__Power

View File

@ -0,0 +1,52 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# final class AllowAdd (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Controller**
```uml
@startuml
class AllowAdd << (F,LightGreen) >> #RoyalBlue {
# String $component
# Permission $permission
# Dispenser $dispenser
+ __construct(Config $config, Permission $permission, ...)
+ get(string $nameSingleCode) : string
}
note right of AllowAdd::__construct
Constructor.
since: 3.2.0
arguments:
Config $config
Permission $permission
Dispenser $dispenser
end note
note right of AllowAdd::get
Get Allow Add Function Code
since: 3.2.0
return: string
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,129 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Controller;
use VDM\Joomla\Componentbuilder\Compiler\Config;
use VDM\Joomla\Componentbuilder\Compiler\Creator\Permission;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\Dispenser;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowAddInterface;
/**
* Controller Allow Add Class for Joomla 5
*
* @since 3.2.0
*/
final class AllowAdd implements AllowAddInterface
{
/**
* The Component code name.
*
* @var String
* @since 3.2.0
*/
protected String $component;
/**
* The Permission Class.
*
* @var Permission
* @since 3.2.0
*/
protected Permission $permission;
/**
* The Dispenser Class.
*
* @var Dispenser
* @since 3.2.0
*/
protected Dispenser $dispenser;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Permission $permission The Permission Class.
* @param Dispenser $dispenser The Dispenser Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Permission $permission,
Dispenser $dispenser)
{
$this->component = $config->component_code_name;
$this->permission = $permission;
$this->dispenser = $dispenser;
}
/**
* Get Allow Add Function Code
*
* @param string $nameSingleCode The single code name of the view.
*
* @since 3.2.0
* @return string The allow add method code
*/
public function get(string $nameSingleCode): string
{
$allow = [];
// prepare custom permission script
$custom_allow = $this->dispenser->get(
'php_allowadd', $nameSingleCode, '', null, true
);
$allow[] = PHP_EOL . Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " Get user object.";
$allow[] = Indent::_(2) . "\$user = \$this->app->getIdentity();";
// check if the item has permissions.
if ($this->permission->globalExist($nameSingleCode, 'core.access'))
{
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " Access check.";
$allow[] = Indent::_(2) . "\$access = \$user->authorise('"
. $this->permission->getGlobal($nameSingleCode, 'core.access')
. "', 'com_" . $this->component . "');";
$allow[] = Indent::_(2) . "if (!\$access)";
$allow[] = Indent::_(2) . "{";
$allow[] = Indent::_(3) . "return false;";
$allow[] = Indent::_(2) . "}";
}
// load custom permission script
$allow[] = $custom_allow;
// check if the item has permissions.
if ($this->permission->globalExist($nameSingleCode, 'core.create'))
{
// setup the default script
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " In the absence of better information, revert to the component permissions.";
$allow[] = Indent::_(2) . "return \$user->authorise('"
. $this->permission->getGlobal($nameSingleCode, 'core.create')
. "', \$this->option);";
}
else
{
// setup the default script
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " In the absence of better information, revert to the component permissions.";
$allow[] = Indent::_(2) . "return parent::allowAdd(\$data);";
}
return implode(PHP_EOL, $allow);
}
}

View File

@ -0,0 +1,98 @@
/**
* The Component code name.
*
* @var String
* @since 3.2.0
*/
protected String $component;
/**
* The Permission Class.
*
* @var Permission
* @since 3.2.0
*/
protected Permission $permission;
/**
* The Dispenser Class.
*
* @var Dispenser
* @since 3.2.0
*/
protected Dispenser $dispenser;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Permission $permission The Permission Class.
* @param Dispenser $dispenser The Dispenser Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Permission $permission,
Dispenser $dispenser)
{
$this->component = $config->component_code_name;
$this->permission = $permission;
$this->dispenser = $dispenser;
}
/**
* Get Allow Add Function Code
*
* @param string $nameSingleCode The single code name of the view.
*
* @since 3.2.0
* @return string The allow add method code
*/
public function get(string $nameSingleCode): string
{
$allow = [];
// prepare custom permission script
$custom_allow = $this->dispenser->get(
'php_allowadd', $nameSingleCode, '', null, true
);
$allow[] = PHP_EOL . Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " Get user object.";
$allow[] = Indent::_(2) . "\$user = \$this->app->getIdentity();";
// check if the item has permissions.
if ($this->permission->globalExist($nameSingleCode, 'core.access'))
{
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " Access check.";
$allow[] = Indent::_(2) . "\$access = \$user->authorise('"
. $this->permission->getGlobal($nameSingleCode, 'core.access')
. "', 'com_" . $this->component . "');";
$allow[] = Indent::_(2) . "if (!\$access)";
$allow[] = Indent::_(2) . "{";
$allow[] = Indent::_(3) . "return false;";
$allow[] = Indent::_(2) . "}";
}
// load custom permission script
$allow[] = $custom_allow;
// check if the item has permissions.
if ($this->permission->globalExist($nameSingleCode, 'core.create'))
{
// setup the default script
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " In the absence of better information, revert to the component permissions.";
$allow[] = Indent::_(2) . "return \$user->authorise('"
. $this->permission->getGlobal($nameSingleCode, 'core.create')
. "', \$this->option);";
}
else
{
// setup the default script
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " In the absence of better information, revert to the component permissions.";
$allow[] = Indent::_(2) . "return parent::allowAdd(\$data);";
}
return implode(PHP_EOL, $allow);
}

View File

@ -0,0 +1,41 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "005fce79-1b62-4a93-8d5e-8c89fee1afc6",
"implements": [
"c9700450-4f44-4455-bc86-6a7660daadee"
],
"load_selection": null,
"name": "AllowAdd",
"power_version": "1.0.0",
"system_name": "JCB.Architecture.J5.Controller.AllowAdd",
"type": "final class",
"use_selection": {
"use_selection0": {
"use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc",
"as": "default"
},
"use_selection1": {
"use": "7f01622a-74c9-4e67-b111-3eb488035206",
"as": "default"
},
"use_selection2": {
"use": "f1dc6430-fb54-452e-aa53-ce32ae93db88",
"as": "default"
},
"use_selection3": {
"use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6",
"as": "default"
},
"use_selection4": {
"use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222",
"as": "default"
}
},
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Architecture.JoomlaFive.Controller.AllowAdd",
"description": "Controller Allow Add Class for Joomla 5\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -15,13 +15,13 @@ class Infusion #Gold {
# Power $power # Power $power
# Content $content # Content $content
# Contents $contents # Contents $contents
# Autoloader $autoloader
# Parser $parser # Parser $parser
# RepoReadme $reporeadme # RepoReadme $reporeadme
# ReposReadme $reposreadme # ReposReadme $reposreadme
# Placeholder $placeholder # Placeholder $placeholder
# Event $event # Event $event
# array $linker # array $linker
# array $done
+ __construct(Config $config, Power $power, ...) + __construct(Config $config, Power $power, ...)
+ set() : void + set() : void
- parsePowers() : void - parsePowers() : void
@ -45,7 +45,6 @@ note right of Infusion::__construct
Power $power Power $power
Content $content Content $content
Contents $contents Contents $contents
Autoloader $autoloader
Parser $parser Parser $parser
RepoReadme $reporeadme RepoReadme $reporeadme
ReposReadme $reposreadme ReposReadme $reposreadme

View File

@ -16,7 +16,6 @@ use VDM\Joomla\Componentbuilder\Compiler\Config;
use VDM\Joomla\Componentbuilder\Compiler\Power; use VDM\Joomla\Componentbuilder\Compiler\Power;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ContentOne as Content; use VDM\Joomla\Componentbuilder\Compiler\Builder\ContentOne as Content;
use VDM\Joomla\Componentbuilder\Compiler\Builder\ContentMulti as Contents; use VDM\Joomla\Componentbuilder\Compiler\Builder\ContentMulti as Contents;
use VDM\Joomla\Componentbuilder\Compiler\Power\Autoloader;
use VDM\Joomla\Componentbuilder\Compiler\Power\Parser; use VDM\Joomla\Componentbuilder\Compiler\Power\Parser;
use VDM\Joomla\Componentbuilder\Compiler\Power\Repo\Readme as RepoReadme; use VDM\Joomla\Componentbuilder\Compiler\Power\Repo\Readme as RepoReadme;
use VDM\Joomla\Componentbuilder\Compiler\Power\Repos\Readme as ReposReadme; use VDM\Joomla\Componentbuilder\Compiler\Power\Repos\Readme as ReposReadme;
@ -65,14 +64,6 @@ class Infusion
*/ */
protected Contents $contents; protected Contents $contents;
/**
* The Autoloader Class.
*
* @var Autoloader
* @since 3.2.0
*/
protected Autoloader $autoloader;
/** /**
* The Parser Class. * The Parser Class.
* *
@ -140,6 +131,30 @@ class Infusion
'unchanged_licensing_template' => 'licensing_template' 'unchanged_licensing_template' => 'licensing_template'
]; ];
/**
* Power Infusion Tracker
*
* @var array
* @since 3.2.0
**/
protected array $done = [];
/**
* Power Content Infusion Tracker
*
* @var array
* @since 3.2.0
**/
protected array $content_done = [];
/**
* Path Infusion Tracker
*
* @var array
* @since 3.2.0
**/
protected array $path_done = [];
/** /**
* Constructor. * Constructor.
* *
@ -147,7 +162,6 @@ class Infusion
* @param Power $power The Power Class. * @param Power $power The Power Class.
* @param Content $content The ContentOne Class. * @param Content $content The ContentOne Class.
* @param Contents $contents The ContentMulti Class. * @param Contents $contents The ContentMulti Class.
* @param Autoloader $autoloader The Autoloader Class.
* @param Parser $parser The Parser Class. * @param Parser $parser The Parser Class.
* @param RepoReadme $reporeadme The Readme Class. * @param RepoReadme $reporeadme The Readme Class.
* @param ReposReadme $reposreadme The Readme Class. * @param ReposReadme $reposreadme The Readme Class.
@ -157,8 +171,7 @@ class Infusion
* @since 3.2.0 * @since 3.2.0
*/ */
public function __construct(Config $config, Power $power, Content $content, public function __construct(Config $config, Power $power, Content $content,
Contents $contents, Autoloader $autoloader, Contents $contents, Parser $parser, RepoReadme $reporeadme,
Parser $parser, RepoReadme $reporeadme,
ReposReadme $reposreadme, Placeholder $placeholder, ReposReadme $reposreadme, Placeholder $placeholder,
Event $event) Event $event)
{ {
@ -166,7 +179,6 @@ class Infusion
$this->power = $power; $this->power = $power;
$this->content = $content; $this->content = $content;
$this->contents = $contents; $this->contents = $contents;
$this->autoloader = $autoloader;
$this->parser = $parser; $this->parser = $parser;
$this->reporeadme = $reporeadme; $this->reporeadme = $reporeadme;
$this->reposreadme = $reposreadme; $this->reposreadme = $reposreadme;
@ -203,8 +215,13 @@ class Infusion
// we only do this if super powers are active // we only do this if super powers are active
if ($this->config->add_super_powers && ArrayHelper::check($this->power->superpowers)) if ($this->config->add_super_powers && ArrayHelper::check($this->power->superpowers))
{ {
foreach ($this->power->active as $n => &$power) foreach ($this->power->active as $guid => &$power)
{ {
if (isset($this->done[$guid]))
{
continue;
}
if (ObjectHelper::check($power) && isset($power->main_class_code) && if (ObjectHelper::check($power) && isset($power->main_class_code) &&
StringHelper::check($power->main_class_code)) StringHelper::check($power->main_class_code))
{ {
@ -215,6 +232,9 @@ class Infusion
$power->parsed_class_code = $this->parser->code($power->main_class_code); $power->parsed_class_code = $this->parser->code($power->main_class_code);
} }
} }
// do each power just once
$this->done[$guid] = true;
} }
} }
} }
@ -232,6 +252,11 @@ class Infusion
{ {
foreach ($this->power->superpowers as $path => $powers) foreach ($this->power->superpowers as $path => $powers)
{ {
if (isset($this->path_done[$path]))
{
continue;
}
$key = StringHelper::safe($path); $key = StringHelper::safe($path);
// Trigger Event: jcb_ce_onBeforeInfuseSuperPowerDetails // Trigger Event: jcb_ce_onBeforeInfuseSuperPowerDetails
@ -258,6 +283,9 @@ class Infusion
$this->event->trigger( $this->event->trigger(
'jcb_ce_onAfterInfuseSuperPowerDetails', [&$path, &$key, &$powers] 'jcb_ce_onAfterInfuseSuperPowerDetails', [&$path, &$key, &$powers]
); );
// do each path just once
$this->path_done[$path] = true;
} }
} }
} }
@ -301,8 +329,13 @@ class Infusion
// infuse powers data if set // infuse powers data if set
if (ArrayHelper::check($this->power->active)) if (ArrayHelper::check($this->power->active))
{ {
foreach ($this->power->active as $power) foreach ($this->power->active as $guid => $power)
{ {
if (isset($this->content_done[$guid]))
{
continue;
}
if (ObjectHelper::check($power)) if (ObjectHelper::check($power))
{ {
// Trigger Event: jcb_ce_onBeforeInfusePowerData // Trigger Event: jcb_ce_onBeforeInfusePowerData
@ -327,10 +360,10 @@ class Infusion
'jcb_ce_onAfterInfusePowerData', [&$power] 'jcb_ce_onAfterInfusePowerData', [&$power]
); );
} }
}
// now set the power autoloader // do each power just once
$this->autoloader->set(); $this->content_done[$guid] = true;
}
} }
} }

View File

@ -30,14 +30,6 @@
*/ */
protected Contents $contents; protected Contents $contents;
/**
* The Autoloader Class.
*
* @var Autoloader
* @since 3.2.0
*/
protected Autoloader $autoloader;
/** /**
* The Parser Class. * The Parser Class.
* *
@ -105,6 +97,30 @@
'unchanged_licensing_template' => 'licensing_template' 'unchanged_licensing_template' => 'licensing_template'
]; ];
/**
* Power Infusion Tracker
*
* @var array
* @since 3.2.0
**/
protected array $done = [];
/**
* Power Content Infusion Tracker
*
* @var array
* @since 3.2.0
**/
protected array $content_done = [];
/**
* Path Infusion Tracker
*
* @var array
* @since 3.2.0
**/
protected array $path_done = [];
/** /**
* Constructor. * Constructor.
* *
@ -112,7 +128,6 @@
* @param Power $power The Power Class. * @param Power $power The Power Class.
* @param Content $content The ContentOne Class. * @param Content $content The ContentOne Class.
* @param Contents $contents The ContentMulti Class. * @param Contents $contents The ContentMulti Class.
* @param Autoloader $autoloader The Autoloader Class.
* @param Parser $parser The Parser Class. * @param Parser $parser The Parser Class.
* @param RepoReadme $reporeadme The Readme Class. * @param RepoReadme $reporeadme The Readme Class.
* @param ReposReadme $reposreadme The Readme Class. * @param ReposReadme $reposreadme The Readme Class.
@ -122,8 +137,7 @@
* @since 3.2.0 * @since 3.2.0
*/ */
public function __construct(Config $config, Power $power, Content $content, public function __construct(Config $config, Power $power, Content $content,
Contents $contents, Autoloader $autoloader, Contents $contents, Parser $parser, RepoReadme $reporeadme,
Parser $parser, RepoReadme $reporeadme,
ReposReadme $reposreadme, Placeholder $placeholder, ReposReadme $reposreadme, Placeholder $placeholder,
Event $event) Event $event)
{ {
@ -131,7 +145,6 @@
$this->power = $power; $this->power = $power;
$this->content = $content; $this->content = $content;
$this->contents = $contents; $this->contents = $contents;
$this->autoloader = $autoloader;
$this->parser = $parser; $this->parser = $parser;
$this->reporeadme = $reporeadme; $this->reporeadme = $reporeadme;
$this->reposreadme = $reposreadme; $this->reposreadme = $reposreadme;
@ -168,8 +181,13 @@
// we only do this if super powers are active // we only do this if super powers are active
if ($this->config->add_super_powers && ArrayHelper::check($this->power->superpowers)) if ($this->config->add_super_powers && ArrayHelper::check($this->power->superpowers))
{ {
foreach ($this->power->active as $n => &$power) foreach ($this->power->active as $guid => &$power)
{ {
if (isset($this->done[$guid]))
{
continue;
}
if (ObjectHelper::check($power) && isset($power->main_class_code) && if (ObjectHelper::check($power) && isset($power->main_class_code) &&
StringHelper::check($power->main_class_code)) StringHelper::check($power->main_class_code))
{ {
@ -180,6 +198,9 @@
$power->parsed_class_code = $this->parser->code($power->main_class_code); $power->parsed_class_code = $this->parser->code($power->main_class_code);
} }
} }
// do each power just once
$this->done[$guid] = true;
} }
} }
} }
@ -197,6 +218,11 @@
{ {
foreach ($this->power->superpowers as $path => $powers) foreach ($this->power->superpowers as $path => $powers)
{ {
if (isset($this->path_done[$path]))
{
continue;
}
$key = StringHelper::safe($path); $key = StringHelper::safe($path);
// Trigger Event: jcb_ce_onBeforeInfuseSuperPowerDetails // Trigger Event: jcb_ce_onBeforeInfuseSuperPowerDetails
@ -223,6 +249,9 @@
$this->event->trigger( $this->event->trigger(
'jcb_ce_onAfterInfuseSuperPowerDetails', [&$path, &$key, &$powers] 'jcb_ce_onAfterInfuseSuperPowerDetails', [&$path, &$key, &$powers]
); );
// do each path just once
$this->path_done[$path] = true;
} }
} }
} }
@ -266,8 +295,13 @@
// infuse powers data if set // infuse powers data if set
if (ArrayHelper::check($this->power->active)) if (ArrayHelper::check($this->power->active))
{ {
foreach ($this->power->active as $power) foreach ($this->power->active as $guid => $power)
{ {
if (isset($this->content_done[$guid]))
{
continue;
}
if (ObjectHelper::check($power)) if (ObjectHelper::check($power))
{ {
// Trigger Event: jcb_ce_onBeforeInfusePowerData // Trigger Event: jcb_ce_onBeforeInfusePowerData
@ -292,10 +326,10 @@
'jcb_ce_onAfterInfusePowerData', [&$power] 'jcb_ce_onAfterInfusePowerData', [&$power]
); );
} }
}
// now set the power autoloader // do each power just once
$this->autoloader->set(); $this->content_done[$guid] = true;
}
} }
} }

View File

@ -27,38 +27,34 @@
"as": "Contents" "as": "Contents"
}, },
"use_selection4": { "use_selection4": {
"use": "6e64917c-d687-4ef3-a655-811319f5a81e",
"as": "default"
},
"use_selection5": {
"use": "95d0e03f-24fd-4412-bc2e-f0899fcc3205", "use": "95d0e03f-24fd-4412-bc2e-f0899fcc3205",
"as": "default" "as": "default"
}, },
"use_selection6": { "use_selection5": {
"use": "efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5", "use": "efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5",
"as": "RepoReadme" "as": "RepoReadme"
}, },
"use_selection7": { "use_selection6": {
"use": "0d08c583-04d5-454e-b756-48ca05e1651a", "use": "0d08c583-04d5-454e-b756-48ca05e1651a",
"as": "ReposReadme" "as": "ReposReadme"
}, },
"use_selection8": { "use_selection7": {
"use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c",
"as": "default" "as": "default"
}, },
"use_selection9": { "use_selection8": {
"use": "20ed72b0-fcac-4344-aee1-8a65e3bf221d", "use": "20ed72b0-fcac-4344-aee1-8a65e3bf221d",
"as": "Event" "as": "Event"
}, },
"use_selection10": { "use_selection9": {
"use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef",
"as": "default" "as": "default"
}, },
"use_selection11": { "use_selection10": {
"use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a",
"as": "default" "as": "default"
}, },
"use_selection12": { "use_selection11": {
"use": "91004529-94a9-4590-b842-e7c6b624ecf5", "use": "91004529-94a9-4590-b842-e7c6b624ecf5",
"as": "default" "as": "default"
} }

View File

@ -441,6 +441,7 @@ final class FieldsetString implements Fieldsetinterface
$field_set[] = Indent::_(3) . 'description="' . $lang_view $field_set[] = Indent::_(3) . 'description="' . $lang_view
. '_VERSION_DESC"'; . '_VERSION_DESC"';
$field_set[] = Indent::_(3) . 'size="6"'; $field_set[] = Indent::_(3) . 'size="6"';
$field_set[] = Indent::_(3) . 'default="1"';
$field_set[] = Indent::_(3) . 'readonly="true"'; $field_set[] = Indent::_(3) . 'readonly="true"';
$field_set[] = Indent::_(3) . 'filter="unset"'; $field_set[] = Indent::_(3) . 'filter="unset"';
$field_set[] = Indent::_(2) . "/>"; $field_set[] = Indent::_(2) . "/>";

View File

@ -402,6 +402,7 @@
$field_set[] = Indent::_(3) . 'description="' . $lang_view $field_set[] = Indent::_(3) . 'description="' . $lang_view
. '_VERSION_DESC"'; . '_VERSION_DESC"';
$field_set[] = Indent::_(3) . 'size="6"'; $field_set[] = Indent::_(3) . 'size="6"';
$field_set[] = Indent::_(3) . 'default="1"';
$field_set[] = Indent::_(3) . 'readonly="true"'; $field_set[] = Indent::_(3) . 'readonly="true"';
$field_set[] = Indent::_(3) . 'filter="unset"'; $field_set[] = Indent::_(3) . 'filter="unset"';
$field_set[] = Indent::_(2) . "/>"; $field_set[] = Indent::_(2) . "/>";

View File

@ -11,46 +11,51 @@
```uml ```uml
@startuml @startuml
class Model #Gold { class Model #Gold {
# $targetVersion
+ register(Container $container) : void + register(Container $container) : void
+ getModelJoomlaplugins(Container $container) : Joomlaplugins + getServerLoad(Container $container) : ServerLoad
+ getModelJoomlamodules(Container $container) : Joomlamodules + getJoomlaplugins(Container $container) : Joomlaplugins
+ getModelHistorycomponent(Container $container) : Historycomponent + getJoomlamodules(Container $container) : Joomlamodules
+ getModelCustomadminviews(Container $container) : Customadminviews + getHistorycomponent(Container $container) : Historycomponent
+ getModelAjaxcustomview(Container $container) : Ajaxcustomview + getCustomadminviews(Container $container) : Customadminviews
+ getModelJavascriptcustomview(Container $container) : Javascriptcustomview + getAjaxcustomview(Container $container) : Ajaxcustomview
+ getModelCsscustomview(Container $container) : Csscustomview + getJavascriptcustomview(Container $container) : Javascriptcustomview
+ getModelPhpcustomview(Container $container) : Phpcustomview + getCsscustomview(Container $container) : Csscustomview
+ getModelDynamicget(Container $container) : Dynamicget + getPhpcustomview(Container $container) : Phpcustomview
+ getModelLibraries(Container $container) : Libraries + getDynamicget(Container $container) : Dynamicget
+ getModelSiteviews(Container $container) : Siteviews + getLibraries(Container $container) : Libraries
+ getModelPermissions(Container $container) : Permissions + getSiteviews(Container $container) : Siteviews
+ getModelHistoryadminview(Container $container) : Historyadminview + getPermissions(Container $container) : Permissions
+ getModelMysqlsettings(Container $container) : Mysqlsettings + getHistoryadminview(Container $container) : Historyadminview
+ getModelSql(Container $container) : Sql + getMysqlsettings(Container $container) : Mysqlsettings
+ getModelCustomalias(Container $container) : Customalias + getSql(Container $container) : Sql
+ getModelAjaxadmin(Container $container) : Ajaxadmin + getCustomalias(Container $container) : Customalias
+ getModelCustomimportscripts(Container $container) : Customimportscripts + getAjaxadmin(Container $container) : Ajaxadmin
+ getModelCustombuttons(Container $container) : Custombuttons + getCustomimportscripts(Container $container) : Customimportscripts
+ getModelLoader(Container $container) : Loader + getCustombuttons(Container $container) : Custombuttons
+ getModelPhpadminview(Container $container) : Phpadminview + getLoader(Container $container) : Loader
+ getModelCssadminview(Container $container) : Cssadminview + getPhpadminview(Container $container) : Phpadminview
+ getModelJavascriptadminview(Container $container) : Javascriptadminview + getCssadminview(Container $container) : Cssadminview
+ getModelLinkedviews(Container $container) : Linkedviews + getJavascriptadminview(Container $container) : Javascriptadminview
+ getModelRelations(Container $container) : Relations + getLinkedviews(Container $container) : Linkedviews
+ getModelConditions(Container $container) : Conditions + getRelations(Container $container) : Relations
+ getModelFields(Container $container) : Fields + getConditions(Container $container) : Conditions
+ getModelUpdatesql(Container $container) : Updatesql + getFields(Container $container) : Fields
+ getModelTabs(Container $container) : Tabs + getUpdatesql(Container $container) : Updatesql
+ getModelCustomtabs(Container $container) : Customtabs + getTabs(Container $container) : Tabs
+ getModelAdminviews(Container $container) : Adminviews + getCustomtabs(Container $container) : Customtabs
+ getModelSqltweaking(Container $container) : Sqltweaking + getCustomtabsJ3(Container $container) : CustomtabsJ3
+ getModelSqldump(Container $container) : Sqldump + getCustomtabsJ4(Container $container) : CustomtabsJ4
+ getModelWhmcs(Container $container) : Whmcs + getCustomtabsJ5(Container $container) : CustomtabsJ5
+ getAdminviews(Container $container) : Adminviews
+ getSqltweaking(Container $container) : Sqltweaking
+ getSqldump(Container $container) : Sqldump
+ getWhmcs(Container $container) : Whmcs
+ getFilesfolders(Container $container) : Filesfolders
+ getModifieddate(Container $container) : Modifieddate + getModifieddate(Container $container) : Modifieddate
+ getCreatedate(Container $container) : Createdate + getCreatedate(Container $container) : Createdate
+ getRouter(Container $container) : Router
+ getUpdateserver(Container $container) : Updateserver + getUpdateserver(Container $container) : Updateserver
+ getModelFilesfolders(Container $container) : Filesfolders
+ getServerLoad(Container $container) : ServerLoad
} }
note right of Model::register note right of Model::register
@ -60,277 +65,305 @@ note right of Model::register
return: void return: void
end note end note
note left of Model::getModelJoomlaplugins note left of Model::getServerLoad
Get the Joomla plugins Model Get The Load Class.
since: 3.2.0
return: ServerLoad
end note
note right of Model::getJoomlaplugins
Get The Joomlaplugins Class.
since: 3.2.0 since: 3.2.0
return: Joomlaplugins return: Joomlaplugins
end note end note
note right of Model::getModelJoomlamodules note left of Model::getJoomlamodules
Get the Joomla modules Model Get The Joomlamodules Class.
since: 3.2.0 since: 3.2.0
return: Joomlamodules return: Joomlamodules
end note end note
note left of Model::getModelHistorycomponent note right of Model::getHistorycomponent
Get the history component Model Get The Historycomponent Class.
since: 3.2.0 since: 3.2.0
return: Historycomponent return: Historycomponent
end note end note
note right of Model::getModelCustomadminviews note left of Model::getCustomadminviews
Get the custom admin views Model Get The Customadminviews Class.
since: 3.2.0 since: 3.2.0
return: Customadminviews return: Customadminviews
end note end note
note left of Model::getModelAjaxcustomview note right of Model::getAjaxcustomview
Get the ajax custom view Model Get The Ajaxcustomview Class.
since: 3.2.0 since: 3.2.0
return: Ajaxcustomview return: Ajaxcustomview
end note end note
note right of Model::getModelJavascriptcustomview note left of Model::getJavascriptcustomview
Get the javascript custom view Model Get The Javascriptcustomview Class.
since: 3.2.0 since: 3.2.0
return: Javascriptcustomview return: Javascriptcustomview
end note end note
note left of Model::getModelCsscustomview note right of Model::getCsscustomview
Get the css custom view Model Get The Csscustomview Class.
since: 3.2.0 since: 3.2.0
return: Csscustomview return: Csscustomview
end note end note
note right of Model::getModelPhpcustomview note left of Model::getPhpcustomview
Get the php custom view Model Get The Phpcustomview Class.
since: 3.2.0 since: 3.2.0
return: Phpcustomview return: Phpcustomview
end note end note
note left of Model::getModelDynamicget note right of Model::getDynamicget
Get the dynamic get Model Get The Dynamicget Class.
since: 3.2.0 since: 3.2.0
return: Dynamicget return: Dynamicget
end note end note
note right of Model::getModelLibraries note left of Model::getLibraries
Get the libraries Model Get The Libraries Class.
since: 3.2.0 since: 3.2.0
return: Libraries return: Libraries
end note end note
note left of Model::getModelSiteviews note right of Model::getSiteviews
Get the site views Model Get The Siteviews Class.
since: 3.2.0 since: 3.2.0
return: Siteviews return: Siteviews
end note end note
note right of Model::getModelPermissions note left of Model::getPermissions
Get the permissions Model Get The Permissions Class.
since: 3.2.0 since: 3.2.0
return: Permissions return: Permissions
end note end note
note left of Model::getModelHistoryadminview note right of Model::getHistoryadminview
Get the admin view history Model Get The Historyadminview Class.
since: 3.2.0 since: 3.2.0
return: Historyadminview return: Historyadminview
end note end note
note right of Model::getModelMysqlsettings note left of Model::getMysqlsettings
Get the MySQL settings Model Get The Mysqlsettings Class.
since: 3.2.0 since: 3.2.0
return: Mysqlsettings return: Mysqlsettings
end note end note
note left of Model::getModelSql note right of Model::getSql
Get the Sql Model Get The Sql Class.
since: 3.2.0 since: 3.2.0
return: Sql return: Sql
end note end note
note right of Model::getModelCustomalias note left of Model::getCustomalias
Get the custom alias Model Get The Customalias Class.
since: 3.2.0 since: 3.2.0
return: Customalias return: Customalias
end note end note
note left of Model::getModelAjaxadmin note right of Model::getAjaxadmin
Get the Admin Ajax Model Get The Ajaxadmin Class.
since: 3.2.0 since: 3.2.0
return: Ajaxadmin return: Ajaxadmin
end note end note
note right of Model::getModelCustomimportscripts note left of Model::getCustomimportscripts
Get the custom import scripts Model Get The Customimportscripts Class.
since: 3.2.0 since: 3.2.0
return: Customimportscripts return: Customimportscripts
end note end note
note left of Model::getModelCustombuttons note right of Model::getCustombuttons
Get the custom import scripts Model Get The Custombuttons Class.
since: 3.2.0 since: 3.2.0
return: Custombuttons return: Custombuttons
end note end note
note right of Model::getModelLoader note left of Model::getLoader
Get The Model Loader Class. Get The Loader Class.
since: 3.2.0 since: 3.2.0
return: Loader return: Loader
end note end note
note left of Model::getModelPhpadminview note right of Model::getPhpadminview
Get the php admin view Model Get The Phpadminview Class.
since: 3.2.0 since: 3.2.0
return: Phpadminview return: Phpadminview
end note end note
note right of Model::getModelCssadminview note left of Model::getCssadminview
Get the Css Adminview Model Get The Cssadminview Class.
since: 3.2.0 since: 3.2.0
return: Cssadminview return: Cssadminview
end note end note
note left of Model::getModelJavascriptadminview note right of Model::getJavascriptadminview
Get the Javascript Adminview Model Get The Javascriptadminview Class.
since: 3.2.0 since: 3.2.0
return: Javascriptadminview return: Javascriptadminview
end note end note
note right of Model::getModelLinkedviews note left of Model::getLinkedviews
Get the linked views Model Get The Linkedviews Class.
since: 3.2.0 since: 3.2.0
return: Linkedviews return: Linkedviews
end note end note
note left of Model::getModelRelations note right of Model::getRelations
Get the relations Model Get The Relations Class.
since: 3.2.0 since: 3.2.0
return: Relations return: Relations
end note end note
note right of Model::getModelConditions note left of Model::getConditions
Get the conditions Model Get The Conditions Class.
since: 3.2.0 since: 3.2.0
return: Conditions return: Conditions
end note end note
note left of Model::getModelFields note right of Model::getFields
Get the fields Model Get The Fields Class.
since: 3.2.0 since: 3.2.0
return: Fields return: Fields
end note end note
note right of Model::getModelUpdatesql note left of Model::getUpdatesql
Get the update sql Model Get The Updatesql Class.
since: 3.2.0 since: 3.2.0
return: Updatesql return: Updatesql
end note end note
note left of Model::getModelTabs note right of Model::getTabs
Get the tabs Model Get The Tabs Class.
since: 3.2.0 since: 3.2.0
return: Tabs return: Tabs
end note end note
note right of Model::getModelCustomtabs note left of Model::getCustomtabs
Get the custom tabs Model Get The Customtabs Class.
since: 3.2.0 since: 3.2.0
return: Customtabs return: Customtabs
end note end note
note left of Model::getModelAdminviews note right of Model::getCustomtabsJ3
Get the admin views Model Get The CustomtabsJ3 Class.
since: 3.2.0
return: CustomtabsJ3
end note
note left of Model::getCustomtabsJ4
Get The CustomtabsJ4 Class.
since: 3.2.0
return: CustomtabsJ4
end note
note right of Model::getCustomtabsJ5
Get The CustomtabsJ5 Class.
since: 3.2.0
return: CustomtabsJ5
end note
note left of Model::getAdminviews
Get The Adminviews Class.
since: 3.2.0 since: 3.2.0
return: Adminviews return: Adminviews
end note end note
note right of Model::getModelSqltweaking note right of Model::getSqltweaking
Get the SQL tweaking Model Get The Sqltweaking Class.
since: 3.2.0 since: 3.2.0
return: Sqltweaking return: Sqltweaking
end note end note
note left of Model::getModelSqldump note left of Model::getSqldump
Get the SQL dump Model Get The Sqldump Class.
since: 3.2.0 since: 3.2.0
return: Sqldump return: Sqldump
end note end note
note right of Model::getModelWhmcs note right of Model::getWhmcs
Get the whmcs Model Get The Whmcs Class.
since: 3.2.0 since: 3.2.0
return: Whmcs return: Whmcs
end note end note
note left of Model::getModifieddate note left of Model::getFilesfolders
Get the modified date Model Get The Filesfolders Class.
since: 3.2.0
return: Modifieddate
end note
note right of Model::getCreatedate
Get the create date Model
since: 3.2.0
return: Createdate
end note
note left of Model::getUpdateserver
Get the update server Model
since: 3.2.0
return: Updateserver
end note
note right of Model::getModelFilesfolders
Get the files folders Model
since: 3.2.0 since: 3.2.0
return: Filesfolders return: Filesfolders
end note end note
note left of Model::getServerLoad note right of Model::getModifieddate
Get the Server Model Server Loader class Get The Modifieddate Class.
since: 3.2.0 since: 3.2.0
return: ServerLoad return: Modifieddate
end note
note left of Model::getCreatedate
Get The Createdate Class.
since: 3.2.0
return: Createdate
end note
note right of Model::getRouter
Get The Router Class.
since: 3.2.0
return: Router
end note
note left of Model::getUpdateserver
Get The Updateserver Class.
since: 3.2.0
return: Updateserver
end note end note
@enduml @enduml

View File

@ -44,7 +44,10 @@ use VDM\Joomla\Componentbuilder\Compiler\Model\Conditions;
use VDM\Joomla\Componentbuilder\Compiler\Model\Fields; use VDM\Joomla\Componentbuilder\Compiler\Model\Fields;
use VDM\Joomla\Componentbuilder\Compiler\Model\Updatesql; use VDM\Joomla\Componentbuilder\Compiler\Model\Updatesql;
use VDM\Joomla\Componentbuilder\Compiler\Model\Tabs; use VDM\Joomla\Componentbuilder\Compiler\Model\Tabs;
use VDM\Joomla\Componentbuilder\Compiler\Model\Customtabs; use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Model\CustomtabsInterface as Customtabs;
use VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaThree\Customtabs as CustomtabsJ3;
use VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaFour\Customtabs as CustomtabsJ4;
use VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaFive\Customtabs as CustomtabsJ5;
use VDM\Joomla\Componentbuilder\Compiler\Model\Adminviews; use VDM\Joomla\Componentbuilder\Compiler\Model\Adminviews;
use VDM\Joomla\Componentbuilder\Compiler\Model\Sqltweaking; use VDM\Joomla\Componentbuilder\Compiler\Model\Sqltweaking;
use VDM\Joomla\Componentbuilder\Compiler\Model\Sqldump; use VDM\Joomla\Componentbuilder\Compiler\Model\Sqldump;
@ -52,6 +55,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Model\Whmcs;
use VDM\Joomla\Componentbuilder\Compiler\Model\Filesfolders; use VDM\Joomla\Componentbuilder\Compiler\Model\Filesfolders;
use VDM\Joomla\Componentbuilder\Compiler\Model\Modifieddate; use VDM\Joomla\Componentbuilder\Compiler\Model\Modifieddate;
use VDM\Joomla\Componentbuilder\Compiler\Model\Createdate; use VDM\Joomla\Componentbuilder\Compiler\Model\Createdate;
use VDM\Joomla\Componentbuilder\Compiler\Model\Router;
use VDM\Joomla\Componentbuilder\Compiler\Model\Updateserver; use VDM\Joomla\Componentbuilder\Compiler\Model\Updateserver;
@ -62,6 +66,14 @@ use VDM\Joomla\Componentbuilder\Compiler\Model\Updateserver;
*/ */
class Model implements ServiceProviderInterface class Model implements ServiceProviderInterface
{ {
/**
* Current Joomla Version Being Build
*
* @var int
* @since 3.2.0
**/
protected $targetVersion;
/** /**
* Registers the service provider with a DI container. * Registers the service provider with a DI container.
* *
@ -72,107 +84,122 @@ class Model implements ServiceProviderInterface
*/ */
public function register(Container $container) public function register(Container $container)
{ {
$container->alias(ServerLoad::class, 'Model.Server.Load')
->share('Model.Server.Load', [$this, 'getServerLoad'], true);
$container->alias(Joomlaplugins::class, 'Model.Joomlaplugins') $container->alias(Joomlaplugins::class, 'Model.Joomlaplugins')
->share('Model.Joomlaplugins', [$this, 'getModelJoomlaplugins'], true); ->share('Model.Joomlaplugins', [$this, 'getJoomlaplugins'], true);
$container->alias(Joomlamodules::class, 'Model.Joomlamodules') $container->alias(Joomlamodules::class, 'Model.Joomlamodules')
->share('Model.Joomlamodules', [$this, 'getModelJoomlamodules'], true); ->share('Model.Joomlamodules', [$this, 'getJoomlamodules'], true);
$container->alias(Historycomponent::class, 'Model.Historycomponent') $container->alias(Historycomponent::class, 'Model.Historycomponent')
->share('Model.Historycomponent', [$this, 'getModelHistorycomponent'], true); ->share('Model.Historycomponent', [$this, 'getHistorycomponent'], true);
$container->alias(Customadminviews::class, 'Model.Customadminviews') $container->alias(Customadminviews::class, 'Model.Customadminviews')
->share('Model.Customadminviews', [$this, 'getModelCustomadminviews'], true); ->share('Model.Customadminviews', [$this, 'getCustomadminviews'], true);
$container->alias(Ajaxcustomview::class, 'Model.Ajaxcustomview') $container->alias(Ajaxcustomview::class, 'Model.Ajaxcustomview')
->share('Model.Ajaxcustomview', [$this, 'getModelAjaxcustomview'], true); ->share('Model.Ajaxcustomview', [$this, 'getAjaxcustomview'], true);
$container->alias(Javascriptcustomview::class, 'Model.Javascriptcustomview') $container->alias(Javascriptcustomview::class, 'Model.Javascriptcustomview')
->share('Model.Javascriptcustomview', [$this, 'getModelJavascriptcustomview'], true); ->share('Model.Javascriptcustomview', [$this, 'getJavascriptcustomview'], true);
$container->alias(Csscustomview::class, 'Model.Csscustomview') $container->alias(Csscustomview::class, 'Model.Csscustomview')
->share('Model.Csscustomview', [$this, 'getModelCsscustomview'], true); ->share('Model.Csscustomview', [$this, 'getCsscustomview'], true);
$container->alias(Phpcustomview::class, 'Model.Phpcustomview') $container->alias(Phpcustomview::class, 'Model.Phpcustomview')
->share('Model.Phpcustomview', [$this, 'getModelPhpcustomview'], true); ->share('Model.Phpcustomview', [$this, 'getPhpcustomview'], true);
$container->alias(Dynamicget::class, 'Model.Dynamicget') $container->alias(Dynamicget::class, 'Model.Dynamicget')
->share('Model.Dynamicget', [$this, 'getModelDynamicget'], true); ->share('Model.Dynamicget', [$this, 'getDynamicget'], true);
$container->alias(Libraries::class, 'Model.Libraries') $container->alias(Libraries::class, 'Model.Libraries')
->share('Model.Libraries', [$this, 'getModelLibraries'], true); ->share('Model.Libraries', [$this, 'getLibraries'], true);
$container->alias(Siteviews::class, 'Model.Siteviews') $container->alias(Siteviews::class, 'Model.Siteviews')
->share('Model.Siteviews', [$this, 'getModelSiteviews'], true); ->share('Model.Siteviews', [$this, 'getSiteviews'], true);
$container->alias(Permissions::class, 'Model.Permissions') $container->alias(Permissions::class, 'Model.Permissions')
->share('Model.Permissions', [$this, 'getModelPermissions'], true); ->share('Model.Permissions', [$this, 'getPermissions'], true);
$container->alias(Historyadminview::class, 'Model.Historyadminview') $container->alias(Historyadminview::class, 'Model.Historyadminview')
->share('Model.Historyadminview', [$this, 'getModelHistoryadminview'], true); ->share('Model.Historyadminview', [$this, 'getHistoryadminview'], true);
$container->alias(Mysqlsettings::class, 'Model.Mysqlsettings') $container->alias(Mysqlsettings::class, 'Model.Mysqlsettings')
->share('Model.Mysqlsettings', [$this, 'getModelMysqlsettings'], true); ->share('Model.Mysqlsettings', [$this, 'getMysqlsettings'], true);
$container->alias(Sql::class, 'Model.Sql') $container->alias(Sql::class, 'Model.Sql')
->share('Model.Sql', [$this, 'getModelSql'], true); ->share('Model.Sql', [$this, 'getSql'], true);
$container->alias(Customalias::class, 'Model.Customalias') $container->alias(Customalias::class, 'Model.Customalias')
->share('Model.Customalias', [$this, 'getModelCustomalias'], true); ->share('Model.Customalias', [$this, 'getCustomalias'], true);
$container->alias(Ajaxadmin::class, 'Model.Ajaxadmin') $container->alias(Ajaxadmin::class, 'Model.Ajaxadmin')
->share('Model.Ajaxadmin', [$this, 'getModelAjaxadmin'], true); ->share('Model.Ajaxadmin', [$this, 'getAjaxadmin'], true);
$container->alias(Customimportscripts::class, 'Model.Customimportscripts') $container->alias(Customimportscripts::class, 'Model.Customimportscripts')
->share('Model.Customimportscripts', [$this, 'getModelCustomimportscripts'], true); ->share('Model.Customimportscripts', [$this, 'getCustomimportscripts'], true);
$container->alias(Custombuttons::class, 'Model.Custombuttons') $container->alias(Custombuttons::class, 'Model.Custombuttons')
->share('Model.Custombuttons', [$this, 'getModelCustombuttons'], true); ->share('Model.Custombuttons', [$this, 'getCustombuttons'], true);
$container->alias(Loader::class, 'Model.Loader') $container->alias(Loader::class, 'Model.Loader')
->share('Model.Loader', [$this, 'getModelLoader'], true); ->share('Model.Loader', [$this, 'getLoader'], true);
$container->alias(Phpadminview::class, 'Model.Phpadminview') $container->alias(Phpadminview::class, 'Model.Phpadminview')
->share('Model.Phpadminview', [$this, 'getModelPhpadminview'], true); ->share('Model.Phpadminview', [$this, 'getPhpadminview'], true);
$container->alias(Cssadminview::class, 'Model.Cssadminview') $container->alias(Cssadminview::class, 'Model.Cssadminview')
->share('Model.Cssadminview', [$this, 'getModelCssadminview'], true); ->share('Model.Cssadminview', [$this, 'getCssadminview'], true);
$container->alias(Javascriptadminview::class, 'Model.Javascriptadminview') $container->alias(Javascriptadminview::class, 'Model.Javascriptadminview')
->share('Model.Javascriptadminview', [$this, 'getModelJavascriptadminview'], true); ->share('Model.Javascriptadminview', [$this, 'getJavascriptadminview'], true);
$container->alias(Linkedviews::class, 'Model.Linkedviews') $container->alias(Linkedviews::class, 'Model.Linkedviews')
->share('Model.Linkedviews', [$this, 'getModelLinkedviews'], true); ->share('Model.Linkedviews', [$this, 'getLinkedviews'], true);
$container->alias(Relations::class, 'Model.Relations') $container->alias(Relations::class, 'Model.Relations')
->share('Model.Relations', [$this, 'getModelRelations'], true); ->share('Model.Relations', [$this, 'getRelations'], true);
$container->alias(Conditions::class, 'Model.Conditions') $container->alias(Conditions::class, 'Model.Conditions')
->share('Model.Conditions', [$this, 'getModelConditions'], true); ->share('Model.Conditions', [$this, 'getConditions'], true);
$container->alias(Fields::class, 'Model.Fields') $container->alias(Fields::class, 'Model.Fields')
->share('Model.Fields', [$this, 'getModelFields'], true); ->share('Model.Fields', [$this, 'getFields'], true);
$container->alias(Updatesql::class, 'Model.Updatesql') $container->alias(Updatesql::class, 'Model.Updatesql')
->share('Model.Updatesql', [$this, 'getModelUpdatesql'], true); ->share('Model.Updatesql', [$this, 'getUpdatesql'], true);
$container->alias(Tabs::class, 'Model.Tabs') $container->alias(Tabs::class, 'Model.Tabs')
->share('Model.Tabs', [$this, 'getModelTabs'], true); ->share('Model.Tabs', [$this, 'getTabs'], true);
$container->alias(Customtabs::class, 'Model.Customtabs') $container->alias(Customtabs::class, 'Model.Customtabs')
->share('Model.Customtabs', [$this, 'getModelCustomtabs'], true); ->share('Model.Customtabs', [$this, 'getCustomtabs'], true);
$container->alias(CustomtabsJ3::class, 'Model.J3.Customtabs')
->share('Model.J3.Customtabs', [$this, 'getCustomtabsJ3'], true);
$container->alias(CustomtabsJ4::class, 'Model.J4.Customtabs')
->share('Model.J4.Customtabs', [$this, 'getCustomtabsJ4'], true);
$container->alias(CustomtabsJ5::class, 'Model.J5.Customtabs')
->share('Model.J5.Customtabs', [$this, 'getCustomtabsJ5'], true);
$container->alias(Adminviews::class, 'Model.Adminviews') $container->alias(Adminviews::class, 'Model.Adminviews')
->share('Model.Adminviews', [$this, 'getModelAdminviews'], true); ->share('Model.Adminviews', [$this, 'getAdminviews'], true);
$container->alias(Sqltweaking::class, 'Model.Sqltweaking') $container->alias(Sqltweaking::class, 'Model.Sqltweaking')
->share('Model.Sqltweaking', [$this, 'getModelSqltweaking'], true); ->share('Model.Sqltweaking', [$this, 'getSqltweaking'], true);
$container->alias(Sqldump::class, 'Model.Sqldump') $container->alias(Sqldump::class, 'Model.Sqldump')
->share('Model.Sqldump', [$this, 'getModelSqldump'], true); ->share('Model.Sqldump', [$this, 'getSqldump'], true);
$container->alias(Whmcs::class, 'Model.Whmcs') $container->alias(Whmcs::class, 'Model.Whmcs')
->share('Model.Whmcs', [$this, 'getModelWhmcs'], true); ->share('Model.Whmcs', [$this, 'getWhmcs'], true);
$container->alias(Filesfolders::class, 'Model.Filesfolders')
->share('Model.Filesfolders', [$this, 'getFilesfolders'], true);
$container->alias(Modifieddate::class, 'Model.Modifieddate') $container->alias(Modifieddate::class, 'Model.Modifieddate')
->share('Model.Modifieddate', [$this, 'getModifieddate'], true); ->share('Model.Modifieddate', [$this, 'getModifieddate'], true);
@ -180,25 +207,38 @@ class Model implements ServiceProviderInterface
$container->alias(Createdate::class, 'Model.Createdate') $container->alias(Createdate::class, 'Model.Createdate')
->share('Model.Createdate', [$this, 'getCreatedate'], true); ->share('Model.Createdate', [$this, 'getCreatedate'], true);
$container->alias(Router::class, 'Model.Router')
->share('Model.Router', [$this, 'getRouter'], true);
$container->alias(Updateserver::class, 'Model.Updateserver') $container->alias(Updateserver::class, 'Model.Updateserver')
->share('Model.Updateserver', [$this, 'getUpdateserver'], true); ->share('Model.Updateserver', [$this, 'getUpdateserver'], true);
$container->alias(Filesfolders::class, 'Model.Filesfolders')
->share('Model.Filesfolders', [$this, 'getModelFilesfolders'], true);
$container->alias(ServerLoad::class, 'Model.Server.Load')
->share('Model.Server.Load', [$this, 'getServerLoad'], true);
} }
/** /**
* Get the Joomla plugins Model * Get The Load Class.
*
* @param Container $container The DI container.
*
* @return ServerLoad
* @since 3.2.0
*/
public function getServerLoad(Container $container): ServerLoad
{
return new ServerLoad(
$container->get('Crypt'),
$container->get('Table')
);
}
/**
* Get The Joomlaplugins Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Joomlaplugins * @return Joomlaplugins
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelJoomlaplugins(Container $container): Joomlaplugins public function getJoomlaplugins(Container $container): Joomlaplugins
{ {
return new Joomlaplugins( return new Joomlaplugins(
$container->get('Joomlaplugin.Data') $container->get('Joomlaplugin.Data')
@ -206,14 +246,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the Joomla modules Model * Get The Joomlamodules Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Joomlamodules * @return Joomlamodules
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelJoomlamodules(Container $container): Joomlamodules public function getJoomlamodules(Container $container): Joomlamodules
{ {
return new Joomlamodules( return new Joomlamodules(
$container->get('Joomlamodule.Data') $container->get('Joomlamodule.Data')
@ -221,14 +261,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the history component Model * Get The Historycomponent Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Historycomponent * @return Historycomponent
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelHistorycomponent(Container $container): Historycomponent public function getHistorycomponent(Container $container): Historycomponent
{ {
return new Historycomponent( return new Historycomponent(
$container->get('Config'), $container->get('Config'),
@ -238,14 +278,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the custom admin views Model * Get The Customadminviews Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Customadminviews * @return Customadminviews
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCustomadminviews(Container $container): Customadminviews public function getCustomadminviews(Container $container): Customadminviews
{ {
return new Customadminviews( return new Customadminviews(
$container->get('Customview.Data'), $container->get('Customview.Data'),
@ -254,14 +294,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the ajax custom view Model * Get The Ajaxcustomview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Ajaxcustomview * @return Ajaxcustomview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelAjaxcustomview(Container $container): Ajaxcustomview public function getAjaxcustomview(Container $container): Ajaxcustomview
{ {
return new Ajaxcustomview( return new Ajaxcustomview(
$container->get('Config'), $container->get('Config'),
@ -270,14 +310,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the javascript custom view Model * Get The Javascriptcustomview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Javascriptcustomview * @return Javascriptcustomview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelJavascriptcustomview(Container $container): Javascriptcustomview public function getJavascriptcustomview(Container $container): Javascriptcustomview
{ {
return new Javascriptcustomview( return new Javascriptcustomview(
$container->get('Customcode'), $container->get('Customcode'),
@ -286,14 +326,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the css custom view Model * Get The Csscustomview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Csscustomview * @return Csscustomview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCsscustomview(Container $container): Csscustomview public function getCsscustomview(Container $container): Csscustomview
{ {
return new Csscustomview( return new Csscustomview(
$container->get('Customcode') $container->get('Customcode')
@ -301,14 +341,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the php custom view Model * Get The Phpcustomview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Phpcustomview * @return Phpcustomview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelPhpcustomview(Container $container): Phpcustomview public function getPhpcustomview(Container $container): Phpcustomview
{ {
return new Phpcustomview( return new Phpcustomview(
$container->get('Customcode'), $container->get('Customcode'),
@ -319,14 +359,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the dynamic get Model * Get The Dynamicget Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Dynamicget * @return Dynamicget
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelDynamicget(Container $container): Dynamicget public function getDynamicget(Container $container): Dynamicget
{ {
return new Dynamicget( return new Dynamicget(
$container->get('Config'), $container->get('Config'),
@ -340,14 +380,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the libraries Model * Get The Libraries Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Libraries * @return Libraries
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelLibraries(Container $container): Libraries public function getLibraries(Container $container): Libraries
{ {
return new Libraries( return new Libraries(
$container->get('Config'), $container->get('Config'),
@ -357,14 +397,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the site views Model * Get The Siteviews Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Siteviews * @return Siteviews
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelSiteviews(Container $container): Siteviews public function getSiteviews(Container $container): Siteviews
{ {
return new Siteviews( return new Siteviews(
$container->get('Customview.Data'), $container->get('Customview.Data'),
@ -373,27 +413,27 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the permissions Model * Get The Permissions Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Permissions * @return Permissions
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelPermissions(Container $container): Permissions public function getPermissions(Container $container): Permissions
{ {
return new Permissions(); return new Permissions();
} }
/** /**
* Get the admin view history Model * Get The Historyadminview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Historyadminview * @return Historyadminview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelHistoryadminview(Container $container): Historyadminview public function getHistoryadminview(Container $container): Historyadminview
{ {
return new Historyadminview( return new Historyadminview(
$container->get('Config'), $container->get('Config'),
@ -403,14 +443,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the MySQL settings Model * Get The Mysqlsettings Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Mysqlsettings * @return Mysqlsettings
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelMysqlsettings(Container $container): Mysqlsettings public function getMysqlsettings(Container $container): Mysqlsettings
{ {
return new Mysqlsettings( return new Mysqlsettings(
$container->get('Config'), $container->get('Config'),
@ -419,14 +459,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the Sql Model * Get The Sql Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Sql * @return Sql
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelSql(Container $container): Sql public function getSql(Container $container): Sql
{ {
return new Sql( return new Sql(
$container->get('Customcode.Dispenser'), $container->get('Customcode.Dispenser'),
@ -435,14 +475,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the custom alias Model * Get The Customalias Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Customalias * @return Customalias
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCustomalias(Container $container): Customalias public function getCustomalias(Container $container): Customalias
{ {
return new Customalias( return new Customalias(
$container->get('Compiler.Builder.Custom.Alias'), $container->get('Compiler.Builder.Custom.Alias'),
@ -451,14 +491,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the Admin Ajax Model * Get The Ajaxadmin Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Ajaxadmin * @return Ajaxadmin
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelAjaxadmin(Container $container): Ajaxadmin public function getAjaxadmin(Container $container): Ajaxadmin
{ {
return new Ajaxadmin( return new Ajaxadmin(
$container->get('Config'), $container->get('Config'),
@ -468,14 +508,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the custom import scripts Model * Get The Customimportscripts Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Customimportscripts * @return Customimportscripts
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCustomimportscripts(Container $container): Customimportscripts public function getCustomimportscripts(Container $container): Customimportscripts
{ {
return new Customimportscripts( return new Customimportscripts(
$container->get('Customcode.Dispenser') $container->get('Customcode.Dispenser')
@ -483,14 +523,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the custom import scripts Model * Get The Custombuttons Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Custombuttons * @return Custombuttons
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCustombuttons(Container $container): Custombuttons public function getCustombuttons(Container $container): Custombuttons
{ {
return new Custombuttons( return new Custombuttons(
$container->get('Customcode'), $container->get('Customcode'),
@ -500,14 +540,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get The Model Loader Class. * Get The Loader Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Loader * @return Loader
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelLoader(Container $container): Loader public function getLoader(Container $container): Loader
{ {
return new Loader( return new Loader(
$container->get('Config'), $container->get('Config'),
@ -519,14 +559,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the php admin view Model * Get The Phpadminview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Phpadminview * @return Phpadminview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelPhpadminview(Container $container): Phpadminview public function getPhpadminview(Container $container): Phpadminview
{ {
return new Phpadminview( return new Phpadminview(
$container->get('Customcode.Dispenser'), $container->get('Customcode.Dispenser'),
@ -535,14 +575,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the Css Adminview Model * Get The Cssadminview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Cssadminview * @return Cssadminview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCssadminview(Container $container): Cssadminview public function getCssadminview(Container $container): Cssadminview
{ {
return new Cssadminview( return new Cssadminview(
$container->get('Customcode.Dispenser') $container->get('Customcode.Dispenser')
@ -550,14 +590,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the Javascript Adminview Model * Get The Javascriptadminview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Javascriptadminview * @return Javascriptadminview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelJavascriptadminview(Container $container): Javascriptadminview public function getJavascriptadminview(Container $container): Javascriptadminview
{ {
return new Javascriptadminview( return new Javascriptadminview(
$container->get('Customcode.Dispenser') $container->get('Customcode.Dispenser')
@ -565,14 +605,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the linked views Model * Get The Linkedviews Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Linkedviews * @return Linkedviews
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelLinkedviews(Container $container): Linkedviews public function getLinkedviews(Container $container): Linkedviews
{ {
return new Linkedviews( return new Linkedviews(
$container->get('Registry') $container->get('Registry')
@ -580,14 +620,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the relations Model * Get The Relations Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Relations * @return Relations
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelRelations(Container $container): Relations public function getRelations(Container $container): Relations
{ {
return new Relations( return new Relations(
$container->get('Config'), $container->get('Config'),
@ -600,14 +640,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the conditions Model * Get The Conditions Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Conditions * @return Conditions
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelConditions(Container $container): Conditions public function getConditions(Container $container): Conditions
{ {
return new Conditions( return new Conditions(
$container->get('Field.Type.Name'), $container->get('Field.Type.Name'),
@ -617,14 +657,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the fields Model * Get The Fields Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Fields * @return Fields
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelFields(Container $container): Fields public function getFields(Container $container): Fields
{ {
return new Fields( return new Fields(
$container->get('Config'), $container->get('Config'),
@ -639,14 +679,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the update sql Model * Get The Updatesql Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Updatesql * @return Updatesql
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelUpdatesql(Container $container): Updatesql public function getUpdatesql(Container $container): Updatesql
{ {
return new Updatesql( return new Updatesql(
$container->get('Registry') $container->get('Registry')
@ -654,29 +694,47 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the tabs Model * Get The Tabs Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Updatesql * @return Tabs
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelTabs(Container $container): Tabs public function getTabs(Container $container): Tabs
{ {
return new Tabs(); return new Tabs();
} }
/** /**
* Get the custom tabs Model * Get The Customtabs Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Customtabs * @return Customtabs
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCustomtabs(Container $container): Customtabs public function getCustomtabs(Container $container): Customtabs
{ {
return new Customtabs( if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('Model.J' . $this->targetVersion . '.Customtabs');
}
/**
* Get The CustomtabsJ3 Class.
*
* @param Container $container The DI container.
*
* @return CustomtabsJ3
* @since 3.2.0
*/
public function getCustomtabsJ3(Container $container): CustomtabsJ3
{
return new CustomtabsJ3(
$container->get('Config'), $container->get('Config'),
$container->get('Compiler.Builder.Custom.Tabs'), $container->get('Compiler.Builder.Custom.Tabs'),
$container->get('Language'), $container->get('Language'),
@ -686,14 +744,52 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the admin views Model * Get The CustomtabsJ4 Class.
*
* @param Container $container The DI container.
*
* @return CustomtabsJ4
* @since 3.2.0
*/
public function getCustomtabsJ4(Container $container): CustomtabsJ4
{
return new CustomtabsJ4(
$container->get('Config'),
$container->get('Compiler.Builder.Custom.Tabs'),
$container->get('Language'),
$container->get('Placeholder'),
$container->get('Customcode')
);
}
/**
* Get The CustomtabsJ5 Class.
*
* @param Container $container The DI container.
*
* @return CustomtabsJ5
* @since 3.2.0
*/
public function getCustomtabsJ5(Container $container): CustomtabsJ5
{
return new CustomtabsJ5(
$container->get('Config'),
$container->get('Compiler.Builder.Custom.Tabs'),
$container->get('Language'),
$container->get('Placeholder'),
$container->get('Customcode')
);
}
/**
* Get The Adminviews Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Adminviews * @return Adminviews
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelAdminviews(Container $container): Adminviews public function getAdminviews(Container $container): Adminviews
{ {
return new Adminviews( return new Adminviews(
$container->get('Config'), $container->get('Config'),
@ -704,14 +800,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the SQL tweaking Model * Get The Sqltweaking Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Sqltweaking * @return Sqltweaking
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelSqltweaking(Container $container): Sqltweaking public function getSqltweaking(Container $container): Sqltweaking
{ {
return new Sqltweaking( return new Sqltweaking(
$container->get('Registry') $container->get('Registry')
@ -719,14 +815,14 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the SQL dump Model * Get The Sqldump Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Sqldump * @return Sqldump
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelSqldump(Container $container): Sqldump public function getSqldump(Container $container): Sqldump
{ {
return new Sqldump( return new Sqldump(
$container->get('Registry') $container->get('Registry')
@ -734,20 +830,33 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the whmcs Model * Get The Whmcs Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Whmcs * @return Whmcs
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelWhmcs(Container $container): Whmcs public function getWhmcs(Container $container): Whmcs
{ {
return new Whmcs(); return new Whmcs();
} }
/** /**
* Get the modified date Model * Get The Filesfolders Class.
*
* @param Container $container The DI container.
*
* @return Filesfolders
* @since 3.2.0
*/
public function getFilesfolders(Container $container): Filesfolders
{
return new Filesfolders();
}
/**
* Get The Modifieddate Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
@ -760,7 +869,7 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the create date Model * Get The Createdate Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
@ -773,7 +882,24 @@ class Model implements ServiceProviderInterface
} }
/** /**
* Get the update server Model * Get The Router Class.
*
* @param Container $container The DI container.
*
* @return Router
* @since 3.2.0
*/
public function getRouter(Container $container): Router
{
return new Router(
$container->get('Config'),
$container->get('Customcode.Dispenser'),
$container->get('Compiler.Builder.Router')
);
}
/**
* Get The Updateserver Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
@ -783,35 +909,6 @@ class Model implements ServiceProviderInterface
public function getUpdateserver(Container $container): Updateserver public function getUpdateserver(Container $container): Updateserver
{ {
return new Updateserver(); return new Updateserver();
}
/**
* Get the files folders Model
*
* @param Container $container The DI container.
*
* @return Filesfolders
* @since 3.2.0
*/
public function getModelFilesfolders(Container $container): Filesfolders
{
return new Filesfolders();
}
/**
* Get the Server Model Server Loader class
*
* @param Container $container The DI container.
*
* @return ServerLoad
* @since 3.2.0
*/
public function getServerLoad(Container $container): ServerLoad
{
return new ServerLoad(
$container->get('Crypt'),
$container->get('Table')
);
} }
} }

View File

@ -1,3 +1,11 @@
/**
* Current Joomla Version Being Build
*
* @var int
* @since 3.2.0
**/
protected $targetVersion;
/** /**
* Registers the service provider with a DI container. * Registers the service provider with a DI container.
* *
@ -8,107 +16,122 @@
*/ */
public function register(Container $container) public function register(Container $container)
{ {
$container->alias(ServerLoad::class, 'Model.Server.Load')
->share('Model.Server.Load', [$this, 'getServerLoad'], true);
$container->alias(Joomlaplugins::class, 'Model.Joomlaplugins') $container->alias(Joomlaplugins::class, 'Model.Joomlaplugins')
->share('Model.Joomlaplugins', [$this, 'getModelJoomlaplugins'], true); ->share('Model.Joomlaplugins', [$this, 'getJoomlaplugins'], true);
$container->alias(Joomlamodules::class, 'Model.Joomlamodules') $container->alias(Joomlamodules::class, 'Model.Joomlamodules')
->share('Model.Joomlamodules', [$this, 'getModelJoomlamodules'], true); ->share('Model.Joomlamodules', [$this, 'getJoomlamodules'], true);
$container->alias(Historycomponent::class, 'Model.Historycomponent') $container->alias(Historycomponent::class, 'Model.Historycomponent')
->share('Model.Historycomponent', [$this, 'getModelHistorycomponent'], true); ->share('Model.Historycomponent', [$this, 'getHistorycomponent'], true);
$container->alias(Customadminviews::class, 'Model.Customadminviews') $container->alias(Customadminviews::class, 'Model.Customadminviews')
->share('Model.Customadminviews', [$this, 'getModelCustomadminviews'], true); ->share('Model.Customadminviews', [$this, 'getCustomadminviews'], true);
$container->alias(Ajaxcustomview::class, 'Model.Ajaxcustomview') $container->alias(Ajaxcustomview::class, 'Model.Ajaxcustomview')
->share('Model.Ajaxcustomview', [$this, 'getModelAjaxcustomview'], true); ->share('Model.Ajaxcustomview', [$this, 'getAjaxcustomview'], true);
$container->alias(Javascriptcustomview::class, 'Model.Javascriptcustomview') $container->alias(Javascriptcustomview::class, 'Model.Javascriptcustomview')
->share('Model.Javascriptcustomview', [$this, 'getModelJavascriptcustomview'], true); ->share('Model.Javascriptcustomview', [$this, 'getJavascriptcustomview'], true);
$container->alias(Csscustomview::class, 'Model.Csscustomview') $container->alias(Csscustomview::class, 'Model.Csscustomview')
->share('Model.Csscustomview', [$this, 'getModelCsscustomview'], true); ->share('Model.Csscustomview', [$this, 'getCsscustomview'], true);
$container->alias(Phpcustomview::class, 'Model.Phpcustomview') $container->alias(Phpcustomview::class, 'Model.Phpcustomview')
->share('Model.Phpcustomview', [$this, 'getModelPhpcustomview'], true); ->share('Model.Phpcustomview', [$this, 'getPhpcustomview'], true);
$container->alias(Dynamicget::class, 'Model.Dynamicget') $container->alias(Dynamicget::class, 'Model.Dynamicget')
->share('Model.Dynamicget', [$this, 'getModelDynamicget'], true); ->share('Model.Dynamicget', [$this, 'getDynamicget'], true);
$container->alias(Libraries::class, 'Model.Libraries') $container->alias(Libraries::class, 'Model.Libraries')
->share('Model.Libraries', [$this, 'getModelLibraries'], true); ->share('Model.Libraries', [$this, 'getLibraries'], true);
$container->alias(Siteviews::class, 'Model.Siteviews') $container->alias(Siteviews::class, 'Model.Siteviews')
->share('Model.Siteviews', [$this, 'getModelSiteviews'], true); ->share('Model.Siteviews', [$this, 'getSiteviews'], true);
$container->alias(Permissions::class, 'Model.Permissions') $container->alias(Permissions::class, 'Model.Permissions')
->share('Model.Permissions', [$this, 'getModelPermissions'], true); ->share('Model.Permissions', [$this, 'getPermissions'], true);
$container->alias(Historyadminview::class, 'Model.Historyadminview') $container->alias(Historyadminview::class, 'Model.Historyadminview')
->share('Model.Historyadminview', [$this, 'getModelHistoryadminview'], true); ->share('Model.Historyadminview', [$this, 'getHistoryadminview'], true);
$container->alias(Mysqlsettings::class, 'Model.Mysqlsettings') $container->alias(Mysqlsettings::class, 'Model.Mysqlsettings')
->share('Model.Mysqlsettings', [$this, 'getModelMysqlsettings'], true); ->share('Model.Mysqlsettings', [$this, 'getMysqlsettings'], true);
$container->alias(Sql::class, 'Model.Sql') $container->alias(Sql::class, 'Model.Sql')
->share('Model.Sql', [$this, 'getModelSql'], true); ->share('Model.Sql', [$this, 'getSql'], true);
$container->alias(Customalias::class, 'Model.Customalias') $container->alias(Customalias::class, 'Model.Customalias')
->share('Model.Customalias', [$this, 'getModelCustomalias'], true); ->share('Model.Customalias', [$this, 'getCustomalias'], true);
$container->alias(Ajaxadmin::class, 'Model.Ajaxadmin') $container->alias(Ajaxadmin::class, 'Model.Ajaxadmin')
->share('Model.Ajaxadmin', [$this, 'getModelAjaxadmin'], true); ->share('Model.Ajaxadmin', [$this, 'getAjaxadmin'], true);
$container->alias(Customimportscripts::class, 'Model.Customimportscripts') $container->alias(Customimportscripts::class, 'Model.Customimportscripts')
->share('Model.Customimportscripts', [$this, 'getModelCustomimportscripts'], true); ->share('Model.Customimportscripts', [$this, 'getCustomimportscripts'], true);
$container->alias(Custombuttons::class, 'Model.Custombuttons') $container->alias(Custombuttons::class, 'Model.Custombuttons')
->share('Model.Custombuttons', [$this, 'getModelCustombuttons'], true); ->share('Model.Custombuttons', [$this, 'getCustombuttons'], true);
$container->alias(Loader::class, 'Model.Loader') $container->alias(Loader::class, 'Model.Loader')
->share('Model.Loader', [$this, 'getModelLoader'], true); ->share('Model.Loader', [$this, 'getLoader'], true);
$container->alias(Phpadminview::class, 'Model.Phpadminview') $container->alias(Phpadminview::class, 'Model.Phpadminview')
->share('Model.Phpadminview', [$this, 'getModelPhpadminview'], true); ->share('Model.Phpadminview', [$this, 'getPhpadminview'], true);
$container->alias(Cssadminview::class, 'Model.Cssadminview') $container->alias(Cssadminview::class, 'Model.Cssadminview')
->share('Model.Cssadminview', [$this, 'getModelCssadminview'], true); ->share('Model.Cssadminview', [$this, 'getCssadminview'], true);
$container->alias(Javascriptadminview::class, 'Model.Javascriptadminview') $container->alias(Javascriptadminview::class, 'Model.Javascriptadminview')
->share('Model.Javascriptadminview', [$this, 'getModelJavascriptadminview'], true); ->share('Model.Javascriptadminview', [$this, 'getJavascriptadminview'], true);
$container->alias(Linkedviews::class, 'Model.Linkedviews') $container->alias(Linkedviews::class, 'Model.Linkedviews')
->share('Model.Linkedviews', [$this, 'getModelLinkedviews'], true); ->share('Model.Linkedviews', [$this, 'getLinkedviews'], true);
$container->alias(Relations::class, 'Model.Relations') $container->alias(Relations::class, 'Model.Relations')
->share('Model.Relations', [$this, 'getModelRelations'], true); ->share('Model.Relations', [$this, 'getRelations'], true);
$container->alias(Conditions::class, 'Model.Conditions') $container->alias(Conditions::class, 'Model.Conditions')
->share('Model.Conditions', [$this, 'getModelConditions'], true); ->share('Model.Conditions', [$this, 'getConditions'], true);
$container->alias(Fields::class, 'Model.Fields') $container->alias(Fields::class, 'Model.Fields')
->share('Model.Fields', [$this, 'getModelFields'], true); ->share('Model.Fields', [$this, 'getFields'], true);
$container->alias(Updatesql::class, 'Model.Updatesql') $container->alias(Updatesql::class, 'Model.Updatesql')
->share('Model.Updatesql', [$this, 'getModelUpdatesql'], true); ->share('Model.Updatesql', [$this, 'getUpdatesql'], true);
$container->alias(Tabs::class, 'Model.Tabs') $container->alias(Tabs::class, 'Model.Tabs')
->share('Model.Tabs', [$this, 'getModelTabs'], true); ->share('Model.Tabs', [$this, 'getTabs'], true);
$container->alias(Customtabs::class, 'Model.Customtabs') $container->alias(Customtabs::class, 'Model.Customtabs')
->share('Model.Customtabs', [$this, 'getModelCustomtabs'], true); ->share('Model.Customtabs', [$this, 'getCustomtabs'], true);
$container->alias(CustomtabsJ3::class, 'Model.J3.Customtabs')
->share('Model.J3.Customtabs', [$this, 'getCustomtabsJ3'], true);
$container->alias(CustomtabsJ4::class, 'Model.J4.Customtabs')
->share('Model.J4.Customtabs', [$this, 'getCustomtabsJ4'], true);
$container->alias(CustomtabsJ5::class, 'Model.J5.Customtabs')
->share('Model.J5.Customtabs', [$this, 'getCustomtabsJ5'], true);
$container->alias(Adminviews::class, 'Model.Adminviews') $container->alias(Adminviews::class, 'Model.Adminviews')
->share('Model.Adminviews', [$this, 'getModelAdminviews'], true); ->share('Model.Adminviews', [$this, 'getAdminviews'], true);
$container->alias(Sqltweaking::class, 'Model.Sqltweaking') $container->alias(Sqltweaking::class, 'Model.Sqltweaking')
->share('Model.Sqltweaking', [$this, 'getModelSqltweaking'], true); ->share('Model.Sqltweaking', [$this, 'getSqltweaking'], true);
$container->alias(Sqldump::class, 'Model.Sqldump') $container->alias(Sqldump::class, 'Model.Sqldump')
->share('Model.Sqldump', [$this, 'getModelSqldump'], true); ->share('Model.Sqldump', [$this, 'getSqldump'], true);
$container->alias(Whmcs::class, 'Model.Whmcs') $container->alias(Whmcs::class, 'Model.Whmcs')
->share('Model.Whmcs', [$this, 'getModelWhmcs'], true); ->share('Model.Whmcs', [$this, 'getWhmcs'], true);
$container->alias(Filesfolders::class, 'Model.Filesfolders')
->share('Model.Filesfolders', [$this, 'getFilesfolders'], true);
$container->alias(Modifieddate::class, 'Model.Modifieddate') $container->alias(Modifieddate::class, 'Model.Modifieddate')
->share('Model.Modifieddate', [$this, 'getModifieddate'], true); ->share('Model.Modifieddate', [$this, 'getModifieddate'], true);
@ -116,25 +139,38 @@
$container->alias(Createdate::class, 'Model.Createdate') $container->alias(Createdate::class, 'Model.Createdate')
->share('Model.Createdate', [$this, 'getCreatedate'], true); ->share('Model.Createdate', [$this, 'getCreatedate'], true);
$container->alias(Router::class, 'Model.Router')
->share('Model.Router', [$this, 'getRouter'], true);
$container->alias(Updateserver::class, 'Model.Updateserver') $container->alias(Updateserver::class, 'Model.Updateserver')
->share('Model.Updateserver', [$this, 'getUpdateserver'], true); ->share('Model.Updateserver', [$this, 'getUpdateserver'], true);
$container->alias(Filesfolders::class, 'Model.Filesfolders')
->share('Model.Filesfolders', [$this, 'getModelFilesfolders'], true);
$container->alias(ServerLoad::class, 'Model.Server.Load')
->share('Model.Server.Load', [$this, 'getServerLoad'], true);
} }
/** /**
* Get the Joomla plugins Model * Get The Load Class.
*
* @param Container $container The DI container.
*
* @return ServerLoad
* @since 3.2.0
*/
public function getServerLoad(Container $container): ServerLoad
{
return new ServerLoad(
$container->get('Crypt'),
$container->get('Table')
);
}
/**
* Get The Joomlaplugins Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Joomlaplugins * @return Joomlaplugins
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelJoomlaplugins(Container $container): Joomlaplugins public function getJoomlaplugins(Container $container): Joomlaplugins
{ {
return new Joomlaplugins( return new Joomlaplugins(
$container->get('Joomlaplugin.Data') $container->get('Joomlaplugin.Data')
@ -142,14 +178,14 @@
} }
/** /**
* Get the Joomla modules Model * Get The Joomlamodules Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Joomlamodules * @return Joomlamodules
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelJoomlamodules(Container $container): Joomlamodules public function getJoomlamodules(Container $container): Joomlamodules
{ {
return new Joomlamodules( return new Joomlamodules(
$container->get('Joomlamodule.Data') $container->get('Joomlamodule.Data')
@ -157,14 +193,14 @@
} }
/** /**
* Get the history component Model * Get The Historycomponent Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Historycomponent * @return Historycomponent
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelHistorycomponent(Container $container): Historycomponent public function getHistorycomponent(Container $container): Historycomponent
{ {
return new Historycomponent( return new Historycomponent(
$container->get('Config'), $container->get('Config'),
@ -174,14 +210,14 @@
} }
/** /**
* Get the custom admin views Model * Get The Customadminviews Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Customadminviews * @return Customadminviews
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCustomadminviews(Container $container): Customadminviews public function getCustomadminviews(Container $container): Customadminviews
{ {
return new Customadminviews( return new Customadminviews(
$container->get('Customview.Data'), $container->get('Customview.Data'),
@ -190,14 +226,14 @@
} }
/** /**
* Get the ajax custom view Model * Get The Ajaxcustomview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Ajaxcustomview * @return Ajaxcustomview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelAjaxcustomview(Container $container): Ajaxcustomview public function getAjaxcustomview(Container $container): Ajaxcustomview
{ {
return new Ajaxcustomview( return new Ajaxcustomview(
$container->get('Config'), $container->get('Config'),
@ -206,14 +242,14 @@
} }
/** /**
* Get the javascript custom view Model * Get The Javascriptcustomview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Javascriptcustomview * @return Javascriptcustomview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelJavascriptcustomview(Container $container): Javascriptcustomview public function getJavascriptcustomview(Container $container): Javascriptcustomview
{ {
return new Javascriptcustomview( return new Javascriptcustomview(
$container->get('Customcode'), $container->get('Customcode'),
@ -222,14 +258,14 @@
} }
/** /**
* Get the css custom view Model * Get The Csscustomview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Csscustomview * @return Csscustomview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCsscustomview(Container $container): Csscustomview public function getCsscustomview(Container $container): Csscustomview
{ {
return new Csscustomview( return new Csscustomview(
$container->get('Customcode') $container->get('Customcode')
@ -237,14 +273,14 @@
} }
/** /**
* Get the php custom view Model * Get The Phpcustomview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Phpcustomview * @return Phpcustomview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelPhpcustomview(Container $container): Phpcustomview public function getPhpcustomview(Container $container): Phpcustomview
{ {
return new Phpcustomview( return new Phpcustomview(
$container->get('Customcode'), $container->get('Customcode'),
@ -255,14 +291,14 @@
} }
/** /**
* Get the dynamic get Model * Get The Dynamicget Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Dynamicget * @return Dynamicget
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelDynamicget(Container $container): Dynamicget public function getDynamicget(Container $container): Dynamicget
{ {
return new Dynamicget( return new Dynamicget(
$container->get('Config'), $container->get('Config'),
@ -276,14 +312,14 @@
} }
/** /**
* Get the libraries Model * Get The Libraries Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Libraries * @return Libraries
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelLibraries(Container $container): Libraries public function getLibraries(Container $container): Libraries
{ {
return new Libraries( return new Libraries(
$container->get('Config'), $container->get('Config'),
@ -293,14 +329,14 @@
} }
/** /**
* Get the site views Model * Get The Siteviews Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Siteviews * @return Siteviews
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelSiteviews(Container $container): Siteviews public function getSiteviews(Container $container): Siteviews
{ {
return new Siteviews( return new Siteviews(
$container->get('Customview.Data'), $container->get('Customview.Data'),
@ -309,27 +345,27 @@
} }
/** /**
* Get the permissions Model * Get The Permissions Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Permissions * @return Permissions
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelPermissions(Container $container): Permissions public function getPermissions(Container $container): Permissions
{ {
return new Permissions(); return new Permissions();
} }
/** /**
* Get the admin view history Model * Get The Historyadminview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Historyadminview * @return Historyadminview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelHistoryadminview(Container $container): Historyadminview public function getHistoryadminview(Container $container): Historyadminview
{ {
return new Historyadminview( return new Historyadminview(
$container->get('Config'), $container->get('Config'),
@ -339,14 +375,14 @@
} }
/** /**
* Get the MySQL settings Model * Get The Mysqlsettings Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Mysqlsettings * @return Mysqlsettings
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelMysqlsettings(Container $container): Mysqlsettings public function getMysqlsettings(Container $container): Mysqlsettings
{ {
return new Mysqlsettings( return new Mysqlsettings(
$container->get('Config'), $container->get('Config'),
@ -355,14 +391,14 @@
} }
/** /**
* Get the Sql Model * Get The Sql Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Sql * @return Sql
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelSql(Container $container): Sql public function getSql(Container $container): Sql
{ {
return new Sql( return new Sql(
$container->get('Customcode.Dispenser'), $container->get('Customcode.Dispenser'),
@ -371,14 +407,14 @@
} }
/** /**
* Get the custom alias Model * Get The Customalias Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Customalias * @return Customalias
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCustomalias(Container $container): Customalias public function getCustomalias(Container $container): Customalias
{ {
return new Customalias( return new Customalias(
$container->get('Compiler.Builder.Custom.Alias'), $container->get('Compiler.Builder.Custom.Alias'),
@ -387,14 +423,14 @@
} }
/** /**
* Get the Admin Ajax Model * Get The Ajaxadmin Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Ajaxadmin * @return Ajaxadmin
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelAjaxadmin(Container $container): Ajaxadmin public function getAjaxadmin(Container $container): Ajaxadmin
{ {
return new Ajaxadmin( return new Ajaxadmin(
$container->get('Config'), $container->get('Config'),
@ -404,14 +440,14 @@
} }
/** /**
* Get the custom import scripts Model * Get The Customimportscripts Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Customimportscripts * @return Customimportscripts
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCustomimportscripts(Container $container): Customimportscripts public function getCustomimportscripts(Container $container): Customimportscripts
{ {
return new Customimportscripts( return new Customimportscripts(
$container->get('Customcode.Dispenser') $container->get('Customcode.Dispenser')
@ -419,14 +455,14 @@
} }
/** /**
* Get the custom import scripts Model * Get The Custombuttons Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Custombuttons * @return Custombuttons
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCustombuttons(Container $container): Custombuttons public function getCustombuttons(Container $container): Custombuttons
{ {
return new Custombuttons( return new Custombuttons(
$container->get('Customcode'), $container->get('Customcode'),
@ -436,14 +472,14 @@
} }
/** /**
* Get The Model Loader Class. * Get The Loader Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Loader * @return Loader
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelLoader(Container $container): Loader public function getLoader(Container $container): Loader
{ {
return new Loader( return new Loader(
$container->get('Config'), $container->get('Config'),
@ -455,14 +491,14 @@
} }
/** /**
* Get the php admin view Model * Get The Phpadminview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Phpadminview * @return Phpadminview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelPhpadminview(Container $container): Phpadminview public function getPhpadminview(Container $container): Phpadminview
{ {
return new Phpadminview( return new Phpadminview(
$container->get('Customcode.Dispenser'), $container->get('Customcode.Dispenser'),
@ -471,14 +507,14 @@
} }
/** /**
* Get the Css Adminview Model * Get The Cssadminview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Cssadminview * @return Cssadminview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCssadminview(Container $container): Cssadminview public function getCssadminview(Container $container): Cssadminview
{ {
return new Cssadminview( return new Cssadminview(
$container->get('Customcode.Dispenser') $container->get('Customcode.Dispenser')
@ -486,14 +522,14 @@
} }
/** /**
* Get the Javascript Adminview Model * Get The Javascriptadminview Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Javascriptadminview * @return Javascriptadminview
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelJavascriptadminview(Container $container): Javascriptadminview public function getJavascriptadminview(Container $container): Javascriptadminview
{ {
return new Javascriptadminview( return new Javascriptadminview(
$container->get('Customcode.Dispenser') $container->get('Customcode.Dispenser')
@ -501,14 +537,14 @@
} }
/** /**
* Get the linked views Model * Get The Linkedviews Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Linkedviews * @return Linkedviews
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelLinkedviews(Container $container): Linkedviews public function getLinkedviews(Container $container): Linkedviews
{ {
return new Linkedviews( return new Linkedviews(
$container->get('Registry') $container->get('Registry')
@ -516,14 +552,14 @@
} }
/** /**
* Get the relations Model * Get The Relations Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Relations * @return Relations
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelRelations(Container $container): Relations public function getRelations(Container $container): Relations
{ {
return new Relations( return new Relations(
$container->get('Config'), $container->get('Config'),
@ -536,14 +572,14 @@
} }
/** /**
* Get the conditions Model * Get The Conditions Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Conditions * @return Conditions
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelConditions(Container $container): Conditions public function getConditions(Container $container): Conditions
{ {
return new Conditions( return new Conditions(
$container->get('Field.Type.Name'), $container->get('Field.Type.Name'),
@ -553,14 +589,14 @@
} }
/** /**
* Get the fields Model * Get The Fields Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Fields * @return Fields
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelFields(Container $container): Fields public function getFields(Container $container): Fields
{ {
return new Fields( return new Fields(
$container->get('Config'), $container->get('Config'),
@ -575,14 +611,14 @@
} }
/** /**
* Get the update sql Model * Get The Updatesql Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Updatesql * @return Updatesql
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelUpdatesql(Container $container): Updatesql public function getUpdatesql(Container $container): Updatesql
{ {
return new Updatesql( return new Updatesql(
$container->get('Registry') $container->get('Registry')
@ -590,29 +626,47 @@
} }
/** /**
* Get the tabs Model * Get The Tabs Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Updatesql * @return Tabs
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelTabs(Container $container): Tabs public function getTabs(Container $container): Tabs
{ {
return new Tabs(); return new Tabs();
} }
/** /**
* Get the custom tabs Model * Get The Customtabs Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Customtabs * @return Customtabs
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelCustomtabs(Container $container): Customtabs public function getCustomtabs(Container $container): Customtabs
{ {
return new Customtabs( if (empty($this->targetVersion))
{
$this->targetVersion = $container->get('Config')->joomla_version;
}
return $container->get('Model.J' . $this->targetVersion . '.Customtabs');
}
/**
* Get The CustomtabsJ3 Class.
*
* @param Container $container The DI container.
*
* @return CustomtabsJ3
* @since 3.2.0
*/
public function getCustomtabsJ3(Container $container): CustomtabsJ3
{
return new CustomtabsJ3(
$container->get('Config'), $container->get('Config'),
$container->get('Compiler.Builder.Custom.Tabs'), $container->get('Compiler.Builder.Custom.Tabs'),
$container->get('Language'), $container->get('Language'),
@ -622,14 +676,52 @@
} }
/** /**
* Get the admin views Model * Get The CustomtabsJ4 Class.
*
* @param Container $container The DI container.
*
* @return CustomtabsJ4
* @since 3.2.0
*/
public function getCustomtabsJ4(Container $container): CustomtabsJ4
{
return new CustomtabsJ4(
$container->get('Config'),
$container->get('Compiler.Builder.Custom.Tabs'),
$container->get('Language'),
$container->get('Placeholder'),
$container->get('Customcode')
);
}
/**
* Get The CustomtabsJ5 Class.
*
* @param Container $container The DI container.
*
* @return CustomtabsJ5
* @since 3.2.0
*/
public function getCustomtabsJ5(Container $container): CustomtabsJ5
{
return new CustomtabsJ5(
$container->get('Config'),
$container->get('Compiler.Builder.Custom.Tabs'),
$container->get('Language'),
$container->get('Placeholder'),
$container->get('Customcode')
);
}
/**
* Get The Adminviews Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Adminviews * @return Adminviews
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelAdminviews(Container $container): Adminviews public function getAdminviews(Container $container): Adminviews
{ {
return new Adminviews( return new Adminviews(
$container->get('Config'), $container->get('Config'),
@ -640,14 +732,14 @@
} }
/** /**
* Get the SQL tweaking Model * Get The Sqltweaking Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Sqltweaking * @return Sqltweaking
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelSqltweaking(Container $container): Sqltweaking public function getSqltweaking(Container $container): Sqltweaking
{ {
return new Sqltweaking( return new Sqltweaking(
$container->get('Registry') $container->get('Registry')
@ -655,14 +747,14 @@
} }
/** /**
* Get the SQL dump Model * Get The Sqldump Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Sqldump * @return Sqldump
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelSqldump(Container $container): Sqldump public function getSqldump(Container $container): Sqldump
{ {
return new Sqldump( return new Sqldump(
$container->get('Registry') $container->get('Registry')
@ -670,20 +762,33 @@
} }
/** /**
* Get the whmcs Model * Get The Whmcs Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
* @return Whmcs * @return Whmcs
* @since 3.2.0 * @since 3.2.0
*/ */
public function getModelWhmcs(Container $container): Whmcs public function getWhmcs(Container $container): Whmcs
{ {
return new Whmcs(); return new Whmcs();
} }
/** /**
* Get the modified date Model * Get The Filesfolders Class.
*
* @param Container $container The DI container.
*
* @return Filesfolders
* @since 3.2.0
*/
public function getFilesfolders(Container $container): Filesfolders
{
return new Filesfolders();
}
/**
* Get The Modifieddate Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
@ -696,7 +801,7 @@
} }
/** /**
* Get the create date Model * Get The Createdate Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
@ -709,7 +814,24 @@
} }
/** /**
* Get the update server Model * Get The Router Class.
*
* @param Container $container The DI container.
*
* @return Router
* @since 3.2.0
*/
public function getRouter(Container $container): Router
{
return new Router(
$container->get('Config'),
$container->get('Customcode.Dispenser'),
$container->get('Compiler.Builder.Router')
);
}
/**
* Get The Updateserver Class.
* *
* @param Container $container The DI container. * @param Container $container The DI container.
* *
@ -719,33 +841,4 @@
public function getUpdateserver(Container $container): Updateserver public function getUpdateserver(Container $container): Updateserver
{ {
return new Updateserver(); return new Updateserver();
}
/**
* Get the files folders Model
*
* @param Container $container The DI container.
*
* @return Filesfolders
* @since 3.2.0
*/
public function getModelFilesfolders(Container $container): Filesfolders
{
return new Filesfolders();
}
/**
* Get the Server Model Server Loader class
*
* @param Container $container The DI container.
*
* @return ServerLoad
* @since 3.2.0
*/
public function getServerLoad(Container $container): ServerLoad
{
return new ServerLoad(
$container->get('Crypt'),
$container->get('Table')
);
} }

View File

@ -133,38 +133,54 @@
"as": "default" "as": "default"
}, },
"use_selection30": { "use_selection30": {
"use": "fa8c1125-d370-4cb6-a7ff-eb32193c198c", "use": "fcf42c53-0967-4c87-9699-a4d86adfdadf",
"as": "default" "as": "Customtabs"
}, },
"use_selection31": { "use_selection31": {
"use": "fa8c1125-d370-4cb6-a7ff-eb32193c198c",
"as": "CustomtabsJ3"
},
"use_selection32": {
"use": "42648fb4-dfdc-4986-a180-69e5726a25c4",
"as": "CustomtabsJ4"
},
"use_selection42": {
"use": "92cc3144-1d3d-45b2-b49f-c7d356950033",
"as": "CustomtabsJ5"
},
"use_selection33": {
"use": "cebdcccb-24c5-46db-92de-63453852dcb8", "use": "cebdcccb-24c5-46db-92de-63453852dcb8",
"as": "default" "as": "default"
}, },
"use_selection32": { "use_selection34": {
"use": "e50cbac5-9c9d-4fd4-aa7a-5e830719ed26", "use": "e50cbac5-9c9d-4fd4-aa7a-5e830719ed26",
"as": "default" "as": "default"
}, },
"use_selection33": { "use_selection35": {
"use": "a6e1227c-1efe-407d-84ef-03c6989a6a88", "use": "a6e1227c-1efe-407d-84ef-03c6989a6a88",
"as": "default" "as": "default"
}, },
"use_selection34": { "use_selection36": {
"use": "af5beb21-214a-44f6-9090-7ea24c22e649", "use": "af5beb21-214a-44f6-9090-7ea24c22e649",
"as": "default" "as": "default"
}, },
"use_selection35": { "use_selection37": {
"use": "f4578c04-a81e-4218-b80d-b0612196eaf0", "use": "f4578c04-a81e-4218-b80d-b0612196eaf0",
"as": "default" "as": "default"
}, },
"use_selection36": { "use_selection38": {
"use": "9127e428-5dee-46cb-b3a9-ab5b91ea6df3", "use": "9127e428-5dee-46cb-b3a9-ab5b91ea6df3",
"as": "default" "as": "default"
}, },
"use_selection37": { "use_selection39": {
"use": "53cf9828-7ad4-4856-aac1-7c4c67bd3121", "use": "53cf9828-7ad4-4856-aac1-7c4c67bd3121",
"as": "default" "as": "default"
}, },
"use_selection38": { "use_selection40": {
"use": "402239e6-ceec-4ee0-af62-22d462417bf6",
"as": "default"
},
"use_selection41": {
"use": "1d0fd857-12ec-4f47-ab1c-124d85748e24", "use": "1d0fd857-12ec-4f47-ab1c-124d85748e24",
"as": "default" "as": "default"
} }

View File

@ -0,0 +1,92 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# final class Router (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator**
```uml
@startuml
class Router << (F,LightGreen) >> #RoyalBlue {
# Dispenser $dispenser
# Request $request
# Builder $builder
# DefaultConstructor $defaultconstructor
# ManualConstructor $manualconstructor
# DefaultMethods $defaultmethods
# ManualMethods $manualmethods
+ __construct(Dispenser $dispenser, Request $request, ...)
+ getConstructor() : string
+ getConstructorAfterParent() : string
+ getMethods() : string
- init() : void
- updateKeys() : void
}
note right of Router::__construct
Constructor.
since: 3.2.0
arguments:
Dispenser $dispenser
Request $request
Builder $builder
DefaultConstructor $defaultconstructor
ManualConstructor $manualconstructor
DefaultMethods $defaultmethods
ManualMethods $manualmethods
end note
note right of Router::getConstructor
Get Constructor Before Parent Call
since: 3.2.0
return: string
end note
note right of Router::getConstructorAfterParent
Get Constructor After Parent Call
since: 3.2.0
return: string
end note
note right of Router::getMethods
Get Methods
since: 3.2.0
return: string
end note
note right of Router::init
Get Constructor Before Parent Call
since: 3.2.0
return: void
end note
note right of Router::updateKeys
Update the keys
since: 3.2.0
return: void
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,263 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Creator;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\Dispenser;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Request;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Router as Builder;
use VDM\Joomla\Componentbuilder\Compiler\Creator\RouterConstructorDefault as DefaultConstructor;
use VDM\Joomla\Componentbuilder\Compiler\Creator\RouterConstructorManual as ManualConstructor;
use VDM\Joomla\Componentbuilder\Compiler\Creator\RouterMethodsDefault as DefaultMethods;
use VDM\Joomla\Componentbuilder\Compiler\Creator\RouterMethodsManual as ManualMethods;
use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\StringHelper;
/**
* Router Creator Class
*
* @since 3.2.0
*/
final class Router
{
/**
* The Dispenser Class.
*
* @var Dispenser
* @since 3.2.0
*/
protected Dispenser $dispenser;
/**
* The Request Class.
*
* @var Request
* @since 3.2.0
*/
protected Request $request;
/**
* The Router Class.
*
* @var Builder
* @since 3.2.0
*/
protected Builder $builder;
/**
* The RouterConstructorDefault Class.
*
* @var DefaultConstructor
* @since 3.2.0
*/
protected DefaultConstructor $defaultconstructor;
/**
* The RouterConstructorManual Class.
*
* @var ManualConstructor
* @since 3.2.0
*/
protected ManualConstructor $manualconstructor;
/**
* The RouterMethodsDefault Class.
*
* @var DefaultMethods
* @since 3.2.0
*/
protected DefaultMethods $defaultmethods;
/**
* The RouterMethodsManual Class.
*
* @var ManualMethods
* @since 3.2.0
*/
protected ManualMethods $manualmethods;
/**
* The Router Build Mode Before Parent Construct.
*
* @var int|null
* @since 3.2.0
*/
protected ?int $mode_before = null;
/**
* The Router Build Mode Methods.
*
* @var int|null
* @since 3.2.0
*/
protected ?int $mode_method = null;
/**
* Constructor.
*
* @param Dispenser $dispenser The Dispenser Class.
* @param Request $request The Request Class.
* @param Builder $builder The Router Class.
* @param DefaultConstructor $defaultconstructor The RouterConstructorDefault Class.
* @param ManualConstructor $manualconstructor The RouterConstructorManual Class.
* @param DefaultMethods $defaultmethods The RouterMethodsDefault Class.
* @param ManualMethods $manualmethods The RouterMethodsManual Class.
*
* @since 3.2.0
*/
public function __construct(Dispenser $dispenser, Request $request,
Builder $builder, DefaultConstructor $defaultconstructor,
ManualConstructor $manualconstructor,
DefaultMethods $defaultmethods,
ManualMethods $manualmethods)
{
$this->dispenser = $dispenser;
$this->request = $request;
$this->builder = $builder;
$this->defaultconstructor = $defaultconstructor;
$this->manualconstructor = $manualconstructor;
$this->defaultmethods = $defaultmethods;
$this->manualmethods = $manualmethods;
}
/**
* Get Constructor Before Parent Call
*
* @return string
* @since 3.2.0
*/
public function getConstructor(): string
{
$this->init();
if ($this->mode_before == 3)
{
return $this->dispenser->get(
'_site_router_', 'constructor_before_parent',
PHP_EOL . PHP_EOL, null, true
);
}
if ($this->mode_before == 2)
{
return $this->manualconstructor->get();
}
return $this->defaultconstructor->get();
}
/**
* Get Constructor After Parent Call
*
* @return string
* @since 3.2.0
*/
public function getConstructorAfterParent(): string
{
return $this->dispenser->get(
'_site_router_', 'constructor_after_parent',
PHP_EOL . PHP_EOL, null, true
);
}
/**
* Get Methods
*
* @return string
* @since 3.2.0
*/
public function getMethods(): string
{
$this->init();
if ($this->mode_method == 0)
{
return '';
}
if ($this->mode_method == 3)
{
return $this->dispenser->get(
'_site_router_', 'methods',
PHP_EOL . PHP_EOL, null, true
);
}
if ($this->mode_before == 2 && $this->mode_method == 1)
{
return $this->manualmethods->get();
}
if ($this->mode_method == 1)
{
return $this->defaultmethods->get();
}
return '';
}
/**
* Get Constructor Before Parent Call
*
* @return void
* @since 3.2.0
*/
private function init(): void
{
if ($this->mode_before === null)
{
$this->mode_before = (int) $this->builder->get('mode_before', 0);
$this->mode_method = (int) $this->builder->get('mode_method', 0);
$this->updateKeys();
}
}
/**
* Update the keys
*
* @return void
* @since 3.2.0
*/
private function updateKeys(): void
{
if (($requests = $this->request->allActive()) === [] ||
($views = $this->builder->get('views')) === null)
{
return;
}
foreach ($views as &$router)
{
// if the key is null, and not 'id'
// then we must not update it
// since this is a list view and
// should not add an ID as key value
if ($router->key === 'id')
{
foreach ($requests as $key => $request)
{
if (isset($request[$router->view]))
{
$router->key = $key;
}
}
}
}
unset($router);
$this->request->set('views', $views);
}
}

View File

@ -0,0 +1,229 @@
/**
* The Dispenser Class.
*
* @var Dispenser
* @since 3.2.0
*/
protected Dispenser $dispenser;
/**
* The Request Class.
*
* @var Request
* @since 3.2.0
*/
protected Request $request;
/**
* The Router Class.
*
* @var Builder
* @since 3.2.0
*/
protected Builder $builder;
/**
* The RouterConstructorDefault Class.
*
* @var DefaultConstructor
* @since 3.2.0
*/
protected DefaultConstructor $defaultconstructor;
/**
* The RouterConstructorManual Class.
*
* @var ManualConstructor
* @since 3.2.0
*/
protected ManualConstructor $manualconstructor;
/**
* The RouterMethodsDefault Class.
*
* @var DefaultMethods
* @since 3.2.0
*/
protected DefaultMethods $defaultmethods;
/**
* The RouterMethodsManual Class.
*
* @var ManualMethods
* @since 3.2.0
*/
protected ManualMethods $manualmethods;
/**
* The Router Build Mode Before Parent Construct.
*
* @var int|null
* @since 3.2.0
*/
protected ?int $mode_before = null;
/**
* The Router Build Mode Methods.
*
* @var int|null
* @since 3.2.0
*/
protected ?int $mode_method = null;
/**
* Constructor.
*
* @param Dispenser $dispenser The Dispenser Class.
* @param Request $request The Request Class.
* @param Builder $builder The Router Class.
* @param DefaultConstructor $defaultconstructor The RouterConstructorDefault Class.
* @param ManualConstructor $manualconstructor The RouterConstructorManual Class.
* @param DefaultMethods $defaultmethods The RouterMethodsDefault Class.
* @param ManualMethods $manualmethods The RouterMethodsManual Class.
*
* @since 3.2.0
*/
public function __construct(Dispenser $dispenser, Request $request,
Builder $builder, DefaultConstructor $defaultconstructor,
ManualConstructor $manualconstructor,
DefaultMethods $defaultmethods,
ManualMethods $manualmethods)
{
$this->dispenser = $dispenser;
$this->request = $request;
$this->builder = $builder;
$this->defaultconstructor = $defaultconstructor;
$this->manualconstructor = $manualconstructor;
$this->defaultmethods = $defaultmethods;
$this->manualmethods = $manualmethods;
}
/**
* Get Constructor Before Parent Call
*
* @return string
* @since 3.2.0
*/
public function getConstructor(): string
{
$this->init();
if ($this->mode_before == 3)
{
return $this->dispenser->get(
'_site_router_', 'constructor_before_parent',
PHP_EOL . PHP_EOL, null, true
);
}
if ($this->mode_before == 2)
{
return $this->manualconstructor->get();
}
return $this->defaultconstructor->get();
}
/**
* Get Constructor After Parent Call
*
* @return string
* @since 3.2.0
*/
public function getConstructorAfterParent(): string
{
return $this->dispenser->get(
'_site_router_', 'constructor_after_parent',
PHP_EOL . PHP_EOL, null, true
);
}
/**
* Get Methods
*
* @return string
* @since 3.2.0
*/
public function getMethods(): string
{
$this->init();
if ($this->mode_method == 0)
{
return '';
}
if ($this->mode_method == 3)
{
return $this->dispenser->get(
'_site_router_', 'methods',
PHP_EOL . PHP_EOL, null, true
);
}
if ($this->mode_before == 2 && $this->mode_method == 1)
{
return $this->manualmethods->get();
}
if ($this->mode_method == 1)
{
return $this->defaultmethods->get();
}
return '';
}
/**
* Get Constructor Before Parent Call
*
* @return void
* @since 3.2.0
*/
private function init(): void
{
if ($this->mode_before === null)
{
$this->mode_before = (int) $this->builder->get('mode_before', 0);
$this->mode_method = (int) $this->builder->get('mode_method', 0);
$this->updateKeys();
}
}
/**
* Update the keys
*
* @return void
* @since 3.2.0
*/
private function updateKeys(): void
{
if (($requests = $this->request->allActive()) === [] ||
($views = $this->builder->get('views')) === null)
{
return;
}
foreach ($views as &$router)
{
// if the key is null, and not 'id'
// then we must not update it
// since this is a list view and
// should not add an ID as key value
if ($router->key === 'id')
{
foreach ($requests as $key => $request)
{
if (isset($request[$router->view]))
{
$router->key = $key;
}
}
}
}
unset($router);
$this->request->set('views', $views);
}

View File

@ -0,0 +1,55 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "1294a7c7-46fb-4527-a69d-f8db830fd39a",
"implements": null,
"load_selection": null,
"name": "Router",
"power_version": "1.0.0",
"system_name": "JCB.Compiler.Creator.Router",
"type": "final class",
"use_selection": {
"use_selection0": {
"use": "f1dc6430-fb54-452e-aa53-ce32ae93db88",
"as": "default"
},
"use_selection1": {
"use": "98419ff3-6628-4539-8365-37f88378bced",
"as": "default"
},
"use_selection2": {
"use": "4a4cf7a3-d0f9-439e-96fb-82d7a4ae0cf5",
"as": "Builder"
},
"use_selection3": {
"use": "e5278bf3-6dfb-42a0-b699-148b5ab8e45f",
"as": "DefaultConstructor"
},
"use_selection4": {
"use": "ec7bdbf9-8377-446e-9f40-64e23ae96b59",
"as": "ManualConstructor"
},
"use_selection5": {
"use": "17c590ed-8a44-485c-9be8-9a144a6b7429",
"as": "DefaultMethods"
},
"use_selection6": {
"use": "6034587d-82a3-4b19-ac58-40507f79122a",
"as": "ManualMethods"
},
"use_selection7": {
"use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a",
"as": "default"
},
"use_selection8": {
"use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef",
"as": "default"
}
},
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.Router",
"description": "Router Creator Class\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -0,0 +1,52 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# final class InputButton (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive**
```uml
@startuml
class InputButton << (F,LightGreen) >> #RoyalBlue {
# Config $config
# Placeholder $placeholder
# Permission $permission
+ __construct(Config $config, Placeholder $placeholder, ...)
+ get(array $fieldData) : string
}
note right of InputButton::__construct
Constructor.
since: 3.2.0
arguments:
Config $config
Placeholder $placeholder
Permission $permission
end note
note right of InputButton::get
get Add Button To List Field Input (getInput tweak)
since: 3.2.0
return: string
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,345 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive;
use VDM\Joomla\Componentbuilder\Compiler\Config;
use VDM\Joomla\Componentbuilder\Compiler\Placeholder;
use VDM\Joomla\Componentbuilder\Compiler\Creator\Permission;
use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Placefix;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\InputButtonInterface;
/**
* Compiler Field Input Button
*
* @since 3.2.0
*/
final class InputButton implements InputButtonInterface
{
/**
* The Config Class.
*
* @var Config
* @since 3.2.0
*/
protected Config $config;
/**
* The Placeholder Class.
*
* @var Placeholder
* @since 3.2.0
*/
protected Placeholder $placeholder;
/**
* The Permission Class.
*
* @var Permission
* @since 3.2.0
*/
protected Permission $permission;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Placeholder $placeholder The Placeholder Class.
* @param Permission $permission The Permission Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Placeholder $placeholder,
Permission $permission)
{
$this->config = $config;
$this->placeholder = $placeholder;
$this->permission = $permission;
}
/**
* get Add Button To List Field Input (getInput tweak)
*
* @param array $fieldData The field custom data
*
* @return string of getInput class on success empty string otherwise
* @since 3.2.0
*/
public function get(array $fieldData): string
{
// make sure hte view values are set
if (isset($fieldData['add_button'])
&& ($fieldData['add_button'] === 'true'
|| 1 == $fieldData['add_button'])
&& isset($fieldData['view'])
&& isset($fieldData['views'])
&& StringHelper::check($fieldData['view'])
&& StringHelper::check($fieldData['views']))
{
// set local component
$local_component = "com_" . $this->config->component_code_name;
// check that the component value is set
if (!isset($fieldData['component'])
|| !StringHelper::check(
$fieldData['component']
))
{
$fieldData['component'] = $local_component;
}
// check that the component has the com_ value in it
if (strpos((string) $fieldData['component'], 'com_') === false
|| strpos((string) $fieldData['component'], '=') !== false)
{
$fieldData['component'] = "com_" . $fieldData['component'];
}
// make sure the component is update if # # # or [ [ [ component placeholder is used
if (strpos((string) $fieldData['component'], (string) Placefix::h()) !== false
|| strpos((string) $fieldData['component'], (string) Placefix::b()) !== false) // should not be needed... but
{
$fieldData['component'] = $this->placeholder->update_(
$fieldData['component']
);
}
// get core permissions
$coreLoad = false;
// add ref tags
$refLoad = true;
// fall back on the field component
$component = $fieldData['component'];
// check if we should add ref tags (since it only works well on local views)
if ($local_component !== $component)
{
// do not add ref tags
$refLoad = false;
}
// start building the add buttons/s
$addButton = array();
$addButton[] = PHP_EOL . PHP_EOL . Indent::_(1) . "/**";
$addButton[] = Indent::_(1) . " * Override to add new button";
$addButton[] = Indent::_(1) . " *";
$addButton[] = Indent::_(1)
. " * @return string The field input markup.";
$addButton[] = Indent::_(1) . " *";
$addButton[] = Indent::_(1) . " * @since 3.2";
$addButton[] = Indent::_(1) . " */";
$addButton[] = Indent::_(1) . "protected function getInput()";
$addButton[] = Indent::_(1) . "{";
$addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " see if we should add buttons";
$addButton[] = Indent::_(2)
. "\$set_button = \$this->getAttribute('button');";
$addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " get html";
$addButton[] = Indent::_(2) . "\$html = parent::getInput();";
$addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " if true set button";
$addButton[] = Indent::_(2) . "if (\$set_button === 'true')";
$addButton[] = Indent::_(2) . "{";
$addButton[] = Indent::_(3) . "\$button = array();";
$addButton[] = Indent::_(3) . "\$script = array();";
$addButton[] = Indent::_(3)
. "\$button_code_name = \$this->getAttribute('name');";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " get the input from url";
$addButton[] = Indent::_(3) . "\$app = Factory::getApplication();";
$addButton[] = Indent::_(3) . "\$jinput = \$app->input;";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " get the view name & id";
$addButton[] = Indent::_(3)
. "\$values = \$jinput->getArray(array(";
$addButton[] = Indent::_(4) . "'id' => 'int',";
$addButton[] = Indent::_(4) . "'view' => 'word'";
$addButton[] = Indent::_(3) . "));";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " check if new item";
$addButton[] = Indent::_(3) . "\$ref = '';";
$addButton[] = Indent::_(3) . "\$refJ = '';";
if ($refLoad)
{
$addButton[] = Indent::_(3)
. "if (!is_null(\$values['id']) && strlen(\$values['view']))";
$addButton[] = Indent::_(3) . "{";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " only load referral if not new item.";
$addButton[] = Indent::_(4)
. "\$ref = '&amp;ref=' . \$values['view'] . '&amp;refid=' . \$values['id'];";
$addButton[] = Indent::_(4)
. "\$refJ = '&ref=' . \$values['view'] . '&refid=' . \$values['id'];";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " get the return value.";
$addButton[] = Indent::_(4)
. "\$_uri = (string) \Joomla\CMS\Uri\Uri::getInstance();";
$addButton[] = Indent::_(4)
. "\$_return = urlencode(base64_encode(\$_uri));";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " load return value.";
$addButton[] = Indent::_(4)
. "\$ref .= '&amp;return=' . \$_return;";
$addButton[] = Indent::_(4)
. "\$refJ .= '&return=' . \$_return;";
$addButton[] = Indent::_(3) . "}";
}
else
{
$addButton[] = Indent::_(3)
. "if (!is_null(\$values['id']) && strlen(\$values['view']))";
$addButton[] = Indent::_(3) . "{";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " only load field details if not new item.";
$addButton[] = Indent::_(4)
. "\$ref = '&amp;field=' . \$values['view'] . '&amp;field_id=' . \$values['id'];";
$addButton[] = Indent::_(4)
. "\$refJ = '&field=' . \$values['view'] . '&field_id=' . \$values['id'];";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " get the return value.";
$addButton[] = Indent::_(4)
. "\$_uri = (string) \Joomla\CMS\Uri\Uri::getInstance();";
$addButton[] = Indent::_(4)
. "\$_return = urlencode(base64_encode(\$_uri));";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " load return value.";
$addButton[] = Indent::_(4)
. "\$ref = '&amp;return=' . \$_return;";
$addButton[] = Indent::_(4)
. "\$refJ = '&return=' . \$_return;";
$addButton[] = Indent::_(3) . "}";
}
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " get button label";
$addButton[] = Indent::_(3)
. "\$button_label = trim(\$button_code_name);";
$addButton[] = Indent::_(3)
. "\$button_label = preg_replace('/_+/', ' ', \$button_label);";
$addButton[] = Indent::_(3)
. "\$button_label = preg_replace('/\s+/', ' ', \$button_label);";
$addButton[] = Indent::_(3)
. "\$button_label = preg_replace(\"/[^A-Za-z ]/\", '', \$button_label);";
$addButton[] = Indent::_(3)
. "\$button_label = ucfirst(strtolower(\$button_label));";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " get user object";
$addButton[] = Indent::_(3) . "\$user = Factory::getApplication()->getIdentity();";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " only add if user allowed to create " . $fieldData['view'];
// check if the item has permissions.
$addButton[] = Indent::_(3) . "if (\$user->authorise('"
. $this->permission->getGlobal($fieldData['view'], 'core.create')
. "', '" . $component . "') && \$app->isClient('administrator')) // TODO for now only in admin area.";
$addButton[] = Indent::_(3) . "{";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " build Create button";
$addButton[] = Indent::_(4)
. "\$button[] = '<a id=\"'.\$button_code_name.'Create\" class=\"btn btn-small btn-success hasTooltip\" title=\"'.Text:"
. ":sprintf('" . $this->config->lang_prefix
. "_CREATE_NEW_S', \$button_label).'\" style=\"border-radius: 0px 4px 4px 0px;\"";
$addButton[] = Indent::_(5) . "href=\"index.php?option="
. $fieldData['component'] . "&amp;view=" . $fieldData['view']
. "&amp;layout=edit'.\$ref.'\" >";
$addButton[] = Indent::_(5)
. "<span class=\"icon-new icon-white\"></span></a>';";
$addButton[] = Indent::_(3) . "}";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " only add if user allowed to edit " . $fieldData['view'];
// check if the item has permissions.
$addButton[] = Indent::_(3) . "if (\$user->authorise('"
. $this->permission->getGlobal($fieldData['view'], 'core.edit')
. "', '" . $component . "') && \$app->isClient('administrator')) // TODO for now only in admin area.";
$addButton[] = Indent::_(3) . "{";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " build edit button";
$addButton[] = Indent::_(4)
. "\$button[] = '<a id=\"'.\$button_code_name.'Edit\" class=\"btn btn-small hasTooltip\" title=\"'.Text:"
. ":sprintf('" . $this->config->lang_prefix
. "_EDIT_S', \$button_label).'\" style=\"display: none; border-radius: 0px 4px 4px 0px;\" href=\"#\" >";
$addButton[] = Indent::_(5)
. "<span class=\"icon-edit\"></span></a>';";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " build script";
$addButton[] = Indent::_(4) . "\$script[] = \"";
$addButton[] = Indent::_(5) . "document.addEventListener('DOMContentLoaded', function() {";
$addButton[] = Indent::_(6)
. "document.getElementById('jform_\".\$button_code_name.\"').addEventListener('change', function(e) {";
$addButton[] = Indent::_(7) . "e.preventDefault();";
$addButton[] = Indent::_(7)
. "let \".\$button_code_name.\"Value = this.value;";
$addButton[] = Indent::_(7)
. "\".\$button_code_name.\"Button(\".\$button_code_name.\"Value);";
$addButton[] = Indent::_(6) . "});";
$addButton[] = Indent::_(6)
. "let \".\$button_code_name.\"Value = document.getElementById('jform_\".\$button_code_name.\"').value;";
$addButton[] = Indent::_(6)
. "\".\$button_code_name.\"Button(\".\$button_code_name.\"Value);";
$addButton[] = Indent::_(5) . "});";
$addButton[] = Indent::_(5)
. "function \".\$button_code_name.\"Button(value) {";
$addButton[] = Indent::_(6)
. "var createButton = document.getElementById('\".\$button_code_name.\"Create');";
$addButton[] = Indent::_(6)
. "var editButton = document.getElementById('\".\$button_code_name.\"Edit');";
$addButton[] = Indent::_(6)
. "if (value > 0) {"; // TODO not ideal since value may not be an (int)
$addButton[] = Indent::_(7) . "// hide the create button";
$addButton[] = Indent::_(7)
. "createButton.style.display = 'none';";
$addButton[] = Indent::_(7) . "// show edit button";
$addButton[] = Indent::_(7)
. "editButton.style.display = 'block';";
$addButton[] = Indent::_(7) . "let url = 'index.php?option="
. $fieldData['component'] . "&view=" . $fieldData['views']
. "&task=" . $fieldData['view']
. ".edit&id='+value+'\".\$refJ.\"';"; // TODO this value may not be the ID
$addButton[] = Indent::_(7)
. "editButton.setAttribute('href', url);";
$addButton[] = Indent::_(6) . "} else {";
$addButton[] = Indent::_(7) . "// show the create button";
$addButton[] = Indent::_(7)
. "createButton.style.display = 'block';";
$addButton[] = Indent::_(7) . "// hide edit button";
$addButton[] = Indent::_(7)
. "editButton.style.display = 'none';";
$addButton[] = Indent::_(6) . "}";
$addButton[] = Indent::_(5) . "}\";";
$addButton[] = Indent::_(3) . "}";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " check if button was created for " . $fieldData['view']
. " field.";
$addButton[] = Indent::_(3)
. "if (is_array(\$button) && count(\$button) > 0)";
$addButton[] = Indent::_(3) . "{";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " Load the needed script.";
$addButton[] = Indent::_(4)
. "\$document = Factory::getApplication()->getDocument();";
$addButton[] = Indent::_(4)
. "\$document->addScriptDeclaration(implode(' ',\$script));";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " return the button attached to input field.";
$addButton[] = Indent::_(4)
. "return '<div class=\"input-group\">' .\$html . implode('',\$button).'</div>';";
$addButton[] = Indent::_(3) . "}";
$addButton[] = Indent::_(2) . "}";
$addButton[] = Indent::_(2) . "return \$html;";
$addButton[] = Indent::_(1) . "}";
return implode(PHP_EOL, $addButton);
}
return '';
}
}

View File

@ -0,0 +1,312 @@
/**
* The Config Class.
*
* @var Config
* @since 3.2.0
*/
protected Config $config;
/**
* The Placeholder Class.
*
* @var Placeholder
* @since 3.2.0
*/
protected Placeholder $placeholder;
/**
* The Permission Class.
*
* @var Permission
* @since 3.2.0
*/
protected Permission $permission;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Placeholder $placeholder The Placeholder Class.
* @param Permission $permission The Permission Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Placeholder $placeholder,
Permission $permission)
{
$this->config = $config;
$this->placeholder = $placeholder;
$this->permission = $permission;
}
/**
* get Add Button To List Field Input (getInput tweak)
*
* @param array $fieldData The field custom data
*
* @return string of getInput class on success empty string otherwise
* @since 3.2.0
*/
public function get(array $fieldData): string
{
// make sure hte view values are set
if (isset($fieldData['add_button'])
&& ($fieldData['add_button'] === 'true'
|| 1 == $fieldData['add_button'])
&& isset($fieldData['view'])
&& isset($fieldData['views'])
&& StringHelper::check($fieldData['view'])
&& StringHelper::check($fieldData['views']))
{
// set local component
$local_component = "com_" . $this->config->component_code_name;
// check that the component value is set
if (!isset($fieldData['component'])
|| !StringHelper::check(
$fieldData['component']
))
{
$fieldData['component'] = $local_component;
}
// check that the component has the com_ value in it
if (strpos((string) $fieldData['component'], 'com_') === false
|| strpos((string) $fieldData['component'], '=') !== false)
{
$fieldData['component'] = "com_" . $fieldData['component'];
}
// make sure the component is update if # # # or [ [ [ component placeholder is used
if (strpos((string) $fieldData['component'], (string) Placefix::h()) !== false
|| strpos((string) $fieldData['component'], (string) Placefix::b()) !== false) // should not be needed... but
{
$fieldData['component'] = $this->placeholder->update_(
$fieldData['component']
);
}
// get core permissions
$coreLoad = false;
// add ref tags
$refLoad = true;
// fall back on the field component
$component = $fieldData['component'];
// check if we should add ref tags (since it only works well on local views)
if ($local_component !== $component)
{
// do not add ref tags
$refLoad = false;
}
// start building the add buttons/s
$addButton = array();
$addButton[] = PHP_EOL . PHP_EOL . Indent::_(1) . "/**";
$addButton[] = Indent::_(1) . " * Override to add new button";
$addButton[] = Indent::_(1) . " *";
$addButton[] = Indent::_(1)
. " * @return string The field input markup.";
$addButton[] = Indent::_(1) . " *";
$addButton[] = Indent::_(1) . " * @since 3.2";
$addButton[] = Indent::_(1) . " */";
$addButton[] = Indent::_(1) . "protected function getInput()";
$addButton[] = Indent::_(1) . "{";
$addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " see if we should add buttons";
$addButton[] = Indent::_(2)
. "\$set_button = \$this->getAttribute('button');";
$addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " get html";
$addButton[] = Indent::_(2) . "\$html = parent::getInput();";
$addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " if true set button";
$addButton[] = Indent::_(2) . "if (\$set_button === 'true')";
$addButton[] = Indent::_(2) . "{";
$addButton[] = Indent::_(3) . "\$button = array();";
$addButton[] = Indent::_(3) . "\$script = array();";
$addButton[] = Indent::_(3)
. "\$button_code_name = \$this->getAttribute('name');";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " get the input from url";
$addButton[] = Indent::_(3) . "\$app = Factory::getApplication();";
$addButton[] = Indent::_(3) . "\$jinput = \$app->input;";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " get the view name & id";
$addButton[] = Indent::_(3)
. "\$values = \$jinput->getArray(array(";
$addButton[] = Indent::_(4) . "'id' => 'int',";
$addButton[] = Indent::_(4) . "'view' => 'word'";
$addButton[] = Indent::_(3) . "));";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " check if new item";
$addButton[] = Indent::_(3) . "\$ref = '';";
$addButton[] = Indent::_(3) . "\$refJ = '';";
if ($refLoad)
{
$addButton[] = Indent::_(3)
. "if (!is_null(\$values['id']) && strlen(\$values['view']))";
$addButton[] = Indent::_(3) . "{";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " only load referral if not new item.";
$addButton[] = Indent::_(4)
. "\$ref = '&amp;ref=' . \$values['view'] . '&amp;refid=' . \$values['id'];";
$addButton[] = Indent::_(4)
. "\$refJ = '&ref=' . \$values['view'] . '&refid=' . \$values['id'];";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " get the return value.";
$addButton[] = Indent::_(4)
. "\$_uri = (string) \Joomla\CMS\Uri\Uri::getInstance();";
$addButton[] = Indent::_(4)
. "\$_return = urlencode(base64_encode(\$_uri));";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " load return value.";
$addButton[] = Indent::_(4)
. "\$ref .= '&amp;return=' . \$_return;";
$addButton[] = Indent::_(4)
. "\$refJ .= '&return=' . \$_return;";
$addButton[] = Indent::_(3) . "}";
}
else
{
$addButton[] = Indent::_(3)
. "if (!is_null(\$values['id']) && strlen(\$values['view']))";
$addButton[] = Indent::_(3) . "{";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " only load field details if not new item.";
$addButton[] = Indent::_(4)
. "\$ref = '&amp;field=' . \$values['view'] . '&amp;field_id=' . \$values['id'];";
$addButton[] = Indent::_(4)
. "\$refJ = '&field=' . \$values['view'] . '&field_id=' . \$values['id'];";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " get the return value.";
$addButton[] = Indent::_(4)
. "\$_uri = (string) \Joomla\CMS\Uri\Uri::getInstance();";
$addButton[] = Indent::_(4)
. "\$_return = urlencode(base64_encode(\$_uri));";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " load return value.";
$addButton[] = Indent::_(4)
. "\$ref = '&amp;return=' . \$_return;";
$addButton[] = Indent::_(4)
. "\$refJ = '&return=' . \$_return;";
$addButton[] = Indent::_(3) . "}";
}
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " get button label";
$addButton[] = Indent::_(3)
. "\$button_label = trim(\$button_code_name);";
$addButton[] = Indent::_(3)
. "\$button_label = preg_replace('/_+/', ' ', \$button_label);";
$addButton[] = Indent::_(3)
. "\$button_label = preg_replace('/\s+/', ' ', \$button_label);";
$addButton[] = Indent::_(3)
. "\$button_label = preg_replace(\"/[^A-Za-z ]/\", '', \$button_label);";
$addButton[] = Indent::_(3)
. "\$button_label = ucfirst(strtolower(\$button_label));";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " get user object";
$addButton[] = Indent::_(3) . "\$user = Factory::getApplication()->getIdentity();";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " only add if user allowed to create " . $fieldData['view'];
// check if the item has permissions.
$addButton[] = Indent::_(3) . "if (\$user->authorise('"
. $this->permission->getGlobal($fieldData['view'], 'core.create')
. "', '" . $component . "') && \$app->isClient('administrator')) // TODO for now only in admin area.";
$addButton[] = Indent::_(3) . "{";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " build Create button";
$addButton[] = Indent::_(4)
. "\$button[] = '<a id=\"'.\$button_code_name.'Create\" class=\"btn btn-small btn-success hasTooltip\" title=\"'.Text:"
. ":sprintf('" . $this->config->lang_prefix
. "_CREATE_NEW_S', \$button_label).'\" style=\"border-radius: 0px 4px 4px 0px;\"";
$addButton[] = Indent::_(5) . "href=\"index.php?option="
. $fieldData['component'] . "&amp;view=" . $fieldData['view']
. "&amp;layout=edit'.\$ref.'\" >";
$addButton[] = Indent::_(5)
. "<span class=\"icon-new icon-white\"></span></a>';";
$addButton[] = Indent::_(3) . "}";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " only add if user allowed to edit " . $fieldData['view'];
// check if the item has permissions.
$addButton[] = Indent::_(3) . "if (\$user->authorise('"
. $this->permission->getGlobal($fieldData['view'], 'core.edit')
. "', '" . $component . "') && \$app->isClient('administrator')) // TODO for now only in admin area.";
$addButton[] = Indent::_(3) . "{";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " build edit button";
$addButton[] = Indent::_(4)
. "\$button[] = '<a id=\"'.\$button_code_name.'Edit\" class=\"btn btn-small hasTooltip\" title=\"'.Text:"
. ":sprintf('" . $this->config->lang_prefix
. "_EDIT_S', \$button_label).'\" style=\"display: none; border-radius: 0px 4px 4px 0px;\" href=\"#\" >";
$addButton[] = Indent::_(5)
. "<span class=\"icon-edit\"></span></a>';";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " build script";
$addButton[] = Indent::_(4) . "\$script[] = \"";
$addButton[] = Indent::_(5) . "document.addEventListener('DOMContentLoaded', function() {";
$addButton[] = Indent::_(6)
. "document.getElementById('jform_\".\$button_code_name.\"').addEventListener('change', function(e) {";
$addButton[] = Indent::_(7) . "e.preventDefault();";
$addButton[] = Indent::_(7)
. "let \".\$button_code_name.\"Value = this.value;";
$addButton[] = Indent::_(7)
. "\".\$button_code_name.\"Button(\".\$button_code_name.\"Value);";
$addButton[] = Indent::_(6) . "});";
$addButton[] = Indent::_(6)
. "let \".\$button_code_name.\"Value = document.getElementById('jform_\".\$button_code_name.\"').value;";
$addButton[] = Indent::_(6)
. "\".\$button_code_name.\"Button(\".\$button_code_name.\"Value);";
$addButton[] = Indent::_(5) . "});";
$addButton[] = Indent::_(5)
. "function \".\$button_code_name.\"Button(value) {";
$addButton[] = Indent::_(6)
. "var createButton = document.getElementById('\".\$button_code_name.\"Create');";
$addButton[] = Indent::_(6)
. "var editButton = document.getElementById('\".\$button_code_name.\"Edit');";
$addButton[] = Indent::_(6)
. "if (value > 0) {"; // TODO not ideal since value may not be an (int)
$addButton[] = Indent::_(7) . "// hide the create button";
$addButton[] = Indent::_(7)
. "createButton.style.display = 'none';";
$addButton[] = Indent::_(7) . "// show edit button";
$addButton[] = Indent::_(7)
. "editButton.style.display = 'block';";
$addButton[] = Indent::_(7) . "let url = 'index.php?option="
. $fieldData['component'] . "&view=" . $fieldData['views']
. "&task=" . $fieldData['view']
. ".edit&id='+value+'\".\$refJ.\"';"; // TODO this value may not be the ID
$addButton[] = Indent::_(7)
. "editButton.setAttribute('href', url);";
$addButton[] = Indent::_(6) . "} else {";
$addButton[] = Indent::_(7) . "// show the create button";
$addButton[] = Indent::_(7)
. "createButton.style.display = 'block';";
$addButton[] = Indent::_(7) . "// hide edit button";
$addButton[] = Indent::_(7)
. "editButton.style.display = 'none';";
$addButton[] = Indent::_(6) . "}";
$addButton[] = Indent::_(5) . "}\";";
$addButton[] = Indent::_(3) . "}";
$addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " check if button was created for " . $fieldData['view']
. " field.";
$addButton[] = Indent::_(3)
. "if (is_array(\$button) && count(\$button) > 0)";
$addButton[] = Indent::_(3) . "{";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " Load the needed script.";
$addButton[] = Indent::_(4)
. "\$document = Factory::getApplication()->getDocument();";
$addButton[] = Indent::_(4)
. "\$document->addScriptDeclaration(implode(' ',\$script));";
$addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__)
. " return the button attached to input field.";
$addButton[] = Indent::_(4)
. "return '<div class=\"input-group\">' .\$html . implode('',\$button).'</div>';";
$addButton[] = Indent::_(3) . "}";
$addButton[] = Indent::_(2) . "}";
$addButton[] = Indent::_(2) . "return \$html;";
$addButton[] = Indent::_(1) . "}";
return implode(PHP_EOL, $addButton);
}
return '';
}

View File

@ -0,0 +1,49 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "163fa7ca-21bd-4e7f-a618-26fe10b870fe",
"implements": [
"c600f58c-3fe2-4d2d-b711-2660eab6effe"
],
"load_selection": null,
"name": "InputButton",
"power_version": "1.0.0",
"system_name": "JCB.Compiler.Field.J5.InputButton",
"type": "final class",
"use_selection": {
"use_selection0": {
"use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc",
"as": "default"
},
"use_selection1": {
"use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c",
"as": "default"
},
"use_selection2": {
"use": "7f01622a-74c9-4e67-b111-3eb488035206",
"as": "default"
},
"use_selection3": {
"use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef",
"as": "default"
},
"use_selection4": {
"use": "500f3a7f-c16d-4dd4-81b2-2df6776b5388",
"as": "default"
},
"use_selection5": {
"use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6",
"as": "default"
},
"use_selection6": {
"use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222",
"as": "default"
}
},
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Field.JoomlaFive.InputButton",
"description": "Compiler Field Input Button\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -142,7 +142,7 @@ class Historycomponent
if ($old_component && ObjectHelper::check($old_component)) if ($old_component && ObjectHelper::check($old_component))
{ {
$old_component_version = preg_replace( $old_component_version = preg_replace(
'/[^0-9.]+/', '', (string) $old_component->component_version '/^v/i', '', (string) $old_component->component_version
); );
if ($old_component_version != $this->config->component_version) if ($old_component_version != $this->config->component_version)
{ {

View File

@ -112,7 +112,7 @@
if ($old_component && ObjectHelper::check($old_component)) if ($old_component && ObjectHelper::check($old_component))
{ {
$old_component_version = preg_replace( $old_component_version = preg_replace(
'/[^0-9.]+/', '', (string) $old_component->component_version '/^v/i', '', (string) $old_component->component_version
); );
if ($old_component_version != $this->config->component_version) if ($old_component_version != $this->config->component_version)
{ {

View File

@ -0,0 +1,45 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# final class RouterMethodsDefault (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator**
```uml
@startuml
class RouterMethodsDefault << (F,LightGreen) >> #RoyalBlue {
# Router $router
+ __construct(Router $router)
+ get() : string
}
note right of RouterMethodsDefault::__construct
Constructor.
since: 3.2.0
end note
note right of RouterMethodsDefault::get
Get Methods Code
since: 3.2.0
return: string
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,137 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Creator;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Router;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line;
/**
* Router Methods Default Creator Class
*
* @since 3.2.0
*/
final class RouterMethodsDefault
{
/**
* The Router Class.
*
* @var Router
* @since 3.2.0
*/
protected Router $router;
/**
* Constructor.
*
* @param Router $router The Router Class.
*
* @since 3.2.0
*/
public function __construct(Router $router)
{
$this->router = $router;
}
/**
* Get Methods Code
*
* @return string
* @since 3.2.0
*/
public function get(): string
{
$views = $this->router->get('views');
if ($views !== null)
{
$code = [];
foreach ($views as $view)
{
// we only add these if we can get an ID (int) value
// else you will need to use the manual or customcode options
if (empty($view->key) || empty($view->alias))
{
continue;
}
$code[] = '';
$code[] = Indent::_(1) . "/**";
$code[] = Indent::_(1) . " * Method to get the segment(s) for {$view->view}";
$code[] = Indent::_(1) . " *";
$code[] = Indent::_(1) . " * @param string \$segment Segment of the article to retrieve the ID for";
$code[] = Indent::_(1) . " * @param array \$query The request that is parsed right now";
$code[] = Indent::_(1) . " *";
$code[] = Indent::_(1) . " * @return mixed The {$view->key} of this item or false";
$code[] = Indent::_(1) . " * @since 4.4.0";
$code[] = Indent::_(1) . " */";
$code[] = Indent::_(1) . "public function get{$view->View}Id(\$segment, \$query)";
$code[] = Indent::_(1) . "{";
$code[] = Indent::_(2) . "if (\$this->noIDs)";
$code[] = Indent::_(2) . "{";
$code[] = Indent::_(3) . "\$dbquery = \$this->db->getQuery(true);";
$code[] = Indent::_(3) . "\$dbquery->select(\$this->db->quoteName('{$view->key}'))";
$code[] = Indent::_(4) . "->from(\$this->db->quoteName('{$view->table}'))";
$code[] = Indent::_(4) . "->where(";
$code[] = Indent::_(5) . "[";
$code[] = Indent::_(6) . "\$this->db->quoteName('{$view->alias}') . ' = :alias'";
$code[] = Indent::_(5) . "]";
$code[] = Indent::_(4) . ")";
$code[] = Indent::_(4) . "->bind(':alias', \$segment);";
$code[] = Indent::_(3) . "\$this->db->setQuery(\$dbquery);";
$code[] = '';
$code[] = Indent::_(3) . "return (int) \$this->db->loadResult();";
$code[] = Indent::_(2) . "}";
$code[] = '';
$code[] = Indent::_(2) . "return (int) \$segment;";
$code[] = Indent::_(1) . "}";
$code[] = '';
$code[] = Indent::_(1) . "/**";
$code[] = Indent::_(1) . " * Method to get the segment(s) for {$view->view}";
$code[] = Indent::_(1) . " *";
$code[] = Indent::_(1) . " * @param string \$id ID of the contact to retrieve the segments for";
$code[] = Indent::_(1) . " * @param array \$query The request that is built right now";
$code[] = Indent::_(1) . " *";
$code[] = Indent::_(1) . " * @return array|string The segments of this item";
$code[] = Indent::_(1) . " * @since 4.4.0";
$code[] = Indent::_(1) . " */";
$code[] = Indent::_(1) . "public function get{$view->View}Segment(\$id, \$query)";
$code[] = Indent::_(1) . "{";
$code[] = Indent::_(2) . "if (strpos(\$id, ':') === false)";
$code[] = Indent::_(2) . "{";
$code[] = Indent::_(3) . "\$id = (int) \$id;";
$code[] = Indent::_(3) . "\$dbquery = \$this->db->getQuery(true);";
$code[] = Indent::_(3) . "\$dbquery->select(\$this->db->quoteName('{$view->alias}'))";
$code[] = Indent::_(4) . "->from(\$this->db->quoteName('{$view->table}'))";
$code[] = Indent::_(4) . "->where(\$this->db->quoteName('{$view->key}') . ' = :id')";
$code[] = Indent::_(4) . "->bind(':id', \$id, ParameterType::INTEGER);";
$code[] = Indent::_(3) . "\$this->db->setQuery(\$dbquery);";
$code[] = '';
$code[] = Indent::_(3) . "\$id .= ':' . \$this->db->loadResult();";
$code[] = Indent::_(2) . "}";
$code[] = '';
$code[] = Indent::_(2) . "if (\$this->noIDs)";
$code[] = Indent::_(2) . "{";
$code[] = Indent::_(3) . "list(\$void, \$segment) = explode(':', \$id, 2);";
$code[] = '';
$code[] = Indent::_(3) . "return [\$void => \$segment];";
$code[] = Indent::_(2) . "}";
$code[] = '';
$code[] = Indent::_(2) . "return [(int) \$id => \$id];";
$code[] = Indent::_(1) . "}";
}
return PHP_EOL . implode(PHP_EOL, $code);
}
return '';
}
}

View File

@ -0,0 +1,109 @@
/**
* The Router Class.
*
* @var Router
* @since 3.2.0
*/
protected Router $router;
/**
* Constructor.
*
* @param Router $router The Router Class.
*
* @since 3.2.0
*/
public function __construct(Router $router)
{
$this->router = $router;
}
/**
* Get Methods Code
*
* @return string
* @since 3.2.0
*/
public function get(): string
{
$views = $this->router->get('views');
if ($views !== null)
{
$code = [];
foreach ($views as $view)
{
// we only add these if we can get an ID (int) value
// else you will need to use the manual or customcode options
if (empty($view->key) || empty($view->alias))
{
continue;
}
$code[] = '';
$code[] = Indent::_(1) . "/**";
$code[] = Indent::_(1) . " * Method to get the segment(s) for {$view->view}";
$code[] = Indent::_(1) . " *";
$code[] = Indent::_(1) . " * @param string \$segment Segment of the article to retrieve the ID for";
$code[] = Indent::_(1) . " * @param array \$query The request that is parsed right now";
$code[] = Indent::_(1) . " *";
$code[] = Indent::_(1) . " * @return mixed The {$view->key} of this item or false";
$code[] = Indent::_(1) . " * @since 4.4.0";
$code[] = Indent::_(1) . " */";
$code[] = Indent::_(1) . "public function get{$view->View}Id(\$segment, \$query)";
$code[] = Indent::_(1) . "{";
$code[] = Indent::_(2) . "if (\$this->noIDs)";
$code[] = Indent::_(2) . "{";
$code[] = Indent::_(3) . "\$dbquery = \$this->db->getQuery(true);";
$code[] = Indent::_(3) . "\$dbquery->select(\$this->db->quoteName('{$view->key}'))";
$code[] = Indent::_(4) . "->from(\$this->db->quoteName('{$view->table}'))";
$code[] = Indent::_(4) . "->where(";
$code[] = Indent::_(5) . "[";
$code[] = Indent::_(6) . "\$this->db->quoteName('{$view->alias}') . ' = :alias'";
$code[] = Indent::_(5) . "]";
$code[] = Indent::_(4) . ")";
$code[] = Indent::_(4) . "->bind(':alias', \$segment);";
$code[] = Indent::_(3) . "\$this->db->setQuery(\$dbquery);";
$code[] = '';
$code[] = Indent::_(3) . "return (int) \$this->db->loadResult();";
$code[] = Indent::_(2) . "}";
$code[] = '';
$code[] = Indent::_(2) . "return (int) \$segment;";
$code[] = Indent::_(1) . "}";
$code[] = '';
$code[] = Indent::_(1) . "/**";
$code[] = Indent::_(1) . " * Method to get the segment(s) for {$view->view}";
$code[] = Indent::_(1) . " *";
$code[] = Indent::_(1) . " * @param string \$id ID of the contact to retrieve the segments for";
$code[] = Indent::_(1) . " * @param array \$query The request that is built right now";
$code[] = Indent::_(1) . " *";
$code[] = Indent::_(1) . " * @return array|string The segments of this item";
$code[] = Indent::_(1) . " * @since 4.4.0";
$code[] = Indent::_(1) . " */";
$code[] = Indent::_(1) . "public function get{$view->View}Segment(\$id, \$query)";
$code[] = Indent::_(1) . "{";
$code[] = Indent::_(2) . "if (strpos(\$id, ':') === false)";
$code[] = Indent::_(2) . "{";
$code[] = Indent::_(3) . "\$id = (int) \$id;";
$code[] = Indent::_(3) . "\$dbquery = \$this->db->getQuery(true);";
$code[] = Indent::_(3) . "\$dbquery->select(\$this->db->quoteName('{$view->alias}'))";
$code[] = Indent::_(4) . "->from(\$this->db->quoteName('{$view->table}'))";
$code[] = Indent::_(4) . "->where(\$this->db->quoteName('{$view->key}') . ' = :id')";
$code[] = Indent::_(4) . "->bind(':id', \$id, ParameterType::INTEGER);";
$code[] = Indent::_(3) . "\$this->db->setQuery(\$dbquery);";
$code[] = '';
$code[] = Indent::_(3) . "\$id .= ':' . \$this->db->loadResult();";
$code[] = Indent::_(2) . "}";
$code[] = '';
$code[] = Indent::_(2) . "if (\$this->noIDs)";
$code[] = Indent::_(2) . "{";
$code[] = Indent::_(3) . "list(\$void, \$segment) = explode(':', \$id, 2);";
$code[] = '';
$code[] = Indent::_(3) . "return [\$void => \$segment];";
$code[] = Indent::_(2) . "}";
$code[] = '';
$code[] = Indent::_(2) . "return [(int) \$id => \$id];";
$code[] = Indent::_(1) . "}";
}
return PHP_EOL . implode(PHP_EOL, $code);
}
return '';
}

View File

@ -0,0 +1,31 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "17c590ed-8a44-485c-9be8-9a144a6b7429",
"implements": null,
"load_selection": null,
"name": "RouterMethodsDefault",
"power_version": "1.0.0",
"system_name": "JCB.Compiler.Creator.RouterMethodsDefault",
"type": "final class",
"use_selection": {
"use_selection0": {
"use": "4a4cf7a3-d0f9-439e-96fb-82d7a4ae0cf5",
"as": "default"
},
"use_selection1": {
"use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6",
"as": "default"
},
"use_selection2": {
"use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222",
"as": "default"
}
},
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.RouterMethodsDefault",
"description": "Router Methods Default Creator Class\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -6,11 +6,11 @@
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# class InstallScript (Details) # final class InstallScript (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaThree** > namespace: **VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaThree**
```uml ```uml
@startuml @startuml
class InstallScript #Gold { class InstallScript << (F,LightGreen) >> #RoyalBlue {
# object $extension # object $extension
# array $methods # array $methods
# array $types # array $types
@ -21,6 +21,7 @@ class InstallScript #Gold {
# bool $preflightActive # bool $preflightActive
# bool $postflightActive # bool $postflightActive
+ get(object $extension) : string + get(object $extension) : string
# rest() : void
# build() : string # build() : string
# head() : string # head() : string
# construct() : string # construct() : string
@ -35,6 +36,13 @@ note right of InstallScript::get
return: string return: string
end note end note
note right of InstallScript::rest
Reset all bucket at the start of each build
since: 3.2.0
return: void
end note
note right of InstallScript::build note right of InstallScript::build
build the install class build the install class

View File

@ -25,7 +25,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Interfaces\GetScriptInterface;
* *
* @since 3.2.0 * @since 3.2.0
*/ */
class InstallScript implements GetScriptInterface final class InstallScript implements GetScriptInterface
{ {
/** /**
* The extension * The extension
@ -125,6 +125,9 @@ class InstallScript implements GetScriptInterface
*/ */
public function get(object $extension): string public function get(object $extension): string
{ {
// purge the object
$this->rest();
// loop over methods and types // loop over methods and types
foreach ($this->methods as $method) foreach ($this->methods as $method)
{ {
@ -160,6 +163,24 @@ class InstallScript implements GetScriptInterface
return $this->build(); return $this->build();
} }
/**
* Reset all bucket at the start of each build
*
* @return void
* @since 3.2.0
*/
protected function rest(): void
{
$this->construct = [];
$this->install = [];
$this->update = [];
$this->uninstall = [];
$this->preflightActive = false;
$this->preflightBucket = ['install' => [], 'uninstall' => [], 'discover_install' => [], 'update' => []];
$this->postflightActive = false;
$this->postflightBucket = ['install' => [], 'uninstall' => [], 'discover_install' => [], 'update' => []];
}
/** /**
* build the install class * build the install class
* *

View File

@ -96,6 +96,9 @@
*/ */
public function get(object $extension): string public function get(object $extension): string
{ {
// purge the object
$this->rest();
// loop over methods and types // loop over methods and types
foreach ($this->methods as $method) foreach ($this->methods as $method)
{ {
@ -131,6 +134,24 @@
return $this->build(); return $this->build();
} }
/**
* Reset all bucket at the start of each build
*
* @return void
* @since 3.2.0
*/
protected function rest(): void
{
$this->construct = [];
$this->install = [];
$this->update = [];
$this->uninstall = [];
$this->preflightActive = false;
$this->preflightBucket = ['install' => [], 'uninstall' => [], 'discover_install' => [], 'update' => []];
$this->postflightActive = false;
$this->postflightBucket = ['install' => [], 'uninstall' => [], 'discover_install' => [], 'update' => []];
}
/** /**
* build the install class * build the install class
* *

View File

@ -9,8 +9,8 @@
"load_selection": null, "load_selection": null,
"name": "InstallScript", "name": "InstallScript",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Compiler.Extension.JoomlaThree.InstallScript", "system_name": "JCB.Compiler.Extension.J3.InstallScript",
"type": "class", "type": "final class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
"use": "1aefb8f5-486f-4f00-adf9-696340b3254e", "use": "1aefb8f5-486f-4f00-adf9-696340b3254e",

View File

@ -24,12 +24,11 @@ class Header << (F,LightGreen) >> #RoyalBlue {
# array $headers # array $headers
# string $NamespacePrefix # string $NamespacePrefix
# string $ComponentName # string $ComponentName
# string $ComponentNameSpace # string $ComponentNamespace
+ __construct(Config $config, Event $event, ...) + __construct(Config $config, Event $event, ...)
+ get(string $context, string $codeName) : string + get(string $context, string $codeName) : string
# getHeaders(string $context) : array # getHeaders(string $context) : array
# setHelperClassHeader(array $headers, string $target_client) : void # setHelperClassHeader(array $headers, string $target_client) : void
# setChosenMultiSelectionHeaders(array $headers, string $nameListCode) : void
} }
note right of Header::__construct note right of Header::__construct
@ -70,13 +69,6 @@ note right of Header::setHelperClassHeader
since: 3.2.0 since: 3.2.0
return: void return: void
end note end note
note right of Header::setChosenMultiSelectionHeaders
Build chosen multi selection headers for the view
since: 3.2.0
return: void
end note
@enduml @enduml
``` ```

View File

@ -22,7 +22,6 @@ use VDM\Joomla\Componentbuilder\Compiler\Builder\Category;
use VDM\Joomla\Componentbuilder\Compiler\Builder\AccessSwitchList; use VDM\Joomla\Componentbuilder\Compiler\Builder\AccessSwitchList;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Filter; use VDM\Joomla\Componentbuilder\Compiler\Builder\Filter;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Tags; use VDM\Joomla\Componentbuilder\Compiler\Builder\Tags;
use VDM\Joomla\Utilities\String\NamespaceHelper;
use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\HeaderInterface; use VDM\Joomla\Componentbuilder\Compiler\Interfaces\HeaderInterface;
@ -145,7 +144,7 @@ final class Header implements HeaderInterface
* @var string * @var string
* @since 3.2.0 * @since 3.2.0
*/ */
protected string $ComponentNameSpace; protected string $ComponentNamespace;
/** /**
* Constructor. * Constructor.
@ -181,9 +180,9 @@ final class Header implements HeaderInterface
$this->tags = $tags; $this->tags = $tags;
// set some global values // set some global values
$this->NamespacePrefix = $this->config->get('namespace_prefix'); $this->NamespacePrefix = $this->placeholder->get('NamespacePrefix');
$this->ComponentName = $this->placeholder->get('Component'); $this->ComponentName = $this->placeholder->get('Component');
$this->ComponentNameSpace = NamespaceHelper::safeSegment($this->ComponentName); $this->ComponentNamespace = $this->placeholder->get('ComponentNamespace');
} }
/** /**
@ -200,6 +199,32 @@ final class Header implements HeaderInterface
// get static headers // get static headers
$headers = $this->getHeaders($context); $headers = $this->getHeaders($context);
// add to all except the helper classes
if ('admin.helper' !== $context && 'site.helper' !== $context)
{
$target = 'Administrator';
if ($this->config->get('build_target', 'admin') === 'site')
{
$target = 'Site';
}
$headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNamespace}\\{$target}\\Helper\\{$this->ComponentName}Helper;";
// we will add more as needed
switch ($context)
{
case 'site.view.model':
case 'site.views.model':
case 'site.view.html':
case 'site.views.html':
$headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNamespace}\\Site\\Helper\\RouteHelper;";
break;
default:
break;
}
}
// get dynamic headers // get dynamic headers
switch ($context) switch ($context)
{ {
@ -222,8 +247,15 @@ final class Header implements HeaderInterface
} }
break; break;
case 'admin.views': case 'admin.view':
$this->setChosenMultiSelectionHeaders($headers, $codeName); case 'custom.admin.view':
case 'custom.admin.views':
case 'site.admin.view':
$headers[] = '';
$headers[] = '/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */';
$headers[] = '$wa = $this->getDocument()->getWebAssetManager();';
$headers[] = '$wa->useScript(\'keepalive\')->useScript(\'form.validate\');';
$headers[] = 'Html::_(\'bootstrap.tooltip\');';
break; break;
case 'admin.view.model': case 'admin.view.model':
@ -239,18 +271,6 @@ final class Header implements HeaderInterface
break; break;
} }
// add to all except the helper classes
if ('admin.helper' !== $context && 'site.helper' !== $context)
{
$target = 'Administrator';
if ($this->config->get('build_target', 'admin') === 'site')
{
$target = 'Site';
}
$headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNameSpace}\\{$target}\\Helper\\{$this->ComponentName}Helper;";
}
// Trigger Event: jcb_ce_setClassHeader // Trigger Event: jcb_ce_setClassHeader
$this->event->trigger( $this->event->trigger(
'jcb_ce_setClassHeader', [&$context, &$codeName, &$headers] 'jcb_ce_setClassHeader', [&$context, &$codeName, &$headers]
@ -322,11 +342,6 @@ final class Header implements HeaderInterface
$headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;'; $headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;';
$headers[] = 'use Joomla\CMS\Layout\LayoutHelper;'; $headers[] = 'use Joomla\CMS\Layout\LayoutHelper;';
$headers[] = 'use Joomla\CMS\Router\Route;'; $headers[] = 'use Joomla\CMS\Router\Route;';
$headers[] = '';
$headers[] = '/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */';
$headers[] = '$wa = $this->getDocument()->getWebAssetManager();';
$headers[] = '$wa->useScript(\'keepalive\')->useScript(\'form.validate\');';
$headers[] = 'Html::_(\'bootstrap.tooltip\');';
break; break;
case 'admin.view.controller': case 'admin.view.controller':
@ -371,7 +386,7 @@ final class Header implements HeaderInterface
$headers[] = 'use Joomla\CMS\Plugin\PluginHelper;'; $headers[] = 'use Joomla\CMS\Plugin\PluginHelper;';
$headers[] = 'use Joomla\CMS\Toolbar\ToolbarHelper;'; $headers[] = 'use Joomla\CMS\Toolbar\ToolbarHelper;';
$headers[] = 'use Joomla\CMS\Document\Document;'; $headers[] = 'use Joomla\CMS\Document\Document;';
$headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNameSpace}\\Site\\Helper\\HeaderCheck;"; $headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNamespace}\\Site\\Helper\\HeaderCheck;";
break; break;
case 'custom.admin.view.html': case 'custom.admin.view.html':
@ -388,7 +403,7 @@ final class Header implements HeaderInterface
$headers[] = 'use Joomla\CMS\Plugin\PluginHelper;'; $headers[] = 'use Joomla\CMS\Plugin\PluginHelper;';
$headers[] = 'use Joomla\CMS\Toolbar\ToolbarHelper;'; $headers[] = 'use Joomla\CMS\Toolbar\ToolbarHelper;';
$headers[] = 'use Joomla\CMS\Document\Document;'; $headers[] = 'use Joomla\CMS\Document\Document;';
$headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNameSpace}\\{$target}\\Helper\\HeaderCheck;"; $headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNamespace}\\{$target}\\Helper\\HeaderCheck;";
break; break;
case 'admin.view.model': case 'admin.view.model':
@ -425,13 +440,29 @@ final class Header implements HeaderInterface
$headers[] = 'use Joomla\CMS\Session\Session;'; $headers[] = 'use Joomla\CMS\Session\Session;';
break; break;
case 'ajax.admin.model':
case 'ajax.site.model':
$headers[] = 'use Joomla\CMS\Application\CMSApplicationInterface;';
$headers[] = 'use Joomla\CMS\Component\ComponentHelper;';
$headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;';
$headers[] = 'use Joomla\CMS\Layout\LayoutHelper;';
$headers[] = 'use Joomla\CMS\MVC\Model\ListModel;';
$headers[] = 'use Joomla\CMS\MVC\Factory\MVCFactoryInterface;';
$headers[] = 'use Joomla\CMS\Plugin\PluginHelper;';
$headers[] = 'use Joomla\CMS\User\User;';
$headers[] = 'use Joomla\Utilities\ArrayHelper;';
$headers[] = 'use Joomla\Input\Input;';
$headers[] = 'use Joomla\CMS\Router\Route;';
$headers[] = 'use Joomla\CMS\Session\Session;';
$headers[] = 'use Joomla\CMS\Uri\Uri;';
$headers[] = 'use Joomla\Registry\Registry;';
break;
case 'dashboard.model': case 'dashboard.model':
$headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;'; $headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;';
$headers[] = 'use Joomla\CMS\Session\Session;'; $headers[] = 'use Joomla\CMS\Session\Session;';
$headers[] = 'use Joomla\CMS\Uri\Uri;'; $headers[] = 'use Joomla\CMS\Uri\Uri;';
case 'admin.views.model': case 'admin.views.model':
case 'ajax.admin.model':
case 'ajax.site.model':
case 'custom.admin.views.model': case 'custom.admin.views.model':
case 'site.views.model': case 'site.views.model':
$headers[] = 'use Joomla\CMS\Application\CMSApplicationInterface;'; $headers[] = 'use Joomla\CMS\Application\CMSApplicationInterface;';
@ -439,6 +470,7 @@ final class Header implements HeaderInterface
$headers[] = 'use Joomla\CMS\MVC\Model\ListModel;'; $headers[] = 'use Joomla\CMS\MVC\Model\ListModel;';
$headers[] = 'use Joomla\CMS\MVC\Factory\MVCFactoryInterface;'; $headers[] = 'use Joomla\CMS\MVC\Factory\MVCFactoryInterface;';
$headers[] = 'use Joomla\CMS\Plugin\PluginHelper;'; $headers[] = 'use Joomla\CMS\Plugin\PluginHelper;';
$headers[] = 'use Joomla\CMS\Router\Route;';
$headers[] = 'use Joomla\CMS\User\User;'; $headers[] = 'use Joomla\CMS\User\User;';
$headers[] = 'use Joomla\Utilities\ArrayHelper;'; $headers[] = 'use Joomla\Utilities\ArrayHelper;';
$headers[] = 'use Joomla\Input\Input;'; $headers[] = 'use Joomla\Input\Input;';
@ -491,14 +523,26 @@ final class Header implements HeaderInterface
$headers[] = 'use Joomla\CMS\Document\Document;'; $headers[] = 'use Joomla\CMS\Document\Document;';
break; break;
case 'site.component': case 'site.router':
$headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;'; $headers[] = 'use Joomla\CMS\Application\SiteApplication;';
$headers[] = 'use Joomla\CMS\MVC\Controller\BaseController;'; $headers[] = 'use Joomla\CMS\Categories\CategoryFactoryInterface;';
$headers[] = 'use Joomla\CMS\Component\ComponentHelper;';
$headers[] = 'use Joomla\CMS\Component\Router\RouterView;';
$headers[] = 'use Joomla\CMS\Component\Router\RouterViewConfiguration;';
$headers[] = 'use Joomla\CMS\Component\Router\Rules\MenuRules;';
$headers[] = 'use Joomla\CMS\Component\Router\Rules\NomenuRules;';
$headers[] = 'use Joomla\CMS\Component\Router\Rules\StandardRules;';
$headers[] = 'use Joomla\CMS\Menu\AbstractMenu;';
$headers[] = 'use Joomla\Database\DatabaseInterface;';
$headers[] = 'use Joomla\Database\ParameterType;';
$headers[] = 'use Joomla\Registry\Registry;';
break; break;
case 'site.view': case 'site.view':
case 'site.views': case 'site.views':
$headers[] = 'use Joomla\CMS\Router\Route;'; $headers[] = 'use Joomla\CMS\Router\Route;';
$headers[] = 'use Joomla\CMS\Layout\LayoutHelper;';
$headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;';
break; break;
case 'form.custom.field': case 'form.custom.field':
@ -534,110 +578,6 @@ final class Header implements HeaderInterface
$headers[] = 'use PhpOffice\PhpSpreadsheet\Spreadsheet;'; $headers[] = 'use PhpOffice\PhpSpreadsheet\Spreadsheet;';
$headers[] = 'use PhpOffice\PhpSpreadsheet\Writer\Xlsx;'; $headers[] = 'use PhpOffice\PhpSpreadsheet\Writer\Xlsx;';
} }
}
/**
* Build chosen multi selection headers for the view
*
* @param array $headers The headers array
* @param string $nameListCode The list view name
*
* @return void
* @since 3.2.0
*/
protected function setChosenMultiSelectionHeaders(&$headers, $nameListCode)
{
// check that the filter type is the new filter option (2 = topbar)
if ($this->adminfiltertype->get($nameListCode, 1) == 2)
{
// add category switch
$add_category = false;
if ($this->category->exists("{$nameListCode}.extension")
&& $this->category->get("{$nameListCode}.filter", 0) >= 1)
{
// is found so add it
$add_category = true;
}
// add accessLevels switch
$add_access_levels = false;
if ($this->accessswitchlist->exists($nameListCode))
{
// is found so add it
$add_access_levels = true;
}
// check if this view have filters
if ($this->filter->exists($nameListCode))
{
foreach ($this->filter->get($nameListCode) as $filter)
{
// we need this only for filters that are multi
if (isset($filter['multi']) && $filter['multi'] == 2)
{
// if this is a category we should make sure it must be added
if (!$add_category && $filter['type'] === 'category')
{
continue;
}
elseif ($add_category && $filter['type'] === 'category')
{
// already added here so no need to add again
$add_category = false;
}
// check if this was an access field
elseif ($filter['type'] === 'accesslevel')
{
// already added here so no need to add again
$add_access_levels = false;
}
// add the header
$headers[]
= 'Html::_(\'formbehavior.chosen\', \'.multiple'
. $filter['class']
. '\', null, [\'placeholder_text_multiple\' => \'- \' . Text::_(\''
. $filter['lang_select'] . '\') . \' -\']);';
}
elseif ($add_category && $filter['type'] === 'category')
{
// add the header
$headers[]
= 'Html::_(\'formbehavior.chosen\', \'.multipleCategories'
. '\', null, [\'placeholder_text_multiple\' => \'- \' . Text::_(\''
. $filter['lang_select'] . '\') . \' -\']);';
// already added here so no need to add again
$add_category = false;
}
}
}
// add category if not already added
if ($add_category)
{
// add the header
$headers[]
= 'Html::_(\'formbehavior.chosen\', \'.multipleCategories'
. '\', null, [\'placeholder_text_multiple\' => \'- \' . Text::_(\''
. $this->category->exists("{$nameListCode}.name", 'error')
. '\') . \' -\']);';
}
// add accessLevels if not already added
if ($add_access_levels)
{
// set the language strings for selection
$filter_name_select = 'Select Access';
$filter_name_select_lang = $this->config->lang_prefix . '_FILTER_'
. StringHelper::safe(
$filter_name_select, 'U'
);
// and to translation
$this->language->set(
$this->config->lang_target, $filter_name_select_lang, $filter_name_select
);
// add the header
$headers[]
= 'Html::_(\'formbehavior.chosen\', \'.multipleAccessLevels'
. '\', null, [\'placeholder_text_multiple\' => \'- \' . Text::_(\''
. $filter_name_select_lang . '\') . \' -\']);';
}
}
} }
} }

View File

@ -108,7 +108,7 @@
* @var string * @var string
* @since 3.2.0 * @since 3.2.0
*/ */
protected string $ComponentNameSpace; protected string $ComponentNamespace;
/** /**
* Constructor. * Constructor.
@ -144,9 +144,9 @@
$this->tags = $tags; $this->tags = $tags;
// set some global values // set some global values
$this->NamespacePrefix = $this->config->get('namespace_prefix'); $this->NamespacePrefix = $this->placeholder->get('NamespacePrefix');
$this->ComponentName = $this->placeholder->get('Component'); $this->ComponentName = $this->placeholder->get('Component');
$this->ComponentNameSpace = NamespaceHelper::safeSegment($this->ComponentName); $this->ComponentNamespace = $this->placeholder->get('ComponentNamespace');
} }
/** /**
@ -163,6 +163,32 @@
// get static headers // get static headers
$headers = $this->getHeaders($context); $headers = $this->getHeaders($context);
// add to all except the helper classes
if ('admin.helper' !== $context && 'site.helper' !== $context)
{
$target = 'Administrator';
if ($this->config->get('build_target', 'admin') === 'site')
{
$target = 'Site';
}
$headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNamespace}\\{$target}\\Helper\\{$this->ComponentName}Helper;";
// we will add more as needed
switch ($context)
{
case 'site.view.model':
case 'site.views.model':
case 'site.view.html':
case 'site.views.html':
$headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNamespace}\\Site\\Helper\\RouteHelper;";
break;
default:
break;
}
}
// get dynamic headers // get dynamic headers
switch ($context) switch ($context)
{ {
@ -185,8 +211,15 @@
} }
break; break;
case 'admin.views': case 'admin.view':
$this->setChosenMultiSelectionHeaders($headers, $codeName); case 'custom.admin.view':
case 'custom.admin.views':
case 'site.admin.view':
$headers[] = '';
$headers[] = '/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */';
$headers[] = '$wa = $this->getDocument()->getWebAssetManager();';
$headers[] = '$wa->useScript(\'keepalive\')->useScript(\'form.validate\');';
$headers[] = 'Html::_(\'bootstrap.tooltip\');';
break; break;
case 'admin.view.model': case 'admin.view.model':
@ -202,18 +235,6 @@
break; break;
} }
// add to all except the helper classes
if ('admin.helper' !== $context && 'site.helper' !== $context)
{
$target = 'Administrator';
if ($this->config->get('build_target', 'admin') === 'site')
{
$target = 'Site';
}
$headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNameSpace}\\{$target}\\Helper\\{$this->ComponentName}Helper;";
}
// Trigger Event: jcb_ce_setClassHeader // Trigger Event: jcb_ce_setClassHeader
$this->event->trigger( $this->event->trigger(
'jcb_ce_setClassHeader', [&$context, &$codeName, &$headers] 'jcb_ce_setClassHeader', [&$context, &$codeName, &$headers]
@ -285,11 +306,6 @@
$headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;'; $headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;';
$headers[] = 'use Joomla\CMS\Layout\LayoutHelper;'; $headers[] = 'use Joomla\CMS\Layout\LayoutHelper;';
$headers[] = 'use Joomla\CMS\Router\Route;'; $headers[] = 'use Joomla\CMS\Router\Route;';
$headers[] = '';
$headers[] = '/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */';
$headers[] = '$wa = $this->getDocument()->getWebAssetManager();';
$headers[] = '$wa->useScript(\'keepalive\')->useScript(\'form.validate\');';
$headers[] = 'Html::_(\'bootstrap.tooltip\');';
break; break;
case 'admin.view.controller': case 'admin.view.controller':
@ -334,7 +350,7 @@
$headers[] = 'use Joomla\CMS\Plugin\PluginHelper;'; $headers[] = 'use Joomla\CMS\Plugin\PluginHelper;';
$headers[] = 'use Joomla\CMS\Toolbar\ToolbarHelper;'; $headers[] = 'use Joomla\CMS\Toolbar\ToolbarHelper;';
$headers[] = 'use Joomla\CMS\Document\Document;'; $headers[] = 'use Joomla\CMS\Document\Document;';
$headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNameSpace}\\Site\\Helper\\HeaderCheck;"; $headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNamespace}\\Site\\Helper\\HeaderCheck;";
break; break;
case 'custom.admin.view.html': case 'custom.admin.view.html':
@ -351,7 +367,7 @@
$headers[] = 'use Joomla\CMS\Plugin\PluginHelper;'; $headers[] = 'use Joomla\CMS\Plugin\PluginHelper;';
$headers[] = 'use Joomla\CMS\Toolbar\ToolbarHelper;'; $headers[] = 'use Joomla\CMS\Toolbar\ToolbarHelper;';
$headers[] = 'use Joomla\CMS\Document\Document;'; $headers[] = 'use Joomla\CMS\Document\Document;';
$headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNameSpace}\\{$target}\\Helper\\HeaderCheck;"; $headers[] = "use {$this->NamespacePrefix}\\Component\\{$this->ComponentNamespace}\\{$target}\\Helper\\HeaderCheck;";
break; break;
case 'admin.view.model': case 'admin.view.model':
@ -388,13 +404,29 @@
$headers[] = 'use Joomla\CMS\Session\Session;'; $headers[] = 'use Joomla\CMS\Session\Session;';
break; break;
case 'ajax.admin.model':
case 'ajax.site.model':
$headers[] = 'use Joomla\CMS\Application\CMSApplicationInterface;';
$headers[] = 'use Joomla\CMS\Component\ComponentHelper;';
$headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;';
$headers[] = 'use Joomla\CMS\Layout\LayoutHelper;';
$headers[] = 'use Joomla\CMS\MVC\Model\ListModel;';
$headers[] = 'use Joomla\CMS\MVC\Factory\MVCFactoryInterface;';
$headers[] = 'use Joomla\CMS\Plugin\PluginHelper;';
$headers[] = 'use Joomla\CMS\User\User;';
$headers[] = 'use Joomla\Utilities\ArrayHelper;';
$headers[] = 'use Joomla\Input\Input;';
$headers[] = 'use Joomla\CMS\Router\Route;';
$headers[] = 'use Joomla\CMS\Session\Session;';
$headers[] = 'use Joomla\CMS\Uri\Uri;';
$headers[] = 'use Joomla\Registry\Registry;';
break;
case 'dashboard.model': case 'dashboard.model':
$headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;'; $headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;';
$headers[] = 'use Joomla\CMS\Session\Session;'; $headers[] = 'use Joomla\CMS\Session\Session;';
$headers[] = 'use Joomla\CMS\Uri\Uri;'; $headers[] = 'use Joomla\CMS\Uri\Uri;';
case 'admin.views.model': case 'admin.views.model':
case 'ajax.admin.model':
case 'ajax.site.model':
case 'custom.admin.views.model': case 'custom.admin.views.model':
case 'site.views.model': case 'site.views.model':
$headers[] = 'use Joomla\CMS\Application\CMSApplicationInterface;'; $headers[] = 'use Joomla\CMS\Application\CMSApplicationInterface;';
@ -402,6 +434,7 @@
$headers[] = 'use Joomla\CMS\MVC\Model\ListModel;'; $headers[] = 'use Joomla\CMS\MVC\Model\ListModel;';
$headers[] = 'use Joomla\CMS\MVC\Factory\MVCFactoryInterface;'; $headers[] = 'use Joomla\CMS\MVC\Factory\MVCFactoryInterface;';
$headers[] = 'use Joomla\CMS\Plugin\PluginHelper;'; $headers[] = 'use Joomla\CMS\Plugin\PluginHelper;';
$headers[] = 'use Joomla\CMS\Router\Route;';
$headers[] = 'use Joomla\CMS\User\User;'; $headers[] = 'use Joomla\CMS\User\User;';
$headers[] = 'use Joomla\Utilities\ArrayHelper;'; $headers[] = 'use Joomla\Utilities\ArrayHelper;';
$headers[] = 'use Joomla\Input\Input;'; $headers[] = 'use Joomla\Input\Input;';
@ -454,14 +487,26 @@
$headers[] = 'use Joomla\CMS\Document\Document;'; $headers[] = 'use Joomla\CMS\Document\Document;';
break; break;
case 'site.component': case 'site.router':
$headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;'; $headers[] = 'use Joomla\CMS\Application\SiteApplication;';
$headers[] = 'use Joomla\CMS\MVC\Controller\BaseController;'; $headers[] = 'use Joomla\CMS\Categories\CategoryFactoryInterface;';
$headers[] = 'use Joomla\CMS\Component\ComponentHelper;';
$headers[] = 'use Joomla\CMS\Component\Router\RouterView;';
$headers[] = 'use Joomla\CMS\Component\Router\RouterViewConfiguration;';
$headers[] = 'use Joomla\CMS\Component\Router\Rules\MenuRules;';
$headers[] = 'use Joomla\CMS\Component\Router\Rules\NomenuRules;';
$headers[] = 'use Joomla\CMS\Component\Router\Rules\StandardRules;';
$headers[] = 'use Joomla\CMS\Menu\AbstractMenu;';
$headers[] = 'use Joomla\Database\DatabaseInterface;';
$headers[] = 'use Joomla\Database\ParameterType;';
$headers[] = 'use Joomla\Registry\Registry;';
break; break;
case 'site.view': case 'site.view':
case 'site.views': case 'site.views':
$headers[] = 'use Joomla\CMS\Router\Route;'; $headers[] = 'use Joomla\CMS\Router\Route;';
$headers[] = 'use Joomla\CMS\Layout\LayoutHelper;';
$headers[] = 'use Joomla\CMS\HTML\HTMLHelper as Html;';
break; break;
case 'form.custom.field': case 'form.custom.field':
@ -497,108 +542,4 @@
$headers[] = 'use PhpOffice\PhpSpreadsheet\Spreadsheet;'; $headers[] = 'use PhpOffice\PhpSpreadsheet\Spreadsheet;';
$headers[] = 'use PhpOffice\PhpSpreadsheet\Writer\Xlsx;'; $headers[] = 'use PhpOffice\PhpSpreadsheet\Writer\Xlsx;';
} }
}
/**
* Build chosen multi selection headers for the view
*
* @param array $headers The headers array
* @param string $nameListCode The list view name
*
* @return void
* @since 3.2.0
*/
protected function setChosenMultiSelectionHeaders(&$headers, $nameListCode)
{
// check that the filter type is the new filter option (2 = topbar)
if ($this->adminfiltertype->get($nameListCode, 1) == 2)
{
// add category switch
$add_category = false;
if ($this->category->exists("{$nameListCode}.extension")
&& $this->category->get("{$nameListCode}.filter", 0) >= 1)
{
// is found so add it
$add_category = true;
}
// add accessLevels switch
$add_access_levels = false;
if ($this->accessswitchlist->exists($nameListCode))
{
// is found so add it
$add_access_levels = true;
}
// check if this view have filters
if ($this->filter->exists($nameListCode))
{
foreach ($this->filter->get($nameListCode) as $filter)
{
// we need this only for filters that are multi
if (isset($filter['multi']) && $filter['multi'] == 2)
{
// if this is a category we should make sure it must be added
if (!$add_category && $filter['type'] === 'category')
{
continue;
}
elseif ($add_category && $filter['type'] === 'category')
{
// already added here so no need to add again
$add_category = false;
}
// check if this was an access field
elseif ($filter['type'] === 'accesslevel')
{
// already added here so no need to add again
$add_access_levels = false;
}
// add the header
$headers[]
= 'Html::_(\'formbehavior.chosen\', \'.multiple'
. $filter['class']
. '\', null, [\'placeholder_text_multiple\' => \'- \' . Text::_(\''
. $filter['lang_select'] . '\') . \' -\']);';
}
elseif ($add_category && $filter['type'] === 'category')
{
// add the header
$headers[]
= 'Html::_(\'formbehavior.chosen\', \'.multipleCategories'
. '\', null, [\'placeholder_text_multiple\' => \'- \' . Text::_(\''
. $filter['lang_select'] . '\') . \' -\']);';
// already added here so no need to add again
$add_category = false;
}
}
}
// add category if not already added
if ($add_category)
{
// add the header
$headers[]
= 'Html::_(\'formbehavior.chosen\', \'.multipleCategories'
. '\', null, [\'placeholder_text_multiple\' => \'- \' . Text::_(\''
. $this->category->exists("{$nameListCode}.name", 'error')
. '\') . \' -\']);';
}
// add accessLevels if not already added
if ($add_access_levels)
{
// set the language strings for selection
$filter_name_select = 'Select Access';
$filter_name_select_lang = $this->config->lang_prefix . '_FILTER_'
. StringHelper::safe(
$filter_name_select, 'U'
);
// and to translation
$this->language->set(
$this->config->lang_target, $filter_name_select_lang, $filter_name_select
);
// add the header
$headers[]
= 'Html::_(\'formbehavior.chosen\', \'.multipleAccessLevels'
. '\', null, [\'placeholder_text_multiple\' => \'- \' . Text::_(\''
. $filter_name_select_lang . '\') . \' -\']);';
}
}
} }

View File

@ -9,7 +9,7 @@
"load_selection": null, "load_selection": null,
"name": "Header", "name": "Header",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Compiler.JoomlaFour.Header", "system_name": "JCB.Compiler.J4.Header",
"type": "final class", "type": "final class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
@ -52,10 +52,6 @@
"use": "8ca30d59-e56a-4cdd-bd8c-d9aad28f5903", "use": "8ca30d59-e56a-4cdd-bd8c-d9aad28f5903",
"as": "default" "as": "default"
}, },
"use_selection10": {
"use": "ce8cf834-6bac-44fb-941c-861f7e046cc0",
"as": "default"
},
"use_selection11": { "use_selection11": {
"use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a",
"as": "default" "as": "default"

View File

@ -73,7 +73,7 @@ final class Load
{ {
return $this->model->value( return $this->model->value(
$this->load->value( $this->load->value(
["a.${field}" => $field], ["a.{$field}" => $field],
['a' => 'power'], ['a' => 'power'],
$this->prefix($keys) $this->prefix($keys)
), ),

View File

@ -48,7 +48,7 @@
{ {
return $this->model->value( return $this->model->value(
$this->load->value( $this->load->value(
["a.${field}" => $field], ["a.{$field}" => $field],
['a' => 'power'], ['a' => 'power'],
$this->prefix($keys) $this->prefix($keys)
), ),

View File

@ -6,11 +6,11 @@
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# class CoreRule (Details) # final class CoreRule (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree** > namespace: **VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree**
```uml ```uml
@startuml @startuml
class CoreRule #Gold { class CoreRule << (F,LightGreen) >> #RoyalBlue {
# array $rules # array $rules
# string $path # string $path
+ __construct() + __construct()

View File

@ -22,7 +22,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\CoreRuleInterface;
* *
* @since 3.2.0 * @since 3.2.0
*/ */
class CoreRule implements CoreRuleInterface final class CoreRule implements CoreRuleInterface
{ {
/** /**
* Local Core Joomla Rules * Local Core Joomla Rules

View File

@ -10,7 +10,7 @@
"name": "CoreRule", "name": "CoreRule",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Compiler.Field.J3.CoreRule", "system_name": "JCB.Compiler.Field.J3.CoreRule",
"type": "class", "type": "final class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
"use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a",

View File

@ -6,11 +6,11 @@
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# class History (Details) # final class History (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\JoomlaFour** > namespace: **VDM\Joomla\Componentbuilder\Compiler\JoomlaFour**
```uml ```uml
@startuml @startuml
class History #Gold { class History << (F,LightGreen) >> #RoyalBlue {
# ?object $tmp # ?object $tmp
# Config $config # Config $config
# $db # $db

View File

@ -25,7 +25,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Interfaces\HistoryInterface;
* *
* @since 3.2.0 * @since 3.2.0
*/ */
class History implements HistoryInterface final class History implements HistoryInterface
{ {
/** /**
* History Item Object * History Item Object
@ -80,18 +80,9 @@ class History implements HistoryInterface
$query = $this->db->getQuery(true); $query = $this->db->getQuery(true);
$query->select('h.*'); $query->select('h.*');
$query->from('#__ucm_history AS h'); $query->from('#__history AS h');
$query->where( $query->where(
$this->db->quoteName('h.ucm_item_id') . ' = ' . (int) $id $this->db->quoteName('h.item_id') . ' = ' . $this->db->quote('com_componentbuilder.' . $type . '.' . (int) $id)
);
// Join over the content type for the type id
$query->join(
'LEFT', '#__content_types AS ct ON ct.type_id = h.ucm_type_id'
);
$query->where(
'ct.type_alias = ' . $this->db->quote(
'com_componentbuilder.' . $type
)
); );
$query->order('h.save_date DESC'); $query->order('h.save_date DESC');
$this->db->setQuery($query, 0, 1); $this->db->setQuery($query, 0, 1);
@ -108,9 +99,9 @@ class History implements HistoryInterface
$query = $this->db->getQuery(true); $query = $this->db->getQuery(true);
$query->select('h.*'); $query->select('h.*');
$query->from('#__ucm_history AS h'); $query->from('#__history AS h');
$query->where( $query->where(
$this->db->quoteName('h.ucm_item_id') . ' = ' . (int) $id $this->db->quoteName('h.item_id') . ' = ' . $this->db->quote('com_componentbuilder.' . $type . '.' . (int) $id)
); );
$query->where('h.keep_forever = 1'); $query->where('h.keep_forever = 1');
$query->where('h.version_note LIKE ' . $this->db->quote('%component%')); $query->where('h.version_note LIKE ' . $this->db->quote('%component%'));
@ -119,15 +110,6 @@ class History implements HistoryInterface
{ {
$query->where('h.version_id != ' . (int) $newActive->version_id); $query->where('h.version_id != ' . (int) $newActive->version_id);
} }
// Join over the content type for the type id
$query->join(
'LEFT', '#__content_types AS ct ON ct.type_id = h.ucm_type_id'
);
$query->where(
'ct.type_alias = ' . $this->db->quote(
'com_componentbuilder.' . $type
)
);
$query->order('h.save_date DESC'); $query->order('h.save_date DESC');
$this->db->setQuery($query); $this->db->setQuery($query);
$this->db->execute(); $this->db->execute();
@ -223,8 +205,7 @@ class History implements HistoryInterface
} }
// run the update // run the update
return $this->db->updateObject('#__ucm_history', $object, 'version_id'); return $this->db->updateObject('#__history', $object, 'version_id');
} }
} }

View File

@ -51,18 +51,9 @@
$query = $this->db->getQuery(true); $query = $this->db->getQuery(true);
$query->select('h.*'); $query->select('h.*');
$query->from('#__ucm_history AS h'); $query->from('#__history AS h');
$query->where( $query->where(
$this->db->quoteName('h.ucm_item_id') . ' = ' . (int) $id $this->db->quoteName('h.item_id') . ' = ' . $this->db->quote('com_componentbuilder.' . $type . '.' . (int) $id)
);
// Join over the content type for the type id
$query->join(
'LEFT', '#__content_types AS ct ON ct.type_id = h.ucm_type_id'
);
$query->where(
'ct.type_alias = ' . $this->db->quote(
'com_componentbuilder.' . $type
)
); );
$query->order('h.save_date DESC'); $query->order('h.save_date DESC');
$this->db->setQuery($query, 0, 1); $this->db->setQuery($query, 0, 1);
@ -79,9 +70,9 @@
$query = $this->db->getQuery(true); $query = $this->db->getQuery(true);
$query->select('h.*'); $query->select('h.*');
$query->from('#__ucm_history AS h'); $query->from('#__history AS h');
$query->where( $query->where(
$this->db->quoteName('h.ucm_item_id') . ' = ' . (int) $id $this->db->quoteName('h.item_id') . ' = ' . $this->db->quote('com_componentbuilder.' . $type . '.' . (int) $id)
); );
$query->where('h.keep_forever = 1'); $query->where('h.keep_forever = 1');
$query->where('h.version_note LIKE ' . $this->db->quote('%component%')); $query->where('h.version_note LIKE ' . $this->db->quote('%component%'));
@ -90,15 +81,6 @@
{ {
$query->where('h.version_id != ' . (int) $newActive->version_id); $query->where('h.version_id != ' . (int) $newActive->version_id);
} }
// Join over the content type for the type id
$query->join(
'LEFT', '#__content_types AS ct ON ct.type_id = h.ucm_type_id'
);
$query->where(
'ct.type_alias = ' . $this->db->quote(
'com_componentbuilder.' . $type
)
);
$query->order('h.save_date DESC'); $query->order('h.save_date DESC');
$this->db->setQuery($query); $this->db->setQuery($query);
$this->db->execute(); $this->db->execute();
@ -194,5 +176,5 @@
} }
// run the update // run the update
return $this->db->updateObject('#__ucm_history', $object, 'version_id'); return $this->db->updateObject('#__history', $object, 'version_id');
} }

View File

@ -9,8 +9,8 @@
"load_selection": null, "load_selection": null,
"name": "History", "name": "History",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Compiler.JoomlaFour.History", "system_name": "JCB.Compiler.J4.History",
"type": "class", "type": "final class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
"use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac",

View File

@ -69,7 +69,7 @@ final class CanDelete implements CanDeleteInterface
$allow = []; $allow = [];
// setup the default script // setup the default script
$allow[] = PHP_EOL . Indent::_(2) . "if (empty(\$record->id) || (\$record->state != -2))"; $allow[] = PHP_EOL . Indent::_(2) . "if (empty(\$record->id) || (\$record->published != -2))";
$allow[] = Indent::_(2) . "{"; $allow[] = Indent::_(2) . "{";
$allow[] = Indent::_(3) . "return false;"; $allow[] = Indent::_(3) . "return false;";
$allow[] = Indent::_(2) . "}" . PHP_EOL; $allow[] = Indent::_(2) . "}" . PHP_EOL;

View File

@ -41,7 +41,7 @@
$allow = []; $allow = [];
// setup the default script // setup the default script
$allow[] = PHP_EOL . Indent::_(2) . "if (empty(\$record->id) || (\$record->state != -2))"; $allow[] = PHP_EOL . Indent::_(2) . "if (empty(\$record->id) || (\$record->published != -2))";
$allow[] = Indent::_(2) . "{"; $allow[] = Indent::_(2) . "{";
$allow[] = Indent::_(3) . "return false;"; $allow[] = Indent::_(3) . "return false;";
$allow[] = Indent::_(2) . "}" . PHP_EOL; $allow[] = Indent::_(2) . "}" . PHP_EOL;

View File

@ -6,60 +6,12 @@
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# class Builder (Details) # class BuilderLZ (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Service** > namespace: **VDM\Joomla\Componentbuilder\Compiler\Service**
```uml ```uml
@startuml @startuml
class Builder #Gold { class BuilderLZ #Gold {
+ register(Container $container) : void + register(Container $container) : void
+ getAccessSwitch(Container $container) : AccessSwitch
+ getAccessSwitchList(Container $container) : AccessSwitchList
+ getAssetsRules(Container $container) : AssetsRules
+ getAdminFilterType(Container $container) : AdminFilterType
+ getAlias(Container $container) : Alias
+ getBaseSixFour(Container $container) : BaseSixFour
+ getCategory(Container $container) : Category
+ getCategoryCode(Container $container) : CategoryCode
+ getCategoryOtherName(Container $container) : CategoryOtherName
+ getCheckBox(Container $container) : CheckBox
+ getComponentFields(Container $container) : ComponentFields
+ getConfigFieldsets(Container $container) : ConfigFieldsets
+ getConfigFieldsetsCustomfield(Container $container) : ConfigFieldsetsCustomfield
+ getContentMulti(Container $container) : ContentMulti
+ getContentOne(Container $container) : ContentOne
+ getContributors(Container $container) : Contributors
+ getCustomAlias(Container $container) : CustomAlias
+ getCustomField(Container $container) : CustomField
+ getCustomFieldLinks(Container $container) : CustomFieldLinks
+ getCustomList(Container $container) : CustomList
+ getCustomTabs(Container $container) : CustomTabs
+ getDatabaseKeys(Container $container) : DatabaseKeys
+ getDatabaseTables(Container $container) : DatabaseTables
+ getDatabaseUniqueGuid(Container $container) : DatabaseUniqueGuid
+ getDatabaseUniqueKeys(Container $container) : DatabaseUniqueKeys
+ getDoNotEscape(Container $container) : DoNotEscape
+ getDynamicFields(Container $container) : DynamicFields
+ getExtensionCustomFields(Container $container) : ExtensionCustomFields
+ getExtensionsParams(Container $container) : ExtensionsParams
+ getFieldGroupControl(Container $container) : FieldGroupControl
+ getFieldNames(Container $container) : FieldNames
+ getFieldRelations(Container $container) : FieldRelations
+ getFilter(Container $container) : Filter
+ getFootableScripts(Container $container) : FootableScripts
+ getFrontendParams(Container $container) : FrontendParams
+ getGetAsLookup(Container $container) : GetAsLookup
+ getGetModule(Container $container) : GetModule
+ getGoogleChart(Container $container) : GoogleChart
+ getHasMenuGlobal(Container $container) : HasMenuGlobal
+ getHasPermissions(Container $container) : HasPermissions
+ getHiddenFields(Container $container) : HiddenFields
+ getHistory(Container $container) : History
+ getIntegerFields(Container $container) : IntegerFields
+ getItemsMethodEximportString(Container $container) : ItemsMethodEximportString
+ getItemsMethodListString(Container $container) : ItemsMethodListString
+ getJsonItem(Container $container) : JsonItem
+ getJsonItemArray(Container $container) : JsonItemArray
+ getJsonString(Container $container) : JsonString
+ getLanguageMessages(Container $container) : LanguageMessages + getLanguageMessages(Container $container) : LanguageMessages
+ getLayout(Container $container) : Layout + getLayout(Container $container) : Layout
+ getLayoutData(Container $container) : LayoutData + getLayoutData(Container $container) : LayoutData
@ -93,6 +45,7 @@ class Builder #Gold {
+ getPermissionGlobalAction(Container $container) : PermissionGlobalAction + getPermissionGlobalAction(Container $container) : PermissionGlobalAction
+ getPermissionViews(Container $container) : PermissionViews + getPermissionViews(Container $container) : PermissionViews
+ getRequest(Container $container) : Request + getRequest(Container $container) : Request
+ getRouter(Container $container) : Router
+ getScriptMediaSwitch(Container $container) : ScriptMediaSwitch + getScriptMediaSwitch(Container $container) : ScriptMediaSwitch
+ getScriptUserSwitch(Container $container) : ScriptUserSwitch + getScriptUserSwitch(Container $container) : ScriptUserSwitch
+ getSearch(Container $container) : Search + getSearch(Container $container) : Search
@ -114,707 +67,378 @@ class Builder #Gold {
+ getViewsDefaultOrdering(Container $container) : ViewsDefaultOrdering + getViewsDefaultOrdering(Container $container) : ViewsDefaultOrdering
} }
note right of Builder::register note right of BuilderLZ::register
Registers the service provider with a DI container. Registers the service provider with a DI container.
since: 3.2.0 since: 3.2.0
return: void return: void
end note end note
note left of Builder::getAccessSwitch note left of BuilderLZ::getLanguageMessages
Get The AccessSwitch Class.
since: 3.2.0
return: AccessSwitch
end note
note right of Builder::getAccessSwitchList
Get The AccessSwitchList Class.
since: 3.2.0
return: AccessSwitchList
end note
note left of Builder::getAssetsRules
Get The AssetsRules Class.
since: 3.2.0
return: AssetsRules
end note
note right of Builder::getAdminFilterType
Get The AdminFilterType Class.
since: 3.2.0
return: AdminFilterType
end note
note left of Builder::getAlias
Get The Alias Class.
since: 3.2.0
return: Alias
end note
note right of Builder::getBaseSixFour
Get The BaseSixFour Class.
since: 3.2.0
return: BaseSixFour
end note
note left of Builder::getCategory
Get The Category Class.
since: 3.2.0
return: Category
end note
note right of Builder::getCategoryCode
Get The CategoryCode Class.
since: 3.2.0
return: CategoryCode
end note
note left of Builder::getCategoryOtherName
Get The CategoryOtherName Class.
since: 3.2.0
return: CategoryOtherName
end note
note right of Builder::getCheckBox
Get The CheckBox Class.
since: 3.2.0
return: CheckBox
end note
note left of Builder::getComponentFields
Get The ComponentFields Class.
since: 3.2.0
return: ComponentFields
end note
note right of Builder::getConfigFieldsets
Get The ConfigFieldsets Class.
since: 3.2.0
return: ConfigFieldsets
end note
note left of Builder::getConfigFieldsetsCustomfield
Get The ConfigFieldsetsCustomfield Class.
since: 3.2.0
return: ConfigFieldsetsCustomfield
end note
note right of Builder::getContentMulti
Get The ContentMulti Class.
since: 3.2.0
return: ContentMulti
end note
note left of Builder::getContentOne
Get The ContentOne Class.
since: 3.2.0
return: ContentOne
end note
note right of Builder::getContributors
Get The Contributors Class.
since: 3.2.0
return: Contributors
end note
note left of Builder::getCustomAlias
Get The CustomAlias Class.
since: 3.2.0
return: CustomAlias
end note
note right of Builder::getCustomField
Get The CustomField Class.
since: 3.2.0
return: CustomField
end note
note left of Builder::getCustomFieldLinks
Get The CustomFieldLinks Class.
since: 3.2.0
return: CustomFieldLinks
end note
note right of Builder::getCustomList
Get The CustomList Class.
since: 3.2.0
return: CustomList
end note
note left of Builder::getCustomTabs
Get The CustomTabs Class.
since: 3.2.0
return: CustomTabs
end note
note right of Builder::getDatabaseKeys
Get The DatabaseKeys Class.
since: 3.2.0
return: DatabaseKeys
end note
note left of Builder::getDatabaseTables
Get The DatabaseTables Class.
since: 3.2.0
return: DatabaseTables
end note
note right of Builder::getDatabaseUniqueGuid
Get The DatabaseUniqueGuid Class.
since: 3.2.0
return: DatabaseUniqueGuid
end note
note left of Builder::getDatabaseUniqueKeys
Get The DatabaseUniqueKeys Class.
since: 3.2.0
return: DatabaseUniqueKeys
end note
note right of Builder::getDoNotEscape
Get The DoNotEscape Class.
since: 3.2.0
return: DoNotEscape
end note
note left of Builder::getDynamicFields
Get The DynamicFields Class.
since: 3.2.0
return: DynamicFields
end note
note right of Builder::getExtensionCustomFields
Get The ExtensionCustomFields Class.
since: 3.2.0
return: ExtensionCustomFields
end note
note left of Builder::getExtensionsParams
Get The ExtensionsParams Class.
since: 3.2.0
return: ExtensionsParams
end note
note right of Builder::getFieldGroupControl
Get The FieldGroupControl Class.
since: 3.2.0
return: FieldGroupControl
end note
note left of Builder::getFieldNames
Get The FieldNames Class.
since: 3.2.0
return: FieldNames
end note
note right of Builder::getFieldRelations
Get The FieldRelations Class.
since: 3.2.0
return: FieldRelations
end note
note left of Builder::getFilter
Get The Filter Class.
since: 3.2.0
return: Filter
end note
note right of Builder::getFootableScripts
Get The FootableScripts Class.
since: 3.2.0
return: FootableScripts
end note
note left of Builder::getFrontendParams
Get The FrontendParams Class.
since: 3.2.0
return: FrontendParams
end note
note right of Builder::getGetAsLookup
Get The GetAsLookup Class.
since: 3.2.0
return: GetAsLookup
end note
note left of Builder::getGetModule
Get The GetModule Class.
since: 3.2.0
return: GetModule
end note
note right of Builder::getGoogleChart
Get The GoogleChart Class.
since: 3.2.0
return: GoogleChart
end note
note left of Builder::getHasMenuGlobal
Get The HasMenuGlobal Class.
since: 3.2.0
return: HasMenuGlobal
end note
note right of Builder::getHasPermissions
Get The HasPermissions Class.
since: 3.2.0
return: HasPermissions
end note
note left of Builder::getHiddenFields
Get The HiddenFields Class.
since: 3.2.0
return: HiddenFields
end note
note right of Builder::getHistory
Get The History Class.
since: 3.2.0
return: History
end note
note left of Builder::getIntegerFields
Get The IntegerFields Class.
since: 3.2.0
return: IntegerFields
end note
note right of Builder::getItemsMethodEximportString
Get The ItemsMethodEximportString Class.
since: 3.2.0
return: ItemsMethodEximportString
end note
note left of Builder::getItemsMethodListString
Get The ItemsMethodListString Class.
since: 3.2.0
return: ItemsMethodListString
end note
note right of Builder::getJsonItem
Get The JsonItem Class.
since: 3.2.0
return: JsonItem
end note
note left of Builder::getJsonItemArray
Get The JsonItemArray Class.
since: 3.2.0
return: JsonItemArray
end note
note right of Builder::getJsonString
Get The JsonString Class.
since: 3.2.0
return: JsonString
end note
note left of Builder::getLanguageMessages
Get The LanguageMessages Class. Get The LanguageMessages Class.
since: 3.2.0 since: 3.2.0
return: LanguageMessages return: LanguageMessages
end note end note
note right of Builder::getLayout note right of BuilderLZ::getLayout
Get The Layout Class. Get The Layout Class.
since: 3.2.0 since: 3.2.0
return: Layout return: Layout
end note end note
note left of Builder::getLayoutData note left of BuilderLZ::getLayoutData
Get The LayoutData Class. Get The LayoutData Class.
since: 3.2.0 since: 3.2.0
return: LayoutData return: LayoutData
end note end note
note right of Builder::getLibraryManager note right of BuilderLZ::getLibraryManager
Get The LibraryManager Class. Get The LibraryManager Class.
since: 3.2.0 since: 3.2.0
return: LibraryManager return: LibraryManager
end note end note
note left of Builder::getListFieldClass note left of BuilderLZ::getListFieldClass
Get The ListFieldClass Class. Get The ListFieldClass Class.
since: 3.2.0 since: 3.2.0
return: ListFieldClass return: ListFieldClass
end note end note
note right of Builder::getListHeadOverride note right of BuilderLZ::getListHeadOverride
Get The ListHeadOverride Class. Get The ListHeadOverride Class.
since: 3.2.0 since: 3.2.0
return: ListHeadOverride return: ListHeadOverride
end note end note
note left of Builder::getListJoin note left of BuilderLZ::getListJoin
Get The ListJoin Class. Get The ListJoin Class.
since: 3.2.0 since: 3.2.0
return: ListJoin return: ListJoin
end note end note
note right of Builder::getLists note right of BuilderLZ::getLists
Get The Lists Class. Get The Lists Class.
since: 3.2.0 since: 3.2.0
return: Lists return: Lists
end note end note
note left of Builder::getMainTextField note left of BuilderLZ::getMainTextField
Get The MainTextField Class. Get The MainTextField Class.
since: 3.2.0 since: 3.2.0
return: MainTextField return: MainTextField
end note end note
note right of Builder::getMetaData note right of BuilderLZ::getMetaData
Get The MetaData Class. Get The MetaData Class.
since: 3.2.0 since: 3.2.0
return: MetaData return: MetaData
end note end note
note left of Builder::getModelBasicField note left of BuilderLZ::getModelBasicField
Get The ModelBasicField Class. Get The ModelBasicField Class.
since: 3.2.0 since: 3.2.0
return: ModelBasicField return: ModelBasicField
end note end note
note right of Builder::getModelExpertField note right of BuilderLZ::getModelExpertField
Get The ModelExpertField Class. Get The ModelExpertField Class.
since: 3.2.0 since: 3.2.0
return: ModelExpertField return: ModelExpertField
end note end note
note left of Builder::getModelExpertFieldInitiator note left of BuilderLZ::getModelExpertFieldInitiator
Get The ModelExpertFieldInitiator Class. Get The ModelExpertFieldInitiator Class.
since: 3.2.0 since: 3.2.0
return: ModelExpertFieldInitiator return: ModelExpertFieldInitiator
end note end note
note right of Builder::getModelMediumField note right of BuilderLZ::getModelMediumField
Get The ModelMediumField Class. Get The ModelMediumField Class.
since: 3.2.0 since: 3.2.0
return: ModelMediumField return: ModelMediumField
end note end note
note left of Builder::getModelWhmcsField note left of BuilderLZ::getModelWhmcsField
Get The ModelWhmcsField Class. Get The ModelWhmcsField Class.
since: 3.2.0 since: 3.2.0
return: ModelWhmcsField return: ModelWhmcsField
end note end note
note right of Builder::getMovedPublishingFields note right of BuilderLZ::getMovedPublishingFields
Get The MovedPublishingFields Class. Get The MovedPublishingFields Class.
since: 3.2.0 since: 3.2.0
return: MovedPublishingFields return: MovedPublishingFields
end note end note
note left of Builder::getMysqlTableSetting note left of BuilderLZ::getMysqlTableSetting
Get The MysqlTableSetting Class. Get The MysqlTableSetting Class.
since: 3.2.0 since: 3.2.0
return: MysqlTableSetting return: MysqlTableSetting
end note end note
note right of Builder::getNewPublishingFields note right of BuilderLZ::getNewPublishingFields
Get The NewPublishingFields Class. Get The NewPublishingFields Class.
since: 3.2.0 since: 3.2.0
return: NewPublishingFields return: NewPublishingFields
end note end note
note left of Builder::getOrderZero note left of BuilderLZ::getOrderZero
Get The OrderZero Class. Get The OrderZero Class.
since: 3.2.0 since: 3.2.0
return: OrderZero return: OrderZero
end note end note
note right of Builder::getOtherFilter note right of BuilderLZ::getOtherFilter
Get The OtherFilter Class. Get The OtherFilter Class.
since: 3.2.0 since: 3.2.0
return: OtherFilter return: OtherFilter
end note end note
note left of Builder::getOtherGroup note left of BuilderLZ::getOtherGroup
Get The OtherGroup Class. Get The OtherGroup Class.
since: 3.2.0 since: 3.2.0
return: OtherGroup return: OtherGroup
end note end note
note right of Builder::getOtherJoin note right of BuilderLZ::getOtherJoin
Get The OtherJoin Class. Get The OtherJoin Class.
since: 3.2.0 since: 3.2.0
return: OtherJoin return: OtherJoin
end note end note
note left of Builder::getOtherOrder note left of BuilderLZ::getOtherOrder
Get The OtherOrder Class. Get The OtherOrder Class.
since: 3.2.0 since: 3.2.0
return: OtherOrder return: OtherOrder
end note end note
note right of Builder::getOtherQuery note right of BuilderLZ::getOtherQuery
Get The OtherQuery Class. Get The OtherQuery Class.
since: 3.2.0 since: 3.2.0
return: OtherQuery return: OtherQuery
end note end note
note left of Builder::getOtherWhere note left of BuilderLZ::getOtherWhere
Get The OtherWhere Class. Get The OtherWhere Class.
since: 3.2.0 since: 3.2.0
return: OtherWhere return: OtherWhere
end note end note
note right of Builder::getPermissionAction note right of BuilderLZ::getPermissionAction
Get The PermissionAction Class. Get The PermissionAction Class.
since: 3.2.0 since: 3.2.0
return: PermissionAction return: PermissionAction
end note end note
note left of Builder::getPermissionComponent note left of BuilderLZ::getPermissionComponent
Get The PermissionComponent Class. Get The PermissionComponent Class.
since: 3.2.0 since: 3.2.0
return: PermissionComponent return: PermissionComponent
end note end note
note right of Builder::getPermissionCore note right of BuilderLZ::getPermissionCore
Get The PermissionCore Class. Get The PermissionCore Class.
since: 3.2.0 since: 3.2.0
return: PermissionCore return: PermissionCore
end note end note
note left of Builder::getPermissionDashboard note left of BuilderLZ::getPermissionDashboard
Get The PermissionDashboard Class. Get The PermissionDashboard Class.
since: 3.2.0 since: 3.2.0
return: PermissionDashboard return: PermissionDashboard
end note end note
note right of Builder::getPermissionFields note right of BuilderLZ::getPermissionFields
Get The PermissionFields Class. Get The PermissionFields Class.
since: 3.2.0 since: 3.2.0
return: PermissionFields return: PermissionFields
end note end note
note left of Builder::getPermissionGlobalAction note left of BuilderLZ::getPermissionGlobalAction
Get The PermissionGlobalAction Class. Get The PermissionGlobalAction Class.
since: 3.2.0 since: 3.2.0
return: PermissionGlobalAction return: PermissionGlobalAction
end note end note
note right of Builder::getPermissionViews note right of BuilderLZ::getPermissionViews
Get The PermissionViews Class. Get The PermissionViews Class.
since: 3.2.0 since: 3.2.0
return: PermissionViews return: PermissionViews
end note end note
note left of Builder::getRequest note left of BuilderLZ::getRequest
Get The Request Class. Get The Request Class.
since: 3.2.0 since: 3.2.0
return: Request return: Request
end note end note
note right of Builder::getScriptMediaSwitch note right of BuilderLZ::getRouter
Get The Router Class.
since: 3.2.0
return: Router
end note
note left of BuilderLZ::getScriptMediaSwitch
Get The ScriptMediaSwitch Class. Get The ScriptMediaSwitch Class.
since: 3.2.0 since: 3.2.0
return: ScriptMediaSwitch return: ScriptMediaSwitch
end note end note
note left of Builder::getScriptUserSwitch note right of BuilderLZ::getScriptUserSwitch
Get The ScriptUserSwitch Class. Get The ScriptUserSwitch Class.
since: 3.2.0 since: 3.2.0
return: ScriptUserSwitch return: ScriptUserSwitch
end note end note
note right of Builder::getSearch note left of BuilderLZ::getSearch
Get The Search Class. Get The Search Class.
since: 3.2.0 since: 3.2.0
return: Search return: Search
end note end note
note left of Builder::getSelectionTranslation note right of BuilderLZ::getSelectionTranslation
Get The SelectionTranslation Class. Get The SelectionTranslation Class.
since: 3.2.0 since: 3.2.0
return: SelectionTranslation return: SelectionTranslation
end note end note
note right of Builder::getSiteDecrypt note left of BuilderLZ::getSiteDecrypt
Get The SiteDecrypt Class. Get The SiteDecrypt Class.
since: 3.2.0 since: 3.2.0
return: SiteDecrypt return: SiteDecrypt
end note end note
note left of Builder::getSiteDynamicGet note right of BuilderLZ::getSiteDynamicGet
Get The SiteDynamicGet Class. Get The SiteDynamicGet Class.
since: 3.2.0 since: 3.2.0
return: SiteDynamicGet return: SiteDynamicGet
end note end note
note right of Builder::getSiteEditView note left of BuilderLZ::getSiteEditView
Get The SiteEditView Class. Get The SiteEditView Class.
since: 3.2.0 since: 3.2.0
return: SiteEditView return: SiteEditView
end note end note
note left of Builder::getSiteFieldData note right of BuilderLZ::getSiteFieldData
Get The SiteFieldData Class. Get The SiteFieldData Class.
since: 3.2.0 since: 3.2.0
return: SiteFieldData return: SiteFieldData
end note end note
note right of Builder::getSiteFieldDecodeFilter note left of BuilderLZ::getSiteFieldDecodeFilter
Get The SiteFieldDecodeFilter Class. Get The SiteFieldDecodeFilter Class.
since: 3.2.0 since: 3.2.0
return: SiteFieldDecodeFilter return: SiteFieldDecodeFilter
end note end note
note left of Builder::getSiteFields note right of BuilderLZ::getSiteFields
Get The SiteFields Class. Get The SiteFields Class.
since: 3.2.0 since: 3.2.0
return: SiteFields return: SiteFields
end note end note
note right of Builder::getSiteMainGet note left of BuilderLZ::getSiteMainGet
Get The SiteMainGet Class. Get The SiteMainGet Class.
since: 3.2.0 since: 3.2.0
return: SiteMainGet return: SiteMainGet
end note end note
note left of Builder::getSort note right of BuilderLZ::getSort
Get The Sort Class. Get The Sort Class.
since: 3.2.0 since: 3.2.0
return: Sort return: Sort
end note end note
note right of Builder::getTabCounter note left of BuilderLZ::getTabCounter
Get The TabCounter Class. Get The TabCounter Class.
since: 3.2.0 since: 3.2.0
return: TabCounter return: TabCounter
end note end note
note left of Builder::getTags note right of BuilderLZ::getTags
Get The Tags Class. Get The Tags Class.
since: 3.2.0 since: 3.2.0
return: Tags return: Tags
end note end note
note right of Builder::getTemplateData note left of BuilderLZ::getTemplateData
Get The TemplateData Class. Get The TemplateData Class.
since: 3.2.0 since: 3.2.0
return: TemplateData return: TemplateData
end note end note
note left of Builder::getTitle note right of BuilderLZ::getTitle
Get The Title Class. Get The Title Class.
since: 3.2.0 since: 3.2.0
return: Title return: Title
end note end note
note right of Builder::getUikitComp note left of BuilderLZ::getUikitComp
Get The UikitComp Class. Get The UikitComp Class.
since: 3.2.0 since: 3.2.0
return: UikitComp return: UikitComp
end note end note
note left of Builder::getUpdateMysql note right of BuilderLZ::getUpdateMysql
Get The UpdateMysql Class. Get The UpdateMysql Class.
since: 3.2.0 since: 3.2.0
return: UpdateMysql return: UpdateMysql
end note end note
note right of Builder::getViewsDefaultOrdering note left of BuilderLZ::getViewsDefaultOrdering
Get The ViewsDefaultOrdering Class. Get The ViewsDefaultOrdering Class.
since: 3.2.0 since: 3.2.0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,414 +7,226 @@
"-1" "-1"
], ],
"load_selection": null, "load_selection": null,
"name": "Builder", "name": "BuilderLZ",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Compiler.Service.Builder", "system_name": "JCB.Compiler.Service.BuilderLZ",
"type": "class", "type": "class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
"use": "e38a5276-6664-4bc6-8002-0562fcc248f8",
"as": "default"
},
"use_selection1": {
"use": "81212121-ad5c-43c5-b046-f2650864f690",
"as": "default"
},
"use_selection2": {
"use": "9b5872d6-c1d8-4602-b443-5844d2c950ee",
"as": "default"
},
"use_selection3": {
"use": "9481caa2-6d04-4598-8320-543a93927243",
"as": "default"
},
"use_selection4": {
"use": "fe87df7f-b65f-4778-8875-6122ab6b025f",
"as": "default"
},
"use_selection5": {
"use": "b8b474d4-30e3-4b5a-9988-3adb3450998c",
"as": "default"
},
"use_selection6": {
"use": "007177eb-d39d-4093-8840-07a38811c502",
"as": "default"
},
"use_selection7": {
"use": "b24f5184-7e7c-448d-9475-ff3f998f70c3",
"as": "default"
},
"use_selection8": {
"use": "a1e551a9-8369-48c9-a076-4e5beb65e0df",
"as": "default"
},
"use_selection9": {
"use": "8561f1f6-96c7-4e54-8869-0132116d57ce",
"as": "default"
},
"use_selection10": {
"use": "3230dd65-6590-4043-9bb8-bebd6d8224b2",
"as": "default"
},
"use_selection11": {
"use": "0a524af3-f647-4f62-a422-d7d36ebe749b",
"as": "default"
},
"use_selection12": {
"use": "ed314bd8-c995-4282-bcaa-5e0a68ac401b",
"as": "default"
},
"use_selection13": {
"use": "5f57ff1a-c196-45b1-a2ac-33766b44fb95",
"as": "default"
},
"use_selection14": {
"use": "adfbe68a-6d22-43e5-aee8-2787e8c47e75",
"as": "default"
},
"use_selection99": {
"use": "274a78d1-24c2-4486-b560-b86e9ae72872",
"as": "default"
},
"use_selection15": {
"use": "9d74d613-5ef7-4cf1-9f12-64f0a8e19806",
"as": "default"
},
"use_selection16": {
"use": "87d1da23-08d6-4fbf-bd0d-b746da240b8a",
"as": "default"
},
"use_selection17": {
"use": "a4857c60-680c-4e0c-ae8f-9250a7b5e317",
"as": "default"
},
"use_selection18": {
"use": "202f748a-516b-4782-962e-ac9725c3cac4",
"as": "default"
},
"use_selection19": {
"use": "9551b683-67b6-4367-bb14-4b016def37e3",
"as": "default"
},
"use_selection20": {
"use": "0d8db719-39a6-48b4-85a6-2f97e784e588",
"as": "default"
},
"use_selection21": {
"use": "b3c36de1-9b18-4ea8-8383-6ab8f0e33996",
"as": "default"
},
"use_selection22": {
"use": "58b7f907-4195-4ca3-886c-17877be59887",
"as": "default"
},
"use_selection23": {
"use": "ce0899a9-6271-4fc4-800a-697c122bb112",
"as": "default"
},
"use_selection24": {
"use": "0d9d3294-0bed-4c44-b1a1-e172f62cafb2",
"as": "default"
},
"use_selection25": {
"use": "1ae9a8e8-59f7-4844-a08d-9a4dce4be076",
"as": "default"
},
"use_selection26": {
"use": "e9b6b06b-f600-4f9d-984d-79c70ae7ae92",
"as": "default"
},
"use_selection27": {
"use": "bcf1e767-1566-440d-9f67-5c1bada934fa",
"as": "default"
},
"use_selection28": {
"use": "d5530adf-c809-45a9-87fc-7cecd3d972d8",
"as": "default"
},
"use_selection29": {
"use": "961a2a2e-9f95-4b5f-b1c0-62ee783f9c66",
"as": "default"
},
"use_selection30": {
"use": "a090a472-eb3d-4086-a6d5-4215e1b1851f",
"as": "default"
},
"use_selection31": {
"use": "e4e65c5b-00ec-439c-96bf-3153c3a73398",
"as": "default"
},
"use_selection32": {
"use": "dba0776e-e582-4f73-af3e-e7ed17bc34b3",
"as": "default"
},
"use_selection33": {
"use": "207b5ef3-b3bb-45bf-af14-4572e296d761",
"as": "default"
},
"use_selection34": {
"use": "8f46f85d-7921-44e9-a40e-dc4f01c5d43a",
"as": "default"
},
"use_selection35": {
"use": "c7b6f0d5-ec47-4166-915c-e78d49b4fb63",
"as": "default"
},
"use_selection36": {
"use": "507ab90f-7d64-4697-9815-d96f5d1d1185",
"as": "default"
},
"use_selection37": {
"use": "6992384f-4f29-489f-a52e-286e03f4593b",
"as": "default"
},
"use_selection38": {
"use": "e54965e7-34fd-481e-b40c-4da089afec5a",
"as": "default"
},
"use_selection39": {
"use": "0b45357f-b077-4337-92f3-65c1e19d36cd",
"as": "default"
},
"use_selection40": {
"use": "2cb33994-052e-42dd-adbc-3ea9f932816f",
"as": "default"
},
"use_selection41": {
"use": "952423ba-015a-4104-89a4-030695aa4d15",
"as": "default"
},
"use_selection42": {
"use": "1f086665-c007-4085-b363-3a118659ff1b",
"as": "default"
},
"use_selection43": {
"use": "972c4de9-6f6f-463b-8eea-cc7cbdb96aba",
"as": "default"
},
"use_selection44": {
"use": "45652787-9085-4c67-914f-0da25ae62646",
"as": "default"
},
"use_selection45": {
"use": "6b386f2e-3eb1-4f60-81af-a90c8da1ffeb",
"as": "default"
},
"use_selection46": {
"use": "bb26cf63-69a5-4c43-b2df-43284c9d907d",
"as": "default"
},
"use_selection47": {
"use": "44efa649-736d-4656-a0ec-e4f1653a6742", "use": "44efa649-736d-4656-a0ec-e4f1653a6742",
"as": "default" "as": "default"
}, },
"use_selection48": { "use_selection1": {
"use": "a90a2495-9c26-446c-867e-9ee8f42fb6af", "use": "a90a2495-9c26-446c-867e-9ee8f42fb6af",
"as": "default" "as": "default"
}, },
"use_selection49": { "use_selection2": {
"use": "7415fdb4-5719-40b7-b01f-05588e968b47", "use": "7415fdb4-5719-40b7-b01f-05588e968b47",
"as": "default" "as": "default"
}, },
"use_selection50": { "use_selection3": {
"use": "e696927b-e8f4-4cfc-9d25-215db4e3c7a8", "use": "e696927b-e8f4-4cfc-9d25-215db4e3c7a8",
"as": "default" "as": "default"
}, },
"use_selection51": { "use_selection4": {
"use": "c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6", "use": "c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6",
"as": "default" "as": "default"
}, },
"use_selection52": { "use_selection5": {
"use": "7506a35c-fa32-44ab-bd41-363439b20b82", "use": "7506a35c-fa32-44ab-bd41-363439b20b82",
"as": "default" "as": "default"
}, },
"use_selection53": { "use_selection6": {
"use": "597663e1-1c02-43e8-aea5-f2161e38ac7f", "use": "597663e1-1c02-43e8-aea5-f2161e38ac7f",
"as": "default" "as": "default"
}, },
"use_selection54": { "use_selection7": {
"use": "4a857023-2d96-4649-9ed5-910d0329854d", "use": "4a857023-2d96-4649-9ed5-910d0329854d",
"as": "default" "as": "default"
}, },
"use_selection55": { "use_selection8": {
"use": "c6de9da0-1a73-4c73-b355-7fe02efe4c9d", "use": "c6de9da0-1a73-4c73-b355-7fe02efe4c9d",
"as": "default" "as": "default"
}, },
"use_selection56": { "use_selection9": {
"use": "f052eeef-5112-4efe-98c8-8c7db69dc2d1", "use": "f052eeef-5112-4efe-98c8-8c7db69dc2d1",
"as": "default" "as": "default"
}, },
"use_selection57": { "use_selection10": {
"use": "a5189bfe-6d15-4452-9fa5-e3e57f7fa791", "use": "a5189bfe-6d15-4452-9fa5-e3e57f7fa791",
"as": "default" "as": "default"
}, },
"use_selection58": { "use_selection11": {
"use": "b8a92303-8543-4d88-a83c-ece300eaba6d", "use": "b8a92303-8543-4d88-a83c-ece300eaba6d",
"as": "default" "as": "default"
}, },
"use_selection59": { "use_selection12": {
"use": "3468b447-a929-4c28-84a1-f2c3a27e3127", "use": "3468b447-a929-4c28-84a1-f2c3a27e3127",
"as": "default" "as": "default"
}, },
"use_selection60": { "use_selection13": {
"use": "b0b26749-5e2c-4b56-8982-48172f2531fa", "use": "b0b26749-5e2c-4b56-8982-48172f2531fa",
"as": "default" "as": "default"
}, },
"use_selection61": { "use_selection14": {
"use": "28cac2bb-df04-454f-b4d6-923b573eb94e", "use": "28cac2bb-df04-454f-b4d6-923b573eb94e",
"as": "default" "as": "default"
}, },
"use_selection62": { "use_selection15": {
"use": "9cdff2af-bd1b-452f-810e-d034b9720d2a", "use": "9cdff2af-bd1b-452f-810e-d034b9720d2a",
"as": "default" "as": "default"
}, },
"use_selection63": { "use_selection16": {
"use": "9ff6d6cd-afea-4f15-a67b-fd132d386989", "use": "9ff6d6cd-afea-4f15-a67b-fd132d386989",
"as": "default" "as": "default"
}, },
"use_selection64": { "use_selection17": {
"use": "0f141480-afe6-41fb-996c-2a4e566a2f0d", "use": "0f141480-afe6-41fb-996c-2a4e566a2f0d",
"as": "default" "as": "default"
}, },
"use_selection65": { "use_selection18": {
"use": "66b7b5f8-60d6-427a-9f8c-84c11a3d6780", "use": "66b7b5f8-60d6-427a-9f8c-84c11a3d6780",
"as": "default" "as": "default"
}, },
"use_selection66": { "use_selection19": {
"use": "9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f", "use": "9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f",
"as": "default" "as": "default"
}, },
"use_selection67": { "use_selection20": {
"use": "bf92e1c1-3d5e-4e9d-a585-c79e1468df33", "use": "bf92e1c1-3d5e-4e9d-a585-c79e1468df33",
"as": "default" "as": "default"
}, },
"use_selection68": { "use_selection21": {
"use": "46b02edb-427e-4c26-a5cb-279828eb4433", "use": "46b02edb-427e-4c26-a5cb-279828eb4433",
"as": "default" "as": "default"
}, },
"use_selection69": { "use_selection22": {
"use": "3f83fe11-1ef6-4020-bd73-f3bb58cefe3a", "use": "3f83fe11-1ef6-4020-bd73-f3bb58cefe3a",
"as": "default" "as": "default"
}, },
"use_selection70": { "use_selection23": {
"use": "74595661-236d-4aa1-99f3-358d093000be", "use": "74595661-236d-4aa1-99f3-358d093000be",
"as": "default" "as": "default"
}, },
"use_selection71": { "use_selection24": {
"use": "fd885c23-88dd-440a-9b05-d02a2b2962f9", "use": "fd885c23-88dd-440a-9b05-d02a2b2962f9",
"as": "default" "as": "default"
}, },
"use_selection72": { "use_selection25": {
"use": "2528f2bb-6ebc-4d55-9a9d-23ef58534c1a", "use": "2528f2bb-6ebc-4d55-9a9d-23ef58534c1a",
"as": "default" "as": "default"
}, },
"use_selection73": { "use_selection26": {
"use": "94f4939f-82cc-4196-802b-1346ce5c7f99", "use": "94f4939f-82cc-4196-802b-1346ce5c7f99",
"as": "default" "as": "default"
}, },
"use_selection74": { "use_selection27": {
"use": "5e3d856d-8174-4131-b4e9-9328066438e1", "use": "5e3d856d-8174-4131-b4e9-9328066438e1",
"as": "default" "as": "default"
}, },
"use_selection75": { "use_selection28": {
"use": "e046b530-47fe-406f-b45a-b5eec8cbb238", "use": "e046b530-47fe-406f-b45a-b5eec8cbb238",
"as": "default" "as": "default"
}, },
"use_selection76": { "use_selection29": {
"use": "5133a033-1351-43ec-9692-2907d7b9aacd", "use": "5133a033-1351-43ec-9692-2907d7b9aacd",
"as": "default" "as": "default"
}, },
"use_selection77": { "use_selection30": {
"use": "a601888d-12b6-427f-94ae-95004206e24e", "use": "a601888d-12b6-427f-94ae-95004206e24e",
"as": "default" "as": "default"
}, },
"use_selection78": { "use_selection31": {
"use": "480d11b9-783b-45d5-bce1-b0c2fcaad08a", "use": "480d11b9-783b-45d5-bce1-b0c2fcaad08a",
"as": "default" "as": "default"
}, },
"use_selection79": { "use_selection32": {
"use": "98419ff3-6628-4539-8365-37f88378bced", "use": "98419ff3-6628-4539-8365-37f88378bced",
"as": "default" "as": "default"
}, },
"use_selection80": { "use_selection33": {
"use": "4a4cf7a3-d0f9-439e-96fb-82d7a4ae0cf5",
"as": "default"
},
"use_selection34": {
"use": "17bf80af-3609-4f36-a520-be1a339c278b", "use": "17bf80af-3609-4f36-a520-be1a339c278b",
"as": "default" "as": "default"
}, },
"use_selection81": { "use_selection35": {
"use": "9042fac6-5ca5-4ebe-94fe-cf9b0718ed36", "use": "9042fac6-5ca5-4ebe-94fe-cf9b0718ed36",
"as": "default" "as": "default"
}, },
"use_selection82": { "use_selection36": {
"use": "2e764839-8ec6-4726-af50-b5678e0714a4", "use": "2e764839-8ec6-4726-af50-b5678e0714a4",
"as": "default" "as": "default"
}, },
"use_selection83": { "use_selection37": {
"use": "d8e46d2c-d63e-4b92-80a2-d17638a7ae9e", "use": "d8e46d2c-d63e-4b92-80a2-d17638a7ae9e",
"as": "default" "as": "default"
}, },
"use_selection84": { "use_selection38": {
"use": "c0e46033-5ade-4829-88b7-ca160d36a4d1", "use": "c0e46033-5ade-4829-88b7-ca160d36a4d1",
"as": "default" "as": "default"
}, },
"use_selection85": { "use_selection39": {
"use": "ec0682ee-9166-48f8-951b-9b763792c1d1", "use": "ec0682ee-9166-48f8-951b-9b763792c1d1",
"as": "default" "as": "default"
}, },
"use_selection86": { "use_selection40": {
"use": "abdb7d20-a15e-42d8-bd91-7b09514df7f2", "use": "abdb7d20-a15e-42d8-bd91-7b09514df7f2",
"as": "default" "as": "default"
}, },
"use_selection87": { "use_selection41": {
"use": "33f5131e-4a5b-414b-95dd-d22227c2666d", "use": "33f5131e-4a5b-414b-95dd-d22227c2666d",
"as": "default" "as": "default"
}, },
"use_selection88": { "use_selection42": {
"use": "d393c946-4481-43fa-b737-449119dd0a63", "use": "d393c946-4481-43fa-b737-449119dd0a63",
"as": "default" "as": "default"
}, },
"use_selection89": { "use_selection43": {
"use": "52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe", "use": "52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe",
"as": "default" "as": "default"
}, },
"use_selection90": { "use_selection44": {
"use": "17fa7789-a7d1-465e-b733-8c8d53f5ca1b", "use": "17fa7789-a7d1-465e-b733-8c8d53f5ca1b",
"as": "default" "as": "default"
}, },
"use_selection91": { "use_selection45": {
"use": "94e0beae-7daa-43b2-81b9-0bde390a76d8", "use": "94e0beae-7daa-43b2-81b9-0bde390a76d8",
"as": "default" "as": "default"
}, },
"use_selection92": { "use_selection46": {
"use": "d645881c-ae8c-4828-a217-6bad98cd3b44", "use": "d645881c-ae8c-4828-a217-6bad98cd3b44",
"as": "default" "as": "default"
}, },
"use_selection93": { "use_selection47": {
"use": "8ca30d59-e56a-4cdd-bd8c-d9aad28f5903", "use": "8ca30d59-e56a-4cdd-bd8c-d9aad28f5903",
"as": "default" "as": "default"
}, },
"use_selection94": { "use_selection48": {
"use": "8591f6db-dd3c-4a63-9b3f-574c0ec74ade", "use": "8591f6db-dd3c-4a63-9b3f-574c0ec74ade",
"as": "default" "as": "default"
}, },
"use_selection95": { "use_selection49": {
"use": "6a1dddb3-a955-425e-b713-8ef81f256035", "use": "6a1dddb3-a955-425e-b713-8ef81f256035",
"as": "default" "as": "default"
}, },
"use_selection96": { "use_selection50": {
"use": "54ec57f6-2fc3-42e5-975e-1fabeacb845d", "use": "54ec57f6-2fc3-42e5-975e-1fabeacb845d",
"as": "default" "as": "default"
}, },
"use_selection97": { "use_selection51": {
"use": "2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9", "use": "2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9",
"as": "default" "as": "default"
}, },
"use_selection98": { "use_selection52": {
"use": "f34442df-c84c-44c3-9991-bbf72bffa635", "use": "f34442df-c84c-44c3-9991-bbf72bffa635",
"as": "default" "as": "default"
} }
}, },
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Service.Builder", "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Service.BuilderLZ",
"description": "Builder Service Provider\r\n\r\n@since 3.2.0", "description": "Builder L-Z Service Provider\r\n\r\n@since 3.2.0",
"implements_custom": "ServiceProviderInterface", "implements_custom": "ServiceProviderInterface",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "use Joomla\\DI\\Container;\r\nuse Joomla\\DI\\ServiceProviderInterface;", "head": "use Joomla\\DI\\Container;\r\nuse Joomla\\DI\\ServiceProviderInterface;",

View File

@ -13,9 +13,6 @@ namespace VDM\Joomla\Componentbuilder\Compiler;
use Joomla\CMS\Factory; use Joomla\CMS\Factory;
use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler;
use VDM\Joomla\Componentbuilder\Compiler\Config; use VDM\Joomla\Componentbuilder\Compiler\Config;
use VDM\Joomla\Componentbuilder\Compiler\Placeholder; use VDM\Joomla\Componentbuilder\Compiler\Placeholder;
@ -23,6 +20,9 @@ use VDM\Joomla\Componentbuilder\Compiler\Language\Extractor;
use VDM\Joomla\Componentbuilder\Compiler\Power\Extractor as Power; use VDM\Joomla\Componentbuilder\Compiler\Power\Extractor as Power;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\External; use VDM\Joomla\Componentbuilder\Compiler\Customcode\External;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Placefix; use VDM\Joomla\Componentbuilder\Compiler\Utilities\Placefix;
use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\CustomcodeInterface; use VDM\Joomla\Componentbuilder\Compiler\Interfaces\CustomcodeInterface;

View File

@ -12,18 +12,6 @@
"system_name": "JCB.Compiler.Customcode", "system_name": "JCB.Compiler.Customcode",
"type": "class", "type": "class",
"use_selection": { "use_selection": {
"use_selection0": {
"use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a",
"as": "default"
},
"use_selection1": {
"use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef",
"as": "default"
},
"use_selection2": {
"use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc",
"as": "default"
},
"use_selection3": { "use_selection3": {
"use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac",
"as": "Compiler" "as": "Compiler"
@ -51,6 +39,18 @@
"use_selection9": { "use_selection9": {
"use": "500f3a7f-c16d-4dd4-81b2-2df6776b5388", "use": "500f3a7f-c16d-4dd4-81b2-2df6776b5388",
"as": "default" "as": "default"
},
"use_selection1": {
"use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef",
"as": "default"
},
"use_selection0": {
"use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a",
"as": "default"
},
"use_selection2": {
"use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc",
"as": "default"
} }
}, },
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Customcode", "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Customcode",

View File

@ -0,0 +1,46 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# final class CanEditState (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Model**
```uml
@startuml
class CanEditState << (F,LightGreen) >> #RoyalBlue {
# String $component
# Permission $permission
+ __construct(Config $config, Permission $permission)
+ get(string $nameSingleCode) : string
}
note right of CanEditState::__construct
Constructor.
since: 3.2.0
end note
note right of CanEditState::get
Get Can Edit State Function Code
since: 3.2.0
return: string
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,108 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Model;
use VDM\Joomla\Componentbuilder\Compiler\Config;
use VDM\Joomla\Componentbuilder\Compiler\Creator\Permission;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Model\CanEditStateInterface;
/**
* Model Can Edit State Class for Joomla 5
*
* @since 3.2.0
*/
final class CanEditState implements CanEditStateInterface
{
/**
* The Component code name.
*
* @var String
* @since 3.2.0
*/
protected String $component;
/**
* The Permission Class.
*
* @var Permission
* @since 3.2.0
*/
protected Permission $permission;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Permission $permission The Permission Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Permission $permission)
{
$this->component = $config->component_code_name;
$this->permission = $permission;
}
/**
* Get Can Edit State Function Code
*
* @param string $nameSingleCode The single code name of the view.
*
* @since 3.2.0
* @return string The can edit state method code
*/
public function get(string $nameSingleCode): string
{
$allow = [];
// setup the default script
$allow[] = PHP_EOL . Indent::_(2) . "\$user = \$this->getCurrentUser();";
$allow[] = Indent::_(2)
. "\$recordId = \$record->id ?? 0;";
$allow[] = PHP_EOL . Indent::_(2) . "if (\$recordId)";
$allow[] = Indent::_(2) . "{";
$allow[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " The record has been set. Check the record permissions.";
// check if the item has permissions.
$allow[] = Indent::_(3) . "\$permission = \$user->authorise('"
. $this->permission->getAction($nameSingleCode, 'core.edit.state')
. "', 'com_" . $this->component . "." . $nameSingleCode . ".' . (int) \$recordId);";
$allow[] = Indent::_(3)
. "if (!\$permission && !is_null(\$permission))";
$allow[] = Indent::_(3) . "{";
$allow[] = Indent::_(4) . "return false;";
$allow[] = Indent::_(3) . "}";
$allow[] = Indent::_(2) . "}";
if ($this->permission->globalExist($nameSingleCode, 'core.edit.state'))
{
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " In the absence of better information, revert to the component permissions.";
$allow[] = Indent::_(2) . "return \$user->authorise('"
. $this->permission->getGlobal($nameSingleCode, 'core.edit.state') . "', 'com_" . $this->component
. "');";
}
else
{
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " In the absence of better information, revert to the component permissions.";
$allow[] = Indent::_(2)
. "return parent::canEditState(\$record);";
}
return implode(PHP_EOL, $allow);
}
}

View File

@ -0,0 +1,78 @@
/**
* The Component code name.
*
* @var String
* @since 3.2.0
*/
protected String $component;
/**
* The Permission Class.
*
* @var Permission
* @since 3.2.0
*/
protected Permission $permission;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Permission $permission The Permission Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Permission $permission)
{
$this->component = $config->component_code_name;
$this->permission = $permission;
}
/**
* Get Can Edit State Function Code
*
* @param string $nameSingleCode The single code name of the view.
*
* @since 3.2.0
* @return string The can edit state method code
*/
public function get(string $nameSingleCode): string
{
$allow = [];
// setup the default script
$allow[] = PHP_EOL . Indent::_(2) . "\$user = \$this->getCurrentUser();";
$allow[] = Indent::_(2)
. "\$recordId = \$record->id ?? 0;";
$allow[] = PHP_EOL . Indent::_(2) . "if (\$recordId)";
$allow[] = Indent::_(2) . "{";
$allow[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__)
. " The record has been set. Check the record permissions.";
// check if the item has permissions.
$allow[] = Indent::_(3) . "\$permission = \$user->authorise('"
. $this->permission->getAction($nameSingleCode, 'core.edit.state')
. "', 'com_" . $this->component . "." . $nameSingleCode . ".' . (int) \$recordId);";
$allow[] = Indent::_(3)
. "if (!\$permission && !is_null(\$permission))";
$allow[] = Indent::_(3) . "{";
$allow[] = Indent::_(4) . "return false;";
$allow[] = Indent::_(3) . "}";
$allow[] = Indent::_(2) . "}";
if ($this->permission->globalExist($nameSingleCode, 'core.edit.state'))
{
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " In the absence of better information, revert to the component permissions.";
$allow[] = Indent::_(2) . "return \$user->authorise('"
. $this->permission->getGlobal($nameSingleCode, 'core.edit.state') . "', 'com_" . $this->component
. "');";
}
else
{
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " In the absence of better information, revert to the component permissions.";
$allow[] = Indent::_(2)
. "return parent::canEditState(\$record);";
}
return implode(PHP_EOL, $allow);
}

View File

@ -0,0 +1,37 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "318a98a3-bb6f-42cb-a000-352d4c848b51",
"implements": [
"600515b1-493f-4448-96fe-018e54e087c8"
],
"load_selection": null,
"name": "CanEditState",
"power_version": "1.0.0",
"system_name": "JCB.Architecture.J5.Model.CanEditState",
"type": "final class",
"use_selection": {
"use_selection0": {
"use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc",
"as": "default"
},
"use_selection1": {
"use": "7f01622a-74c9-4e67-b111-3eb488035206",
"as": "default"
},
"use_selection2": {
"use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6",
"as": "default"
},
"use_selection3": {
"use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222",
"as": "default"
}
},
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Architecture.JoomlaFive.Model.CanEditState",
"description": "Model Can Edit State Class for Joomla 5\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -12,6 +12,7 @@
@startuml @startuml
class Structure #Gold { class Structure #Gold {
# array $htaccess # array $htaccess
# array $done
# Power $power # Power $power
# Config $config # Config $config
# Registry $registry # Registry $registry

View File

@ -48,6 +48,22 @@ class Structure
**/ **/
protected array $htaccess = []; protected array $htaccess = [];
/**
* Power Build Tracker
*
* @var array
* @since 3.2.0
**/
protected array $done = [];
/**
* Path Build Tracker
*
* @var array
* @since 3.2.0
**/
protected array $path_done = [];
/** /**
* Power Objects * Power Objects
* *
@ -172,22 +188,21 @@ class Structure
{ {
if (ArrayHelper::check($this->power->active)) if (ArrayHelper::check($this->power->active))
{ {
// for plugin event TODO change event api signatures
$powers = $this->power->active;
$component_context = $this->config->component_context;
// Trigger Event: jcb_ce_onBeforeSetModules // Trigger Event: jcb_ce_onBeforeSetModules
$this->event->trigger( $this->event->trigger(
'jcb_ce_onBeforeBuildPowers', 'jcb_ce_onBeforeBuildPowers'
array(&$component_context, &$powers)
); );
// for plugin event TODO change event api signatures
$this->power->active = $powers;
// set super power details // set super power details
$this->setSuperPowerDetails(); $this->setSuperPowerDetails();
foreach ($this->power->active as $power) foreach ($this->power->active as $guid => $power)
{ {
if (isset($this->done[$guid]))
{
continue;
}
if (ObjectHelper::check($power) if (ObjectHelper::check($power)
&& isset($power->path) && isset($power->path)
&& StringHelper::check( && StringHelper::check(
@ -232,6 +247,9 @@ class Structure
// set htaccess once per path // set htaccess once per path
$this->setHtaccess($power); $this->setHtaccess($power);
// do each power just once
$this->done[$guid] = true;
} }
} }
} }
@ -384,6 +402,11 @@ class Structure
{ {
foreach ($this->power->superpowers as $path => $powers) foreach ($this->power->superpowers as $path => $powers)
{ {
if (isset($this->path_done[$path]))
{
continue;
}
// get existing files // get existing files
$this->loadExistingSuperPower($path); $this->loadExistingSuperPower($path);
@ -399,6 +422,9 @@ class Structure
// set the super power index file // set the super power index file
$this->createFile(Placefix::_h('POWERINDEX'), $path, $this->createFile(Placefix::_h('POWERINDEX'), $path,
'super-powers.json', $key); 'super-powers.json', $key);
// do each path just once
$this->path_done[$path] = true;
} }
} }
} }
@ -450,7 +476,7 @@ class Structure
*/ */
private function loadExistingSuperPower(string $repository) private function loadExistingSuperPower(string $repository)
{ {
if (($content = FileHelper::getContent($repository . '/super-powers.json', null)) !== null && if (!isset($this->power->old_superpowers[$repository]) && ($content = FileHelper::getContent($repository . '/super-powers.json', null)) !== null &&
JsonHelper::check($content)) JsonHelper::check($content))
{ {
$this->power->old_superpowers[$repository] = json_decode($content, true); $this->power->old_superpowers[$repository] = json_decode($content, true);

View File

@ -6,6 +6,22 @@
**/ **/
protected array $htaccess = []; protected array $htaccess = [];
/**
* Power Build Tracker
*
* @var array
* @since 3.2.0
**/
protected array $done = [];
/**
* Path Build Tracker
*
* @var array
* @since 3.2.0
**/
protected array $path_done = [];
/** /**
* Power Objects * Power Objects
* *
@ -130,22 +146,21 @@
{ {
if (ArrayHelper::check($this->power->active)) if (ArrayHelper::check($this->power->active))
{ {
// for plugin event TODO change event api signatures
$powers = $this->power->active;
$component_context = $this->config->component_context;
// Trigger Event: jcb_ce_onBeforeSetModules // Trigger Event: jcb_ce_onBeforeSetModules
$this->event->trigger( $this->event->trigger(
'jcb_ce_onBeforeBuildPowers', 'jcb_ce_onBeforeBuildPowers'
array(&$component_context, &$powers)
); );
// for plugin event TODO change event api signatures
$this->power->active = $powers;
// set super power details // set super power details
$this->setSuperPowerDetails(); $this->setSuperPowerDetails();
foreach ($this->power->active as $power) foreach ($this->power->active as $guid => $power)
{ {
if (isset($this->done[$guid]))
{
continue;
}
if (ObjectHelper::check($power) if (ObjectHelper::check($power)
&& isset($power->path) && isset($power->path)
&& StringHelper::check( && StringHelper::check(
@ -190,6 +205,9 @@
// set htaccess once per path // set htaccess once per path
$this->setHtaccess($power); $this->setHtaccess($power);
// do each power just once
$this->done[$guid] = true;
} }
} }
} }
@ -342,6 +360,11 @@
{ {
foreach ($this->power->superpowers as $path => $powers) foreach ($this->power->superpowers as $path => $powers)
{ {
if (isset($this->path_done[$path]))
{
continue;
}
// get existing files // get existing files
$this->loadExistingSuperPower($path); $this->loadExistingSuperPower($path);
@ -357,6 +380,9 @@
// set the super power index file // set the super power index file
$this->createFile(Placefix::_h('POWERINDEX'), $path, $this->createFile(Placefix::_h('POWERINDEX'), $path,
'super-powers.json', $key); 'super-powers.json', $key);
// do each path just once
$this->path_done[$path] = true;
} }
} }
} }
@ -408,7 +434,7 @@
*/ */
private function loadExistingSuperPower(string $repository) private function loadExistingSuperPower(string $repository)
{ {
if (($content = FileHelper::getContent($repository . '/super-powers.json', null)) !== null && if (!isset($this->power->old_superpowers[$repository]) && ($content = FileHelper::getContent($repository . '/super-powers.json', null)) !== null &&
JsonHelper::check($content)) JsonHelper::check($content))
{ {
$this->power->old_superpowers[$repository] = json_decode($content, true); $this->power->old_superpowers[$repository] = json_decode($content, true);

View File

@ -0,0 +1,46 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# final class CanDelete (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Model**
```uml
@startuml
class CanDelete << (F,LightGreen) >> #RoyalBlue {
# String $component
# Permission $permission
+ __construct(Config $config, Permission $permission)
+ get(string $nameSingleCode) : string
}
note right of CanDelete::__construct
Constructor.
since: 3.2.0
end note
note right of CanDelete::get
Get Can Delete Function Code
since: 3.2.0
return: string
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,87 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Model;
use VDM\Joomla\Componentbuilder\Compiler\Config;
use VDM\Joomla\Componentbuilder\Compiler\Creator\Permission;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Model\CanDeleteInterface;
/**
* Model Can Delete Class for Joomla 5
*
* @since 3.2.0
*/
final class CanDelete implements CanDeleteInterface
{
/**
* The Component code name.
*
* @var String
* @since 3.2.0
*/
protected String $component;
/**
* The Permission Class.
*
* @var Permission
* @since 3.2.0
*/
protected Permission $permission;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Permission $permission The Permission Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Permission $permission)
{
$this->component = $config->component_code_name;
$this->permission = $permission;
}
/**
* Get Can Delete Function Code
*
* @param string $nameSingleCode The single code name of the view.
*
* @since 3.2.0
* @return string The can delete method code
*/
public function get(string $nameSingleCode): string
{
$allow = [];
// setup the default script
$allow[] = PHP_EOL . Indent::_(2) . "if (empty(\$record->id) || (\$record->published != -2))";
$allow[] = Indent::_(2) . "{";
$allow[] = Indent::_(3) . "return false;";
$allow[] = Indent::_(2) . "}" . PHP_EOL;
// check if the item has permissions.
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " The record has been set. Check the record permissions.";
$allow[] = Indent::_(2) . "return \$this->getCurrentUser()->authorise('"
. $this->permission->getAction($nameSingleCode, 'core.delete') . "', 'com_" . $this->component . "."
. $nameSingleCode . ".' . (int) \$record->id);";
return implode(PHP_EOL, $allow);
}
}

View File

@ -0,0 +1,57 @@
/**
* The Component code name.
*
* @var String
* @since 3.2.0
*/
protected String $component;
/**
* The Permission Class.
*
* @var Permission
* @since 3.2.0
*/
protected Permission $permission;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Permission $permission The Permission Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Permission $permission)
{
$this->component = $config->component_code_name;
$this->permission = $permission;
}
/**
* Get Can Delete Function Code
*
* @param string $nameSingleCode The single code name of the view.
*
* @since 3.2.0
* @return string The can delete method code
*/
public function get(string $nameSingleCode): string
{
$allow = [];
// setup the default script
$allow[] = PHP_EOL . Indent::_(2) . "if (empty(\$record->id) || (\$record->published != -2))";
$allow[] = Indent::_(2) . "{";
$allow[] = Indent::_(3) . "return false;";
$allow[] = Indent::_(2) . "}" . PHP_EOL;
// check if the item has permissions.
$allow[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__)
. " The record has been set. Check the record permissions.";
$allow[] = Indent::_(2) . "return \$this->getCurrentUser()->authorise('"
. $this->permission->getAction($nameSingleCode, 'core.delete') . "', 'com_" . $this->component . "."
. $nameSingleCode . ".' . (int) \$record->id);";
return implode(PHP_EOL, $allow);
}

View File

@ -0,0 +1,37 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "34df20ec-67db-4e7e-be61-fb94d360c408",
"implements": [
"e00a7d1d-6d80-41c5-bf13-32d41bc5bf91"
],
"load_selection": null,
"name": "CanDelete",
"power_version": "1.0.0",
"system_name": "JCB.Architecture.J5.Model.CanDelete",
"type": "final class",
"use_selection": {
"use_selection0": {
"use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc",
"as": "default"
},
"use_selection1": {
"use": "7f01622a-74c9-4e67-b111-3eb488035206",
"as": "default"
},
"use_selection2": {
"use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6",
"as": "default"
},
"use_selection3": {
"use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222",
"as": "default"
}
},
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Architecture.JoomlaFive.Model.CanDelete",
"description": "Model Can Delete Class for Joomla 5\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -16,6 +16,7 @@ class Header #Gold {
+ getHeader(Container $container) : HeaderInterface + getHeader(Container $container) : HeaderInterface
+ getJ3Header(Container $container) : J3Header + getJ3Header(Container $container) : J3Header
+ getJ4Header(Container $container) : J4Header + getJ4Header(Container $container) : J4Header
+ getJ5Header(Container $container) : J5Header
} }
note right of Header::register note right of Header::register
@ -45,6 +46,13 @@ note right of Header::getJ4Header
since: 3.2.0 since: 3.2.0
return: J4Header return: J4Header
end note end note
note right of Header::getJ5Header
Get The Header Class.
since: 3.2.0
return: J5Header
end note
@enduml @enduml
``` ```

View File

@ -17,6 +17,7 @@ use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\HeaderInterface; use VDM\Joomla\Componentbuilder\Compiler\Interfaces\HeaderInterface;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaThree\Header as J3Header; use VDM\Joomla\Componentbuilder\Compiler\JoomlaThree\Header as J3Header;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaFour\Header as J4Header; use VDM\Joomla\Componentbuilder\Compiler\JoomlaFour\Header as J4Header;
use VDM\Joomla\Componentbuilder\Compiler\JoomlaFive\Header as J5Header;
/** /**
@ -50,6 +51,9 @@ class Header implements ServiceProviderInterface
$container->alias(J4Header::class, 'J4.Header') $container->alias(J4Header::class, 'J4.Header')
->share('J4.Header', [$this, 'getJ4Header'], true); ->share('J4.Header', [$this, 'getJ4Header'], true);
$container->alias(J5Header::class, 'J5.Header')
->share('J5.Header', [$this, 'getJ5Header'], true);
$container->alias(HeaderInterface::class, 'Header') $container->alias(HeaderInterface::class, 'Header')
->share('Header', [$this, 'getHeader'], true); ->share('Header', [$this, 'getHeader'], true);
} }
@ -118,6 +122,30 @@ class Header implements ServiceProviderInterface
$container->get('Compiler.Builder.Filter'), $container->get('Compiler.Builder.Filter'),
$container->get('Compiler.Builder.Tags') $container->get('Compiler.Builder.Tags')
); );
}
/**
* Get The Header Class.
*
* @param Container $container The DI container.
*
* @return J5Header
* @since 3.2.0
*/
public function getJ5Header(Container $container): J5Header
{
return new J5Header(
$container->get('Config'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Language'),
$container->get('Compiler.Builder.Uikit.Comp'),
$container->get('Compiler.Builder.Admin.Filter.Type'),
$container->get('Compiler.Builder.Category'),
$container->get('Compiler.Builder.Access.Switch.List'),
$container->get('Compiler.Builder.Filter'),
$container->get('Compiler.Builder.Tags')
);
} }
} }

View File

@ -22,6 +22,9 @@
$container->alias(J4Header::class, 'J4.Header') $container->alias(J4Header::class, 'J4.Header')
->share('J4.Header', [$this, 'getJ4Header'], true); ->share('J4.Header', [$this, 'getJ4Header'], true);
$container->alias(J5Header::class, 'J5.Header')
->share('J5.Header', [$this, 'getJ5Header'], true);
$container->alias(HeaderInterface::class, 'Header') $container->alias(HeaderInterface::class, 'Header')
->share('Header', [$this, 'getHeader'], true); ->share('Header', [$this, 'getHeader'], true);
} }
@ -90,4 +93,28 @@
$container->get('Compiler.Builder.Filter'), $container->get('Compiler.Builder.Filter'),
$container->get('Compiler.Builder.Tags') $container->get('Compiler.Builder.Tags')
); );
}
/**
* Get The Header Class.
*
* @param Container $container The DI container.
*
* @return J5Header
* @since 3.2.0
*/
public function getJ5Header(Container $container): J5Header
{
return new J5Header(
$container->get('Config'),
$container->get('Event'),
$container->get('Placeholder'),
$container->get('Language'),
$container->get('Compiler.Builder.Uikit.Comp'),
$container->get('Compiler.Builder.Admin.Filter.Type'),
$container->get('Compiler.Builder.Category'),
$container->get('Compiler.Builder.Access.Switch.List'),
$container->get('Compiler.Builder.Filter'),
$container->get('Compiler.Builder.Tags')
);
} }

View File

@ -23,6 +23,10 @@
"use_selection2": { "use_selection2": {
"use": "1ee227b9-da0f-4e7b-ae66-99a9d53f6f49", "use": "1ee227b9-da0f-4e7b-ae66-99a9d53f6f49",
"as": "J4Header" "as": "J4Header"
},
"use_selection3": {
"use": "95deb809-5f43-400b-939f-f9ceef720b13",
"as": "J5Header"
} }
}, },
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Service.Header", "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Service.Header",

View File

@ -0,0 +1,102 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# class Router (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Model**
```uml
@startuml
class Router #Gold {
# Config $config
# Dispenser $dispenser
# Builder $builder
# array $guiMapper
# array $targets
+ __construct(Config $config, Dispenser $dispenser, ...)
+ set(object $item) : void
# getSiteViews(array $siteViews, array $adminViews) : array
# getSiteEditViews(?array $views) : array
# getSiteViewAliasKey(?string $viewName, array $adminViews) : ?string
# getSiteEditViewAliasKey(?array $fields) : ?string
# getMainSelection(?array $gets) : array
}
note right of Router::__construct
Constructor.
since: 3.2.0
arguments:
Config $config
Dispenser $dispenser
Builder $builder
end note
note right of Router::set
Set Router
since: 3.2.0
return: void
end note
note right of Router::getSiteViews
Get the array of site views with additional details.
This method processes each site view to enrich it with additional details such as the associated table,
alias keys, and other relevant information. The enrichment is based on the view's settings and the admin views.
since: 3.2.0
return: array
end note
note right of Router::getSiteEditViews
Get the array of site edit views
This method processes the provided admin views to extract and return an array of site edit views.
Each site edit view is constructed based on specific conditions from the admin view's settings.
since: 3.2.0
return: array
end note
note right of Router::getSiteViewAliasKey
Get the site edit view alias key value
This method fetches the alias keys for a given site edit view by matching the view name
against a list of admin views. It processes the admin views to find a match and then
retrieves the alias keys from the matched view's settings.
since: 3.2.0
return: ?string
end note
note right of Router::getSiteEditViewAliasKey
Get the site view alias key value
since: 3.2.0
return: ?string
end note
note right of Router::getMainSelection
Get the view (main selection) table and view name value
from the main get object
since: 3.2.0
return: array
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,330 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Model;
use VDM\Joomla\Componentbuilder\Compiler\Config;
use VDM\Joomla\Componentbuilder\Compiler\Customcode\Dispenser;
use VDM\Joomla\Componentbuilder\Compiler\Builder\Router as Builder;
use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\JsonHelper;
/**
* Model Component Site Router Class
*
* @since 3.2.0
*/
class Router
{
/**
* The Config Class.
*
* @var Config
* @since 3.2.0
*/
protected Config $config;
/**
* The Dispenser Class.
*
* @var Dispenser
* @since 3.2.0
*/
protected Dispenser $dispenser;
/**
* The Router Class.
*
* @var Builder
* @since 3.2.0
*/
protected Builder $builder;
/**
* The gui mapper array
*
* @var array
* @since 3.2.0
*/
protected array $guiMapper = [
'table' => 'component_router',
'id' => null,
'field' => null,
'type' => 'php'
];
/**
* The field targets
*
* @var array
* @since 3.2.0
*/
protected array $targets = [
'before' => 'constructor_before_parent',
'after' => 'constructor_after_parent',
'method' => 'methods'
];
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Dispenser $dispenser The Dispenser Class.
* @param Builder $builder The Router Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Dispenser $dispenser, Builder $builder)
{
$this->config = $config;
$this->dispenser = $dispenser;
$this->builder = $builder;
}
/**
* Set Router
*
* @param object $item The item data
*
* @return void
* @since 3.2.0
*/
public function set(object &$item)
{
$this->config->lang_target = 'site';
foreach ($this->targets as $target)
{
// add the code
if ($item->{"router_mode_{$target}"} == 3
&& StringHelper::check($item->{"router_{$target}_code"}))
{
// update GUI mapper field
$this->guiMapper['field'] = "{$target}_code";
$this->dispenser->set(
$item->{"router_{$target}_code"},
"_site_router_",
$target,
null,
$this->guiMapper
);
}
unset($item->{"router_{$target}_code"});
}
// get the site views
$views = $this->getSiteViews($item->site_views ?? [], $item->admin_views ?? []);
$edit_views = $this->getSiteEditViews($item->admin_views);
// get the edit site views
$this->builder->set('views',
ArrayHelper::merge([$views, $edit_views])
);
if ($item->router_mode_constructor_before_parent == 2
&& JsonHelper::check($item->router_constructor_before_parent_manual))
{
// build and validate the constructor before parent call code
$this->builder->set('manual',
json_decode($item->router_constructor_before_parent_manual)
);
}
// clear the data from the item
foreach ($this->targets as $key => $target)
{
// set the modes
$this->builder->set("mode_{$key}",
(int) $item->{"router_mode_{$target}"}
);
unset($item->{"router_mode_{$target}"});
}
unset($item->router_constructor_before_parent_manual);
}
/**
* Get the array of site views with additional details.
*
* This method processes each site view to enrich it with additional details such as the associated table,
* alias keys, and other relevant information. The enrichment is based on the view's settings and the admin views.
*
* @param array $siteViews The site views to be processed.
* @param array $adminViews The admin views used for fetching additional data.
*
* @return array An array of objects, each representing a site view with enriched details.
* @since 3.2.0
*/
protected function getSiteViews(array $siteViews, array $adminViews): array
{
return array_map(function ($view) use ($adminViews) {
// Attempt to get the main selection details from the view's settings.
$selection = $this->getMainSelection($view['settings']->main_get->main_get ?? null);
// We can only work with ID if the [main get] is a [getItem] dynamicGet for this site view.
$key = ($view['settings']->main_get->gettype == 1) ? 'id' : null;
// Construct the enriched view object.
return (object) [
'view' => $view['settings']->code,
'View' => $view['settings']->Code,
'stable' => ($selection['view'] === $view['settings']->code), // sanity check
'target_view' => $selection['view'],
'table' => $selection['table'],
'table_name' => $selection['name'],
'alias' => $this->getSiteViewAliasKey($selection['name'] ?? null, $adminViews),
'key' => $key,
'form' => false
];
}, $siteViews);
}
/**
* Get the array of site edit views
*
* This method processes the provided admin views to extract and return an array of site edit views.
* Each site edit view is constructed based on specific conditions from the admin view's settings.
*
* @param array|null $views The admin views to process.
*
* @return array An array of site edit views, each as an object with view, table, alias, key, and form properties.
* @since 3.2.0
*/
protected function getSiteEditViews(?array $views): array
{
$siteEditViews = [];
// Return early if no views are provided.
if (empty($views))
{
return $siteEditViews;
}
foreach ($views as $view)
{
// Check if the view is marked for edit/create on the site.
if (!empty($view['edit_create_site_view']))
{
$siteEditViews[] = (object) [
'view' => $view['settings']->name_single_code,
'View' => StringHelper::safe($view['settings']->name_single_code, 'F'),
'stable' => true,
'target_view' => $view['settings']->name_single_code,
'table' => '#__' . $this->config->component_code_name . '_' . $view['settings']->name_single_code,
'alias' => $this->getSiteEditViewAliasKey($view['settings']->fields ?? null),
'key' => 'id',
'form' => true
];
}
}
return $siteEditViews;
}
/**
* Get the site edit view alias key value
*
* This method fetches the alias keys for a given site edit view by matching the view name
* against a list of admin views. It processes the admin views to find a match and then
* retrieves the alias keys from the matched view's settings.
*
* @param string|null $viewName The view name to match.
* @param array $adminViews The admin views to search within.
*
* @return string|null The alias key for the site edit view, or null if not found.
* @since 3.2.0
*/
protected function getSiteViewAliasKey(?string $viewName, array $adminViews): ?string
{
// Return early if no view name is provided or admin views are empty.
if ($viewName === null || empty($adminViews))
{
return null;
}
foreach ($adminViews as $view)
{
// Check if the current view matches the specified view name and has fields defined.
if ($view['settings']->name_single_code === $viewName && is_array($view['settings']->fields ?? null))
{
// If a match is found, retrieve and return the site edit view alias keys.
return $this->getSiteEditViewAliasKey($view['settings']->fields);
}
}
// Return an empty array if no matching view is found.
return null;
}
/**
* Get the site view alias key value
*
* @param array|null $fields The main get object
*
* @return string|null
* @since 3.2.0
*/
protected function getSiteEditViewAliasKey(?array $fields): ?string
{
if ($fields !== null)
{
foreach ($fields as $field)
{
if (isset($field['alias']) && $field['alias'] && $field['type_name'] === 'text')
{
return $field['base_name'];
}
}
}
return null;
}
/**
* Get the view (main selection) table and view name value
* from the main get object
*
* @param array|null $gets The main get objects
*
* @return array
* @since 3.2.0
*/
protected function getMainSelection(?array $gets): array
{
if ($gets !== null)
{
foreach ($gets as $get)
{
// get the main table
if (isset($get['as'])
&& $get['as'] === 'a'
&& isset($get['selection'])
&& ArrayHelper::check($get['selection'])
&& isset($get['selection']['select_gets'])
&& ArrayHelper::check($get['selection']['select_gets'])
&& isset($get['selection']['name']) && isset($get['selection']['table']))
{
$name = $get['selection']['name'];
$view = $get['selection']['view'];
$table = $get['selection']['table'];
return ['table' => $table, 'view' => $view, 'name' => $name];
}
}
}
return [];
}
}

View File

@ -0,0 +1,299 @@
/**
* The Config Class.
*
* @var Config
* @since 3.2.0
*/
protected Config $config;
/**
* The Dispenser Class.
*
* @var Dispenser
* @since 3.2.0
*/
protected Dispenser $dispenser;
/**
* The Router Class.
*
* @var Builder
* @since 3.2.0
*/
protected Builder $builder;
/**
* The gui mapper array
*
* @var array
* @since 3.2.0
*/
protected array $guiMapper = [
'table' => 'component_router',
'id' => null,
'field' => null,
'type' => 'php'
];
/**
* The field targets
*
* @var array
* @since 3.2.0
*/
protected array $targets = [
'before' => 'constructor_before_parent',
'after' => 'constructor_after_parent',
'method' => 'methods'
];
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param Dispenser $dispenser The Dispenser Class.
* @param Builder $builder The Router Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, Dispenser $dispenser, Builder $builder)
{
$this->config = $config;
$this->dispenser = $dispenser;
$this->builder = $builder;
}
/**
* Set Router
*
* @param object $item The item data
*
* @return void
* @since 3.2.0
*/
public function set(object &$item)
{
$this->config->lang_target = 'site';
foreach ($this->targets as $target)
{
// add the code
if ($item->{"router_mode_{$target}"} == 3
&& StringHelper::check($item->{"router_{$target}_code"}))
{
// update GUI mapper field
$this->guiMapper['field'] = "{$target}_code";
$this->dispenser->set(
$item->{"router_{$target}_code"},
"_site_router_",
$target,
null,
$this->guiMapper
);
}
unset($item->{"router_{$target}_code"});
}
// get the site views
$views = $this->getSiteViews($item->site_views ?? [], $item->admin_views ?? []);
$edit_views = $this->getSiteEditViews($item->admin_views);
// get the edit site views
$this->builder->set('views',
ArrayHelper::merge([$views, $edit_views])
);
if ($item->router_mode_constructor_before_parent == 2
&& JsonHelper::check($item->router_constructor_before_parent_manual))
{
// build and validate the constructor before parent call code
$this->builder->set('manual',
json_decode($item->router_constructor_before_parent_manual)
);
}
// clear the data from the item
foreach ($this->targets as $key => $target)
{
// set the modes
$this->builder->set("mode_{$key}",
(int) $item->{"router_mode_{$target}"}
);
unset($item->{"router_mode_{$target}"});
}
unset($item->router_constructor_before_parent_manual);
}
/**
* Get the array of site views with additional details.
*
* This method processes each site view to enrich it with additional details such as the associated table,
* alias keys, and other relevant information. The enrichment is based on the view's settings and the admin views.
*
* @param array $siteViews The site views to be processed.
* @param array $adminViews The admin views used for fetching additional data.
*
* @return array An array of objects, each representing a site view with enriched details.
* @since 3.2.0
*/
protected function getSiteViews(array $siteViews, array $adminViews): array
{
return array_map(function ($view) use ($adminViews) {
// Attempt to get the main selection details from the view's settings.
$selection = $this->getMainSelection($view['settings']->main_get->main_get ?? null);
// We can only work with ID if the [main get] is a [getItem] dynamicGet for this site view.
$key = ($view['settings']->main_get->gettype == 1) ? 'id' : null;
// Construct the enriched view object.
return (object) [
'view' => $view['settings']->code,
'View' => $view['settings']->Code,
'stable' => ($selection['view'] === $view['settings']->code), // sanity check
'target_view' => $selection['view'],
'table' => $selection['table'],
'table_name' => $selection['name'],
'alias' => $this->getSiteViewAliasKey($selection['name'] ?? null, $adminViews),
'key' => $key,
'form' => false
];
}, $siteViews);
}
/**
* Get the array of site edit views
*
* This method processes the provided admin views to extract and return an array of site edit views.
* Each site edit view is constructed based on specific conditions from the admin view's settings.
*
* @param array|null $views The admin views to process.
*
* @return array An array of site edit views, each as an object with view, table, alias, key, and form properties.
* @since 3.2.0
*/
protected function getSiteEditViews(?array $views): array
{
$siteEditViews = [];
// Return early if no views are provided.
if (empty($views))
{
return $siteEditViews;
}
foreach ($views as $view)
{
// Check if the view is marked for edit/create on the site.
if (!empty($view['edit_create_site_view']))
{
$siteEditViews[] = (object) [
'view' => $view['settings']->name_single_code,
'View' => StringHelper::safe($view['settings']->name_single_code, 'F'),
'stable' => true,
'target_view' => $view['settings']->name_single_code,
'table' => '#__' . $this->config->component_code_name . '_' . $view['settings']->name_single_code,
'alias' => $this->getSiteEditViewAliasKey($view['settings']->fields ?? null),
'key' => 'id',
'form' => true
];
}
}
return $siteEditViews;
}
/**
* Get the site edit view alias key value
*
* This method fetches the alias keys for a given site edit view by matching the view name
* against a list of admin views. It processes the admin views to find a match and then
* retrieves the alias keys from the matched view's settings.
*
* @param string|null $viewName The view name to match.
* @param array $adminViews The admin views to search within.
*
* @return string|null The alias key for the site edit view, or null if not found.
* @since 3.2.0
*/
protected function getSiteViewAliasKey(?string $viewName, array $adminViews): ?string
{
// Return early if no view name is provided or admin views are empty.
if ($viewName === null || empty($adminViews))
{
return null;
}
foreach ($adminViews as $view)
{
// Check if the current view matches the specified view name and has fields defined.
if ($view['settings']->name_single_code === $viewName && is_array($view['settings']->fields ?? null))
{
// If a match is found, retrieve and return the site edit view alias keys.
return $this->getSiteEditViewAliasKey($view['settings']->fields);
}
}
// Return an empty array if no matching view is found.
return null;
}
/**
* Get the site view alias key value
*
* @param array|null $fields The main get object
*
* @return string|null
* @since 3.2.0
*/
protected function getSiteEditViewAliasKey(?array $fields): ?string
{
if ($fields !== null)
{
foreach ($fields as $field)
{
if (isset($field['alias']) && $field['alias'] && $field['type_name'] === 'text')
{
return $field['base_name'];
}
}
}
return null;
}
/**
* Get the view (main selection) table and view name value
* from the main get object
*
* @param array|null $gets The main get objects
*
* @return array
* @since 3.2.0
*/
protected function getMainSelection(?array $gets): array
{
if ($gets !== null)
{
foreach ($gets as $get)
{
// get the main table
if (isset($get['as'])
&& $get['as'] === 'a'
&& isset($get['selection'])
&& ArrayHelper::check($get['selection'])
&& isset($get['selection']['select_gets'])
&& ArrayHelper::check($get['selection']['select_gets'])
&& isset($get['selection']['name']) && isset($get['selection']['table']))
{
$name = $get['selection']['name'];
$view = $get['selection']['view'];
$table = $get['selection']['table'];
return ['table' => $table, 'view' => $view, 'name' => $name];
}
}
}
return [];
}

View File

@ -0,0 +1,43 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "402239e6-ceec-4ee0-af62-22d462417bf6",
"implements": null,
"load_selection": null,
"name": "Router",
"power_version": "1.0.0",
"system_name": "JCB.Compiler.Model.Router",
"type": "class",
"use_selection": {
"use_selection0": {
"use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc",
"as": "default"
},
"use_selection1": {
"use": "f1dc6430-fb54-452e-aa53-ce32ae93db88",
"as": "default"
},
"use_selection2": {
"use": "4a4cf7a3-d0f9-439e-96fb-82d7a4ae0cf5",
"as": "Builder"
},
"use_selection3": {
"use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a",
"as": "default"
},
"use_selection4": {
"use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef",
"as": "default"
},
"use_selection5": {
"use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18",
"as": "default"
}
},
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Model.Router",
"description": "Model Component Site Router Class\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -0,0 +1,56 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# final class Customtabs (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaFour**
```uml
@startuml
class Customtabs << (F,LightGreen) >> #RoyalBlue {
# Config $config
# BuilderCustomTabs $buildercustomtabs
# Language $language
# Placeholder $placeholder
# Customcode $customcode
+ __construct(Config $config, BuilderCustomTabs $buildercustomtabs, ...)
+ set(object $item) : void
}
note right of Customtabs::__construct
Constructor.
since: 3.2.0
arguments:
Config $config
BuilderCustomTabs $buildercustomtabs
Language $language
Placeholder $placeholder
Customcode $customcode
end note
note right of Customtabs::set
Set custom tabs
since: 3.2.0
return: void
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,240 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Model\JoomlaFour;
use VDM\Joomla\Componentbuilder\Compiler\Config;
use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomTabs as BuilderCustomTabs;
use VDM\Joomla\Componentbuilder\Compiler\Language;
use VDM\Joomla\Componentbuilder\Compiler\Placeholder;
use VDM\Joomla\Componentbuilder\Compiler\Customcode;
use VDM\Joomla\Utilities\JsonHelper;
use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Model\CustomtabsInterface;
/**
* Model Custom Tabs Class
*
* @since 3.2.0
*/
final class Customtabs implements CustomtabsInterface
{
/**
* The Config Class.
*
* @var Config
* @since 3.2.0
*/
protected Config $config;
/**
* The CustomTabs Class.
*
* @var BuilderCustomTabs
* @since 3.2.0
*/
protected BuilderCustomTabs $buildercustomtabs;
/**
* The Language Class.
*
* @var Language
* @since 3.2.0
*/
protected Language $language;
/**
* The Placeholder Class.
*
* @var Placeholder
* @since 3.2.0
*/
protected Placeholder $placeholder;
/**
* The Customcode Class.
*
* @var Customcode
* @since 3.2.0
*/
protected Customcode $customcode;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param BuilderCustomTabs $buildercustomtabs The CustomTabs Class.
* @param Language $language The Language Class.
* @param Placeholder $placeholder The Placeholder Class.
* @param Customcode $customcode The Customcode Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, BuilderCustomTabs $buildercustomtabs, Language $language, Placeholder $placeholder, Customcode $customcode)
{
$this->config = $config;
$this->buildercustomtabs = $buildercustomtabs;
$this->language = $language;
$this->placeholder = $placeholder;
$this->customcode = $customcode;
}
/**
* Set custom tabs
*
* @param object $item The view data
*
* @return void
* @since 3.2.0
*/
public function set(object &$item)
{
$item->customtabs = (isset($item->customtabs)
&& JsonHelper::check($item->customtabs))
? json_decode((string) $item->customtabs, true) : null;
if (ArrayHelper::check($item->customtabs))
{
// get the name
$name = $item->name_single_code;
// setup custom tabs to global data sets
$this->buildercustomtabs->set($name,
array_map(
function ($tab) use (&$name) {
// set the view name
$tab['view'] = $name;
// load the dynamic data
$tab['html'] = $this->placeholder->update_(
$this->customcode->update($tab['html'])
);
// set the tab name
$tab['name'] = (isset($tab['name'])
&& StringHelper::check(
$tab['name']
)) ? $tab['name'] : 'Tab';
// set lang
$tab['lang'] = $this->config->lang_prefix . '_'
. StringHelper::safe(
$tab['view'], 'U'
) . '_' . StringHelper::safe(
$tab['name'], 'U'
);
$this->language->set(
'both', $tab['lang'], $tab['name']
);
// set code name
$tab['code'] = StringHelper::safe(
$tab['name']
);
// check if the permissions for the tab should be added
$_tab = '';
if (isset($tab['permission'])
&& $tab['permission'] == 1)
{
$_tab = Indent::_(1);
}
// check if the php of the tab is set, if not load it now
if (strpos((string) $tab['html'], 'uitab.addTab') === false
&& strpos((string) $tab['html'], 'uitab.endTab')
=== false)
{
// add the tab
$tmp = PHP_EOL . $_tab . Indent::_(1)
. "<?php echo Html::_('uitab.addTab', '"
. $tab['view'] . "Tab', '" . $tab['code']
. "', JT" . "ext::_('" . $tab['lang']
. "', true)); ?>";
$tmp .= PHP_EOL . $_tab . Indent::_(2)
. '<div class="row">';
$tmp .= PHP_EOL . $_tab . Indent::_(3)
. '<div class="col-md-12">';
$tmp .= PHP_EOL . $_tab . Indent::_(4) . implode(
PHP_EOL . $_tab . Indent::_(4),
(array) explode(PHP_EOL, trim((string) $tab['html']))
);
$tmp .= PHP_EOL . $_tab . Indent::_(3) . '</div>';
$tmp .= PHP_EOL . $_tab . Indent::_(2) . '</div>';
$tmp .= PHP_EOL . $_tab . Indent::_(1)
. "<?php echo Html::_('uitab.endTab'); ?>";
// update html
$tab['html'] = $tmp;
}
else
{
$tab['html'] = PHP_EOL . $_tab . Indent::_(1)
. implode(
PHP_EOL . $_tab . Indent::_(1),
(array) explode(PHP_EOL, trim((string) $tab['html']))
);
}
// add the permissions if needed
if (isset($tab['permission'])
&& $tab['permission'] == 1)
{
$tmp = PHP_EOL . Indent::_(1)
. "<?php if (\$this->canDo->get('"
. $tab['view'] . "." . $tab['code']
. ".viewtab')) : ?>";
$tmp .= $tab['html'];
$tmp .= PHP_EOL . Indent::_(1) . "<?php endif; ?>";
// update html
$tab['html'] = $tmp;
// set lang for permissions
$tab['lang_permission'] = $tab['lang']
. '_TAB_PERMISSION';
$tab['lang_permission_desc'] = $tab['lang']
. '_TAB_PERMISSION_DESC';
$tab['lang_permission_title']
= $this->placeholder->get('Views') . ' View '
. $tab['name'] . ' Tab';
$this->language->set(
'both', $tab['lang_permission'],
$tab['lang_permission_title']
);
$this->language->set(
'both', $tab['lang_permission_desc'],
'Allow the users in this group to view '
. $tab['name'] . ' Tab of '
. $this->placeholder->get('views')
);
// set the sort key
$tab['sortKey']
= StringHelper::safe(
$tab['lang_permission_title']
);
}
// return tab
return $tab;
}, array_values($item->customtabs)
)
);
}
unset($item->customtabs);
}
}

View File

@ -0,0 +1,205 @@
/**
* The Config Class.
*
* @var Config
* @since 3.2.0
*/
protected Config $config;
/**
* The CustomTabs Class.
*
* @var BuilderCustomTabs
* @since 3.2.0
*/
protected BuilderCustomTabs $buildercustomtabs;
/**
* The Language Class.
*
* @var Language
* @since 3.2.0
*/
protected Language $language;
/**
* The Placeholder Class.
*
* @var Placeholder
* @since 3.2.0
*/
protected Placeholder $placeholder;
/**
* The Customcode Class.
*
* @var Customcode
* @since 3.2.0
*/
protected Customcode $customcode;
/**
* Constructor.
*
* @param Config $config The Config Class.
* @param BuilderCustomTabs $buildercustomtabs The CustomTabs Class.
* @param Language $language The Language Class.
* @param Placeholder $placeholder The Placeholder Class.
* @param Customcode $customcode The Customcode Class.
*
* @since 3.2.0
*/
public function __construct(Config $config, BuilderCustomTabs $buildercustomtabs, Language $language, Placeholder $placeholder, Customcode $customcode)
{
$this->config = $config;
$this->buildercustomtabs = $buildercustomtabs;
$this->language = $language;
$this->placeholder = $placeholder;
$this->customcode = $customcode;
}
/**
* Set custom tabs
*
* @param object $item The view data
*
* @return void
* @since 3.2.0
*/
public function set(object &$item)
{
$item->customtabs = (isset($item->customtabs)
&& JsonHelper::check($item->customtabs))
? json_decode((string) $item->customtabs, true) : null;
if (ArrayHelper::check($item->customtabs))
{
// get the name
$name = $item->name_single_code;
// setup custom tabs to global data sets
$this->buildercustomtabs->set($name,
array_map(
function ($tab) use (&$name) {
// set the view name
$tab['view'] = $name;
// load the dynamic data
$tab['html'] = $this->placeholder->update_(
$this->customcode->update($tab['html'])
);
// set the tab name
$tab['name'] = (isset($tab['name'])
&& StringHelper::check(
$tab['name']
)) ? $tab['name'] : 'Tab';
// set lang
$tab['lang'] = $this->config->lang_prefix . '_'
. StringHelper::safe(
$tab['view'], 'U'
) . '_' . StringHelper::safe(
$tab['name'], 'U'
);
$this->language->set(
'both', $tab['lang'], $tab['name']
);
// set code name
$tab['code'] = StringHelper::safe(
$tab['name']
);
// check if the permissions for the tab should be added
$_tab = '';
if (isset($tab['permission'])
&& $tab['permission'] == 1)
{
$_tab = Indent::_(1);
}
// check if the php of the tab is set, if not load it now
if (strpos((string) $tab['html'], 'uitab.addTab') === false
&& strpos((string) $tab['html'], 'uitab.endTab')
=== false)
{
// add the tab
$tmp = PHP_EOL . $_tab . Indent::_(1)
. "<?php echo Html::_('uitab.addTab', '"
. $tab['view'] . "Tab', '" . $tab['code']
. "', JT" . "ext::_('" . $tab['lang']
. "', true)); ?>";
$tmp .= PHP_EOL . $_tab . Indent::_(2)
. '<div class="row">';
$tmp .= PHP_EOL . $_tab . Indent::_(3)
. '<div class="col-md-12">';
$tmp .= PHP_EOL . $_tab . Indent::_(4) . implode(
PHP_EOL . $_tab . Indent::_(4),
(array) explode(PHP_EOL, trim((string) $tab['html']))
);
$tmp .= PHP_EOL . $_tab . Indent::_(3) . '</div>';
$tmp .= PHP_EOL . $_tab . Indent::_(2) . '</div>';
$tmp .= PHP_EOL . $_tab . Indent::_(1)
. "<?php echo Html::_('uitab.endTab'); ?>";
// update html
$tab['html'] = $tmp;
}
else
{
$tab['html'] = PHP_EOL . $_tab . Indent::_(1)
. implode(
PHP_EOL . $_tab . Indent::_(1),
(array) explode(PHP_EOL, trim((string) $tab['html']))
);
}
// add the permissions if needed
if (isset($tab['permission'])
&& $tab['permission'] == 1)
{
$tmp = PHP_EOL . Indent::_(1)
. "<?php if (\$this->canDo->get('"
. $tab['view'] . "." . $tab['code']
. ".viewtab')) : ?>";
$tmp .= $tab['html'];
$tmp .= PHP_EOL . Indent::_(1) . "<?php endif; ?>";
// update html
$tab['html'] = $tmp;
// set lang for permissions
$tab['lang_permission'] = $tab['lang']
. '_TAB_PERMISSION';
$tab['lang_permission_desc'] = $tab['lang']
. '_TAB_PERMISSION_DESC';
$tab['lang_permission_title']
= $this->placeholder->get('Views') . ' View '
. $tab['name'] . ' Tab';
$this->language->set(
'both', $tab['lang_permission'],
$tab['lang_permission_title']
);
$this->language->set(
'both', $tab['lang_permission_desc'],
'Allow the users in this group to view '
. $tab['name'] . ' Tab of '
. $this->placeholder->get('views')
);
// set the sort key
$tab['sortKey']
= StringHelper::safe(
$tab['lang_permission_title']
);
}
// return tab
return $tab;
}, array_values($item->customtabs)
)
);
}
unset($item->customtabs);
}

View File

@ -0,0 +1,57 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "42648fb4-dfdc-4986-a180-69e5726a25c4",
"implements": [
"fcf42c53-0967-4c87-9699-a4d86adfdadf"
],
"load_selection": null,
"name": "Customtabs",
"power_version": "1.0.0",
"system_name": "JCB.Compiler.Model.J4.Customtabs",
"type": "final class",
"use_selection": {
"use_selection0": {
"use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc",
"as": "default"
},
"use_selection1": {
"use": "9551b683-67b6-4367-bb14-4b016def37e3",
"as": "BuilderCustomTabs"
},
"use_selection2": {
"use": "8eee7df5-2775-41a9-9372-c46c5939a252",
"as": "default"
},
"use_selection3": {
"use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c",
"as": "default"
},
"use_selection4": {
"use": "313b43c4-98c3-4f62-9177-2d73ec8eba31",
"as": "default"
},
"use_selection5": {
"use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18",
"as": "default"
},
"use_selection6": {
"use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a",
"as": "default"
},
"use_selection7": {
"use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef",
"as": "default"
},
"use_selection8": {
"use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6",
"as": "default"
}
},
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Model.JoomlaFour.Customtabs",
"description": "Model Custom Tabs Class\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -6,11 +6,11 @@
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# class CoreRule (Details) # final class CoreRule (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFour** > namespace: **VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFour**
```uml ```uml
@startuml @startuml
class CoreRule #Gold { class CoreRule << (F,LightGreen) >> #RoyalBlue {
# array $rules # array $rules
# string $path # string $path
+ __construct() + __construct()

View File

@ -22,7 +22,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\CoreRuleInterface;
* *
* @since 3.2.0 * @since 3.2.0
*/ */
class CoreRule implements CoreRuleInterface final class CoreRule implements CoreRuleInterface
{ {
/** /**
* Local Core Joomla Rules * Local Core Joomla Rules

View File

@ -10,7 +10,7 @@
"name": "CoreRule", "name": "CoreRule",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Compiler.Field.J4.CoreRule", "system_name": "JCB.Compiler.Field.J4.CoreRule",
"type": "class", "type": "final class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
"use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a",

View File

@ -6,12 +6,13 @@
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# class Event (Details) # final class Event (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\JoomlaFour** > namespace: **VDM\Joomla\Componentbuilder\Compiler\JoomlaFour**
```uml ```uml
@startuml @startuml
class Event #Gold { class Event << (F,LightGreen) >> #RoyalBlue {
# $activePlugins # $activePlugins
# $dispatcher
+ __construct(?Registry $params = null) + __construct(?Registry $params = null)
+ trigger(string $event, mixed $data = null) : void + trigger(string $event, mixed $data = null) : void
} }
@ -23,7 +24,7 @@ note right of Event::__construct
end note end note
note right of Event::trigger note right of Event::trigger
Trigger and event Trigger an event
since: 3.2.0 since: 3.2.0
return: void return: void

View File

@ -12,7 +12,9 @@
namespace VDM\Joomla\Componentbuilder\Compiler\JoomlaFour; namespace VDM\Joomla\Componentbuilder\Compiler\JoomlaFour;
use Joomla\Registry\Registry; use Joomla\CMS\Factory;
use Joomla\Registry\Registry;
use Joomla\CMS\Plugin\PluginHelper;
use VDM\Joomla\Utilities\Component\Helper; use VDM\Joomla\Utilities\Component\Helper;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\EventInterface; use VDM\Joomla\Componentbuilder\Compiler\Interfaces\EventInterface;
@ -22,16 +24,23 @@ use VDM\Joomla\Componentbuilder\Compiler\Interfaces\EventInterface;
* *
* @since 3.2.0 * @since 3.2.0
*/ */
class Event implements EventInterface final class Event implements EventInterface
{ {
/** /**
* event plugin trigger switch * event plug-in trigger switch
* *
* @var boolean * @var boolean
* @since 3.2.0 * @since 3.2.0
*/ */
protected $activePlugins = false; protected $activePlugins = false;
/**
* The application to trigger and event TODO
*
* @since 3.2.0
*/
protected $dispatcher;
/** /**
* Constructor * Constructor
* *
@ -50,19 +59,21 @@ class Event implements EventInterface
foreach ($plugins as $plugin) foreach ($plugins as $plugin)
{ {
// get possible plugins // get possible plugins
if (\JPluginHelper::isEnabled('extension', $plugin)) if (PluginHelper::isEnabled('extension', $plugin))
{ {
// Import the appropriate plugin group. // Import the appropriate plugin group.
\JPluginHelper::importPlugin('extension', $plugin); PluginHelper::importPlugin('extension', $plugin);
// activate events // activate events
$this->activePlugins = true; $this->activePlugins = true;
} }
} }
} }
$this->dispatcher = Factory::getApplication();
} }
/** /**
* Trigger and event * Trigger an event
* *
* @param string $event The event to trigger * @param string $event The event to trigger
* @param mixed $data The values to pass to the event/plugin * @param mixed $data The values to pass to the event/plugin
@ -76,22 +87,14 @@ class Event implements EventInterface
// only execute if plugins were loaded (active) // only execute if plugins were loaded (active)
if ($this->activePlugins) if ($this->activePlugins)
{ {
// Get the dispatcher. try
$dispatcher = \JEventDispatcher::getInstance();
// Trigger this compiler event.
$results = $dispatcher->trigger($event, $data);
// Check for errors encountered while trigger the event
if (count((array) $results) && in_array(false, $results, true))
{ {
// Get the last error. // Trigger this compiler event.
$error = $dispatcher->getError(); $results = $this->dispatcher->triggerEvent($event, $data ?? []);
}
if (!($error instanceof \Exception)) catch (\Exception $e)
{ {
throw new \Exception($error); throw new \Exception("Error processing event '$event': " . $e->getMessage());
}
} }
} }
} }

View File

@ -1,11 +1,18 @@
/** /**
* event plugin trigger switch * event plug-in trigger switch
* *
* @var boolean * @var boolean
* @since 3.2.0 * @since 3.2.0
*/ */
protected $activePlugins = false; protected $activePlugins = false;
/**
* The application to trigger and event TODO
*
* @since 3.2.0
*/
protected $dispatcher;
/** /**
* Constructor * Constructor
* *
@ -24,19 +31,21 @@
foreach ($plugins as $plugin) foreach ($plugins as $plugin)
{ {
// get possible plugins // get possible plugins
if (\JPluginHelper::isEnabled('extension', $plugin)) if (PluginHelper::isEnabled('extension', $plugin))
{ {
// Import the appropriate plugin group. // Import the appropriate plugin group.
\JPluginHelper::importPlugin('extension', $plugin); PluginHelper::importPlugin('extension', $plugin);
// activate events // activate events
$this->activePlugins = true; $this->activePlugins = true;
} }
} }
} }
$this->dispatcher = Factory::getApplication();
} }
/** /**
* Trigger and event * Trigger an event
* *
* @param string $event The event to trigger * @param string $event The event to trigger
* @param mixed $data The values to pass to the event/plugin * @param mixed $data The values to pass to the event/plugin
@ -50,22 +59,14 @@
// only execute if plugins were loaded (active) // only execute if plugins were loaded (active)
if ($this->activePlugins) if ($this->activePlugins)
{ {
// Get the dispatcher. try
$dispatcher = \JEventDispatcher::getInstance();
// Trigger this compiler event.
$results = $dispatcher->trigger($event, $data);
// Check for errors encountered while trigger the event
if (count((array) $results) && in_array(false, $results, true))
{ {
// Get the last error. // Trigger this compiler event.
$error = $dispatcher->getError(); $results = $this->dispatcher->triggerEvent($event, $data ?? []);
}
if (!($error instanceof \Exception)) catch (\Exception $e)
{ {
throw new \Exception($error); throw new \Exception("Error processing event '$event': " . $e->getMessage());
}
} }
} }
} }

View File

@ -9,8 +9,8 @@
"load_selection": null, "load_selection": null,
"name": "Event", "name": "Event",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Compiler.JoomlaFour.Event", "system_name": "JCB.Compiler.J4.Event",
"type": "class", "type": "final class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
"use": "640b5352-fb09-425f-a26e-cd44eda03f15", "use": "640b5352-fb09-425f-a26e-cd44eda03f15",
@ -20,6 +20,6 @@
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.JoomlaFour.Event", "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.JoomlaFour.Event",
"description": "Compiler Events\r\n\r\n@since 3.2.0", "description": "Compiler Events\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "use Joomla\\Registry\\Registry;", "head": "use Joomla\\CMS\\Factory;\r\nuse Joomla\\Registry\\Registry;\r\nuse Joomla\\CMS\\Plugin\\PluginHelper;",
"composer": "" "composer": ""
} }

View File

@ -0,0 +1,30 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# final class Router (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder**
> extends: **Registry**
```uml
@startuml
class Router << (F,LightGreen) >> #RoyalBlue {
}
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,27 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Builder;
use VDM\Joomla\Interfaces\Registryinterface;
use VDM\Joomla\Abstraction\Registry;
/**
* Database Uninstall Builder Class
*
* @since 3.2.0
*/
final class Router extends Registry implements Registryinterface
{
}

View File

@ -0,0 +1 @@
###CODEPOWER###

View File

@ -0,0 +1,20 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7",
"guid": "4a4cf7a3-d0f9-439e-96fb-82d7a4ae0cf5",
"implements": [
"64e291c2-11f1-423d-a44d-837cc12cc017"
],
"load_selection": null,
"name": "Router",
"power_version": "1.0.0",
"system_name": "JCB.Compiler.Builder.Router",
"type": "final class",
"use_selection": null,
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Router",
"description": "Database Uninstall Builder Class\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -6,11 +6,11 @@
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# class Event (Details) # final class Event (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\JoomlaThree** > namespace: **VDM\Joomla\Componentbuilder\Compiler\JoomlaThree**
```uml ```uml
@startuml @startuml
class Event #Gold { class Event << (F,LightGreen) >> #RoyalBlue {
# $activePlugins # $activePlugins
+ __construct(?Registry $params = null) + __construct(?Registry $params = null)
+ trigger(string $event, mixed $data = null) : void + trigger(string $event, mixed $data = null) : void
@ -23,7 +23,7 @@ note right of Event::__construct
end note end note
note right of Event::trigger note right of Event::trigger
Trigger and event Trigger an event
since: 3.2.0 since: 3.2.0
return: void return: void

View File

@ -22,7 +22,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Interfaces\EventInterface;
* *
* @since 3.2.0 * @since 3.2.0
*/ */
class Event implements EventInterface final class Event implements EventInterface
{ {
/** /**
* event plugin trigger switch * event plugin trigger switch
@ -62,7 +62,7 @@ class Event implements EventInterface
} }
/** /**
* Trigger and event * Trigger an event
* *
* @param string $event The event to trigger * @param string $event The event to trigger
* @param mixed $data The values to pass to the event/plugin * @param mixed $data The values to pass to the event/plugin

View File

@ -36,7 +36,7 @@
} }
/** /**
* Trigger and event * Trigger an event
* *
* @param string $event The event to trigger * @param string $event The event to trigger
* @param mixed $data The values to pass to the event/plugin * @param mixed $data The values to pass to the event/plugin

View File

@ -9,8 +9,8 @@
"load_selection": null, "load_selection": null,
"name": "Event", "name": "Event",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Compiler.JoomlaThree.Event", "system_name": "JCB.Compiler.J3.Event",
"type": "class", "type": "final class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
"use": "640b5352-fb09-425f-a26e-cd44eda03f15", "use": "640b5352-fb09-425f-a26e-cd44eda03f15",

View File

@ -0,0 +1,54 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# final class CoreField (Details)
> namespace: **VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive**
```uml
@startuml
class CoreField << (F,LightGreen) >> #RoyalBlue {
# array $fields
# array $paths
+ __construct()
+ get(bool $lowercase = false) : array
- set(string $path) : void
}
note right of CoreField::__construct
Constructor
since: 3.2.0
end note
note right of CoreField::get
Get the Array of Existing Validation Field Names
since: 3.2.0
return: array
end note
note right of CoreField::set
Set the fields found in a path
since: 3.2.0
return: void
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,129 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaFive;
use Joomla\CMS\Filesystem\Folder;
use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\CoreFieldInterface;
/**
* Core Joomla Fields
*
* @since 3.2.0
*/
final class CoreField implements CoreFieldInterface
{
/**
* Local Core Joomla Fields
*
* @var array|null
* @since 3.2.0
**/
protected array $fields = [];
/**
* Local Core Joomla Fields Path
*
* @var array
* @since 3.2.0
**/
protected array $paths = [];
/**
* Constructor
*
* @since 3.2.0
*/
public function __construct()
{
// set the path to the form validation fields
$this->paths[] = JPATH_LIBRARIES . '/src/Form/Field';
}
/**
* Get the Array of Existing Validation Field Names
*
* @param bool $lowercase Switch to set fields lowercase
*
* @return array
* @since 3.2.0
*/
public function get(bool $lowercase = false): array
{
if ($this->fields === [])
{
// check if the path exist
foreach ($this->paths as $path)
{
$this->set($path);
}
}
// return fields if found
if ($this->fields !== [])
{
// check if the names should be all lowercase
if ($lowercase)
{
return array_map(
fn($item): string => strtolower((string) $item),
$this->fields
);
}
return $this->fields;
}
// return empty array
return [];
}
/**
* Set the fields found in a path
*
* @param string $path The path to load fields from
* @return void
* @since 3.2.0
*/
private function set(string $path): void
{
// Check if the path exists
if (!Folder::exists($path))
{
return;
}
// Load all PHP files in this path
$fields = Folder::files($path, '\.php$', true, true);
// Process the files to extract field names
$processedFields = array_map(function ($name) {
$fileName = basename($name);
// Remove 'Field.php' if it exists or just '.php' otherwise
if (substr($fileName, -9) === 'Field.php')
{
return str_replace('Field.php', '', $fileName);
}
else
{
return str_replace('.php', '', $fileName);
}
}, $fields);
// Merge with existing fields and remove duplicates
$this->fields = array_unique(array_merge($processedFields, $this->fields));
}
}

View File

@ -0,0 +1,101 @@
/**
* Local Core Joomla Fields
*
* @var array|null
* @since 3.2.0
**/
protected array $fields = [];
/**
* Local Core Joomla Fields Path
*
* @var array
* @since 3.2.0
**/
protected array $paths = [];
/**
* Constructor
*
* @since 3.2.0
*/
public function __construct()
{
// set the path to the form validation fields
$this->paths[] = JPATH_LIBRARIES . '/src/Form/Field';
}
/**
* Get the Array of Existing Validation Field Names
*
* @param bool $lowercase Switch to set fields lowercase
*
* @return array
* @since 3.2.0
*/
public function get(bool $lowercase = false): array
{
if ($this->fields === [])
{
// check if the path exist
foreach ($this->paths as $path)
{
$this->set($path);
}
}
// return fields if found
if ($this->fields !== [])
{
// check if the names should be all lowercase
if ($lowercase)
{
return array_map(
fn($item): string => strtolower((string) $item),
$this->fields
);
}
return $this->fields;
}
// return empty array
return [];
}
/**
* Set the fields found in a path
*
* @param string $path The path to load fields from
* @return void
* @since 3.2.0
*/
private function set(string $path): void
{
// Check if the path exists
if (!Folder::exists($path))
{
return;
}
// Load all PHP files in this path
$fields = Folder::files($path, '\.php$', true, true);
// Process the files to extract field names
$processedFields = array_map(function ($name) {
$fileName = basename($name);
// Remove 'Field.php' if it exists or just '.php' otherwise
if (substr($fileName, -9) === 'Field.php')
{
return str_replace('Field.php', '', $fileName);
}
else
{
return str_replace('.php', '', $fileName);
}
}, $fields);
// Merge with existing fields and remove duplicates
$this->fields = array_unique(array_merge($processedFields, $this->fields));
}

View File

@ -0,0 +1,25 @@
{
"add_head": "1",
"add_licensing_template": "2",
"extends": "0",
"guid": "4c143764-1b84-4b9f-86c5-8de119b26f1a",
"implements": [
"e2f5fddf-cbc8-44ee-836c-7f3fb08d8900"
],
"load_selection": null,
"name": "CoreField",
"power_version": "1.0.0",
"system_name": "JCB.Compiler.Field.J5.CoreField",
"type": "final class",
"use_selection": {
"use_selection0": {
"use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a",
"as": "default"
}
},
"namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Field.JoomlaFive.CoreField",
"description": "Core Joomla Fields\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "use Joomla\\CMS\\Filesystem\\Folder;",
"composer": ""
}

View File

@ -800,6 +800,8 @@ final class Builders
); );
} }
} }
// extends value
$extends_field = $custom['extends'] ?? '';
// build the list values // build the list values
if (($listSwitch || $listJoin) && $typeName != 'repeatable' if (($listSwitch || $listJoin) && $typeName != 'repeatable'
&& $typeName != 'subform') && $typeName != 'subform')
@ -925,7 +927,7 @@ final class Builders
); );
} }
// build script switch for user // build script switch for user
if ($custom['extends'] === 'user') if ($extends_field === 'user')
{ {
$this->scriptuserswitch->set($typeName, $typeName); $this->scriptuserswitch->set($typeName, $typeName);
} }
@ -997,7 +999,7 @@ final class Builders
} }
// setup checkbox for this view // setup checkbox for this view
if ($dbSwitch && ($typeName === 'checkbox' || if ($dbSwitch && ($typeName === 'checkbox' ||
(ArrayHelper::check($custom) && isset($custom['extends']) && $custom['extends'] === 'checkboxes'))) (ArrayHelper::check($custom) && $extends_field === 'checkboxes')))
{ {
$this->checkbox->add($nameSingleCode, $name, true); $this->checkbox->add($nameSingleCode, $name, true);
} }

View File

@ -723,6 +723,8 @@
); );
} }
} }
// extends value
$extends_field = $custom['extends'] ?? '';
// build the list values // build the list values
if (($listSwitch || $listJoin) && $typeName != 'repeatable' if (($listSwitch || $listJoin) && $typeName != 'repeatable'
&& $typeName != 'subform') && $typeName != 'subform')
@ -848,7 +850,7 @@
); );
} }
// build script switch for user // build script switch for user
if ($custom['extends'] === 'user') if ($extends_field === 'user')
{ {
$this->scriptuserswitch->set($typeName, $typeName); $this->scriptuserswitch->set($typeName, $typeName);
} }
@ -920,7 +922,7 @@
} }
// setup checkbox for this view // setup checkbox for this view
if ($dbSwitch && ($typeName === 'checkbox' || if ($dbSwitch && ($typeName === 'checkbox' ||
(ArrayHelper::check($custom) && isset($custom['extends']) && $custom['extends'] === 'checkboxes'))) (ArrayHelper::check($custom) && $extends_field === 'checkboxes')))
{ {
$this->checkbox->add($nameSingleCode, $name, true); $this->checkbox->add($nameSingleCode, $name, true);
} }

View File

@ -14,9 +14,11 @@ class ArchitectureController #Gold {
# $targetVersion # $targetVersion
+ register(Container $container) : void + register(Container $container) : void
+ getAllowAdd(Container $container) : AllowAddInterface + getAllowAdd(Container $container) : AllowAddInterface
+ getJ5ControllerAllowAdd(Container $container) : J5ControllerAllowAdd
+ getJ4ControllerAllowAdd(Container $container) : J4ControllerAllowAdd + getJ4ControllerAllowAdd(Container $container) : J4ControllerAllowAdd
+ getJ3ControllerAllowAdd(Container $container) : J3ControllerAllowAdd + getJ3ControllerAllowAdd(Container $container) : J3ControllerAllowAdd
+ getAllowEdit(Container $container) : AllowEditInterface + getAllowEdit(Container $container) : AllowEditInterface
+ getJ5ControllerAllowEdit(Container $container) : J5ControllerAllowEdit
+ getJ4ControllerAllowEdit(Container $container) : J4ControllerAllowEdit + getJ4ControllerAllowEdit(Container $container) : J4ControllerAllowEdit
+ getJ3ControllerAllowEdit(Container $container) : J3ControllerAllowEdit + getJ3ControllerAllowEdit(Container $container) : J3ControllerAllowEdit
} }
@ -28,14 +30,21 @@ note right of ArchitectureController::register
return: void return: void
end note end note
note right of ArchitectureController::getAllowAdd note left of ArchitectureController::getAllowAdd
Get The AllowAddInterface Class. Get The AllowAddInterface Class.
since: 3.2.0 since: 3.2.0
return: AllowAddInterface return: AllowAddInterface
end note end note
note right of ArchitectureController::getJ4ControllerAllowAdd note right of ArchitectureController::getJ5ControllerAllowAdd
Get The AllowAdd Class.
since: 3.2.0
return: J5ControllerAllowAdd
end note
note left of ArchitectureController::getJ4ControllerAllowAdd
Get The AllowAdd Class. Get The AllowAdd Class.
since: 3.2.0 since: 3.2.0
@ -49,14 +58,21 @@ note right of ArchitectureController::getJ3ControllerAllowAdd
return: J3ControllerAllowAdd return: J3ControllerAllowAdd
end note end note
note right of ArchitectureController::getAllowEdit note left of ArchitectureController::getAllowEdit
Get The AllowEditInterface Class. Get The AllowEditInterface Class.
since: 3.2.0 since: 3.2.0
return: AllowEditInterface return: AllowEditInterface
end note end note
note right of ArchitectureController::getJ4ControllerAllowEdit note right of ArchitectureController::getJ5ControllerAllowEdit
Get The AllowEdit Class.
since: 3.2.0
return: J5ControllerAllowEdit
end note
note left of ArchitectureController::getJ4ControllerAllowEdit
Get The AllowEdit Class. Get The AllowEdit Class.
since: 3.2.0 since: 3.2.0

View File

@ -15,9 +15,11 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Service;
use Joomla\DI\Container; use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface; use Joomla\DI\ServiceProviderInterface;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowAddInterface; use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowAddInterface;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Controller\AllowAdd as J5ControllerAllowAdd;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller\AllowAdd as J4ControllerAllowAdd; use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller\AllowAdd as J4ControllerAllowAdd;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Controller\AllowAdd as J3ControllerAllowAdd; use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Controller\AllowAdd as J3ControllerAllowAdd;
use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowEditInterface; use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Architecture\Controller\AllowEditInterface;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFive\Controller\AllowEdit as J5ControllerAllowEdit;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller\AllowEdit as J4ControllerAllowEdit; use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaFour\Controller\AllowEdit as J4ControllerAllowEdit;
use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Controller\AllowEdit as J3ControllerAllowEdit; use VDM\Joomla\Componentbuilder\Compiler\Architecture\JoomlaThree\Controller\AllowEdit as J3ControllerAllowEdit;
@ -50,6 +52,9 @@ class ArchitectureController implements ServiceProviderInterface
$container->alias(AllowAddInterface::class, 'Architecture.Controller.AllowAdd') $container->alias(AllowAddInterface::class, 'Architecture.Controller.AllowAdd')
->share('Architecture.Controller.AllowAdd', [$this, 'getAllowAdd'], true); ->share('Architecture.Controller.AllowAdd', [$this, 'getAllowAdd'], true);
$container->alias(J5ControllerAllowAdd::class, 'Architecture.Controller.J5.AllowAdd')
->share('Architecture.Controller.J5.AllowAdd', [$this, 'getJ5ControllerAllowAdd'], true);
$container->alias(J4ControllerAllowAdd::class, 'Architecture.Controller.J4.AllowAdd') $container->alias(J4ControllerAllowAdd::class, 'Architecture.Controller.J4.AllowAdd')
->share('Architecture.Controller.J4.AllowAdd', [$this, 'getJ4ControllerAllowAdd'], true); ->share('Architecture.Controller.J4.AllowAdd', [$this, 'getJ4ControllerAllowAdd'], true);
@ -59,6 +64,9 @@ class ArchitectureController implements ServiceProviderInterface
$container->alias(AllowEditInterface::class, 'Architecture.Controller.AllowEdit') $container->alias(AllowEditInterface::class, 'Architecture.Controller.AllowEdit')
->share('Architecture.Controller.AllowEdit', [$this, 'getAllowEdit'], true); ->share('Architecture.Controller.AllowEdit', [$this, 'getAllowEdit'], true);
$container->alias(J5ControllerAllowEdit::class, 'Architecture.Controller.J5.AllowEdit')
->share('Architecture.Controller.J5.AllowEdit', [$this, 'getJ5ControllerAllowEdit'], true);
$container->alias(J4ControllerAllowEdit::class, 'Architecture.Controller.J4.AllowEdit') $container->alias(J4ControllerAllowEdit::class, 'Architecture.Controller.J4.AllowEdit')
->share('Architecture.Controller.J4.AllowEdit', [$this, 'getJ4ControllerAllowEdit'], true); ->share('Architecture.Controller.J4.AllowEdit', [$this, 'getJ4ControllerAllowEdit'], true);
@ -84,6 +92,23 @@ class ArchitectureController implements ServiceProviderInterface
return $container->get('Architecture.Controller.J' . $this->targetVersion . '.AllowAdd'); return $container->get('Architecture.Controller.J' . $this->targetVersion . '.AllowAdd');
} }
/**
* Get The AllowAdd Class.
*
* @param Container $container The DI container.
*
* @return J5ControllerAllowAdd
* @since 3.2.0
*/
public function getJ5ControllerAllowAdd(Container $container): J5ControllerAllowAdd
{
return new J5ControllerAllowAdd(
$container->get('Config'),
$container->get('Compiler.Creator.Permission'),
$container->get('Customcode.Dispenser')
);
}
/** /**
* Get The AllowAdd Class. * Get The AllowAdd Class.
* *
@ -136,6 +161,25 @@ class ArchitectureController implements ServiceProviderInterface
return $container->get('Architecture.Controller.J' . $this->targetVersion . '.AllowEdit'); return $container->get('Architecture.Controller.J' . $this->targetVersion . '.AllowEdit');
} }
/**
* Get The AllowEdit Class.
*
* @param Container $container The DI container.
*
* @return J5ControllerAllowEdit
* @since 3.2.0
*/
public function getJ5ControllerAllowEdit(Container $container): J5ControllerAllowEdit
{
return new J5ControllerAllowEdit(
$container->get('Config'),
$container->get('Compiler.Creator.Permission'),
$container->get('Customcode.Dispenser'),
$container->get('Compiler.Builder.Category'),
$container->get('Compiler.Builder.Category.Other.Name')
);
}
/** /**
* Get The AllowEdit Class. * Get The AllowEdit Class.
* *

Some files were not shown because too many files have changed in this diff Show More