From 087a84ab8ba74e6053837d3b9fba21b2e6aefab4 Mon Sep 17 00:00:00 2001 From: aB0t Date: Tue, 16 Jul 2024 14:12:10 +0200 Subject: [PATCH] Update 2024-07-16 14:12:12 --- README.md | 168 ++-- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 15 + .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 58 ++ .../code.php | 55 ++ .../code.power | 31 + .../settings.json | 19 + .../README.md | 242 ++++- .../code.php | 520 ++++++++++- .../code.power | 515 ++++++++++- .../settings.json | 12 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 52 ++ .../code.php | 32 + .../code.power | 9 + .../settings.json | 19 + .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 34 +- .../code.php | 6 +- .../code.power | 4 +- .../settings.json | 6 +- .../README.md | 15 + .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 123 +++ .../code.php | 196 ++++ .../code.power | 165 ++++ .../settings.json | 26 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 15 + .../README.md | 52 ++ .../code.php | 32 + .../code.power | 9 + .../settings.json | 19 + .../README.md | 16 +- .../README.md | 16 +- .../README.md | 77 ++ .../code.php | 72 ++ .../code.power | 43 + .../settings.json | 30 + .../README.md | 16 +- .../README.md | 16 +- .../README.md | 38 +- .../code.php | 16 +- .../code.power | 8 +- .../settings.json | 8 +- .../README.md | 15 + .../README.md | 16 +- .../README.md | 15 + .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 15 + .../README.md | 16 +- .../README.md | 16 +- .../README.md | 15 + .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 15 + .../settings.json | 2 +- .../README.md | 52 ++ .../code.php | 30 + .../code.power | 7 + .../settings.json | 19 + .../README.md | 15 + .../settings.json | 2 +- .../README.md | 15 + .../README.md | 16 +- .../README.md | 15 + .../code.php | 3 - .../settings.json | 2 +- .../README.md | 16 +- .../README.md | 59 +- .../code.php | 47 +- .../code.power | 47 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 15 + .../README.md | 166 ---- .../code.php | 850 ------------------ .../code.power | 819 ----------------- .../README.md | 16 +- .../README.md | 15 + .../README.md | 16 +- .../README.md | 16 +- .../README.md | 16 +- .../code.php | 8 +- .../code.power | 8 +- .../README.md | 16 +- .../README.md | 76 ++ .../code.php | 61 ++ .../code.power | 38 + .../settings.json | 19 + .../README.md | 146 ++- .../code.php | 331 ++++--- .../code.power | 324 ++++--- .../settings.json | 18 +- .../README.md | 16 +- .../README.md | 16 +- .../README.md | 15 + super-powers.json | 243 +++-- 131 files changed, 4690 insertions(+), 2537 deletions(-) create mode 100644 src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/README.md create mode 100644 src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/code.php create mode 100644 src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/code.power create mode 100644 src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/settings.json create mode 100644 src/217416f6-24cf-41c0-b18e-11086111d447/README.md create mode 100644 src/217416f6-24cf-41c0-b18e-11086111d447/code.php create mode 100644 src/217416f6-24cf-41c0-b18e-11086111d447/code.power create mode 100644 src/217416f6-24cf-41c0-b18e-11086111d447/settings.json create mode 100644 src/5f0205fa-5c43-424a-af7d-abc943c17c8c/README.md create mode 100644 src/5f0205fa-5c43-424a-af7d-abc943c17c8c/code.php create mode 100644 src/5f0205fa-5c43-424a-af7d-abc943c17c8c/code.power rename src/{cddcac51-9a46-47c4-ba59-105c70453bd6 => 5f0205fa-5c43-424a-af7d-abc943c17c8c}/settings.json (56%) create mode 100644 src/65a0f81a-14fc-4870-9382-b8d830b19937/README.md create mode 100644 src/65a0f81a-14fc-4870-9382-b8d830b19937/code.php create mode 100644 src/65a0f81a-14fc-4870-9382-b8d830b19937/code.power create mode 100644 src/65a0f81a-14fc-4870-9382-b8d830b19937/settings.json create mode 100644 src/709d7294-9a43-46e2-b64e-d16a16f0eab1/README.md create mode 100644 src/709d7294-9a43-46e2-b64e-d16a16f0eab1/code.php create mode 100644 src/709d7294-9a43-46e2-b64e-d16a16f0eab1/code.power create mode 100644 src/709d7294-9a43-46e2-b64e-d16a16f0eab1/settings.json create mode 100644 src/b6e9854c-3672-42ec-8843-26c24b4635bd/README.md create mode 100644 src/b6e9854c-3672-42ec-8843-26c24b4635bd/code.php create mode 100644 src/b6e9854c-3672-42ec-8843-26c24b4635bd/code.power create mode 100644 src/b6e9854c-3672-42ec-8843-26c24b4635bd/settings.json delete mode 100644 src/cddcac51-9a46-47c4-ba59-105c70453bd6/README.md delete mode 100644 src/cddcac51-9a46-47c4-ba59-105c70453bd6/code.php delete mode 100644 src/cddcac51-9a46-47c4-ba59-105c70453bd6/code.power create mode 100644 src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/README.md create mode 100644 src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/code.php create mode 100644 src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/code.power create mode 100644 src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/settings.json diff --git a/README.md b/README.md index 28d92aa..65174dc 100644 --- a/README.md +++ b/README.md @@ -25,112 +25,124 @@ This repository contains an index (see below) of all the approved powers within - **Namespace**: [VDM\Joomla\Abstraction](#vdm-joomla-abstraction) - - **abstract class ActiveRegistry** | [Details](src/43134867-5cb8-4280-9be8-309fd2fd135f) | [Code](src/43134867-5cb8-4280-9be8-309fd2fd135f/code.php) | [Settings](src/43134867-5cb8-4280-9be8-309fd2fd135f/settings.json) | Super__43134867_5cb8_4280_9be8_309fd2fd135f__Power - - **abstract class BaseConfig** | [Details](src/ffbd4e1f-a342-4080-ab7d-1de3741bf319) | [Code](src/ffbd4e1f-a342-4080-ab7d-1de3741bf319/code.php) | [Settings](src/ffbd4e1f-a342-4080-ab7d-1de3741bf319/settings.json) | Super__ffbd4e1f_a342_4080_ab7d_1de3741bf319__Power - - **abstract class BaseTable** | [Details](src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6) | [Code](src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6/code.php) | [Settings](src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6/settings.json) | Super__e0f6ddbe_2a35_4537_942c_faff2ebd04f6__Power - - **abstract class Database** | [Details](src/6cbef8f8-4813-48e3-b05a-65e1aea95171) | [Code](src/6cbef8f8-4813-48e3-b05a-65e1aea95171/code.php) | [Settings](src/6cbef8f8-4813-48e3-b05a-65e1aea95171/settings.json) | Super__6cbef8f8_4813_48e3_b05a_65e1aea95171__Power - - **abstract class Factory** | [Details](src/2e5bf608-de5c-4b00-a20d-47c26aa350d9) | [Code](src/2e5bf608-de5c-4b00-a20d-47c26aa350d9/code.php) | [Settings](src/2e5bf608-de5c-4b00-a20d-47c26aa350d9/settings.json) | Super__2e5bf608_de5c_4b00_a20d_47c26aa350d9__Power - - **abstract class Grep** | [Details](src/1401a167-0ce4-4f4a-afee-2d8b02ed339b) | [Code](src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/code.php) | [Settings](src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/settings.json) | Super__1401a167_0ce4_4f4a_afee_2d8b02ed339b__Power - - **abstract class Model** | [Details](src/584747d1-3a86-453d-b7a3-a2219de8d777) | [Code](src/584747d1-3a86-453d-b7a3-a2219de8d777/code.php) | [Settings](src/584747d1-3a86-453d-b7a3-a2219de8d777/settings.json) | Super__584747d1_3a86_453d_b7a3_a2219de8d777__Power - - **abstract class Registry** | [Details](src/7e822c03-1b20-41d1-9427-f5b8d5836af7) | [Code](src/7e822c03-1b20-41d1-9427-f5b8d5836af7/code.php) | [Settings](src/7e822c03-1b20-41d1-9427-f5b8d5836af7/settings.json) | Super__7e822c03_1b20_41d1_9427_f5b8d5836af7__Power - - **abstract class Schema** | [Details](src/f3c04c28-bce4-422e-be93-7d163e4e342b) | [Code](src/f3c04c28-bce4-422e-be93-7d163e4e342b/code.php) | [Settings](src/f3c04c28-bce4-422e-be93-7d163e4e342b/settings.json) | Super__f3c04c28_bce4_422e_be93_7d163e4e342b__Power + - **abstract class ActiveRegistry** | [Details](src/43134867-5cb8-4280-9be8-309fd2fd135f) | [Code](src/43134867-5cb8-4280-9be8-309fd2fd135f/code.php) | [Settings](src/43134867-5cb8-4280-9be8-309fd2fd135f/settings.json) | SPK: `Super---43134867_5cb8_4280_9be8_309fd2fd135f---Power` + - **abstract class BaseConfig** | [Details](src/ffbd4e1f-a342-4080-ab7d-1de3741bf319) | [Code](src/ffbd4e1f-a342-4080-ab7d-1de3741bf319/code.php) | [Settings](src/ffbd4e1f-a342-4080-ab7d-1de3741bf319/settings.json) | SPK: `Super---ffbd4e1f_a342_4080_ab7d_1de3741bf319---Power` + - **abstract class BaseTable** | [Details](src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6) | [Code](src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6/code.php) | [Settings](src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6/settings.json) | SPK: `Super---e0f6ddbe_2a35_4537_942c_faff2ebd04f6---Power` + - **abstract class Database** | [Details](src/6cbef8f8-4813-48e3-b05a-65e1aea95171) | [Code](src/6cbef8f8-4813-48e3-b05a-65e1aea95171/code.php) | [Settings](src/6cbef8f8-4813-48e3-b05a-65e1aea95171/settings.json) | SPK: `Super---6cbef8f8_4813_48e3_b05a_65e1aea95171---Power` + - **abstract class Factory** | [Details](src/2e5bf608-de5c-4b00-a20d-47c26aa350d9) | [Code](src/2e5bf608-de5c-4b00-a20d-47c26aa350d9/code.php) | [Settings](src/2e5bf608-de5c-4b00-a20d-47c26aa350d9/settings.json) | SPK: `Super---2e5bf608_de5c_4b00_a20d_47c26aa350d9---Power` + - **abstract class Grep** | [Details](src/1401a167-0ce4-4f4a-afee-2d8b02ed339b) | [Code](src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/code.php) | [Settings](src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/settings.json) | SPK: `Super---1401a167_0ce4_4f4a_afee_2d8b02ed339b---Power` + - **abstract class Model** | [Details](src/584747d1-3a86-453d-b7a3-a2219de8d777) | [Code](src/584747d1-3a86-453d-b7a3-a2219de8d777/code.php) | [Settings](src/584747d1-3a86-453d-b7a3-a2219de8d777/settings.json) | SPK: `Super---584747d1_3a86_453d_b7a3_a2219de8d777---Power` + - **abstract class Registry** | [Details](src/7e822c03-1b20-41d1-9427-f5b8d5836af7) | [Code](src/7e822c03-1b20-41d1-9427-f5b8d5836af7/code.php) | [Settings](src/7e822c03-1b20-41d1-9427-f5b8d5836af7/settings.json) | SPK: `Super---7e822c03_1b20_41d1_9427_f5b8d5836af7---Power` + - **abstract class Schema** | [Details](src/f3c04c28-bce4-422e-be93-7d163e4e342b) | [Code](src/f3c04c28-bce4-422e-be93-7d163e4e342b/code.php) | [Settings](src/f3c04c28-bce4-422e-be93-7d163e4e342b/settings.json) | SPK: `Super---f3c04c28_bce4_422e_be93_7d163e4e342b---Power` + - **abstract class SchemaChecker** | [Details](src/5f0205fa-5c43-424a-af7d-abc943c17c8c) | [Code](src/5f0205fa-5c43-424a-af7d-abc943c17c8c/code.php) | [Settings](src/5f0205fa-5c43-424a-af7d-abc943c17c8c/settings.json) | SPK: `Super---5f0205fa_5c43_424a_af7d_abc943c17c8c---Power` - **Namespace**: [VDM\Joomla\Componentbuilder](#vdm-joomla-componentbuilder) - - **final class Table** | [Details](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8) | [Code](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/code.php) | [Settings](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/settings.json) | Super__bfd1d6d5_56c1_4fe9_9fee_1c5910e1f5d8__Power + - **final class Table** | [Details](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8) | [Code](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/code.php) | [Settings](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/settings.json) | SPK: `Super---bfd1d6d5_56c1_4fe9_9fee_1c5910e1f5d8---Power` - **Namespace**: [VDM\Joomla\Data](#vdm-joomla-data) - - **abstract class Factory** | [Details](src/9d76b8dc-3883-4755-b11c-131d19ca8a53) | [Code](src/9d76b8dc-3883-4755-b11c-131d19ca8a53/code.php) | [Settings](src/9d76b8dc-3883-4755-b11c-131d19ca8a53/settings.json) | Super__9d76b8dc_3883_4755_b11c_131d19ca8a53__Power - - **final class Item** | [Details](src/9206082e-a3f7-472e-98b2-de90d06cbdcd) | [Code](src/9206082e-a3f7-472e-98b2-de90d06cbdcd/code.php) | [Settings](src/9206082e-a3f7-472e-98b2-de90d06cbdcd/settings.json) | Super__9206082e_a3f7_472e_98b2_de90d06cbdcd__Power - - **final class Items** | [Details](src/21bca8a4-5b28-41c4-843e-8097f0ba7cca) | [Code](src/21bca8a4-5b28-41c4-843e-8097f0ba7cca/code.php) | [Settings](src/21bca8a4-5b28-41c4-843e-8097f0ba7cca/settings.json) | Super__21bca8a4_5b28_41c4_843e_8097f0ba7cca__Power - - **final class MultiSubform** | [Details](src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9) | [Code](src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/code.php) | [Settings](src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/settings.json) | Super__e0198c3f_777a_4a0b_87b7_e6a198afc8f9__Power - - **final class Subform** | [Details](src/85785701-07b2-4f81-bc1e-0f423700c254) | [Code](src/85785701-07b2-4f81-bc1e-0f423700c254/code.php) | [Settings](src/85785701-07b2-4f81-bc1e-0f423700c254/settings.json) | Super__85785701_07b2_4f81_bc1e_0f423700c254__Power - - **class Remote** | [Details](src/728ee726-3f0f-4762-899d-f8c9430cee58) | [Code](src/728ee726-3f0f-4762-899d-f8c9430cee58/code.php) | [Settings](src/728ee726-3f0f-4762-899d-f8c9430cee58/settings.json) | Super__728ee726_3f0f_4762_899d_f8c9430cee58__Power - - **class Repository** | [Details](src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895) | [Code](src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/code.php) | [Settings](src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/settings.json) | Super__eb7d69c2_4ee9_4bd0_aacc_ab51a12be895__Power + - **abstract class Factory** | [Details](src/9d76b8dc-3883-4755-b11c-131d19ca8a53) | [Code](src/9d76b8dc-3883-4755-b11c-131d19ca8a53/code.php) | [Settings](src/9d76b8dc-3883-4755-b11c-131d19ca8a53/settings.json) | SPK: `Super---9d76b8dc_3883_4755_b11c_131d19ca8a53---Power` + - **final class Item** | [Details](src/9206082e-a3f7-472e-98b2-de90d06cbdcd) | [Code](src/9206082e-a3f7-472e-98b2-de90d06cbdcd/code.php) | [Settings](src/9206082e-a3f7-472e-98b2-de90d06cbdcd/settings.json) | SPK: `Super---9206082e_a3f7_472e_98b2_de90d06cbdcd---Power` + - **final class Items** | [Details](src/21bca8a4-5b28-41c4-843e-8097f0ba7cca) | [Code](src/21bca8a4-5b28-41c4-843e-8097f0ba7cca/code.php) | [Settings](src/21bca8a4-5b28-41c4-843e-8097f0ba7cca/settings.json) | SPK: `Super---21bca8a4_5b28_41c4_843e_8097f0ba7cca---Power` + - **final class MultiSubform** | [Details](src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9) | [Code](src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/code.php) | [Settings](src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/settings.json) | SPK: `Super---e0198c3f_777a_4a0b_87b7_e6a198afc8f9---Power` + - **final class Subform** | [Details](src/85785701-07b2-4f81-bc1e-0f423700c254) | [Code](src/85785701-07b2-4f81-bc1e-0f423700c254/code.php) | [Settings](src/85785701-07b2-4f81-bc1e-0f423700c254/settings.json) | SPK: `Super---85785701_07b2_4f81_bc1e_0f423700c254---Power` - **Namespace**: [VDM\Joomla\Database](#vdm-joomla-database) - - **final class Delete** | [Details](src/92291f1f-f248-4ec0-9f2a-3d47c49eeac1) | [Code](src/92291f1f-f248-4ec0-9f2a-3d47c49eeac1/code.php) | [Settings](src/92291f1f-f248-4ec0-9f2a-3d47c49eeac1/settings.json) | Super__92291f1f_f248_4ec0_9f2a_3d47c49eeac1__Power - - **final class Insert** | [Details](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0) | [Code](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/code.php) | [Settings](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/settings.json) | Super__524eb8f6_38d4_47dc_92ad_98b94e099ac0__Power - - **final class Load** | [Details](src/06f8eada-d59b-441c-b287-0aea1793da5a) | [Code](src/06f8eada-d59b-441c-b287-0aea1793da5a/code.php) | [Settings](src/06f8eada-d59b-441c-b287-0aea1793da5a/settings.json) | Super__06f8eada_d59b_441c_b287_0aea1793da5a__Power - - **final class Update** | [Details](src/cce56585-58b0-4f72-a92c-e2635ea52d83) | [Code](src/cce56585-58b0-4f72-a92c-e2635ea52d83/code.php) | [Settings](src/cce56585-58b0-4f72-a92c-e2635ea52d83/settings.json) | Super__cce56585_58b0_4f72_a92c_e2635ea52d83__Power + - **final class Delete** | [Details](src/92291f1f-f248-4ec0-9f2a-3d47c49eeac1) | [Code](src/92291f1f-f248-4ec0-9f2a-3d47c49eeac1/code.php) | [Settings](src/92291f1f-f248-4ec0-9f2a-3d47c49eeac1/settings.json) | SPK: `Super---92291f1f_f248_4ec0_9f2a_3d47c49eeac1---Power` + - **final class Insert** | [Details](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0) | [Code](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/code.php) | [Settings](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/settings.json) | SPK: `Super---524eb8f6_38d4_47dc_92ad_98b94e099ac0---Power` + - **final class Load** | [Details](src/06f8eada-d59b-441c-b287-0aea1793da5a) | [Code](src/06f8eada-d59b-441c-b287-0aea1793da5a/code.php) | [Settings](src/06f8eada-d59b-441c-b287-0aea1793da5a/settings.json) | SPK: `Super---06f8eada_d59b_441c_b287_0aea1793da5a---Power` + - **final class Update** | [Details](src/cce56585-58b0-4f72-a92c-e2635ea52d83) | [Code](src/cce56585-58b0-4f72-a92c-e2635ea52d83/code.php) | [Settings](src/cce56585-58b0-4f72-a92c-e2635ea52d83/settings.json) | SPK: `Super---cce56585_58b0_4f72_a92c_e2635ea52d83---Power` - **Namespace**: [VDM\Joomla\Interfaces](#vdm-joomla-interfaces) - - **interface Activeregistryinterface** | [Details](src/af0eedbe-603b-4671-8e5a-28165d88254b) | [Code](src/af0eedbe-603b-4671-8e5a-28165d88254b/code.php) | [Settings](src/af0eedbe-603b-4671-8e5a-28165d88254b/settings.json) | Super__af0eedbe_603b_4671_8e5a_28165d88254b__Power - - **interface DeleteInterface** | [Details](src/9c3aa650-e536-4eea-a2d4-73cc3e184aa9) | [Code](src/9c3aa650-e536-4eea-a2d4-73cc3e184aa9/code.php) | [Settings](src/9c3aa650-e536-4eea-a2d4-73cc3e184aa9/settings.json) | Super__9c3aa650_e536_4eea_a2d4_73cc3e184aa9__Power - - **interface FactoryInterface** | [Details](src/caf33c5d-858c-4f9a-894f-ab302ec5445a) | [Code](src/caf33c5d-858c-4f9a-894f-ab302ec5445a/code.php) | [Settings](src/caf33c5d-858c-4f9a-894f-ab302ec5445a/settings.json) | Super__caf33c5d_858c_4f9a_894f_ab302ec5445a__Power - - **interface GrepInterface** | [Details](src/c182506a-ab84-439c-b962-1e606b58d545) | [Code](src/c182506a-ab84-439c-b962-1e606b58d545/code.php) | [Settings](src/c182506a-ab84-439c-b962-1e606b58d545/settings.json) | Super__c182506a_ab84_439c_b962_1e606b58d545__Power - - **interface InsertInterface** | [Details](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48) | [Code](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/code.php) | [Settings](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/settings.json) | Super__ad12ca1c_d3ce_4e7f_88c5_c6c92bdedc48__Power - - **interface LoadInterface** | [Details](src/2ad31f74-f579-499d-b98b-c4f54fd615dd) | [Code](src/2ad31f74-f579-499d-b98b-c4f54fd615dd/code.php) | [Settings](src/2ad31f74-f579-499d-b98b-c4f54fd615dd/settings.json) | Super__2ad31f74_f579_499d_b98b_c4f54fd615dd__Power - - **interface ModelInterface** | [Details](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff) | [Code](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/code.php) | [Settings](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/settings.json) | Super__8aef58c1_3f70_4bd4_b9e4_3f29fcd41cff__Power - - **interface Registryinterface** | [Details](src/64e291c2-11f1-423d-a44d-837cc12cc017) | [Code](src/64e291c2-11f1-423d-a44d-837cc12cc017/code.php) | [Settings](src/64e291c2-11f1-423d-a44d-837cc12cc017/settings.json) | Super__64e291c2_11f1_423d_a44d_837cc12cc017__Power - - **interface SchemaInterface** | [Details](src/4dd11b9b-3c64-460b-aaa6-62ba467db7aa) | [Code](src/4dd11b9b-3c64-460b-aaa6-62ba467db7aa/code.php) | [Settings](src/4dd11b9b-3c64-460b-aaa6-62ba467db7aa/settings.json) | Super__4dd11b9b_3c64_460b_aaa6_62ba467db7aa__Power - - **interface Tableinterface** | [Details](src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf) | [Code](src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/code.php) | [Settings](src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/settings.json) | Super__2da6d6c4_eb29_4d69_8bc2_36d96e916adf__Power - - **interface UpdateInterface** | [Details](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4) | [Code](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/code.php) | [Settings](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/settings.json) | Super__7179fde6_1e51_4b51_8545_7ca18f74a0f4__Power + - **interface Activeregistryinterface** | [Details](src/af0eedbe-603b-4671-8e5a-28165d88254b) | [Code](src/af0eedbe-603b-4671-8e5a-28165d88254b/code.php) | [Settings](src/af0eedbe-603b-4671-8e5a-28165d88254b/settings.json) | SPK: `Super---af0eedbe_603b_4671_8e5a_28165d88254b---Power` + - **interface DeleteInterface** | [Details](src/9c3aa650-e536-4eea-a2d4-73cc3e184aa9) | [Code](src/9c3aa650-e536-4eea-a2d4-73cc3e184aa9/code.php) | [Settings](src/9c3aa650-e536-4eea-a2d4-73cc3e184aa9/settings.json) | SPK: `Super---9c3aa650_e536_4eea_a2d4_73cc3e184aa9---Power` + - **interface FactoryInterface** | [Details](src/caf33c5d-858c-4f9a-894f-ab302ec5445a) | [Code](src/caf33c5d-858c-4f9a-894f-ab302ec5445a/code.php) | [Settings](src/caf33c5d-858c-4f9a-894f-ab302ec5445a/settings.json) | SPK: `Super---caf33c5d_858c_4f9a_894f_ab302ec5445a---Power` + - **interface GrepInterface** | [Details](src/c182506a-ab84-439c-b962-1e606b58d545) | [Code](src/c182506a-ab84-439c-b962-1e606b58d545/code.php) | [Settings](src/c182506a-ab84-439c-b962-1e606b58d545/settings.json) | SPK: `Super---c182506a_ab84_439c_b962_1e606b58d545---Power` + - **interface InsertInterface** | [Details](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48) | [Code](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/code.php) | [Settings](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/settings.json) | SPK: `Super---ad12ca1c_d3ce_4e7f_88c5_c6c92bdedc48---Power` + - **interface LoadInterface** | [Details](src/2ad31f74-f579-499d-b98b-c4f54fd615dd) | [Code](src/2ad31f74-f579-499d-b98b-c4f54fd615dd/code.php) | [Settings](src/2ad31f74-f579-499d-b98b-c4f54fd615dd/settings.json) | SPK: `Super---2ad31f74_f579_499d_b98b_c4f54fd615dd---Power` + - **interface ModelInterface** | [Details](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff) | [Code](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/code.php) | [Settings](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/settings.json) | SPK: `Super---8aef58c1_3f70_4bd4_b9e4_3f29fcd41cff---Power` + - **interface Registryinterface** | [Details](src/64e291c2-11f1-423d-a44d-837cc12cc017) | [Code](src/64e291c2-11f1-423d-a44d-837cc12cc017/code.php) | [Settings](src/64e291c2-11f1-423d-a44d-837cc12cc017/settings.json) | SPK: `Super---64e291c2_11f1_423d_a44d_837cc12cc017---Power` + - **interface SchemaCheckerInterface** | [Details](src/b6e9854c-3672-42ec-8843-26c24b4635bd) | [Code](src/b6e9854c-3672-42ec-8843-26c24b4635bd/code.php) | [Settings](src/b6e9854c-3672-42ec-8843-26c24b4635bd/settings.json) | SPK: `Super---b6e9854c_3672_42ec_8843_26c24b4635bd---Power` + - **interface SchemaInterface** | [Details](src/4dd11b9b-3c64-460b-aaa6-62ba467db7aa) | [Code](src/4dd11b9b-3c64-460b-aaa6-62ba467db7aa/code.php) | [Settings](src/4dd11b9b-3c64-460b-aaa6-62ba467db7aa/settings.json) | SPK: `Super---4dd11b9b_3c64_460b_aaa6_62ba467db7aa---Power` + - **interface Tableinterface** | [Details](src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf) | [Code](src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/code.php) | [Settings](src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/settings.json) | SPK: `Super---2da6d6c4_eb29_4d69_8bc2_36d96e916adf---Power` + - **interface UpdateInterface** | [Details](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4) | [Code](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/code.php) | [Settings](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/settings.json) | SPK: `Super---7179fde6_1e51_4b51_8545_7ca18f74a0f4---Power` - **Namespace**: [VDM\Joomla\Model](#vdm-joomla-model) - - **final class Load** | [Details](src/bb29a833-73f7-4283-9327-bc7e41f0723b) | [Code](src/bb29a833-73f7-4283-9327-bc7e41f0723b/code.php) | [Settings](src/bb29a833-73f7-4283-9327-bc7e41f0723b/settings.json) | Super__bb29a833_73f7_4283_9327_bc7e41f0723b__Power - - **final class Upsert** | [Details](src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5) | [Code](src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/code.php) | [Settings](src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/settings.json) | Super__7c1fb50f_8fb1_4627_8705_6fedf7182ca5__Power + - **final class Load** | [Details](src/bb29a833-73f7-4283-9327-bc7e41f0723b) | [Code](src/bb29a833-73f7-4283-9327-bc7e41f0723b/code.php) | [Settings](src/bb29a833-73f7-4283-9327-bc7e41f0723b/settings.json) | SPK: `Super---bb29a833_73f7_4283_9327_bc7e41f0723b---Power` + - **final class Upsert** | [Details](src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5) | [Code](src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/code.php) | [Settings](src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/settings.json) | SPK: `Super---7c1fb50f_8fb1_4627_8705_6fedf7182ca5---Power` - **Namespace**: [VDM\Joomla\Service](#vdm-joomla-service) - - **class Data** | [Details](src/a5daf189-3345-4b13-8716-c51f686f545b) | [Code](src/a5daf189-3345-4b13-8716-c51f686f545b/code.php) | [Settings](src/a5daf189-3345-4b13-8716-c51f686f545b/settings.json) | Super__a5daf189_3345_4b13_8716_c51f686f545b__Power - - **class Database** | [Details](src/4815e1c7-a433-443d-a112-d1e03d7df84b) | [Code](src/4815e1c7-a433-443d-a112-d1e03d7df84b/code.php) | [Settings](src/4815e1c7-a433-443d-a112-d1e03d7df84b/settings.json) | Super__4815e1c7_a433_443d_a112_d1e03d7df84b__Power - - **class Model** | [Details](src/2dcedd6c-c95b-4a37-9cac-95d28faedca3) | [Code](src/2dcedd6c-c95b-4a37-9cac-95d28faedca3/code.php) | [Settings](src/2dcedd6c-c95b-4a37-9cac-95d28faedca3/settings.json) | Super__2dcedd6c_c95b_4a37_9cac_95d28faedca3__Power - - **class Table** | [Details](src/19b2ba92-1655-4384-acfb-979c80de8b6d) | [Code](src/19b2ba92-1655-4384-acfb-979c80de8b6d/code.php) | [Settings](src/19b2ba92-1655-4384-acfb-979c80de8b6d/settings.json) | Super__19b2ba92_1655_4384_acfb_979c80de8b6d__Power + - **class Data** | [Details](src/a5daf189-3345-4b13-8716-c51f686f545b) | [Code](src/a5daf189-3345-4b13-8716-c51f686f545b/code.php) | [Settings](src/a5daf189-3345-4b13-8716-c51f686f545b/settings.json) | SPK: `Super---a5daf189_3345_4b13_8716_c51f686f545b---Power` + - **class Database** | [Details](src/4815e1c7-a433-443d-a112-d1e03d7df84b) | [Code](src/4815e1c7-a433-443d-a112-d1e03d7df84b/code.php) | [Settings](src/4815e1c7-a433-443d-a112-d1e03d7df84b/settings.json) | SPK: `Super---4815e1c7_a433_443d_a112_d1e03d7df84b---Power` + - **class Model** | [Details](src/2dcedd6c-c95b-4a37-9cac-95d28faedca3) | [Code](src/2dcedd6c-c95b-4a37-9cac-95d28faedca3/code.php) | [Settings](src/2dcedd6c-c95b-4a37-9cac-95d28faedca3/settings.json) | SPK: `Super---2dcedd6c_c95b_4a37_9cac_95d28faedca3---Power` + - **class Table** | [Details](src/19b2ba92-1655-4384-acfb-979c80de8b6d) | [Code](src/19b2ba92-1655-4384-acfb-979c80de8b6d/code.php) | [Settings](src/19b2ba92-1655-4384-acfb-979c80de8b6d/settings.json) | SPK: `Super---19b2ba92_1655_4384_acfb_979c80de8b6d---Power` - **Namespace**: [VDM\Joomla\Utilities](#vdm-joomla-utilities) - - **abstract class ArrayHelper** | [Details](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a) | [Code](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/code.php) | [Settings](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/settings.json) | Super__0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a__Power - - **abstract class Base64Helper** | [Details](src/64a6ff6c-069c-4a11-a76b-db5e36c27690) | [Code](src/64a6ff6c-069c-4a11-a76b-db5e36c27690/code.php) | [Settings](src/64a6ff6c-069c-4a11-a76b-db5e36c27690/settings.json) | Super__64a6ff6c_069c_4a11_a76b_db5e36c27690__Power - - **abstract class FileHelper** | [Details](src/a223b31e-ea1d-4cdf-92ae-5f9becffaff0) | [Code](src/a223b31e-ea1d-4cdf-92ae-5f9becffaff0/code.php) | [Settings](src/a223b31e-ea1d-4cdf-92ae-5f9becffaff0/settings.json) | Super__a223b31e_ea1d_4cdf_92ae_5f9becffaff0__Power - - **abstract class FormHelper** | [Details](src/1198aecf-84c6-45d2-aea8-d531aa4afdfa) | [Code](src/1198aecf-84c6-45d2-aea8-d531aa4afdfa/code.php) | [Settings](src/1198aecf-84c6-45d2-aea8-d531aa4afdfa/settings.json) | Super__1198aecf_84c6_45d2_aea8_d531aa4afdfa__Power - - **abstract class GetHelper** | [Details](src/db87c339-5bb6-4291-a7ef-2c48ea1b06bc) | [Code](src/db87c339-5bb6-4291-a7ef-2c48ea1b06bc/code.php) | [Settings](src/db87c339-5bb6-4291-a7ef-2c48ea1b06bc/settings.json) | Super__db87c339_5bb6_4291_a7ef_2c48ea1b06bc__Power - - **abstract class GetHelperExtrusion** | [Details](src/cefe4092-a4c2-41a6-a683-bd3ab5419cc6) | [Code](src/cefe4092-a4c2-41a6-a683-bd3ab5419cc6/code.php) | [Settings](src/cefe4092-a4c2-41a6-a683-bd3ab5419cc6/settings.json) | Super__cefe4092_a4c2_41a6_a683_bd3ab5419cc6__Power - - **abstract class GuidHelper** | [Details](src/9c513baf-b279-43fd-ae29-a585c8cbc4f0) | [Code](src/9c513baf-b279-43fd-ae29-a585c8cbc4f0/code.php) | [Settings](src/9c513baf-b279-43fd-ae29-a585c8cbc4f0/settings.json) | Super__9c513baf_b279_43fd_ae29_a585c8cbc4f0__Power - - **abstract class JsonHelper** | [Details](src/4b225c51-d293-48e4-b3f6-5136cf5c3f18) | [Code](src/4b225c51-d293-48e4-b3f6-5136cf5c3f18/code.php) | [Settings](src/4b225c51-d293-48e4-b3f6-5136cf5c3f18/settings.json) | Super__4b225c51_d293_48e4_b3f6_5136cf5c3f18__Power - - **abstract class MathHelper** | [Details](src/152c8793-8b75-4715-996a-257b9f65451c) | [Code](src/152c8793-8b75-4715-996a-257b9f65451c/code.php) | [Settings](src/152c8793-8b75-4715-996a-257b9f65451c/settings.json) | Super__152c8793_8b75_4715_996a_257b9f65451c__Power - - **abstract class ObjectHelper** | [Details](src/91004529-94a9-4590-b842-e7c6b624ecf5) | [Code](src/91004529-94a9-4590-b842-e7c6b624ecf5/code.php) | [Settings](src/91004529-94a9-4590-b842-e7c6b624ecf5/settings.json) | Super__91004529_94a9_4590_b842_e7c6b624ecf5__Power - - **abstract class StringHelper** | [Details](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef) | [Code](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/code.php) | [Settings](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/settings.json) | Super__1f28cb53_60d9_4db1_b517_3c7dc6b429ef__Power + - **abstract class ArrayHelper** | [Details](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a) | [Code](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/code.php) | [Settings](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/settings.json) | SPK: `Super---0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a---Power` + - **abstract class Base64Helper** | [Details](src/64a6ff6c-069c-4a11-a76b-db5e36c27690) | [Code](src/64a6ff6c-069c-4a11-a76b-db5e36c27690/code.php) | [Settings](src/64a6ff6c-069c-4a11-a76b-db5e36c27690/settings.json) | SPK: `Super---64a6ff6c_069c_4a11_a76b_db5e36c27690---Power` + - **abstract class ClassHelper** | [Details](src/13c2cac1-a70d-42d7-99fc-eb7ac3443069) | [Code](src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/code.php) | [Settings](src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/settings.json) | SPK: `Super---13c2cac1_a70d_42d7_99fc_eb7ac3443069---Power` + - **abstract class FileHelper** | [Details](src/a223b31e-ea1d-4cdf-92ae-5f9becffaff0) | [Code](src/a223b31e-ea1d-4cdf-92ae-5f9becffaff0/code.php) | [Settings](src/a223b31e-ea1d-4cdf-92ae-5f9becffaff0/settings.json) | SPK: `Super---a223b31e_ea1d_4cdf_92ae_5f9becffaff0---Power` + - **abstract class FormHelper** | [Details](src/1198aecf-84c6-45d2-aea8-d531aa4afdfa) | [Code](src/1198aecf-84c6-45d2-aea8-d531aa4afdfa/code.php) | [Settings](src/1198aecf-84c6-45d2-aea8-d531aa4afdfa/settings.json) | SPK: `Super---1198aecf_84c6_45d2_aea8_d531aa4afdfa---Power` + - **abstract class GetHelper** | [Details](src/db87c339-5bb6-4291-a7ef-2c48ea1b06bc) | [Code](src/db87c339-5bb6-4291-a7ef-2c48ea1b06bc/code.php) | [Settings](src/db87c339-5bb6-4291-a7ef-2c48ea1b06bc/settings.json) | SPK: `Super---db87c339_5bb6_4291_a7ef_2c48ea1b06bc---Power` + - **abstract class GetHelperExtrusion** | [Details](src/cefe4092-a4c2-41a6-a683-bd3ab5419cc6) | [Code](src/cefe4092-a4c2-41a6-a683-bd3ab5419cc6/code.php) | [Settings](src/cefe4092-a4c2-41a6-a683-bd3ab5419cc6/settings.json) | SPK: `Super---cefe4092_a4c2_41a6_a683_bd3ab5419cc6---Power` + - **abstract class GuidHelper** | [Details](src/9c513baf-b279-43fd-ae29-a585c8cbc4f0) | [Code](src/9c513baf-b279-43fd-ae29-a585c8cbc4f0/code.php) | [Settings](src/9c513baf-b279-43fd-ae29-a585c8cbc4f0/settings.json) | SPK: `Super---9c513baf_b279_43fd_ae29_a585c8cbc4f0---Power` + - **abstract class JsonHelper** | [Details](src/4b225c51-d293-48e4-b3f6-5136cf5c3f18) | [Code](src/4b225c51-d293-48e4-b3f6-5136cf5c3f18/code.php) | [Settings](src/4b225c51-d293-48e4-b3f6-5136cf5c3f18/settings.json) | SPK: `Super---4b225c51_d293_48e4_b3f6_5136cf5c3f18---Power` + - **abstract class MathHelper** | [Details](src/152c8793-8b75-4715-996a-257b9f65451c) | [Code](src/152c8793-8b75-4715-996a-257b9f65451c/code.php) | [Settings](src/152c8793-8b75-4715-996a-257b9f65451c/settings.json) | SPK: `Super---152c8793_8b75_4715_996a_257b9f65451c---Power` + - **abstract class ObjectHelper** | [Details](src/91004529-94a9-4590-b842-e7c6b624ecf5) | [Code](src/91004529-94a9-4590-b842-e7c6b624ecf5/code.php) | [Settings](src/91004529-94a9-4590-b842-e7c6b624ecf5/settings.json) | SPK: `Super---91004529_94a9_4590_b842_e7c6b624ecf5---Power` + - **abstract class StringHelper** | [Details](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef) | [Code](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/code.php) | [Settings](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/settings.json) | SPK: `Super---1f28cb53_60d9_4db1_b517_3c7dc6b429ef---Power` - **Namespace**: [VDM\Joomla\Componentbuilder\Abstraction](#vdm-joomla-componentbuilder-abstraction) - - **abstract class BaseRegistry** | [Details](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c) | [Code](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/code.php) | [Settings](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/settings.json) | Super__b84e947d_2a13_44f7_ac0f_3902ae55ae0c__Power + - **abstract class BaseRegistry** | [Details](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c) | [Code](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/code.php) | [Settings](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/settings.json) | SPK: `Super---b84e947d_2a13_44f7_ac0f_3902ae55ae0c---Power` - **Namespace**: [VDM\Joomla\Componentbuilder\Table](#vdm-joomla-componentbuilder-table) - - **final class Schema** | [Details](src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce) | [Code](src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/code.php) | [Settings](src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/settings.json) | Super__b3d2ec33_76d4_4c3b_bb2c_86ac14a221ce__Power + - **final class Schema** | [Details](src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce) | [Code](src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/code.php) | [Settings](src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/settings.json) | SPK: `Super---b3d2ec33_76d4_4c3b_bb2c_86ac14a221ce---Power` + - **final class SchemaChecker** | [Details](src/709d7294-9a43-46e2-b64e-d16a16f0eab1) | [Code](src/709d7294-9a43-46e2-b64e-d16a16f0eab1/code.php) | [Settings](src/709d7294-9a43-46e2-b64e-d16a16f0eab1/settings.json) | SPK: `Super---709d7294_9a43_46e2_b64e_d16a16f0eab1---Power` - **Namespace**: [VDM\Joomla\Data\Action](#vdm-joomla-data-action) - - **class Delete** | [Details](src/3fc72954-a303-4cac-b53c-554be38b85e7) | [Code](src/3fc72954-a303-4cac-b53c-554be38b85e7/code.php) | [Settings](src/3fc72954-a303-4cac-b53c-554be38b85e7/settings.json) | Super__3fc72954_a303_4cac_b53c_554be38b85e7__Power - - **class Insert** | [Details](src/a455d916-cfe4-41df-9245-bafb709aacdb) | [Code](src/a455d916-cfe4-41df-9245-bafb709aacdb/code.php) | [Settings](src/a455d916-cfe4-41df-9245-bafb709aacdb/settings.json) | Super__a455d916_cfe4_41df_9245_bafb709aacdb__Power - - **class Load** | [Details](src/008d111c-9d43-427c-8dd4-2653e8b74be8) | [Code](src/008d111c-9d43-427c-8dd4-2653e8b74be8/code.php) | [Settings](src/008d111c-9d43-427c-8dd4-2653e8b74be8/settings.json) | Super__008d111c_9d43_427c_8dd4_2653e8b74be8__Power - - **class Update** | [Details](src/8f83fb79-f92b-4f1f-952b-325f6c22d11e) | [Code](src/8f83fb79-f92b-4f1f-952b-325f6c22d11e/code.php) | [Settings](src/8f83fb79-f92b-4f1f-952b-325f6c22d11e/settings.json) | Super__8f83fb79_f92b_4f1f_952b_325f6c22d11e__Power + - **class Delete** | [Details](src/3fc72954-a303-4cac-b53c-554be38b85e7) | [Code](src/3fc72954-a303-4cac-b53c-554be38b85e7/code.php) | [Settings](src/3fc72954-a303-4cac-b53c-554be38b85e7/settings.json) | SPK: `Super---3fc72954_a303_4cac_b53c_554be38b85e7---Power` + - **class Insert** | [Details](src/a455d916-cfe4-41df-9245-bafb709aacdb) | [Code](src/a455d916-cfe4-41df-9245-bafb709aacdb/code.php) | [Settings](src/a455d916-cfe4-41df-9245-bafb709aacdb/settings.json) | SPK: `Super---a455d916_cfe4_41df_9245_bafb709aacdb---Power` + - **class Load** | [Details](src/008d111c-9d43-427c-8dd4-2653e8b74be8) | [Code](src/008d111c-9d43-427c-8dd4-2653e8b74be8/code.php) | [Settings](src/008d111c-9d43-427c-8dd4-2653e8b74be8/settings.json) | SPK: `Super---008d111c_9d43_427c_8dd4_2653e8b74be8---Power` + - **class Update** | [Details](src/8f83fb79-f92b-4f1f-952b-325f6c22d11e) | [Code](src/8f83fb79-f92b-4f1f-952b-325f6c22d11e/code.php) | [Settings](src/8f83fb79-f92b-4f1f-952b-325f6c22d11e/settings.json) | SPK: `Super---8f83fb79_f92b_4f1f_952b_325f6c22d11e---Power` +- **Namespace**: [VDM\Joomla\Data\Remote](#vdm-joomla-data-remote) + + - **class Get** | [Details](src/728ee726-3f0f-4762-899d-f8c9430cee58) | [Code](src/728ee726-3f0f-4762-899d-f8c9430cee58/code.php) | [Settings](src/728ee726-3f0f-4762-899d-f8c9430cee58/settings.json) | SPK: `Super---728ee726_3f0f_4762_899d_f8c9430cee58---Power` + - **class Set** | [Details](src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895) | [Code](src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/code.php) | [Settings](src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/settings.json) | SPK: `Super---eb7d69c2_4ee9_4bd0_aacc_ab51a12be895---Power` - **Namespace**: [VDM\Joomla\Interfaces\Data](#vdm-joomla-interfaces-data) - - **interface DeleteInterface** | [Details](src/d8f9ba53-c490-4e8b-8e9f-6757224e069c) | [Code](src/d8f9ba53-c490-4e8b-8e9f-6757224e069c/code.php) | [Settings](src/d8f9ba53-c490-4e8b-8e9f-6757224e069c/settings.json) | Super__d8f9ba53_c490_4e8b_8e9f_6757224e069c__Power - - **interface InsertInterface** | [Details](src/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13) | [Code](src/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13/code.php) | [Settings](src/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13/settings.json) | Super__03bbc8d5_86e8_4d2f_ae5f_0d44a4f7af13__Power - - **interface ItemInterface** | [Details](src/05744dd3-4030-4cf8-8dda-a93ab809b473) | [Code](src/05744dd3-4030-4cf8-8dda-a93ab809b473/code.php) | [Settings](src/05744dd3-4030-4cf8-8dda-a93ab809b473/settings.json) | Super__05744dd3_4030_4cf8_8dda_a93ab809b473__Power - - **interface ItemsInterface** | [Details](src/7212e4db-371f-4cfd-8122-32e9bb100d83) | [Code](src/7212e4db-371f-4cfd-8122-32e9bb100d83/code.php) | [Settings](src/7212e4db-371f-4cfd-8122-32e9bb100d83/settings.json) | Super__7212e4db_371f_4cfd_8122_32e9bb100d83__Power - - **interface LoadInterface** | [Details](src/c548640c-a461-4424-9ac5-8dfb5ed06d8d) | [Code](src/c548640c-a461-4424-9ac5-8dfb5ed06d8d/code.php) | [Settings](src/c548640c-a461-4424-9ac5-8dfb5ed06d8d/settings.json) | Super__c548640c_a461_4424_9ac5_8dfb5ed06d8d__Power - - **interface MultiSubformInterface** | [Details](src/bb30f709-53d2-446a-ab3d-300fe6de0bc8) | [Code](src/bb30f709-53d2-446a-ab3d-300fe6de0bc8/code.php) | [Settings](src/bb30f709-53d2-446a-ab3d-300fe6de0bc8/settings.json) | Super__bb30f709_53d2_446a_ab3d_300fe6de0bc8__Power - - **interface RemoteInterface** | [Details](src/51de80f2-2868-4c2c-8198-ef79349e9bd7) | [Code](src/51de80f2-2868-4c2c-8198-ef79349e9bd7/code.php) | [Settings](src/51de80f2-2868-4c2c-8198-ef79349e9bd7/settings.json) | Super__51de80f2_2868_4c2c_8198_ef79349e9bd7__Power - - **interface SubformInterface** | [Details](src/34959721-415b-4b5e-8002-3d1fc84b3b2b) | [Code](src/34959721-415b-4b5e-8002-3d1fc84b3b2b/code.php) | [Settings](src/34959721-415b-4b5e-8002-3d1fc84b3b2b/settings.json) | Super__34959721_415b_4b5e_8002_3d1fc84b3b2b__Power - - **interface UpdateInterface** | [Details](src/68a41264-64c0-441a-a3d8-8a5e557b1883) | [Code](src/68a41264-64c0-441a-a3d8-8a5e557b1883/code.php) | [Settings](src/68a41264-64c0-441a-a3d8-8a5e557b1883/settings.json) | Super__68a41264_64c0_441a_a3d8_8a5e557b1883__Power + - **interface DeleteInterface** | [Details](src/d8f9ba53-c490-4e8b-8e9f-6757224e069c) | [Code](src/d8f9ba53-c490-4e8b-8e9f-6757224e069c/code.php) | [Settings](src/d8f9ba53-c490-4e8b-8e9f-6757224e069c/settings.json) | SPK: `Super---d8f9ba53_c490_4e8b_8e9f_6757224e069c---Power` + - **interface InsertInterface** | [Details](src/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13) | [Code](src/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13/code.php) | [Settings](src/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13/settings.json) | SPK: `Super---03bbc8d5_86e8_4d2f_ae5f_0d44a4f7af13---Power` + - **interface ItemInterface** | [Details](src/05744dd3-4030-4cf8-8dda-a93ab809b473) | [Code](src/05744dd3-4030-4cf8-8dda-a93ab809b473/code.php) | [Settings](src/05744dd3-4030-4cf8-8dda-a93ab809b473/settings.json) | SPK: `Super---05744dd3_4030_4cf8_8dda_a93ab809b473---Power` + - **interface ItemsInterface** | [Details](src/7212e4db-371f-4cfd-8122-32e9bb100d83) | [Code](src/7212e4db-371f-4cfd-8122-32e9bb100d83/code.php) | [Settings](src/7212e4db-371f-4cfd-8122-32e9bb100d83/settings.json) | SPK: `Super---7212e4db_371f_4cfd_8122_32e9bb100d83---Power` + - **interface LoadInterface** | [Details](src/c548640c-a461-4424-9ac5-8dfb5ed06d8d) | [Code](src/c548640c-a461-4424-9ac5-8dfb5ed06d8d/code.php) | [Settings](src/c548640c-a461-4424-9ac5-8dfb5ed06d8d/settings.json) | SPK: `Super---c548640c_a461_4424_9ac5_8dfb5ed06d8d---Power` + - **interface MultiSubformInterface** | [Details](src/bb30f709-53d2-446a-ab3d-300fe6de0bc8) | [Code](src/bb30f709-53d2-446a-ab3d-300fe6de0bc8/code.php) | [Settings](src/bb30f709-53d2-446a-ab3d-300fe6de0bc8/settings.json) | SPK: `Super---bb30f709_53d2_446a_ab3d_300fe6de0bc8---Power` + - **interface RemoteGetInterface** | [Details](src/51de80f2-2868-4c2c-8198-ef79349e9bd7) | [Code](src/51de80f2-2868-4c2c-8198-ef79349e9bd7/code.php) | [Settings](src/51de80f2-2868-4c2c-8198-ef79349e9bd7/settings.json) | SPK: `Super---51de80f2_2868_4c2c_8198_ef79349e9bd7---Power` + - **interface RemoteSetInterface** | [Details](src/e335dd61-c2f9-4536-8ed9-aec5edee0b26) | [Code](src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/code.php) | [Settings](src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/settings.json) | SPK: `Super---e335dd61_c2f9_4536_8ed9_aec5edee0b26---Power` + - **interface SubformInterface** | [Details](src/34959721-415b-4b5e-8002-3d1fc84b3b2b) | [Code](src/34959721-415b-4b5e-8002-3d1fc84b3b2b/code.php) | [Settings](src/34959721-415b-4b5e-8002-3d1fc84b3b2b/settings.json) | SPK: `Super---34959721_415b_4b5e_8002_3d1fc84b3b2b---Power` + - **interface UpdateInterface** | [Details](src/68a41264-64c0-441a-a3d8-8a5e557b1883) | [Code](src/68a41264-64c0-441a-a3d8-8a5e557b1883/code.php) | [Settings](src/68a41264-64c0-441a-a3d8-8a5e557b1883/settings.json) | SPK: `Super---68a41264_64c0_441a_a3d8_8a5e557b1883---Power` +- **Namespace**: [VDM\Joomla\Interfaces\Readme](#vdm-joomla-interfaces-readme) + + - **interface ItemInterface** | [Details](src/65a0f81a-14fc-4870-9382-b8d830b19937) | [Code](src/65a0f81a-14fc-4870-9382-b8d830b19937/code.php) | [Settings](src/65a0f81a-14fc-4870-9382-b8d830b19937/settings.json) | SPK: `Super---65a0f81a_14fc_4870_9382_b8d830b19937---Power` + - **interface MainInterface** | [Details](src/217416f6-24cf-41c0-b18e-11086111d447) | [Code](src/217416f6-24cf-41c0-b18e-11086111d447/code.php) | [Settings](src/217416f6-24cf-41c0-b18e-11086111d447/settings.json) | SPK: `Super---217416f6_24cf_41c0_b18e_11086111d447---Power` - **Namespace**: [VDM\Joomla\Utilities\Component](#vdm-joomla-utilities-component) - - **abstract class Helper** | [Details](src/640b5352-fb09-425f-a26e-cd44eda03f15) | [Code](src/640b5352-fb09-425f-a26e-cd44eda03f15/code.php) | [Settings](src/640b5352-fb09-425f-a26e-cd44eda03f15/settings.json) | Super__640b5352_fb09_425f_a26e_cd44eda03f15__Power + - **abstract class Helper** | [Details](src/640b5352-fb09-425f-a26e-cd44eda03f15) | [Code](src/640b5352-fb09-425f-a26e-cd44eda03f15/code.php) | [Settings](src/640b5352-fb09-425f-a26e-cd44eda03f15/settings.json) | SPK: `Super---640b5352_fb09_425f_a26e_cd44eda03f15---Power` - **Namespace**: [VDM\Joomla\Utilities\String](#vdm-joomla-utilities-string) - - **abstract class ClassfunctionHelper** | [Details](src/30c5b4c2-f75f-4d15-869a-f8bfedd87358) | [Code](src/30c5b4c2-f75f-4d15-869a-f8bfedd87358/code.php) | [Settings](src/30c5b4c2-f75f-4d15-869a-f8bfedd87358/settings.json) | Super__30c5b4c2_f75f_4d15_869a_f8bfedd87358__Power - - **abstract class ComponentCodeNameHelper** | [Details](src/491dbe41-f26c-4de9-8a95-fcf87b35b56f) | [Code](src/491dbe41-f26c-4de9-8a95-fcf87b35b56f/code.php) | [Settings](src/491dbe41-f26c-4de9-8a95-fcf87b35b56f/settings.json) | Super__491dbe41_f26c_4de9_8a95_fcf87b35b56f__Power - - **abstract class FieldHelper** | [Details](src/9ef0eb24-aae4-4f5a-99af-d724db44808f) | [Code](src/9ef0eb24-aae4-4f5a-99af-d724db44808f/code.php) | [Settings](src/9ef0eb24-aae4-4f5a-99af-d724db44808f/settings.json) | Super__9ef0eb24_aae4_4f5a_99af_d724db44808f__Power - - **abstract class NamespaceHelper** | [Details](src/ce8cf834-6bac-44fb-941c-861f7e046cc0) | [Code](src/ce8cf834-6bac-44fb-941c-861f7e046cc0/code.php) | [Settings](src/ce8cf834-6bac-44fb-941c-861f7e046cc0/settings.json) | Super__ce8cf834_6bac_44fb_941c_861f7e046cc0__Power - - **abstract class PluginHelper** | [Details](src/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6) | [Code](src/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6/code.php) | [Settings](src/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6/settings.json) | Super__3cf76fbf_fd95_4a33_878e_7aff6d36b7f6__Power - - **abstract class TypeHelper** | [Details](src/a8935cbe-7701-40dc-bfd5-675f2d600954) | [Code](src/a8935cbe-7701-40dc-bfd5-675f2d600954/code.php) | [Settings](src/a8935cbe-7701-40dc-bfd5-675f2d600954/settings.json) | Super__a8935cbe_7701_40dc_bfd5_675f2d600954__Power + - **abstract class ClassfunctionHelper** | [Details](src/30c5b4c2-f75f-4d15-869a-f8bfedd87358) | [Code](src/30c5b4c2-f75f-4d15-869a-f8bfedd87358/code.php) | [Settings](src/30c5b4c2-f75f-4d15-869a-f8bfedd87358/settings.json) | SPK: `Super---30c5b4c2_f75f_4d15_869a_f8bfedd87358---Power` + - **abstract class ComponentCodeNameHelper** | [Details](src/491dbe41-f26c-4de9-8a95-fcf87b35b56f) | [Code](src/491dbe41-f26c-4de9-8a95-fcf87b35b56f/code.php) | [Settings](src/491dbe41-f26c-4de9-8a95-fcf87b35b56f/settings.json) | SPK: `Super---491dbe41_f26c_4de9_8a95_fcf87b35b56f---Power` + - **abstract class FieldHelper** | [Details](src/9ef0eb24-aae4-4f5a-99af-d724db44808f) | [Code](src/9ef0eb24-aae4-4f5a-99af-d724db44808f/code.php) | [Settings](src/9ef0eb24-aae4-4f5a-99af-d724db44808f/settings.json) | SPK: `Super---9ef0eb24_aae4_4f5a_99af_d724db44808f---Power` + - **abstract class NamespaceHelper** | [Details](src/ce8cf834-6bac-44fb-941c-861f7e046cc0) | [Code](src/ce8cf834-6bac-44fb-941c-861f7e046cc0/code.php) | [Settings](src/ce8cf834-6bac-44fb-941c-861f7e046cc0/settings.json) | SPK: `Super---ce8cf834_6bac_44fb_941c_861f7e046cc0---Power` + - **abstract class PluginHelper** | [Details](src/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6) | [Code](src/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6/code.php) | [Settings](src/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6/settings.json) | SPK: `Super---3cf76fbf_fd95_4a33_878e_7aff6d36b7f6---Power` + - **abstract class TypeHelper** | [Details](src/a8935cbe-7701-40dc-bfd5-675f2d600954) | [Code](src/a8935cbe-7701-40dc-bfd5-675f2d600954/code.php) | [Settings](src/a8935cbe-7701-40dc-bfd5-675f2d600954/settings.json) | SPK: `Super---a8935cbe_7701_40dc_bfd5_675f2d600954---Power` - **Namespace**: [VDM\Joomla\Abstraction\Registry\Traits](#vdm-joomla-abstraction-registry-traits) - - **trait Count** | [Details](src/11572d9b-e3d5-4b29-904c-9618d8f2bfd8) | [Code](src/11572d9b-e3d5-4b29-904c-9618d8f2bfd8/code.php) | [Settings](src/11572d9b-e3d5-4b29-904c-9618d8f2bfd8/settings.json) | Super__11572d9b_e3d5_4b29_904c_9618d8f2bfd8__Power - - **trait GetString** | [Details](src/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b) | [Code](src/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b/code.php) | [Settings](src/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b/settings.json) | Super__59b1a2ea_d77e_4040_ac8c_e65cd8743e9b__Power - - **trait InArray** | [Details](src/215b35ac-1b26-4838-bbcf-d1fdbbd9353f) | [Code](src/215b35ac-1b26-4838-bbcf-d1fdbbd9353f/code.php) | [Settings](src/215b35ac-1b26-4838-bbcf-d1fdbbd9353f/settings.json) | Super__215b35ac_1b26_4838_bbcf_d1fdbbd9353f__Power - - **trait IsArray** | [Details](src/c09e8968-c767-4175-bb3d-8432f206a2c7) | [Code](src/c09e8968-c767-4175-bb3d-8432f206a2c7/code.php) | [Settings](src/c09e8968-c767-4175-bb3d-8432f206a2c7/settings.json) | Super__c09e8968_c767_4175_bb3d_8432f206a2c7__Power - - **trait IsString** | [Details](src/ff7d0111-8f79-42aa-ac14-b53ba2c49369) | [Code](src/ff7d0111-8f79-42aa-ac14-b53ba2c49369/code.php) | [Settings](src/ff7d0111-8f79-42aa-ac14-b53ba2c49369/settings.json) | Super__ff7d0111_8f79_42aa_ac14_b53ba2c49369__Power - - **trait ToString** | [Details](src/7d494d91-ab60-43cd-aecf-d50e07f7f30e) | [Code](src/7d494d91-ab60-43cd-aecf-d50e07f7f30e/code.php) | [Settings](src/7d494d91-ab60-43cd-aecf-d50e07f7f30e/settings.json) | Super__7d494d91_ab60_43cd_aecf_d50e07f7f30e__Power - - **trait VarExport** | [Details](src/52a1d14f-304a-431c-8fa4-411179942db5) | [Code](src/52a1d14f-304a-431c-8fa4-411179942db5/code.php) | [Settings](src/52a1d14f-304a-431c-8fa4-411179942db5/settings.json) | Super__52a1d14f_304a_431c_8fa4_411179942db5__Power + - **trait Count** | [Details](src/11572d9b-e3d5-4b29-904c-9618d8f2bfd8) | [Code](src/11572d9b-e3d5-4b29-904c-9618d8f2bfd8/code.php) | [Settings](src/11572d9b-e3d5-4b29-904c-9618d8f2bfd8/settings.json) | SPK: `Super---11572d9b_e3d5_4b29_904c_9618d8f2bfd8---Power` + - **trait GetString** | [Details](src/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b) | [Code](src/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b/code.php) | [Settings](src/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b/settings.json) | SPK: `Super---59b1a2ea_d77e_4040_ac8c_e65cd8743e9b---Power` + - **trait InArray** | [Details](src/215b35ac-1b26-4838-bbcf-d1fdbbd9353f) | [Code](src/215b35ac-1b26-4838-bbcf-d1fdbbd9353f/code.php) | [Settings](src/215b35ac-1b26-4838-bbcf-d1fdbbd9353f/settings.json) | SPK: `Super---215b35ac_1b26_4838_bbcf_d1fdbbd9353f---Power` + - **trait IsArray** | [Details](src/c09e8968-c767-4175-bb3d-8432f206a2c7) | [Code](src/c09e8968-c767-4175-bb3d-8432f206a2c7/code.php) | [Settings](src/c09e8968-c767-4175-bb3d-8432f206a2c7/settings.json) | SPK: `Super---c09e8968_c767_4175_bb3d_8432f206a2c7---Power` + - **trait IsString** | [Details](src/ff7d0111-8f79-42aa-ac14-b53ba2c49369) | [Code](src/ff7d0111-8f79-42aa-ac14-b53ba2c49369/code.php) | [Settings](src/ff7d0111-8f79-42aa-ac14-b53ba2c49369/settings.json) | SPK: `Super---ff7d0111_8f79_42aa_ac14_b53ba2c49369---Power` + - **trait ToString** | [Details](src/7d494d91-ab60-43cd-aecf-d50e07f7f30e) | [Code](src/7d494d91-ab60-43cd-aecf-d50e07f7f30e/code.php) | [Settings](src/7d494d91-ab60-43cd-aecf-d50e07f7f30e/settings.json) | SPK: `Super---7d494d91_ab60_43cd_aecf_d50e07f7f30e---Power` + - **trait VarExport** | [Details](src/52a1d14f-304a-431c-8fa4-411179942db5) | [Code](src/52a1d14f-304a-431c-8fa4-411179942db5/code.php) | [Settings](src/52a1d14f-304a-431c-8fa4-411179942db5/settings.json) | SPK: `Super---52a1d14f_304a_431c_8fa4_411179942db5---Power` +> remember to replace the `---` with `___` in the SPK to activate that Power in your code --- ``` diff --git a/src/008d111c-9d43-427c-8dd4-2653e8b74be8/README.md b/src/008d111c-9d43-427c-8dd4-2653e8b74be8/README.md index cd49c68..daaed6c 100644 --- a/src/008d111c-9d43-427c-8dd4-2653e8b74be8/README.md +++ b/src/008d111c-9d43-427c-8dd4-2653e8b74be8/README.md @@ -8,7 +8,7 @@ ``` # class Load (Details) > namespace: **VDM\Joomla\Data\Action** -> extends: **** + ```uml @startuml class Load #Gold { @@ -112,6 +112,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---008d111c_9d43_427c_8dd4_2653e8b74be8---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13/README.md b/src/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13/README.md index 475fcde..c27fead 100644 --- a/src/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13/README.md +++ b/src/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13/README.md @@ -8,7 +8,7 @@ ``` # interface InsertInterface (Details) > namespace: **VDM\Joomla\Interfaces\Data** -> extends: **** + ```uml @startuml interface InsertInterface #Lavender { @@ -84,6 +84,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---03bbc8d5_86e8_4d2f_ae5f_0d44a4f7af13---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/05744dd3-4030-4cf8-8dda-a93ab809b473/README.md b/src/05744dd3-4030-4cf8-8dda-a93ab809b473/README.md index 704934f..a80deb7 100644 --- a/src/05744dd3-4030-4cf8-8dda-a93ab809b473/README.md +++ b/src/05744dd3-4030-4cf8-8dda-a93ab809b473/README.md @@ -8,7 +8,7 @@ ``` # interface ItemInterface (Details) > namespace: **VDM\Joomla\Interfaces\Data** -> extends: **** + ```uml @startuml interface ItemInterface #Lavender { @@ -75,6 +75,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---05744dd3_4030_4cf8_8dda_a93ab809b473---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/06f8eada-d59b-441c-b287-0aea1793da5a/README.md b/src/06f8eada-d59b-441c-b287-0aea1793da5a/README.md index 2d96f8a..962db8e 100644 --- a/src/06f8eada-d59b-441c-b287-0aea1793da5a/README.md +++ b/src/06f8eada-d59b-441c-b287-0aea1793da5a/README.md @@ -9,6 +9,7 @@ # final class Load (Details) > namespace: **VDM\Joomla\Database** > extends: **Database** + ```uml @startuml class Load << (F,LightGreen) >> #RoyalBlue { @@ -179,6 +180,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---06f8eada_d59b_441c_b287_0aea1793da5a---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/README.md b/src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/README.md index fb8b253..c475300 100644 --- a/src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/README.md +++ b/src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/README.md @@ -8,7 +8,7 @@ ``` # abstract class ArrayHelper (Details) > namespace: **VDM\Joomla\Utilities** -> extends: **** + ```uml @startuml abstract ArrayHelper #Orange { @@ -40,6 +40,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/11572d9b-e3d5-4b29-904c-9618d8f2bfd8/README.md b/src/11572d9b-e3d5-4b29-904c-9618d8f2bfd8/README.md index 9d4a28b..1bfcce9 100644 --- a/src/11572d9b-e3d5-4b29-904c-9618d8f2bfd8/README.md +++ b/src/11572d9b-e3d5-4b29-904c-9618d8f2bfd8/README.md @@ -8,7 +8,7 @@ ``` # trait Count (Details) > namespace: **VDM\Joomla\Abstraction\Registry\Traits** -> extends: **** + ```uml @startuml class Count << (T,Orange) >> #Turquoise { @@ -25,6 +25,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---11572d9b_e3d5_4b29_904c_9618d8f2bfd8---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/1198aecf-84c6-45d2-aea8-d531aa4afdfa/README.md b/src/1198aecf-84c6-45d2-aea8-d531aa4afdfa/README.md index e86f979..80eaa24 100644 --- a/src/1198aecf-84c6-45d2-aea8-d531aa4afdfa/README.md +++ b/src/1198aecf-84c6-45d2-aea8-d531aa4afdfa/README.md @@ -8,7 +8,7 @@ ``` # abstract class FormHelper (Details) > namespace: **VDM\Joomla\Utilities** -> extends: **** + ```uml @startuml abstract FormHelper #Orange { @@ -72,6 +72,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---1198aecf_84c6_45d2_aea8_d531aa4afdfa---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/README.md b/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/README.md new file mode 100644 index 0000000..cc742d7 --- /dev/null +++ b/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/README.md @@ -0,0 +1,58 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# abstract class ClassHelper (Details) +> namespace: **VDM\Joomla\Utilities** + +```uml +@startuml +abstract ClassHelper #Orange { + + {static} exists(string $className, string $component, ...) : bool +} + +note right of ClassHelper::exists + Ensures that a class in the namespace is available. +If the class is not already loaded, it attempts to load it via the specified autoloader. + + since: 3.2.2 + return: bool + + arguments: + string $className + string $component + string $autoloaderPath +end note + +@enduml +``` + +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---13c2cac1_a70d_42d7_99fc_eb7ac3443069---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/code.php b/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/code.php new file mode 100644 index 0000000..5d6af9c --- /dev/null +++ b/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/code.php @@ -0,0 +1,55 @@ + + * @git 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\Utilities; + + +/** + * Class Helper for JCB Powers + * + * @since 3.2.2 + */ +abstract class ClassHelper +{ + /** + * Ensures that a class in the namespace is available. + * If the class is not already loaded, it attempts to load it via the specified autoloader. + * + * @param string $className The fully qualified name of the class to check. + * @param string $component The component name where the autoloader resides. + * @param string $autoloaderPath The path to the autoloader file within the component. + * + * @return bool True if the class exists or was successfully loaded, false otherwise. + * @since 3.2.2 + */ + public static function exists(string $className, string $component, string $autoloaderPath): bool + { + if (!class_exists($className, true)) + { + // Construct the path to the autoloader file + $autoloaderFile = JPATH_ADMINISTRATOR . '/components/com_' . $component . '/' . $autoloaderPath; + + if (file_exists($autoloaderFile)) + { + require_once $autoloaderFile; + } + + // Check again if the class now exists after requiring the autoloader + if (!class_exists($className, true)) + { + return false; + } + } + return true; + } + +} + diff --git a/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/code.power b/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/code.power new file mode 100644 index 0000000..6fe71c7 --- /dev/null +++ b/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/code.power @@ -0,0 +1,31 @@ + /** + * Ensures that a class in the namespace is available. + * If the class is not already loaded, it attempts to load it via the specified autoloader. + * + * @param string $className The fully qualified name of the class to check. + * @param string $component The component name where the autoloader resides. + * @param string $autoloaderPath The path to the autoloader file within the component. + * + * @return bool True if the class exists or was successfully loaded, false otherwise. + * @since 3.2.2 + */ + public static function exists(string $className, string $component, string $autoloaderPath): bool + { + if (!class_exists($className, true)) + { + // Construct the path to the autoloader file + $autoloaderFile = JPATH_ADMINISTRATOR . '/components/com_' . $component . '/' . $autoloaderPath; + + if (file_exists($autoloaderFile)) + { + require_once $autoloaderFile; + } + + // Check again if the class now exists after requiring the autoloader + if (!class_exists($className, true)) + { + return false; + } + } + return true; + } diff --git a/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/settings.json b/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/settings.json new file mode 100644 index 0000000..5a5b1ba --- /dev/null +++ b/src/13c2cac1-a70d-42d7-99fc-eb7ac3443069/settings.json @@ -0,0 +1,19 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "", + "guid": "13c2cac1-a70d-42d7-99fc-eb7ac3443069", + "implements": null, + "load_selection": null, + "name": "ClassHelper", + "power_version": "1.0.0", + "system_name": "Utilities Class Helper", + "type": "abstract class", + "use_selection": null, + "extendsinterfaces": null, + "namespace": "[[[NamespacePrefix]]]\\Joomla\\Utilities.ClassHelper", + "description": "Class Helper for JCB Powers\r\n\r\n@since 3.2.2", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 3rd September, 2020\r\n * @author Llewellyn van der Merwe \r\n * @git 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": "" +} \ No newline at end of file diff --git a/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/README.md b/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/README.md index 96017bf..891988b 100644 --- a/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/README.md +++ b/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/README.md @@ -8,7 +8,7 @@ ``` # abstract class Grep (Details) > namespace: **VDM\Joomla\Abstraction** -> extends: **** + ```uml @startuml abstract Grep #Orange { @@ -18,13 +18,32 @@ abstract Grep #Orange { # Contents $contents # CMSApplication $app + __construct(Contents $contents, array $paths, ...) - + getRemotePowersGuid() : ?array + + get(string $guid, ?array $order = null, ...) : ?object + + exists(string $guid, ?object $repo = null, ...) : bool + + getRemoteGuid() : ?array + setBranchField(string $field) : void - + get(string $guid, ?array $order = null) : ?object - # {abstract} remoteIndex(object $path) : void - # getFunctionName(string $name) : ?string - # init() : void - + getBranchField() : string + + setBranchDefaultName(?string $name) : void + + setIndexPath(string $indexPath) : void + + getRemoteIndex(string $guid) : ?object + # {abstract} setRemoteIndexMessage(string $message, string $path, ...) : void + # getFunctionName(string $name, string $type = 'search') : ?string + # searchSingleRepo(string $guid, array $order, ...) : ?object + # searchAllRepos(string $guid, array $order) : ?object + # itemExistsInRepo(string $guid, object $repo, ...) : bool + # itemExistsInAllRepos(string $guid, array $order) : bool + # getBranchField() : string + # getBranchDefaultName() : ?string + # getBranchName(object $item) : ?string + # getIndexPath() : string + # itemExists(string $guid, object $repo, ...) : bool + # existsLocally(string $guid) : ?object + # existsRemotely(string $guid) : ?object + # existsLocal(string $guid, object $path) : bool + # existsRemote(string $guid, object $path) : bool + # indexRemote(object $path) : void + # indexLocal(object $path) : void + # initializeInstances() : void + # loadRemoteFile(string $organisation, string $repository, ...) : mixed } note right of Grep::__construct @@ -39,8 +58,32 @@ note right of Grep::__construct ?CMSApplication $app = null end note -note left of Grep::getRemotePowersGuid - Get all remote powers GUID's +note left of Grep::get + Get an item + + since: 3.2.2 + return: ?object + + arguments: + string $guid + ?array $order = null + ?object $repo = null +end note + +note right of Grep::exists + Check if an item exists in any repo or in a specific repo. + + since: 3.2.2 + return: bool + + arguments: + string $guid + ?object $repo = null + ?array $order = null +end note + +note left of Grep::getRemoteGuid + Get all remote GUID's since: 3.2.0 return: ?array @@ -53,18 +96,39 @@ note right of Grep::setBranchField return: void end note -note left of Grep::get - Get a power +note left of Grep::setBranchDefaultName + Set the DEFAULT branch name (only used if branch field is not found) - since: 3.2.0 + since: 3.2.2 + return: void +end note + +note right of Grep::setIndexPath + Set the index path + + since: 3.2.2 + return: void +end note + +note left of Grep::getRemoteIndex + Get the index of a repo + + since: 3.2.2 return: ?object end note -note right of Grep::remoteIndex - Load the remote repository index of powers +note right of Grep::setRemoteIndexMessage + Set repository messages and errors based on given conditions. since: 3.2.0 return: void + + arguments: + string $message + string $path + string $repository + string $organisation + ?string $base end note note left of Grep::getFunctionName @@ -74,23 +138,163 @@ note left of Grep::getFunctionName return: ?string end note -note right of Grep::init +note right of Grep::searchSingleRepo + Search a single repository for an item + + since: 3.2.2 + return: ?object + + arguments: + string $guid + array $order + object $repo +end note + +note left of Grep::searchAllRepos + Search all repositories for an item + + since: 3.2.2 + return: ?object +end note + +note right of Grep::itemExistsInRepo + Check if an item exists in a specific repository. + + since: 3.2.2 + return: bool + + arguments: + string $guid + object $repo + array $order +end note + +note left of Grep::itemExistsInAllRepos + Check if an item exists in any of the repositories. + + since: 3.2.2 + return: bool +end note + +note right of Grep::getBranchField + Get the branch field + + since: 3.2.2 + return: string +end note + +note left of Grep::getBranchDefaultName + Get the branch default name + + since: 3.2.2 + return: ?string +end note + +note right of Grep::getBranchName + Get the branch name + + since: 3.2.2 + return: ?string +end note + +note left of Grep::getIndexPath + Get the index path + + since: 3.2.2 + return: string +end note + +note right of Grep::itemExists + Check if an item exists in a specific repo and target. + + since: 3.2.2 + return: bool + + arguments: + string $guid + object $repo + string $target +end note + +note left of Grep::existsLocally + Check if item exists locally + + since: 3.2.2 + return: ?object +end note + +note right of Grep::existsRemotely + Check if item exists remotely + + since: 3.2.2 + return: ?object +end note + +note left of Grep::existsLocal + Check if item exists locally + + since: 3.2.2 + return: bool +end note + +note right of Grep::existsRemote + Check if item exists remotely + + since: 3.2.2 + return: bool +end note + +note left of Grep::indexRemote + Load the remote repository index of powers + + since: 3.2.0 + return: void +end note + +note right of Grep::indexLocal + Load the local repository index of powers + + since: 3.2.0 + return: void +end note + +note left of Grep::initializeInstances Set path details since: 3.2.0 return: void end note -note left of Grep::getBranchField - Get the branch field +note right of Grep::loadRemoteFile + Load the remote file - since: 3.2.2 - return: string + since: 3.2.0 + return: mixed + + arguments: + string $organisation + string $repository + string $path + ?string $branch end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---1401a167_0ce4_4f4a_afee_2d8b02ed339b---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/code.php b/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/code.php index 9a8bdba..8cac2a3 100644 --- a/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/code.php +++ b/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/code.php @@ -13,9 +13,12 @@ namespace VDM\Joomla\Abstraction; use Joomla\CMS\Factory; +use Joomla\CMS\Language\Text; use Joomla\CMS\Filesystem\Folder; use Joomla\CMS\Application\CMSApplication; use VDM\Joomla\Gitea\Repository\Contents; +use VDM\Joomla\Utilities\FileHelper; +use VDM\Joomla\Utilities\JsonHelper; use VDM\Joomla\Interfaces\GrepInterface; @@ -24,7 +27,7 @@ use VDM\Joomla\Interfaces\GrepInterface; * * The Grep feature will try to find your power in the repositories listed in the global * Options of JCB in the super powers tab, and if it can't be found there will try the global core - * Super powers of JCB. All searches are performed according the the [algorithm:cascading] + * Super powers of JCB. All searches are performed according the [algorithm:cascading] * See documentation for more details: https://git.vdm.dev/joomla/super-powers/wiki * * @since 3.2.1 @@ -34,7 +37,7 @@ abstract class Grep implements GrepInterface /** * The local path * - * @var string + * @var string|null * @since 3.2.0 **/ public ?string $path; @@ -42,7 +45,7 @@ abstract class Grep implements GrepInterface /** * All approved paths * - * @var array + * @var array|null * @since 3.2.0 **/ public ?array $paths; @@ -63,6 +66,22 @@ abstract class Grep implements GrepInterface **/ protected string $branch_field = 'read_branch'; + /** + * The target default branch name + * + * @var string|null + * @since 3.2.2 + **/ + protected ?string $branch_name = null; + + /** + * The index file path + * + * @var string + * @since 3.2.2 + */ + protected string $index_path = 'index.json'; + /** * Gitea Repository Contents * @@ -92,21 +111,65 @@ abstract class Grep implements GrepInterface */ public function __construct(Contents $contents, array $paths, ?string $path = null, ?CMSApplication $app = null) { - $this->paths = $paths; $this->contents = $contents; + $this->paths = $paths; $this->path = $path; $this->app = $app ?: Factory::getApplication(); - $this->init(); + $this->initializeInstances(); } /** - * Get all remote powers GUID's + * Get an item + * + * @param string $guid The global unique id of the item + * @param array|null $order The search order + * @param object|null $repo The repository object to search. If null, all repos will be searched. + * + * @return object|null + * @since 3.2.2 + */ + public function get(string $guid, ?array $order = null, ?object $repo = null): ?object + { + $order = $order ?? $this->order; + + if ($repo !== null) + { + return $this->searchSingleRepo($guid, $order, $repo); + } + + return $this->searchAllRepos($guid, $order); + } + + /** + * Check if an item exists in any repo or in a specific repo. + * + * @param string $guid The unique identifier for the item. + * @param object|null $repo The repository object to check against. If null, all repos will be checked. + * @param array|null $order The order of the targets to check. If null, the default order will be used. + * + * @return bool True if the item exists, false otherwise. + * @since 3.2.2 + */ + public function exists(string $guid, ?object $repo = null, ?array $order = null): bool + { + $order = $order ?? $this->order; + + if ($repo !== null) + { + return $this->itemExistsInRepo($guid, $repo, $order); + } + + return $this->itemExistsInAllRepos($guid, $order); + } + + /** + * Get all remote GUID's * * @return array|null * @since 3.2.0 */ - public function getRemotePowersGuid(): ?array + public function getRemoteGuid(): ?array { if (!is_array($this->paths) || $this->paths === []) { @@ -117,7 +180,7 @@ abstract class Grep implements GrepInterface foreach ($this->paths as $path) { // Get remote index - $this->remoteIndex($path); + $this->indexRemote($path); if (isset($path->index) && is_object($path->index)) { @@ -131,7 +194,7 @@ abstract class Grep implements GrepInterface /** * Set the branch field * - * @param string $field The global unique id of the power + * @param string $field The field to use to get the branch name from the data set * * @return void * @since 3.2.2 @@ -142,28 +205,113 @@ abstract class Grep implements GrepInterface } /** - * Get a power + * Set the DEFAULT branch name (only used if branch field is not found) * - * @param string $guid The global unique id of the power - * @param array|null $order The search order + * @param string|null $name The default branch to use if no name could be found + * + * @return void + * @since 3.2.2 + */ + public function setBranchDefaultName(?string $name): void + { + $this->branch_name = $name; + } + + /** + * Set the index path + * + * @param string $indexPath The repository index path + * + * @return void + * @since 3.2.2 + */ + public function setIndexPath(string $indexPath): void + { + $this->index_path = $indexPath; + } + + /** + * Get the index of a repo + * + * @param string $guid The unique identifier for the repo. * * @return object|null - * @since 3.2.0 + * @since 3.2.2 */ - public function get(string $guid, ?array $order = null): ?object + public function getRemoteIndex(string $guid): ?object { - if ($order === null) + if (!is_array($this->paths) || $this->paths === [] || empty($guid)) { - $order = $this->order; + return null; } - // we can only search if we have paths - if (is_array($this->paths) && $this->paths !== []) + foreach ($this->paths as $path) { - foreach ($order as $target) + if (!isset($path->guid) || $guid !== $path->guid) { - if (($function_name = $this->getFunctionName($target)) !== null && - ($power = $this->{$function_name}($guid)) !== null) + continue; + } + + // Get remote index + $this->indexRemote($path); + + if (isset($path->index) && is_object($path->index)) + { + return $path->index; + } + } + + return null; + } + + /** + * Set repository messages and errors based on given conditions. + * + * @param string $message The message to set (if error) + * @param string $path Path value + * @param string $repository Repository name + * @param string $organisation Organisation name + * @param string|null $base Base URL + * + * @return void + * @since 3.2.0 + */ + abstract protected function setRemoteIndexMessage(string $message, string $path, string $repository, string $organisation, ?string $base): void; + + /** + * Get function name + * + * @param string $name The targeted area name + * @param string $type The type of function name + * + * @return string|null + * @since 3.2.0 + */ + protected function getFunctionName(string $name, string $type = 'search'): ?string + { + $function_name = $type . ucfirst(strtolower($name)); + + return method_exists($this, $function_name) ? $function_name : null; + } + + /** + * Search a single repository for an item + * + * @param string $guid The unique identifier for the item. + * @param array $order The order of the targets to check. + * @param object $repo The repository object to check against. + * + * @return object|null + * @since 3.2.2 + */ + protected function searchSingleRepo(string $guid, array $order, object $repo): ?object + { + foreach ($order as $target) + { + if ($this->itemExists($guid, $repo, $target)) + { + $functionName = $this->getFunctionName($target, 'get'); + if ($functionName !== null && ($power = $this->{$functionName}($repo, $guid)) !== null) { return $power; } @@ -173,6 +321,251 @@ abstract class Grep implements GrepInterface return null; } + /** + * Search all repositories for an item + * + * @param string $guid The unique identifier for the item. + * @param object $repo The repository object to check against. + * + * @return object|null + * @since 3.2.2 + */ + protected function searchAllRepos(string $guid, array $order): ?object + { + if (is_array($this->paths) && $this->paths !== []) + { + foreach ($order as $target) + { + $functionName = $this->getFunctionName($target); + if ($functionName !== null && ($power = $this->{$functionName}($guid)) !== null) + { + return $power; + } + } + } + + return null; + } + + /** + * Check if an item exists in a specific repository. + * + * @param string $guid The unique identifier for the item. + * @param object $repo The repository object to check against. + * @param array $order The order of the targets to check. + * + * @return bool True if the item exists, false otherwise. + * @since 3.2.2 + */ + protected function itemExistsInRepo(string $guid, object $repo, array $order): bool + { + foreach ($order as $target) + { + if ($this->itemExists($guid, $repo, $target)) + { + return true; + } + } + return false; + } + + /** + * Check if an item exists in any of the repositories. + * + * @param string $guid The unique identifier for the item. + * @param array $order The order of the targets to check. + * + * @return bool True if the item exists, false otherwise. + * @since 3.2.2 + */ + protected function itemExistsInAllRepos(string $guid, array $order): bool + { + // We can only search if we have paths + if (is_array($this->paths) && $this->paths !== []) + { + foreach ($order as $target) + { + foreach ($this->paths as $path) + { + if ($this->itemExists($guid, $path, $target)) + { + return true; + } + } + } + } + return false; + } + + /** + * Get the branch field + * + * @return string + * @since 3.2.2 + */ + protected function getBranchField(): string + { + return $this->branch_field; + } + + /** + * Get the branch default name + * + * @return string|null + * @since 3.2.2 + */ + protected function getBranchDefaultName(): ?string + { + return $this->branch_name; + } + + /** + * Get the branch name + * + * @param object $item The item path + * + * @return string|null + * @since 3.2.2 + */ + protected function getBranchName(object $item): ?string + { + // get the branch field name + $branch_field = $this->getBranchField(); + + return $item->{$branch_field} ?? $this->getBranchDefaultName(); + } + + /** + * Get the index path + * + * @return string + * @since 3.2.2 + */ + protected function getIndexPath(): string + { + return $this->index_path; + } + + /** + * Check if an item exists in a specific repo and target. + * + * @param string $guid The unique identifier for the item. + * @param object $repo The repository object to check against. + * @param string $target The target to check within the repo. + * + * @return bool True if the item exists, false otherwise. + * @since 3.2.2 + */ + protected function itemExists(string $guid, object &$repo, string $target): bool + { + if (($function_name = $this->getFunctionName($target, 'index')) !== null) + { + $this->{$function_name}($repo); + + if (($function_name = $this->getFunctionName($target, 'exists')) !== null && + $this->{$function_name}($guid, $repo)) + { + return true; + } + } + + return false; + } + + /** + * Check if item exists locally + * + * @param string $guid The global unique id of the item + * + * @return object|null return path object + * @since 3.2.2 + */ + protected function existsLocally(string $guid): ?object + { + // we can only search if we have paths + if ($this->path && $this->paths) + { + foreach ($this->paths as $path) + { + // get local index + $this->indexLocal($path); + + if ($this->existsLocal($guid, $path)) + { + return $path; + } + } + } + + return null; + } + + /** + * Check if item exists remotely + * + * @param string $guid The global unique id of the item + * + * @return object|null return path object + * @since 3.2.2 + */ + protected function existsRemotely(string $guid): ?object + { + // we can only search if we have paths + if ($this->paths) + { + foreach ($this->paths as $path) + { + // get local index + $this->indexRemote($path); + + if ($this->existsRemote($guid, $path)) + { + return $path; + } + } + } + + return null; + } + + /** + * Check if item exists locally + * + * @param string $guid The global unique id of the item + * @param object $path The path object + * + * @return bool true if it exists + * @since 3.2.2 + */ + protected function existsLocal(string $guid, object $path): bool + { + if (!empty($path->local) && isset($path->local->{$guid})) + { + return true; + } + + return false; + } + + /** + * Check if item exists remotely + * + * @param string $guid The global unique id of the item + * @param object $path The path object + * + * @return bool true if it exists + * @since 3.2.2 + */ + protected function existsRemote(string $guid, object $path): bool + { + if (!empty($path->index) && isset($path->index->{$guid})) + { + return true; + } + + return false; + } + /** * Load the remote repository index of powers * @@ -181,21 +574,55 @@ abstract class Grep implements GrepInterface * @return void * @since 3.2.0 */ - abstract protected function remoteIndex(object &$path): void; + protected function indexRemote(object &$path): void + { + if (isset($path->index)) + { + return; // already set + } + + try + { + // load the base and token if set + $this->contents->load_($path->base ?? null, $path->token ?? null); + $path->index = $this->contents->get($path->organisation, $path->repository, $this->getIndexPath(), $this->getBranchName($path)); + } + catch (\Exception $e) + { + $path->index = null; + $this->setRemoteIndexMessage($e->getMessage(), $path->path, $path->repository, $path->organisation, $path->base ?? null); + } + finally + { + // reset back to the global base and token + $this->contents->reset_(); + } + } /** - * Get function name + * Load the local repository index of powers * - * @param string $name The targeted function name + * @param object $path The repository path details * - * @return string|null + * @return void * @since 3.2.0 */ - protected function getFunctionName(string $name): ?string + protected function indexLocal(object &$path): void { - $function_name = 'search' . ucfirst(strtolower($name)); + if (isset($path->local) || !isset($path->full_path)) + { + return; + } - return method_exists($this, $function_name) ? $function_name : null; + if (($content = FileHelper::getContent($path->full_path . '/' . $this->getIndexPath(), null)) !== null && + JsonHelper::check($content)) + { + $path->local = json_decode($content); + + return; + } + + $path->local = null; } /** @@ -204,7 +631,7 @@ abstract class Grep implements GrepInterface * @return void * @since 3.2.0 */ - protected function init(): void + protected function initializeInstances(): void { if (is_array($this->paths) && $this->paths !== []) { @@ -216,12 +643,14 @@ abstract class Grep implements GrepInterface // build the path $path->path = trim($path->organisation) . '/' . trim($path->repository); - // update the branch + // get the branch field name $branch_field = $this->getBranchField(); - $branch = $path->{$branch_field} ?? null; + // get the branch name + $branch = $this->getBranchName($path); if ($branch === 'default' || empty($branch)) { + // will allow us to target the default branch as set by the git system $path->{$branch_field} = null; } @@ -240,14 +669,33 @@ abstract class Grep implements GrepInterface } /** - * Get the branch field + * Load the remote file * - * @return string - * @since 3.2.2 + * @param string $organisation The repository organisation + * @param string $repository The repository name + * @param string $path The repository path to file + * @param string|null $branch The repository branch name + * + * @return mixed + * @since 3.2.0 */ - public function getBranchField(): string + protected function loadRemoteFile(string $organisation, string $repository, string $path, ?string $branch) { - return $this->branch_field; + try + { + $data = $this->contents->get($organisation, $repository, $path, $branch); + } + catch (\Exception $e) + { + $this->app->enqueueMessage( + Text::sprintf('COM_COMPONENTBUILDER_PFILE_AT_BSSB_GAVE_THE_FOLLOWING_ERRORBR_SP', $this->contents->api(), $path, $e->getMessage()), + 'Error' + ); + + return null; + } + + return $data; } } diff --git a/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/code.power b/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/code.power index 62f034b..25fec34 100644 --- a/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/code.power +++ b/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/code.power @@ -1,7 +1,7 @@ /** * The local path * - * @var string + * @var string|null * @since 3.2.0 **/ public ?string $path; @@ -9,7 +9,7 @@ /** * All approved paths * - * @var array + * @var array|null * @since 3.2.0 **/ public ?array $paths; @@ -30,6 +30,22 @@ **/ protected string $branch_field = 'read_branch'; + /** + * The target default branch name + * + * @var string|null + * @since 3.2.2 + **/ + protected ?string $branch_name = null; + + /** + * The index file path + * + * @var string + * @since 3.2.2 + */ + protected string $index_path = 'index.json'; + /** * Gitea Repository Contents * @@ -59,21 +75,65 @@ */ public function __construct(Contents $contents, array $paths, ?string $path = null, ?CMSApplication $app = null) { - $this->paths = $paths; $this->contents = $contents; + $this->paths = $paths; $this->path = $path; $this->app = $app ?: Factory::getApplication(); - $this->init(); + $this->initializeInstances(); } /** - * Get all remote powers GUID's + * Get an item + * + * @param string $guid The global unique id of the item + * @param array|null $order The search order + * @param object|null $repo The repository object to search. If null, all repos will be searched. + * + * @return object|null + * @since 3.2.2 + */ + public function get(string $guid, ?array $order = null, ?object $repo = null): ?object + { + $order = $order ?? $this->order; + + if ($repo !== null) + { + return $this->searchSingleRepo($guid, $order, $repo); + } + + return $this->searchAllRepos($guid, $order); + } + + /** + * Check if an item exists in any repo or in a specific repo. + * + * @param string $guid The unique identifier for the item. + * @param object|null $repo The repository object to check against. If null, all repos will be checked. + * @param array|null $order The order of the targets to check. If null, the default order will be used. + * + * @return bool True if the item exists, false otherwise. + * @since 3.2.2 + */ + public function exists(string $guid, ?object $repo = null, ?array $order = null): bool + { + $order = $order ?? $this->order; + + if ($repo !== null) + { + return $this->itemExistsInRepo($guid, $repo, $order); + } + + return $this->itemExistsInAllRepos($guid, $order); + } + + /** + * Get all remote GUID's * * @return array|null * @since 3.2.0 */ - public function getRemotePowersGuid(): ?array + public function getRemoteGuid(): ?array { if (!is_array($this->paths) || $this->paths === []) { @@ -84,7 +144,7 @@ foreach ($this->paths as $path) { // Get remote index - $this->remoteIndex($path); + $this->indexRemote($path); if (isset($path->index) && is_object($path->index)) { @@ -98,7 +158,7 @@ /** * Set the branch field * - * @param string $field The global unique id of the power + * @param string $field The field to use to get the branch name from the data set * * @return void * @since 3.2.2 @@ -109,28 +169,113 @@ } /** - * Get a power + * Set the DEFAULT branch name (only used if branch field is not found) * - * @param string $guid The global unique id of the power - * @param array|null $order The search order + * @param string|null $name The default branch to use if no name could be found + * + * @return void + * @since 3.2.2 + */ + public function setBranchDefaultName(?string $name): void + { + $this->branch_name = $name; + } + + /** + * Set the index path + * + * @param string $indexPath The repository index path + * + * @return void + * @since 3.2.2 + */ + public function setIndexPath(string $indexPath): void + { + $this->index_path = $indexPath; + } + + /** + * Get the index of a repo + * + * @param string $guid The unique identifier for the repo. * * @return object|null - * @since 3.2.0 + * @since 3.2.2 */ - public function get(string $guid, ?array $order = null): ?object + public function getRemoteIndex(string $guid): ?object { - if ($order === null) + if (!is_array($this->paths) || $this->paths === [] || empty($guid)) { - $order = $this->order; + return null; } - // we can only search if we have paths - if (is_array($this->paths) && $this->paths !== []) + foreach ($this->paths as $path) { - foreach ($order as $target) + if (!isset($path->guid) || $guid !== $path->guid) { - if (($function_name = $this->getFunctionName($target)) !== null && - ($power = $this->{$function_name}($guid)) !== null) + continue; + } + + // Get remote index + $this->indexRemote($path); + + if (isset($path->index) && is_object($path->index)) + { + return $path->index; + } + } + + return null; + } + + /** + * Set repository messages and errors based on given conditions. + * + * @param string $message The message to set (if error) + * @param string $path Path value + * @param string $repository Repository name + * @param string $organisation Organisation name + * @param string|null $base Base URL + * + * @return void + * @since 3.2.0 + */ + abstract protected function setRemoteIndexMessage(string $message, string $path, string $repository, string $organisation, ?string $base): void; + + /** + * Get function name + * + * @param string $name The targeted area name + * @param string $type The type of function name + * + * @return string|null + * @since 3.2.0 + */ + protected function getFunctionName(string $name, string $type = 'search'): ?string + { + $function_name = $type . ucfirst(strtolower($name)); + + return method_exists($this, $function_name) ? $function_name : null; + } + + /** + * Search a single repository for an item + * + * @param string $guid The unique identifier for the item. + * @param array $order The order of the targets to check. + * @param object $repo The repository object to check against. + * + * @return object|null + * @since 3.2.2 + */ + protected function searchSingleRepo(string $guid, array $order, object $repo): ?object + { + foreach ($order as $target) + { + if ($this->itemExists($guid, $repo, $target)) + { + $functionName = $this->getFunctionName($target, 'get'); + if ($functionName !== null && ($power = $this->{$functionName}($repo, $guid)) !== null) { return $power; } @@ -140,6 +285,251 @@ return null; } + /** + * Search all repositories for an item + * + * @param string $guid The unique identifier for the item. + * @param object $repo The repository object to check against. + * + * @return object|null + * @since 3.2.2 + */ + protected function searchAllRepos(string $guid, array $order): ?object + { + if (is_array($this->paths) && $this->paths !== []) + { + foreach ($order as $target) + { + $functionName = $this->getFunctionName($target); + if ($functionName !== null && ($power = $this->{$functionName}($guid)) !== null) + { + return $power; + } + } + } + + return null; + } + + /** + * Check if an item exists in a specific repository. + * + * @param string $guid The unique identifier for the item. + * @param object $repo The repository object to check against. + * @param array $order The order of the targets to check. + * + * @return bool True if the item exists, false otherwise. + * @since 3.2.2 + */ + protected function itemExistsInRepo(string $guid, object $repo, array $order): bool + { + foreach ($order as $target) + { + if ($this->itemExists($guid, $repo, $target)) + { + return true; + } + } + return false; + } + + /** + * Check if an item exists in any of the repositories. + * + * @param string $guid The unique identifier for the item. + * @param array $order The order of the targets to check. + * + * @return bool True if the item exists, false otherwise. + * @since 3.2.2 + */ + protected function itemExistsInAllRepos(string $guid, array $order): bool + { + // We can only search if we have paths + if (is_array($this->paths) && $this->paths !== []) + { + foreach ($order as $target) + { + foreach ($this->paths as $path) + { + if ($this->itemExists($guid, $path, $target)) + { + return true; + } + } + } + } + return false; + } + + /** + * Get the branch field + * + * @return string + * @since 3.2.2 + */ + protected function getBranchField(): string + { + return $this->branch_field; + } + + /** + * Get the branch default name + * + * @return string|null + * @since 3.2.2 + */ + protected function getBranchDefaultName(): ?string + { + return $this->branch_name; + } + + /** + * Get the branch name + * + * @param object $item The item path + * + * @return string|null + * @since 3.2.2 + */ + protected function getBranchName(object $item): ?string + { + // get the branch field name + $branch_field = $this->getBranchField(); + + return $item->{$branch_field} ?? $this->getBranchDefaultName(); + } + + /** + * Get the index path + * + * @return string + * @since 3.2.2 + */ + protected function getIndexPath(): string + { + return $this->index_path; + } + + /** + * Check if an item exists in a specific repo and target. + * + * @param string $guid The unique identifier for the item. + * @param object $repo The repository object to check against. + * @param string $target The target to check within the repo. + * + * @return bool True if the item exists, false otherwise. + * @since 3.2.2 + */ + protected function itemExists(string $guid, object &$repo, string $target): bool + { + if (($function_name = $this->getFunctionName($target, 'index')) !== null) + { + $this->{$function_name}($repo); + + if (($function_name = $this->getFunctionName($target, 'exists')) !== null && + $this->{$function_name}($guid, $repo)) + { + return true; + } + } + + return false; + } + + /** + * Check if item exists locally + * + * @param string $guid The global unique id of the item + * + * @return object|null return path object + * @since 3.2.2 + */ + protected function existsLocally(string $guid): ?object + { + // we can only search if we have paths + if ($this->path && $this->paths) + { + foreach ($this->paths as $path) + { + // get local index + $this->indexLocal($path); + + if ($this->existsLocal($guid, $path)) + { + return $path; + } + } + } + + return null; + } + + /** + * Check if item exists remotely + * + * @param string $guid The global unique id of the item + * + * @return object|null return path object + * @since 3.2.2 + */ + protected function existsRemotely(string $guid): ?object + { + // we can only search if we have paths + if ($this->paths) + { + foreach ($this->paths as $path) + { + // get local index + $this->indexRemote($path); + + if ($this->existsRemote($guid, $path)) + { + return $path; + } + } + } + + return null; + } + + /** + * Check if item exists locally + * + * @param string $guid The global unique id of the item + * @param object $path The path object + * + * @return bool true if it exists + * @since 3.2.2 + */ + protected function existsLocal(string $guid, object $path): bool + { + if (!empty($path->local) && isset($path->local->{$guid})) + { + return true; + } + + return false; + } + + /** + * Check if item exists remotely + * + * @param string $guid The global unique id of the item + * @param object $path The path object + * + * @return bool true if it exists + * @since 3.2.2 + */ + protected function existsRemote(string $guid, object $path): bool + { + if (!empty($path->index) && isset($path->index->{$guid})) + { + return true; + } + + return false; + } + /** * Load the remote repository index of powers * @@ -148,21 +538,55 @@ * @return void * @since 3.2.0 */ - abstract protected function remoteIndex(object &$path): void; + protected function indexRemote(object &$path): void + { + if (isset($path->index)) + { + return; // already set + } + + try + { + // load the base and token if set + $this->contents->load_($path->base ?? null, $path->token ?? null); + $path->index = $this->contents->get($path->organisation, $path->repository, $this->getIndexPath(), $this->getBranchName($path)); + } + catch (\Exception $e) + { + $path->index = null; + $this->setRemoteIndexMessage($e->getMessage(), $path->path, $path->repository, $path->organisation, $path->base ?? null); + } + finally + { + // reset back to the global base and token + $this->contents->reset_(); + } + } /** - * Get function name + * Load the local repository index of powers * - * @param string $name The targeted function name + * @param object $path The repository path details * - * @return string|null + * @return void * @since 3.2.0 */ - protected function getFunctionName(string $name): ?string + protected function indexLocal(object &$path): void { - $function_name = 'search' . ucfirst(strtolower($name)); + if (isset($path->local) || !isset($path->full_path)) + { + return; + } - return method_exists($this, $function_name) ? $function_name : null; + if (($content = FileHelper::getContent($path->full_path . '/' . $this->getIndexPath(), null)) !== null && + JsonHelper::check($content)) + { + $path->local = json_decode($content); + + return; + } + + $path->local = null; } /** @@ -171,7 +595,7 @@ * @return void * @since 3.2.0 */ - protected function init(): void + protected function initializeInstances(): void { if (is_array($this->paths) && $this->paths !== []) { @@ -183,12 +607,14 @@ // build the path $path->path = trim($path->organisation) . '/' . trim($path->repository); - // update the branch + // get the branch field name $branch_field = $this->getBranchField(); - $branch = $path->{$branch_field} ?? null; + // get the branch name + $branch = $this->getBranchName($path); if ($branch === 'default' || empty($branch)) { + // will allow us to target the default branch as set by the git system $path->{$branch_field} = null; } @@ -207,12 +633,31 @@ } /** - * Get the branch field + * Load the remote file * - * @return string - * @since 3.2.2 + * @param string $organisation The repository organisation + * @param string $repository The repository name + * @param string $path The repository path to file + * @param string|null $branch The repository branch name + * + * @return mixed + * @since 3.2.0 */ - public function getBranchField(): string + protected function loadRemoteFile(string $organisation, string $repository, string $path, ?string $branch) { - return $this->branch_field; + try + { + $data = $this->contents->get($organisation, $repository, $path, $branch); + } + catch (\Exception $e) + { + $this->app->enqueueMessage( + Text::sprintf('

File at %s/%s gave the following error!
%s

', $this->contents->api(), $path, $e->getMessage()), + 'Error' + ); + + return null; + } + + return $data; } \ No newline at end of file diff --git a/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/settings.json b/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/settings.json index 6c0c6f5..9f82307 100644 --- a/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/settings.json +++ b/src/1401a167-0ce4-4f4a-afee-2d8b02ed339b/settings.json @@ -15,12 +15,20 @@ "use_selection0": { "use": "8d1baef6-fcad-49a9-848f-428009cdb989", "as": "default" + }, + "use_selection1": { + "use": "a223b31e-ea1d-4cdf-92ae-5f9becffaff0", + "as": "default" + }, + "use_selection2": { + "use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18", + "as": "default" } }, "extendsinterfaces": null, "namespace": "[[[NamespacePrefix]]]\\Joomla\\Abstraction.Grep", - "description": "Global Resource Empowerment Platform\r\n\r\n The Grep feature will try to find your power in the repositories listed in the global\r\n Options of JCB in the super powers tab, and if it can't be found there will try the global core\r\n Super powers of JCB. All searches are performed according the the [algorithm:cascading]\r\n See documentation for more details: https:\/\/git.vdm.dev\/joomla\/super-powers\/wiki\r\n\r\n@since 3.2.1", + "description": "Global Resource Empowerment Platform\r\n\r\n The Grep feature will try to find your power in the repositories listed in the global\r\n Options of JCB in the super powers tab, and if it can't be found there will try the global core\r\n Super powers of JCB. All searches are performed according the [algorithm:cascading]\r\n See documentation for more details: https:\/\/git.vdm.dev\/joomla\/super-powers\/wiki\r\n\r\n@since 3.2.1", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \r\n * @git 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\\Factory;\r\nuse Joomla\\CMS\\Filesystem\\Folder;\r\nuse Joomla\\CMS\\Application\\CMSApplication;", + "head": "use Joomla\\CMS\\Factory;\r\nuse Joomla\\CMS\\Language\\Text;\r\nuse Joomla\\CMS\\Filesystem\\Folder;\r\nuse Joomla\\CMS\\Application\\CMSApplication;", "composer": "" } \ No newline at end of file diff --git a/src/152c8793-8b75-4715-996a-257b9f65451c/README.md b/src/152c8793-8b75-4715-996a-257b9f65451c/README.md index 312630e..e0b0463 100644 --- a/src/152c8793-8b75-4715-996a-257b9f65451c/README.md +++ b/src/152c8793-8b75-4715-996a-257b9f65451c/README.md @@ -8,7 +8,7 @@ ``` # abstract class MathHelper (Details) > namespace: **VDM\Joomla\Utilities** -> extends: **** + ```uml @startuml abstract MathHelper #Orange { @@ -39,6 +39,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---152c8793_8b75_4715_996a_257b9f65451c---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/19b2ba92-1655-4384-acfb-979c80de8b6d/README.md b/src/19b2ba92-1655-4384-acfb-979c80de8b6d/README.md index 0630923..b03be8f 100644 --- a/src/19b2ba92-1655-4384-acfb-979c80de8b6d/README.md +++ b/src/19b2ba92-1655-4384-acfb-979c80de8b6d/README.md @@ -8,7 +8,7 @@ ``` # class Table (Details) > namespace: **VDM\Joomla\Service** -> extends: **** + ```uml @startuml class Table #Gold { @@ -41,6 +41,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---19b2ba92_1655_4384_acfb_979c80de8b6d---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/README.md b/src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/README.md index a21fd76..c856013 100644 --- a/src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/README.md +++ b/src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/README.md @@ -8,7 +8,7 @@ ``` # abstract class StringHelper (Details) > namespace: **VDM\Joomla\Utilities** -> extends: **** + ```uml @startuml abstract StringHelper #Orange { @@ -96,6 +96,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---1f28cb53_60d9_4db1_b517_3c7dc6b429ef---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/215b35ac-1b26-4838-bbcf-d1fdbbd9353f/README.md b/src/215b35ac-1b26-4838-bbcf-d1fdbbd9353f/README.md index 9fc07ca..f0d3f92 100644 --- a/src/215b35ac-1b26-4838-bbcf-d1fdbbd9353f/README.md +++ b/src/215b35ac-1b26-4838-bbcf-d1fdbbd9353f/README.md @@ -8,7 +8,7 @@ ``` # trait InArray (Details) > namespace: **VDM\Joomla\Abstraction\Registry\Traits** -> extends: **** + ```uml @startuml class InArray << (T,Orange) >> #Turquoise { @@ -25,6 +25,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---215b35ac_1b26_4838_bbcf_d1fdbbd9353f---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/217416f6-24cf-41c0-b18e-11086111d447/README.md b/src/217416f6-24cf-41c0-b18e-11086111d447/README.md new file mode 100644 index 0000000..e96eaac --- /dev/null +++ b/src/217416f6-24cf-41c0-b18e-11086111d447/README.md @@ -0,0 +1,52 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# interface MainInterface (Details) +> namespace: **VDM\Joomla\Interfaces\Readme** + +```uml +@startuml +interface MainInterface #Lavender { + + get(array $items) : string +} + +note right of MainInterface::get + Get Main Readme + + since: 3.2.0 + return: string +end note + +@enduml +``` + +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---217416f6_24cf_41c0_b18e_11086111d447---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/217416f6-24cf-41c0-b18e-11086111d447/code.php b/src/217416f6-24cf-41c0-b18e-11086111d447/code.php new file mode 100644 index 0000000..fe50d2e --- /dev/null +++ b/src/217416f6-24cf-41c0-b18e-11086111d447/code.php @@ -0,0 +1,32 @@ + + * @git 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\Interfaces\Readme; + + +/** + * Main Readme Interface + * + * @since 3.2.2 + */ +interface MainInterface +{ + /** + * Get Main Readme + * + * @param array $items All items of this repository. + * + * @return string + * @since 3.2.0 + */ + public function get(array $items): string; +} + diff --git a/src/217416f6-24cf-41c0-b18e-11086111d447/code.power b/src/217416f6-24cf-41c0-b18e-11086111d447/code.power new file mode 100644 index 0000000..ee23305 --- /dev/null +++ b/src/217416f6-24cf-41c0-b18e-11086111d447/code.power @@ -0,0 +1,9 @@ + /** + * Get Main Readme + * + * @param array $items All items of this repository. + * + * @return string + * @since 3.2.0 + */ + public function get(array $items): string; \ No newline at end of file diff --git a/src/217416f6-24cf-41c0-b18e-11086111d447/settings.json b/src/217416f6-24cf-41c0-b18e-11086111d447/settings.json new file mode 100644 index 0000000..ec62565 --- /dev/null +++ b/src/217416f6-24cf-41c0-b18e-11086111d447/settings.json @@ -0,0 +1,19 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "", + "guid": "217416f6-24cf-41c0-b18e-11086111d447", + "implements": null, + "load_selection": null, + "name": "MainInterface", + "power_version": "1.0.0", + "system_name": "JCB.Interfaces.Readme.MainInterface", + "type": "interface", + "use_selection": null, + "extendsinterfaces": null, + "namespace": "[[[NamespacePrefix]]]\\Joomla\\Interfaces.Readme.MainInterface", + "description": "Main Readme Interface\r\n\r\n@since 3.2.2", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \r\n * @git 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": "" +} \ No newline at end of file diff --git a/src/21bca8a4-5b28-41c4-843e-8097f0ba7cca/README.md b/src/21bca8a4-5b28-41c4-843e-8097f0ba7cca/README.md index 1ff3cc3..4daaebf 100644 --- a/src/21bca8a4-5b28-41c4-843e-8097f0ba7cca/README.md +++ b/src/21bca8a4-5b28-41c4-843e-8097f0ba7cca/README.md @@ -8,7 +8,7 @@ ``` # final class Items (Details) > namespace: **VDM\Joomla\Data** -> extends: **** + ```uml @startuml class Items << (F,LightGreen) >> #RoyalBlue { @@ -139,6 +139,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---21bca8a4_5b28_41c4_843e_8097f0ba7cca---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/README.md b/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/README.md index 5aa1293..bc7e4c8 100644 --- a/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/README.md +++ b/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/README.md @@ -8,7 +8,7 @@ ``` # interface LoadInterface (Details) > namespace: **VDM\Joomla\Interfaces** -> extends: **** + ```uml @startuml interface LoadInterface #Lavender { @@ -125,6 +125,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---2ad31f74_f579_499d_b98b_c4f54fd615dd---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/README.md b/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/README.md index 1b21b6e..2acd73a 100644 --- a/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/README.md +++ b/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/README.md @@ -8,7 +8,7 @@ ``` # interface Tableinterface (Details) > namespace: **VDM\Joomla\Interfaces** -> extends: **** + ```uml @startuml interface Tableinterface #Lavender { @@ -83,6 +83,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---2da6d6c4_eb29_4d69_8bc2_36d96e916adf---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/2dcedd6c-c95b-4a37-9cac-95d28faedca3/README.md b/src/2dcedd6c-c95b-4a37-9cac-95d28faedca3/README.md index 8755b9d..b3d8b63 100644 --- a/src/2dcedd6c-c95b-4a37-9cac-95d28faedca3/README.md +++ b/src/2dcedd6c-c95b-4a37-9cac-95d28faedca3/README.md @@ -8,7 +8,7 @@ ``` # class Model (Details) > namespace: **VDM\Joomla\Service** -> extends: **** + ```uml @startuml class Model #Gold { @@ -41,6 +41,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---2dcedd6c_c95b_4a37_9cac_95d28faedca3---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/2e5bf608-de5c-4b00-a20d-47c26aa350d9/README.md b/src/2e5bf608-de5c-4b00-a20d-47c26aa350d9/README.md index 68aaa77..b44a0bc 100644 --- a/src/2e5bf608-de5c-4b00-a20d-47c26aa350d9/README.md +++ b/src/2e5bf608-de5c-4b00-a20d-47c26aa350d9/README.md @@ -8,7 +8,7 @@ ``` # abstract class Factory (Details) > namespace: **VDM\Joomla\Abstraction** -> extends: **** + ```uml @startuml abstract Factory #Orange { @@ -41,6 +41,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---2e5bf608_de5c_4b00_a20d_47c26aa350d9---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/30c5b4c2-f75f-4d15-869a-f8bfedd87358/README.md b/src/30c5b4c2-f75f-4d15-869a-f8bfedd87358/README.md index a336d46..830191d 100644 --- a/src/30c5b4c2-f75f-4d15-869a-f8bfedd87358/README.md +++ b/src/30c5b4c2-f75f-4d15-869a-f8bfedd87358/README.md @@ -8,7 +8,7 @@ ``` # abstract class ClassfunctionHelper (Details) > namespace: **VDM\Joomla\Utilities\String** -> extends: **** + ```uml @startuml abstract ClassfunctionHelper #Orange { @@ -25,6 +25,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---30c5b4c2_f75f_4d15_869a_f8bfedd87358---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/34959721-415b-4b5e-8002-3d1fc84b3b2b/README.md b/src/34959721-415b-4b5e-8002-3d1fc84b3b2b/README.md index 8ac77c9..83e23eb 100644 --- a/src/34959721-415b-4b5e-8002-3d1fc84b3b2b/README.md +++ b/src/34959721-415b-4b5e-8002-3d1fc84b3b2b/README.md @@ -8,7 +8,7 @@ ``` # interface SubformInterface (Details) > namespace: **VDM\Joomla\Interfaces\Data** -> extends: **** + ```uml @startuml interface SubformInterface #Lavender { @@ -61,6 +61,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---34959721_415b_4b5e_8002_3d1fc84b3b2b---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6/README.md b/src/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6/README.md index 9958de4..c8ae579 100644 --- a/src/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6/README.md +++ b/src/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6/README.md @@ -8,7 +8,7 @@ ``` # abstract class PluginHelper (Details) > namespace: **VDM\Joomla\Utilities\String** -> extends: **** + ```uml @startuml abstract PluginHelper #Orange { @@ -49,6 +49,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---3cf76fbf_fd95_4a33_878e_7aff6d36b7f6---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/3fc72954-a303-4cac-b53c-554be38b85e7/README.md b/src/3fc72954-a303-4cac-b53c-554be38b85e7/README.md index 99ef2bb..ef96dd5 100644 --- a/src/3fc72954-a303-4cac-b53c-554be38b85e7/README.md +++ b/src/3fc72954-a303-4cac-b53c-554be38b85e7/README.md @@ -8,7 +8,7 @@ ``` # class Delete (Details) > namespace: **VDM\Joomla\Data\Action** -> extends: **** + ```uml @startuml class Delete #Gold { @@ -58,6 +58,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---3fc72954_a303_4cac_b53c_554be38b85e7---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/43134867-5cb8-4280-9be8-309fd2fd135f/README.md b/src/43134867-5cb8-4280-9be8-309fd2fd135f/README.md index 3e0fe53..e485cc9 100644 --- a/src/43134867-5cb8-4280-9be8-309fd2fd135f/README.md +++ b/src/43134867-5cb8-4280-9be8-309fd2fd135f/README.md @@ -8,7 +8,7 @@ ``` # abstract class ActiveRegistry (Details) > namespace: **VDM\Joomla\Abstraction** -> extends: **** + ```uml @startuml abstract ActiveRegistry #Orange { @@ -92,6 +92,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---43134867_5cb8_4280_9be8_309fd2fd135f---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/4815e1c7-a433-443d-a112-d1e03d7df84b/README.md b/src/4815e1c7-a433-443d-a112-d1e03d7df84b/README.md index 6e7e8f3..23138d5 100644 --- a/src/4815e1c7-a433-443d-a112-d1e03d7df84b/README.md +++ b/src/4815e1c7-a433-443d-a112-d1e03d7df84b/README.md @@ -8,7 +8,7 @@ ``` # class Database (Details) > namespace: **VDM\Joomla\Service** -> extends: **** + ```uml @startuml class Database #Gold { @@ -57,6 +57,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---4815e1c7_a433_443d_a112_d1e03d7df84b---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/491dbe41-f26c-4de9-8a95-fcf87b35b56f/README.md b/src/491dbe41-f26c-4de9-8a95-fcf87b35b56f/README.md index ed9747e..00fa8f5 100644 --- a/src/491dbe41-f26c-4de9-8a95-fcf87b35b56f/README.md +++ b/src/491dbe41-f26c-4de9-8a95-fcf87b35b56f/README.md @@ -8,7 +8,7 @@ ``` # abstract class ComponentCodeNameHelper (Details) > namespace: **VDM\Joomla\Utilities\String** -> extends: **** + ```uml @startuml abstract ComponentCodeNameHelper #Orange { @@ -27,6 +27,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---491dbe41_f26c_4de9_8a95_fcf87b35b56f---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/4b225c51-d293-48e4-b3f6-5136cf5c3f18/README.md b/src/4b225c51-d293-48e4-b3f6-5136cf5c3f18/README.md index 8f21d7c..19c6b31 100644 --- a/src/4b225c51-d293-48e4-b3f6-5136cf5c3f18/README.md +++ b/src/4b225c51-d293-48e4-b3f6-5136cf5c3f18/README.md @@ -8,7 +8,7 @@ ``` # abstract class JsonHelper (Details) > namespace: **VDM\Joomla\Utilities** -> extends: **** + ```uml @startuml abstract JsonHelper #Orange { @@ -39,6 +39,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---4b225c51_d293_48e4_b3f6_5136cf5c3f18---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/4dd11b9b-3c64-460b-aaa6-62ba467db7aa/README.md b/src/4dd11b9b-3c64-460b-aaa6-62ba467db7aa/README.md index 3687a70..4b18da1 100644 --- a/src/4dd11b9b-3c64-460b-aaa6-62ba467db7aa/README.md +++ b/src/4dd11b9b-3c64-460b-aaa6-62ba467db7aa/README.md @@ -8,7 +8,7 @@ ``` # interface SchemaInterface (Details) > namespace: **VDM\Joomla\Interfaces** -> extends: **** + ```uml @startuml interface SchemaInterface #Lavender { @@ -41,6 +41,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---4dd11b9b_3c64_460b_aaa6_62ba467db7aa---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/README.md b/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/README.md index ea8be0b..15ebf1b 100644 --- a/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/README.md +++ b/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/README.md @@ -6,48 +6,48 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# interface RemoteInterface (Details) +# interface RemoteGetInterface (Details) > namespace: **VDM\Joomla\Interfaces\Data** -> extends: **** + ```uml @startuml -interface RemoteInterface #Lavender { +interface RemoteGetInterface #Lavender { + table(string $table) : self + init() : bool + reset(array $items) : bool - + load(string $guid, array $order = ['remote', 'local']) : bool + + item(string $guid, array $order = ['remote', 'local']) : bool + getTable() : string } -note right of RemoteInterface::table +note right of RemoteGetInterface::table Set the current active table since: 3.2.2 return: self end note -note right of RemoteInterface::init +note right of RemoteGetInterface::init Init all items not found in database since: 3.2.0 return: bool end note -note right of RemoteInterface::reset +note right of RemoteGetInterface::reset Reset the items since: 3.2.0 return: bool end note -note right of RemoteInterface::load - Load a item +note right of RemoteGetInterface::item + Load an item since: 3.2.2 return: bool end note -note right of RemoteInterface::getTable +note right of RemoteGetInterface::getTable Get the current active table since: 3.2.2 @@ -57,6 +57,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---51de80f2_2868_4c2c_8198_ef79349e9bd7---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/code.php b/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/code.php index ab4fea5..cb9f72b 100644 --- a/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/code.php +++ b/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/code.php @@ -17,7 +17,7 @@ namespace VDM\Joomla\Interfaces\Data; * * @since 3.2.2 */ -interface RemoteInterface +interface RemoteGetInterface { /** * Set the current active table @@ -48,7 +48,7 @@ interface RemoteInterface public function reset(array $items): bool; /** - * Load a item + * Load an item * * @param string $guid The global unique id of the item * @param array $order The search order @@ -56,7 +56,7 @@ interface RemoteInterface * @return bool * @since 3.2.2 */ - public function load(string $guid, array $order = ['remote', 'local']): bool; + public function item(string $guid, array $order = ['remote', 'local']): bool; /** * Get the current active table diff --git a/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/code.power b/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/code.power index 08c1df0..7de0f31 100644 --- a/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/code.power +++ b/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/code.power @@ -27,7 +27,7 @@ public function reset(array $items): bool; /** - * Load a item + * Load an item * * @param string $guid The global unique id of the item * @param array $order The search order @@ -35,7 +35,7 @@ * @return bool * @since 3.2.2 */ - public function load(string $guid, array $order = ['remote', 'local']): bool; + public function item(string $guid, array $order = ['remote', 'local']): bool; /** * Get the current active table diff --git a/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/settings.json b/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/settings.json index c3b8a06..ed79e7d 100644 --- a/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/settings.json +++ b/src/51de80f2-2868-4c2c-8198-ef79349e9bd7/settings.json @@ -5,13 +5,13 @@ "guid": "51de80f2-2868-4c2c-8198-ef79349e9bd7", "implements": null, "load_selection": null, - "name": "RemoteInterface", + "name": "RemoteGetInterface", "power_version": "1.0.0", - "system_name": "JCB.Interfaces.Remote", + "system_name": "VDM.Interfaces.RemoteGetInterface", "type": "interface", "use_selection": null, "extendsinterfaces": null, - "namespace": "[[[NamespacePrefix]]]\\Joomla\\Interfaces.Data.RemoteInterface", + "namespace": "[[[NamespacePrefix]]]\\Joomla\\Interfaces.Data.RemoteGetInterface", "description": "Load data based on global unique ids from remote system\r\n\r\n@since 3.2.2", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \r\n * @git 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": "", diff --git a/src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/README.md b/src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/README.md index 03957a0..9489616 100644 --- a/src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/README.md +++ b/src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/README.md @@ -9,6 +9,7 @@ # final class Insert (Details) > namespace: **VDM\Joomla\Database** > extends: **Database** + ```uml @startuml class Insert << (F,LightGreen) >> #RoyalBlue { @@ -98,6 +99,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---524eb8f6_38d4_47dc_92ad_98b94e099ac0---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/52a1d14f-304a-431c-8fa4-411179942db5/README.md b/src/52a1d14f-304a-431c-8fa4-411179942db5/README.md index d369ef8..dcacff5 100644 --- a/src/52a1d14f-304a-431c-8fa4-411179942db5/README.md +++ b/src/52a1d14f-304a-431c-8fa4-411179942db5/README.md @@ -8,7 +8,7 @@ ``` # trait VarExport (Details) > namespace: **VDM\Joomla\Abstraction\Registry\Traits** -> extends: **** + ```uml @startuml class VarExport << (T,Orange) >> #Turquoise { @@ -34,6 +34,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---52a1d14f_304a_431c_8fa4_411179942db5---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/584747d1-3a86-453d-b7a3-a2219de8d777/README.md b/src/584747d1-3a86-453d-b7a3-a2219de8d777/README.md index 202d877..a7e7414 100644 --- a/src/584747d1-3a86-453d-b7a3-a2219de8d777/README.md +++ b/src/584747d1-3a86-453d-b7a3-a2219de8d777/README.md @@ -8,7 +8,7 @@ ``` # abstract class Model (Details) > namespace: **VDM\Joomla\Abstraction** -> extends: **** + ```uml @startuml abstract Model #Orange { @@ -180,6 +180,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---584747d1_3a86_453d_b7a3_a2219de8d777---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b/README.md b/src/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b/README.md index d2ff945..526381f 100644 --- a/src/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b/README.md +++ b/src/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b/README.md @@ -8,7 +8,7 @@ ``` # trait GetString (Details) > namespace: **VDM\Joomla\Abstraction\Registry\Traits** -> extends: **** + ```uml @startuml class GetString << (T,Orange) >> #Turquoise { @@ -25,6 +25,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---59b1a2ea_d77e_4040_ac8c_e65cd8743e9b---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/README.md b/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/README.md new file mode 100644 index 0000000..cfc68f6 --- /dev/null +++ b/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/README.md @@ -0,0 +1,123 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# abstract class SchemaChecker (Details) +> namespace: **VDM\Joomla\Abstraction** + +```uml +@startuml +abstract SchemaChecker #Orange { + # ?Table $table + # ?Schema $schema + # CMSApplication $app + + __construct(?Schema $schema = null, ?Table $table = null, ...) + + run() : void + # initializeInstances() : void + # setSchemaInstance() : void + # setTableInstance() : void + # {abstract} getCode() : string + # {abstract} getPowerPath() : string + # {abstract} getSchemaClass() : string + # {abstract} getTableClass() : string +} + +note right of SchemaChecker::__construct + Constructor. + + since: 3.2.2 + + arguments: + ?Schema $schema = null + ?Table $table = null + ?CMSApplication $app = null +end note + +note left of SchemaChecker::run + Make sure that the database schema is up-to-date. + + since: 3.2.2 + return: void +end note + +note right of SchemaChecker::initializeInstances + Initialize the needed class instances if needed + + since: 3.2.2 + return: void +end note + +note left of SchemaChecker::setSchemaInstance + set the schema class instance + + since: 3.2.2 + return: void +end note + +note right of SchemaChecker::setTableInstance + set the table class instance + + since: 3.2.2 + return: void +end note + +note left of SchemaChecker::getCode + Get the targeted component code + + since: 3.2.2 + return: string +end note + +note right of SchemaChecker::getPowerPath + Get the targeted component power path + + since: 3.2.2 + return: string +end note + +note left of SchemaChecker::getSchemaClass + Get the fully qualified name of the schema class. + + since: 3.2.2 + return: string +end note + +note right of SchemaChecker::getTableClass + Get the fully qualified name of the table class. + + since: 3.2.2 + return: string +end note + +@enduml +``` + +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---5f0205fa_5c43_424a_af7d_abc943c17c8c---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/code.php b/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/code.php new file mode 100644 index 0000000..231122c --- /dev/null +++ b/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/code.php @@ -0,0 +1,196 @@ + + * @git 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\Abstraction; + + +use Joomla\CMS\Factory; +use Joomla\CMS\Application\CMSApplication; +use VDM\Joomla\Interfaces\SchemaInterface as Schema; +use VDM\Joomla\Interfaces\Tableinterface as Table; +use VDM\Joomla\Utilities\ClassHelper; +use VDM\Joomla\Interfaces\SchemaCheckerInterface; + + +/** + * Schema Checker + * + * @since 3.2.2 + */ +abstract class SchemaChecker implements SchemaCheckerInterface +{ + /** + * The Table Class. + * + * @var Table|null + * @since 3.2.2 + */ + protected ?Table $table; + + /** + * The Schema Class. + * + * @var Schema|null + * @since 3.2.2 + */ + protected ?Schema $schema; + + /** + * Application object. + * + * @var CMSApplication + * @since 3.2.2 + **/ + protected CMSApplication $app; + + /** + * Constructor. + * + * @param Schema|null $schema The Schema Class. + * @param Table|null $table The Table Class. + * @param CMSApplication|null $app The app object. + * + * @throws \Exception + * @since 3.2.2 + */ + public function __construct(?Schema $schema = null, ?Table $table = null, ?CMSApplication $app = null) + { + $this->schema = $schema; + $this->table = $table; + $this->app = $app ?: Factory::getApplication(); + + // Validate classes are set + // Since this class is often called from outside a container + $this->initializeInstances(); + // I don't care! I have more important thing to do, maybe later... (last updated in 1983 ;) + } + + /** + * Make sure that the database schema is up-to-date. + * + * @return void + * @since 3.2.2 + */ + public function run(): void + { + if ($this->schema === null) + { + $this->app->enqueueMessage('We failed to find/load the Schema class', 'warning'); + return; + } + + // try to load the update the tables with the schema class + try + { + $messages = $this->schema->update(); + } + catch (\Exception $e) + { + $this->app->enqueueMessage($e->getMessage(), 'warning'); + return; + } + + foreach ($messages as $message) + { + $this->app->enqueueMessage($message, 'message'); + } + } + + /** + * Initialize the needed class instances if needed + * + * @return void + * @since 3.2.2 + */ + protected function initializeInstances(): void + { + if ($this->schema !== null) + { + return; + } + + if ($this->table === null) + { + $this->setTableInstance(); + } + + $this->setSchemaInstance(); + } + + /** + * set the schema class instance + * + * @return void + * @since 3.2.2 + */ + protected function setSchemaInstance(): void + { + // make sure the class is loaded + if (ClassHelper::exists( + $this->getSchemaClass(), $this->getCode(), $this->getPowerPath() + )) + { + // instantiate the schema class + $this->schema = new ($this->getSchemaClass())($this->table); + } + } + + /** + * set the table class instance + * + * @return void + * @since 3.2.2 + */ + protected function setTableInstance(): void + { + // make sure the class is loaded + if (ClassHelper::exists( + $this->getTableClass(), $this->getCode(), $this->getPowerPath() + )) + { + // instantiate the table class + $this->table = new ($this->getTableClass())(); + } + } + + /** + * Get the targeted component code + * + * @return string + * @since 3.2.2 + */ + abstract protected function getCode(): string; + + /** + * Get the targeted component power path + * + * @return string + * @since 3.2.2 + */ + abstract protected function getPowerPath(): string; + + /** + * Get the fully qualified name of the schema class. + * + * @return string + * @since 3.2.2 + */ + abstract protected function getSchemaClass(): string; + + /** + * Get the fully qualified name of the table class. + * + * @return string + * @since 3.2.2 + */ + abstract protected function getTableClass(): string; +} + diff --git a/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/code.power b/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/code.power new file mode 100644 index 0000000..688e685 --- /dev/null +++ b/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/code.power @@ -0,0 +1,165 @@ + /** + * The Table Class. + * + * @var Table|null + * @since 3.2.2 + */ + protected ?Table $table; + + /** + * The Schema Class. + * + * @var Schema|null + * @since 3.2.2 + */ + protected ?Schema $schema; + + /** + * Application object. + * + * @var CMSApplication + * @since 3.2.2 + **/ + protected CMSApplication $app; + + /** + * Constructor. + * + * @param Schema|null $schema The Schema Class. + * @param Table|null $table The Table Class. + * @param CMSApplication|null $app The app object. + * + * @throws \Exception + * @since 3.2.2 + */ + public function __construct(?Schema $schema = null, ?Table $table = null, ?CMSApplication $app = null) + { + $this->schema = $schema; + $this->table = $table; + $this->app = $app ?: Factory::getApplication(); + + // Validate classes are set + // Since this class is often called from outside a container + $this->initializeInstances(); + // I don't care! I have more important thing to do, maybe later... (last updated in 1983 ;) + } + + /** + * Make sure that the database schema is up-to-date. + * + * @return void + * @since 3.2.2 + */ + public function run(): void + { + if ($this->schema === null) + { + $this->app->enqueueMessage('We failed to find/load the Schema class', 'warning'); + return; + } + + // try to load the update the tables with the schema class + try + { + $messages = $this->schema->update(); + } + catch (\Exception $e) + { + $this->app->enqueueMessage($e->getMessage(), 'warning'); + return; + } + + foreach ($messages as $message) + { + $this->app->enqueueMessage($message, 'message'); + } + } + + /** + * Initialize the needed class instances if needed + * + * @return void + * @since 3.2.2 + */ + protected function initializeInstances(): void + { + if ($this->schema !== null) + { + return; + } + + if ($this->table === null) + { + $this->setTableInstance(); + } + + $this->setSchemaInstance(); + } + + /** + * set the schema class instance + * + * @return void + * @since 3.2.2 + */ + protected function setSchemaInstance(): void + { + // make sure the class is loaded + if (ClassHelper::exists( + $this->getSchemaClass(), $this->getCode(), $this->getPowerPath() + )) + { + // instantiate the schema class + $this->schema = new ($this->getSchemaClass())($this->table); + } + } + + /** + * set the table class instance + * + * @return void + * @since 3.2.2 + */ + protected function setTableInstance(): void + { + // make sure the class is loaded + if (ClassHelper::exists( + $this->getTableClass(), $this->getCode(), $this->getPowerPath() + )) + { + // instantiate the table class + $this->table = new ($this->getTableClass())(); + } + } + + /** + * Get the targeted component code + * + * @return string + * @since 3.2.2 + */ + abstract protected function getCode(): string; + + /** + * Get the targeted component power path + * + * @return string + * @since 3.2.2 + */ + abstract protected function getPowerPath(): string; + + /** + * Get the fully qualified name of the schema class. + * + * @return string + * @since 3.2.2 + */ + abstract protected function getSchemaClass(): string; + + /** + * Get the fully qualified name of the table class. + * + * @return string + * @since 3.2.2 + */ + abstract protected function getTableClass(): string; \ No newline at end of file diff --git a/src/cddcac51-9a46-47c4-ba59-105c70453bd6/settings.json b/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/settings.json similarity index 56% rename from src/cddcac51-9a46-47c4-ba59-105c70453bd6/settings.json rename to src/5f0205fa-5c43-424a-af7d-abc943c17c8c/settings.json index 48cf458..e9a9e60 100644 --- a/src/cddcac51-9a46-47c4-ba59-105c70453bd6/settings.json +++ b/src/5f0205fa-5c43-424a-af7d-abc943c17c8c/settings.json @@ -2,31 +2,33 @@ "add_head": "1", "add_licensing_template": "2", "extends": "", - "guid": "cddcac51-9a46-47c4-ba59-105c70453bd6", - "implements": null, + "guid": "5f0205fa-5c43-424a-af7d-abc943c17c8c", + "implements": [ + "b6e9854c-3672-42ec-8843-26c24b4635bd" + ], "load_selection": null, - "name": "FilterHelper", + "name": "SchemaChecker", "power_version": "1.0.0", - "system_name": "JCB.Utilities.FilterHelper", + "system_name": "VDM.SchemaChecker", "type": "abstract class", "use_selection": { "use_selection0": { - "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", - "as": "default" + "use": "4dd11b9b-3c64-460b-aaa6-62ba467db7aa", + "as": "Schema" }, "use_selection1": { - "use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18", - "as": "default" + "use": "2da6d6c4-eb29-4d69-8bc2-36d96e916adf", + "as": "Table" }, "use_selection2": { - "use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc", + "use": "13c2cac1-a70d-42d7-99fc-eb7ac3443069", "as": "default" } }, "extendsinterfaces": null, - "namespace": "[[[NamespacePrefix]]]\\Joomla\\Componentbuilder.Utilities.FilterHelper", - "description": "Filter Helper\r\n\r\n@since 3.2.0", + "namespace": "[[[NamespacePrefix]]]\\Joomla\\Abstraction.SchemaChecker", + "description": "Schema Checker\r\n\r\n@since 3.2.2", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \r\n * @git 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\\Factory;\r\nuse Joomla\\CMS\\Language\\Text;", + "head": "use Joomla\\CMS\\Factory;\r\nuse Joomla\\CMS\\Application\\CMSApplication;", "composer": "" } \ No newline at end of file diff --git a/src/640b5352-fb09-425f-a26e-cd44eda03f15/README.md b/src/640b5352-fb09-425f-a26e-cd44eda03f15/README.md index e8da385..c00857c 100644 --- a/src/640b5352-fb09-425f-a26e-cd44eda03f15/README.md +++ b/src/640b5352-fb09-425f-a26e-cd44eda03f15/README.md @@ -8,7 +8,7 @@ ``` # abstract class Helper (Details) > namespace: **VDM\Joomla\Utilities\Component** -> extends: **** + ```uml @startuml abstract Helper #Orange { @@ -94,6 +94,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---640b5352_fb09_425f_a26e_cd44eda03f15---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/64a6ff6c-069c-4a11-a76b-db5e36c27690/README.md b/src/64a6ff6c-069c-4a11-a76b-db5e36c27690/README.md index 0ee00ee..4da080b 100644 --- a/src/64a6ff6c-069c-4a11-a76b-db5e36c27690/README.md +++ b/src/64a6ff6c-069c-4a11-a76b-db5e36c27690/README.md @@ -8,7 +8,7 @@ ``` # abstract class Base64Helper (Details) > namespace: **VDM\Joomla\Utilities** -> extends: **** + ```uml @startuml abstract Base64Helper #Orange { @@ -30,6 +30,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---64a6ff6c_069c_4a11_a76b_db5e36c27690---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/64e291c2-11f1-423d-a44d-837cc12cc017/README.md b/src/64e291c2-11f1-423d-a44d-837cc12cc017/README.md index b6d58cb..04c5640 100644 --- a/src/64e291c2-11f1-423d-a44d-837cc12cc017/README.md +++ b/src/64e291c2-11f1-423d-a44d-837cc12cc017/README.md @@ -9,6 +9,7 @@ # interface Registryinterface (Details) > namespace: **VDM\Joomla\Interfaces** > extends: **Activeregistryinterface** + ```uml @startuml interface Registryinterface #Lavender { @@ -73,6 +74,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---64e291c2_11f1_423d_a44d_837cc12cc017---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/65a0f81a-14fc-4870-9382-b8d830b19937/README.md b/src/65a0f81a-14fc-4870-9382-b8d830b19937/README.md new file mode 100644 index 0000000..02a30ab --- /dev/null +++ b/src/65a0f81a-14fc-4870-9382-b8d830b19937/README.md @@ -0,0 +1,52 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# interface ItemInterface (Details) +> namespace: **VDM\Joomla\Interfaces\Readme** + +```uml +@startuml +interface ItemInterface #Lavender { + + get(object $item) : string +} + +note right of ItemInterface::get + Get an item readme + + since: 3.2.2 + return: string +end note + +@enduml +``` + +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---65a0f81a_14fc_4870_9382_b8d830b19937---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/65a0f81a-14fc-4870-9382-b8d830b19937/code.php b/src/65a0f81a-14fc-4870-9382-b8d830b19937/code.php new file mode 100644 index 0000000..9ec49b2 --- /dev/null +++ b/src/65a0f81a-14fc-4870-9382-b8d830b19937/code.php @@ -0,0 +1,32 @@ + + * @git 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\Interfaces\Readme; + + +/** + * Item Readme Interface + * + * @since 3.2.2 + */ +interface ItemInterface +{ + /** + * Get an item readme + * + * @param object $item An item details. + * + * @return string + * @since 3.2.2 + */ + public function get(object $item): string; +} + diff --git a/src/65a0f81a-14fc-4870-9382-b8d830b19937/code.power b/src/65a0f81a-14fc-4870-9382-b8d830b19937/code.power new file mode 100644 index 0000000..d209cf4 --- /dev/null +++ b/src/65a0f81a-14fc-4870-9382-b8d830b19937/code.power @@ -0,0 +1,9 @@ + /** + * Get an item readme + * + * @param object $item An item details. + * + * @return string + * @since 3.2.2 + */ + public function get(object $item): string; \ No newline at end of file diff --git a/src/65a0f81a-14fc-4870-9382-b8d830b19937/settings.json b/src/65a0f81a-14fc-4870-9382-b8d830b19937/settings.json new file mode 100644 index 0000000..f3b2671 --- /dev/null +++ b/src/65a0f81a-14fc-4870-9382-b8d830b19937/settings.json @@ -0,0 +1,19 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "", + "guid": "65a0f81a-14fc-4870-9382-b8d830b19937", + "implements": null, + "load_selection": null, + "name": "ItemInterface", + "power_version": "1.0.0", + "system_name": "VDM.Interfaces.Readme.ItemInterface", + "type": "interface", + "use_selection": null, + "extendsinterfaces": null, + "namespace": "[[[NamespacePrefix]]]\\Joomla\\Interfaces.Readme.ItemInterface", + "description": "Item Readme Interface\r\n\r\n@since 3.2.2", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \r\n * @git 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": "" +} \ No newline at end of file diff --git a/src/68a41264-64c0-441a-a3d8-8a5e557b1883/README.md b/src/68a41264-64c0-441a-a3d8-8a5e557b1883/README.md index a2b54e0..baca652 100644 --- a/src/68a41264-64c0-441a-a3d8-8a5e557b1883/README.md +++ b/src/68a41264-64c0-441a-a3d8-8a5e557b1883/README.md @@ -8,7 +8,7 @@ ``` # interface UpdateInterface (Details) > namespace: **VDM\Joomla\Interfaces\Data** -> extends: **** + ```uml @startuml interface UpdateInterface #Lavender { @@ -84,6 +84,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---68a41264_64c0_441a_a3d8_8a5e557b1883---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/6cbef8f8-4813-48e3-b05a-65e1aea95171/README.md b/src/6cbef8f8-4813-48e3-b05a-65e1aea95171/README.md index 511ce6d..08b2a79 100644 --- a/src/6cbef8f8-4813-48e3-b05a-65e1aea95171/README.md +++ b/src/6cbef8f8-4813-48e3-b05a-65e1aea95171/README.md @@ -8,7 +8,7 @@ ``` # abstract class Database (Details) > namespace: **VDM\Joomla\Abstraction** -> extends: **** + ```uml @startuml abstract Database #Orange { @@ -43,6 +43,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---6cbef8f8_4813_48e3_b05a_65e1aea95171---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/README.md b/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/README.md new file mode 100644 index 0000000..53c8f61 --- /dev/null +++ b/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/README.md @@ -0,0 +1,77 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class SchemaChecker (Details) +> namespace: **VDM\Joomla\Componentbuilder\Table** +> extends: **ExtendingSchemaChecker** + +```uml +@startuml +class SchemaChecker << (F,LightGreen) >> #RoyalBlue { + # getCode() : string + # getPowerPath() : string + # getSchemaClass() : string + # getTableClass() : string +} + +note right of SchemaChecker::getCode + Get the targeted component code + + since: 3.2.2 + return: string +end note + +note right of SchemaChecker::getPowerPath + Get the targeted component power path + + since: 3.2.2 + return: string +end note + +note right of SchemaChecker::getSchemaClass + Get the fully qualified name of the schema class. + + since: 3.2.2 + return: string +end note + +note right of SchemaChecker::getTableClass + Get the fully qualified name of the table class. + + since: 3.2.2 + return: string +end note + +@enduml +``` + +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---709d7294_9a43_46e2_b64e_d16a16f0eab1---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/code.php b/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/code.php new file mode 100644 index 0000000..5fcd561 --- /dev/null +++ b/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/code.php @@ -0,0 +1,72 @@ + + * @git 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\Table; + + +use VDM\Joomla\Componentbuilder\Table; +use VDM\Joomla\Componentbuilder\Table\Schema; +use VDM\Joomla\Interfaces\SchemaCheckerInterface; +use VDM\Joomla\Abstraction\SchemaChecker as ExtendingSchemaChecker; + + +/** + * Componentbuilder Tables Schema Checker + * + * @since 3.2.2 + */ +final class SchemaChecker extends ExtendingSchemaChecker implements SchemaCheckerInterface +{ + /** + * Get the targeted component code + * + * @return string + * @since 3.2.2 + */ + protected function getCode(): string + { + return 'componentbuilder'; + } + + /** + * Get the targeted component power path + * + * @return string + * @since 3.2.2 + */ + protected function getPowerPath(): string + { + return 'src/Helper/PowerloaderHelper.php'; + } + + /** + * Get the fully qualified name of the schema class. + * + * @return string + * @since 3.2.2 + */ + protected function getSchemaClass(): string + { + return Schema::class; + } + + /** + * Get the fully qualified name of the table class. + * + * @return string + * @since 3.2.2 + */ + protected function getTableClass(): string + { + return Table::class; + } +} + diff --git a/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/code.power b/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/code.power new file mode 100644 index 0000000..ee6553d --- /dev/null +++ b/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/code.power @@ -0,0 +1,43 @@ + /** + * Get the targeted component code + * + * @return string + * @since 3.2.2 + */ + protected function getCode(): string + { + return '[[[component]]]'; + } + + /** + * Get the targeted component power path + * + * @return string + * @since 3.2.2 + */ + protected function getPowerPath(): string + { + return '[[[POWERLOADERPATH]]]'; + } + + /** + * Get the fully qualified name of the schema class. + * + * @return string + * @since 3.2.2 + */ + protected function getSchemaClass(): string + { + return Schema::class; + } + + /** + * Get the fully qualified name of the table class. + * + * @return string + * @since 3.2.2 + */ + protected function getTableClass(): string + { + return Table::class; + } \ No newline at end of file diff --git a/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/settings.json b/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/settings.json new file mode 100644 index 0000000..634fd3b --- /dev/null +++ b/src/709d7294-9a43-46e2-b64e-d16a16f0eab1/settings.json @@ -0,0 +1,30 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "5f0205fa-5c43-424a-af7d-abc943c17c8c", + "guid": "709d7294-9a43-46e2-b64e-d16a16f0eab1", + "implements": [ + "b6e9854c-3672-42ec-8843-26c24b4635bd" + ], + "load_selection": null, + "name": "SchemaChecker", + "power_version": "2.0.0", + "system_name": "VDM.Table.SchemaChecker", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8", + "as": "default" + }, + "use_selection1": { + "use": "b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce", + "as": "default" + } + }, + "extendsinterfaces": null, + "namespace": "[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Table.SchemaChecker", + "description": "[[[Component]]] Tables Schema Checker\r\n\r\n@since 3.2.2", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \r\n * @git 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": "" +} \ No newline at end of file diff --git a/src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/README.md b/src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/README.md index 5cfc97d..06baf9f 100644 --- a/src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/README.md +++ b/src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/README.md @@ -8,7 +8,7 @@ ``` # interface UpdateInterface (Details) > namespace: **VDM\Joomla\Interfaces** -> extends: **** + ```uml @startuml interface UpdateInterface #Lavender { @@ -71,6 +71,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---7179fde6_1e51_4b51_8545_7ca18f74a0f4---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/7212e4db-371f-4cfd-8122-32e9bb100d83/README.md b/src/7212e4db-371f-4cfd-8122-32e9bb100d83/README.md index be1a092..f50c792 100644 --- a/src/7212e4db-371f-4cfd-8122-32e9bb100d83/README.md +++ b/src/7212e4db-371f-4cfd-8122-32e9bb100d83/README.md @@ -8,7 +8,7 @@ ``` # interface ItemsInterface (Details) > namespace: **VDM\Joomla\Interfaces\Data** -> extends: **** + ```uml @startuml interface ItemsInterface #Lavender { @@ -70,6 +70,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---7212e4db_371f_4cfd_8122_32e9bb100d83---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/728ee726-3f0f-4762-899d-f8c9430cee58/README.md b/src/728ee726-3f0f-4762-899d-f8c9430cee58/README.md index 66a343e..d171a79 100644 --- a/src/728ee726-3f0f-4762-899d-f8c9430cee58/README.md +++ b/src/728ee726-3f0f-4762-899d-f8c9430cee58/README.md @@ -6,12 +6,12 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Remote (Details) -> namespace: **VDM\Joomla\Data** -> extends: **** +# class Get (Details) +> namespace: **VDM\Joomla\Data\Remote** + ```uml @startuml -class Remote #Gold { +class Get #Gold { # Grep $grep # Item $item # string $table @@ -19,11 +19,11 @@ class Remote #Gold { + table(string $table) : self + init() : bool + reset(array $items) : bool - + load(string $guid, array $order = ['remote', 'local'], ...) : bool + + item(string $guid, array $order = ['remote', 'local'], ...) : bool + getTable() : string } -note right of Remote::__construct +note right of Get::__construct Constructor. since: 3.2.0 @@ -34,29 +34,29 @@ note right of Remote::__construct ?string $table = null end note -note right of Remote::table +note right of Get::table Set the current active table since: 3.2.2 return: self end note -note right of Remote::init +note right of Get::init Init all items not found in database since: 3.2.0 return: bool end note -note right of Remote::reset +note right of Get::reset Reset the items since: 3.2.0 return: bool end note -note right of Remote::load - Load a item +note right of Get::item + Load an item since: 3.2.0 return: bool @@ -67,7 +67,7 @@ note right of Remote::load ?string $action = null end note -note right of Remote::getTable +note right of Get::getTable Get the current active table since: 3.2.2 @@ -77,6 +77,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---728ee726_3f0f_4762_899d_f8c9430cee58---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/728ee726-3f0f-4762-899d-f8c9430cee58/code.php b/src/728ee726-3f0f-4762-899d-f8c9430cee58/code.php index 70e987a..a3f84cf 100644 --- a/src/728ee726-3f0f-4762-899d-f8c9430cee58/code.php +++ b/src/728ee726-3f0f-4762-899d-f8c9430cee58/code.php @@ -9,20 +9,20 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ -namespace VDM\Joomla\Data; +namespace VDM\Joomla\Data\Remote; use VDM\Joomla\Interfaces\GrepInterface as Grep; use VDM\Joomla\Interfaces\Data\ItemInterface as Item; -use VDM\Joomla\Interfaces\Data\RemoteInterface; +use VDM\Joomla\Interfaces\Data\RemoteGetInterface; /** - * Load data based on global unique ids from remote system + * Get data based on global unique ids from remote system * * @since 3.2.0 */ -class Remote implements RemoteInterface +class Get implements RemoteGetInterface { /** * The Grep Class. @@ -90,7 +90,7 @@ class Remote implements RemoteInterface */ public function init(): bool { - if (($items = $this->grep->getRemotePowersGuid()) !== null) + if (($items = $this->grep->getRemoteGuid()) !== null) { foreach($items as $guid) { @@ -126,7 +126,7 @@ class Remote implements RemoteInterface foreach($items as $guid) { - if (!$this->load($guid, ['remote'])) + if (!$this->item($guid, ['remote'])) { $success = false; } @@ -136,7 +136,7 @@ class Remote implements RemoteInterface } /** - * Load a item + * Load an item * * @param string $guid The global unique id of the item * @param array $order The search order @@ -145,7 +145,7 @@ class Remote implements RemoteInterface * @return bool * @since 3.2.0 */ - public function load(string $guid, array $order = ['remote', 'local'], ?string $action = null): bool + public function item(string $guid, array $order = ['remote', 'local'], ?string $action = null): bool { if (($item = $this->grep->get($guid, $order)) !== null) { diff --git a/src/728ee726-3f0f-4762-899d-f8c9430cee58/code.power b/src/728ee726-3f0f-4762-899d-f8c9430cee58/code.power index 8b6c476..ee42b5b 100644 --- a/src/728ee726-3f0f-4762-899d-f8c9430cee58/code.power +++ b/src/728ee726-3f0f-4762-899d-f8c9430cee58/code.power @@ -64,7 +64,7 @@ */ public function init(): bool { - if (($items = $this->grep->getRemotePowersGuid()) !== null) + if (($items = $this->grep->getRemoteGuid()) !== null) { foreach($items as $guid) { @@ -100,7 +100,7 @@ foreach($items as $guid) { - if (!$this->load($guid, ['remote'])) + if (!$this->item($guid, ['remote'])) { $success = false; } @@ -110,7 +110,7 @@ } /** - * Load a item + * Load an item * * @param string $guid The global unique id of the item * @param array $order The search order @@ -119,7 +119,7 @@ * @return bool * @since 3.2.0 */ - public function load(string $guid, array $order = ['remote', 'local'], ?string $action = null): bool + public function item(string $guid, array $order = ['remote', 'local'], ?string $action = null): bool { if (($item = $this->grep->get($guid, $order)) !== null) { diff --git a/src/728ee726-3f0f-4762-899d-f8c9430cee58/settings.json b/src/728ee726-3f0f-4762-899d-f8c9430cee58/settings.json index 7bf9e0a..82e4ab6 100644 --- a/src/728ee726-3f0f-4762-899d-f8c9430cee58/settings.json +++ b/src/728ee726-3f0f-4762-899d-f8c9430cee58/settings.json @@ -7,9 +7,9 @@ "51de80f2-2868-4c2c-8198-ef79349e9bd7" ], "load_selection": null, - "name": "Remote", + "name": "Get", "power_version": "1.0.0", - "system_name": "VDM.Data.Remote", + "system_name": "VDM.Data.Remote.Get", "type": "class", "use_selection": { "use_selection0": { @@ -22,8 +22,8 @@ } }, "extendsinterfaces": null, - "namespace": "[[[NamespacePrefix]]]\\Joomla\\Data.Remote", - "description": "Load data based on global unique ids from remote system\r\n\r\n@since 3.2.0", + "namespace": "[[[NamespacePrefix]]]\\Joomla\\Data.Remote.Get", + "description": "Get data based on global unique ids from remote system\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 \r\n * @git 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": "" diff --git a/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/README.md b/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/README.md index ea0aa62..44d5915 100644 --- a/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/README.md +++ b/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/README.md @@ -9,6 +9,7 @@ # final class Upsert (Details) > namespace: **VDM\Joomla\Model** > extends: **Model** + ```uml @startuml class Upsert << (F,LightGreen) >> #RoyalBlue { @@ -57,6 +58,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---7c1fb50f_8fb1_4627_8705_6fedf7182ca5---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/7d494d91-ab60-43cd-aecf-d50e07f7f30e/README.md b/src/7d494d91-ab60-43cd-aecf-d50e07f7f30e/README.md index 320d535..3fa2191 100644 --- a/src/7d494d91-ab60-43cd-aecf-d50e07f7f30e/README.md +++ b/src/7d494d91-ab60-43cd-aecf-d50e07f7f30e/README.md @@ -8,7 +8,7 @@ ``` # trait ToString (Details) > namespace: **VDM\Joomla\Abstraction\Registry\Traits** -> extends: **** + ```uml @startuml class ToString << (T,Orange) >> #Turquoise { @@ -25,6 +25,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---7d494d91_ab60_43cd_aecf_d50e07f7f30e---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/7e822c03-1b20-41d1-9427-f5b8d5836af7/README.md b/src/7e822c03-1b20-41d1-9427-f5b8d5836af7/README.md index 242b33c..7a7f510 100644 --- a/src/7e822c03-1b20-41d1-9427-f5b8d5836af7/README.md +++ b/src/7e822c03-1b20-41d1-9427-f5b8d5836af7/README.md @@ -9,6 +9,7 @@ # abstract class Registry (Details) > namespace: **VDM\Joomla\Abstraction** > extends: **ActiveRegistry** + ```uml @startuml abstract Registry #Orange { @@ -82,6 +83,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---7e822c03_1b20_41d1_9427_f5b8d5836af7---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/85785701-07b2-4f81-bc1e-0f423700c254/README.md b/src/85785701-07b2-4f81-bc1e-0f423700c254/README.md index d217e8e..064c3a6 100644 --- a/src/85785701-07b2-4f81-bc1e-0f423700c254/README.md +++ b/src/85785701-07b2-4f81-bc1e-0f423700c254/README.md @@ -8,7 +8,7 @@ ``` # final class Subform (Details) > namespace: **VDM\Joomla\Data** -> extends: **** + ```uml @startuml class Subform << (F,LightGreen) >> #RoyalBlue { @@ -125,6 +125,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---85785701_07b2_4f81_bc1e_0f423700c254---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/README.md b/src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/README.md index d811ec3..e65a623 100644 --- a/src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/README.md +++ b/src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/README.md @@ -8,7 +8,7 @@ ``` # interface ModelInterface (Details) > namespace: **VDM\Joomla\Interfaces** -> extends: **** + ```uml @startuml interface ModelInterface #Lavender { @@ -114,6 +114,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---8aef58c1_3f70_4bd4_b9e4_3f29fcd41cff---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/8f83fb79-f92b-4f1f-952b-325f6c22d11e/README.md b/src/8f83fb79-f92b-4f1f-952b-325f6c22d11e/README.md index b7c19f6..4c9f3fa 100644 --- a/src/8f83fb79-f92b-4f1f-952b-325f6c22d11e/README.md +++ b/src/8f83fb79-f92b-4f1f-952b-325f6c22d11e/README.md @@ -8,7 +8,7 @@ ``` # class Update (Details) > namespace: **VDM\Joomla\Data\Action** -> extends: **** + ```uml @startuml class Update #Gold { @@ -99,6 +99,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---8f83fb79_f92b_4f1f_952b_325f6c22d11e---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/91004529-94a9-4590-b842-e7c6b624ecf5/README.md b/src/91004529-94a9-4590-b842-e7c6b624ecf5/README.md index 4d6e438..8f7c934 100644 --- a/src/91004529-94a9-4590-b842-e7c6b624ecf5/README.md +++ b/src/91004529-94a9-4590-b842-e7c6b624ecf5/README.md @@ -8,7 +8,7 @@ ``` # abstract class ObjectHelper (Details) > namespace: **VDM\Joomla\Utilities** -> extends: **** + ```uml @startuml abstract ObjectHelper #Orange { @@ -35,6 +35,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---91004529_94a9_4590_b842_e7c6b624ecf5---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/9206082e-a3f7-472e-98b2-de90d06cbdcd/README.md b/src/9206082e-a3f7-472e-98b2-de90d06cbdcd/README.md index f8de5d0..9dbc8b6 100644 --- a/src/9206082e-a3f7-472e-98b2-de90d06cbdcd/README.md +++ b/src/9206082e-a3f7-472e-98b2-de90d06cbdcd/README.md @@ -8,7 +8,7 @@ ``` # final class Item (Details) > namespace: **VDM\Joomla\Data** -> extends: **** + ```uml @startuml class Item << (F,LightGreen) >> #RoyalBlue { @@ -120,6 +120,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---9206082e_a3f7_472e_98b2_de90d06cbdcd---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/92291f1f-f248-4ec0-9f2a-3d47c49eeac1/README.md b/src/92291f1f-f248-4ec0-9f2a-3d47c49eeac1/README.md index 2550411..07722dd 100644 --- a/src/92291f1f-f248-4ec0-9f2a-3d47c49eeac1/README.md +++ b/src/92291f1f-f248-4ec0-9f2a-3d47c49eeac1/README.md @@ -9,6 +9,7 @@ # final class Delete (Details) > namespace: **VDM\Joomla\Database** > extends: **Database** + ```uml @startuml class Delete << (F,LightGreen) >> #RoyalBlue { @@ -33,6 +34,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---92291f1f_f248_4ec0_9f2a_3d47c49eeac1---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/9c3aa650-e536-4eea-a2d4-73cc3e184aa9/README.md b/src/9c3aa650-e536-4eea-a2d4-73cc3e184aa9/README.md index 179bf7c..4aae7a2 100644 --- a/src/9c3aa650-e536-4eea-a2d4-73cc3e184aa9/README.md +++ b/src/9c3aa650-e536-4eea-a2d4-73cc3e184aa9/README.md @@ -8,7 +8,7 @@ ``` # interface DeleteInterface (Details) > namespace: **VDM\Joomla\Interfaces** -> extends: **** + ```uml @startuml interface DeleteInterface #Lavender { @@ -33,6 +33,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---9c3aa650_e536_4eea_a2d4_73cc3e184aa9---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/9c513baf-b279-43fd-ae29-a585c8cbc4f0/README.md b/src/9c513baf-b279-43fd-ae29-a585c8cbc4f0/README.md index a87017e..542d064 100644 --- a/src/9c513baf-b279-43fd-ae29-a585c8cbc4f0/README.md +++ b/src/9c513baf-b279-43fd-ae29-a585c8cbc4f0/README.md @@ -8,7 +8,7 @@ ``` # abstract class GuidHelper (Details) > namespace: **VDM\Joomla\Utilities** -> extends: **** + ```uml @startuml abstract GuidHelper #Orange { @@ -68,6 +68,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---9c513baf_b279_43fd_ae29_a585c8cbc4f0---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/9d76b8dc-3883-4755-b11c-131d19ca8a53/README.md b/src/9d76b8dc-3883-4755-b11c-131d19ca8a53/README.md index a3daa38..b8c5fa8 100644 --- a/src/9d76b8dc-3883-4755-b11c-131d19ca8a53/README.md +++ b/src/9d76b8dc-3883-4755-b11c-131d19ca8a53/README.md @@ -9,6 +9,7 @@ # abstract class Factory (Details) > namespace: **VDM\Joomla\Data** > extends: **ExtendingFactory** + ```uml @startuml abstract Factory #Orange { @@ -25,6 +26,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---9d76b8dc_3883_4755_b11c_131d19ca8a53---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/9ef0eb24-aae4-4f5a-99af-d724db44808f/README.md b/src/9ef0eb24-aae4-4f5a-99af-d724db44808f/README.md index 4a69886..ccd0f30 100644 --- a/src/9ef0eb24-aae4-4f5a-99af-d724db44808f/README.md +++ b/src/9ef0eb24-aae4-4f5a-99af-d724db44808f/README.md @@ -8,7 +8,7 @@ ``` # abstract class FieldHelper (Details) > namespace: **VDM\Joomla\Utilities\String** -> extends: **** + ```uml @startuml abstract FieldHelper #Orange { @@ -30,6 +30,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---9ef0eb24_aae4_4f5a_99af_d724db44808f---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/a223b31e-ea1d-4cdf-92ae-5f9becffaff0/README.md b/src/a223b31e-ea1d-4cdf-92ae-5f9becffaff0/README.md index 1165355..fcd56ed 100644 --- a/src/a223b31e-ea1d-4cdf-92ae-5f9becffaff0/README.md +++ b/src/a223b31e-ea1d-4cdf-92ae-5f9becffaff0/README.md @@ -8,7 +8,7 @@ ``` # abstract class FileHelper (Details) > namespace: **VDM\Joomla\Utilities** -> extends: **** + ```uml @startuml abstract FileHelper #Orange { @@ -74,6 +74,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---a223b31e_ea1d_4cdf_92ae_5f9becffaff0---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/a455d916-cfe4-41df-9245-bafb709aacdb/README.md b/src/a455d916-cfe4-41df-9245-bafb709aacdb/README.md index ef08925..3e59481 100644 --- a/src/a455d916-cfe4-41df-9245-bafb709aacdb/README.md +++ b/src/a455d916-cfe4-41df-9245-bafb709aacdb/README.md @@ -8,7 +8,7 @@ ``` # class Insert (Details) > namespace: **VDM\Joomla\Data\Action** -> extends: **** + ```uml @startuml class Insert #Gold { @@ -99,6 +99,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---a455d916_cfe4_41df_9245_bafb709aacdb---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/a5daf189-3345-4b13-8716-c51f686f545b/README.md b/src/a5daf189-3345-4b13-8716-c51f686f545b/README.md index 48b189f..239925d 100644 --- a/src/a5daf189-3345-4b13-8716-c51f686f545b/README.md +++ b/src/a5daf189-3345-4b13-8716-c51f686f545b/README.md @@ -8,7 +8,7 @@ ``` # class Data (Details) > namespace: **VDM\Joomla\Service** -> extends: **** + ```uml @startuml class Data #Gold { @@ -89,6 +89,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---a5daf189_3345_4b13_8716_c51f686f545b---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/a8935cbe-7701-40dc-bfd5-675f2d600954/README.md b/src/a8935cbe-7701-40dc-bfd5-675f2d600954/README.md index 5bfab95..56d6cd0 100644 --- a/src/a8935cbe-7701-40dc-bfd5-675f2d600954/README.md +++ b/src/a8935cbe-7701-40dc-bfd5-675f2d600954/README.md @@ -8,7 +8,7 @@ ``` # abstract class TypeHelper (Details) > namespace: **VDM\Joomla\Utilities\String** -> extends: **** + ```uml @startuml abstract TypeHelper #Orange { @@ -25,6 +25,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---a8935cbe_7701_40dc_bfd5_675f2d600954---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/README.md b/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/README.md index 72e761c..ad19b27 100644 --- a/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/README.md +++ b/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/README.md @@ -8,7 +8,7 @@ ``` # interface InsertInterface (Details) > namespace: **VDM\Joomla\Interfaces** -> extends: **** + ```uml @startuml interface InsertInterface #Lavender { @@ -67,6 +67,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---ad12ca1c_d3ce_4e7f_88c5_c6c92bdedc48---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/af0eedbe-603b-4671-8e5a-28165d88254b/README.md b/src/af0eedbe-603b-4671-8e5a-28165d88254b/README.md index a318280..44ef901 100644 --- a/src/af0eedbe-603b-4671-8e5a-28165d88254b/README.md +++ b/src/af0eedbe-603b-4671-8e5a-28165d88254b/README.md @@ -8,7 +8,7 @@ ``` # interface Activeregistryinterface (Details) > namespace: **VDM\Joomla\Interfaces** -> extends: **** + ```uml @startuml interface Activeregistryinterface #Lavender { @@ -81,6 +81,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---af0eedbe_603b_4671_8e5a_28165d88254b---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/README.md b/src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/README.md index 353e0fb..5384f27 100644 --- a/src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/README.md +++ b/src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/README.md @@ -9,6 +9,7 @@ # final class Schema (Details) > namespace: **VDM\Joomla\Componentbuilder\Table** > extends: **ExtendingSchema** + ```uml @startuml class Schema << (F,LightGreen) >> #RoyalBlue { @@ -32,6 +33,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---b3d2ec33_76d4_4c3b_bb2c_86ac14a221ce---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/settings.json b/src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/settings.json index 7a79324..fbc197c 100644 --- a/src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/settings.json +++ b/src/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce/settings.json @@ -18,7 +18,7 @@ } }, "extendsinterfaces": null, - "namespace": "[[[NamespacePrefix]]]\\Joomla\\[[[Component]]].Table.Schema", + "namespace": "[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Table.Schema", "description": "[[[Component]]] Tables Schema\r\n\r\n@since 3.2.1", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \r\n * @git 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": "", diff --git a/src/b6e9854c-3672-42ec-8843-26c24b4635bd/README.md b/src/b6e9854c-3672-42ec-8843-26c24b4635bd/README.md new file mode 100644 index 0000000..80161b4 --- /dev/null +++ b/src/b6e9854c-3672-42ec-8843-26c24b4635bd/README.md @@ -0,0 +1,52 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# interface SchemaCheckerInterface (Details) +> namespace: **VDM\Joomla\Interfaces** + +```uml +@startuml +interface SchemaCheckerInterface #Lavender { + + run() : void +} + +note right of SchemaCheckerInterface::run + Make sure that the database schema is up-to-date. + + since: 3.2.2 + return: void +end note + +@enduml +``` + +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---b6e9854c_3672_42ec_8843_26c24b4635bd---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/b6e9854c-3672-42ec-8843-26c24b4635bd/code.php b/src/b6e9854c-3672-42ec-8843-26c24b4635bd/code.php new file mode 100644 index 0000000..fb4bcb7 --- /dev/null +++ b/src/b6e9854c-3672-42ec-8843-26c24b4635bd/code.php @@ -0,0 +1,30 @@ + + * @git 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\Interfaces; + + +/** + * Schema Checker Interface + * + * @since 3.2.2 + */ +interface SchemaCheckerInterface +{ + /** + * Make sure that the database schema is up-to-date. + * + * @return void + * @since 3.2.2 + */ + public function run(): void; +} + diff --git a/src/b6e9854c-3672-42ec-8843-26c24b4635bd/code.power b/src/b6e9854c-3672-42ec-8843-26c24b4635bd/code.power new file mode 100644 index 0000000..142a7b1 --- /dev/null +++ b/src/b6e9854c-3672-42ec-8843-26c24b4635bd/code.power @@ -0,0 +1,7 @@ + /** + * Make sure that the database schema is up-to-date. + * + * @return void + * @since 3.2.2 + */ + public function run(): void; \ No newline at end of file diff --git a/src/b6e9854c-3672-42ec-8843-26c24b4635bd/settings.json b/src/b6e9854c-3672-42ec-8843-26c24b4635bd/settings.json new file mode 100644 index 0000000..3aad475 --- /dev/null +++ b/src/b6e9854c-3672-42ec-8843-26c24b4635bd/settings.json @@ -0,0 +1,19 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "", + "guid": "b6e9854c-3672-42ec-8843-26c24b4635bd", + "implements": null, + "load_selection": null, + "name": "SchemaCheckerInterface", + "power_version": "1.0.0", + "system_name": "VDM.SchemaCheckerInterface", + "type": "interface", + "use_selection": null, + "extendsinterfaces": null, + "namespace": "[[[NamespacePrefix]]]\\Joomla\\Interfaces.SchemaCheckerInterface", + "description": "Schema Checker Interface\r\n\r\n@since 3.2.2", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \r\n * @git 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": "" +} \ No newline at end of file diff --git a/src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/README.md b/src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/README.md index a4801d0..9d72346 100644 --- a/src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/README.md +++ b/src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/README.md @@ -9,6 +9,7 @@ # abstract class BaseRegistry (Details) > namespace: **VDM\Joomla\Componentbuilder\Abstraction** > extends: **JoomlaRegistry** + ```uml @startuml abstract BaseRegistry #Orange { @@ -57,6 +58,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---b84e947d_2a13_44f7_ac0f_3902ae55ae0c---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/settings.json b/src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/settings.json index e6c7a18..bbf00e2 100644 --- a/src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/settings.json +++ b/src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/settings.json @@ -13,7 +13,7 @@ "type": "abstract class", "use_selection": null, "extendsinterfaces": null, - "namespace": "[[[NamespacePrefix]]]\\Joomla\\Componentbuilder.Abstraction.BaseRegistry", + "namespace": "[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Abstraction.BaseRegistry", "description": "Registry\r\n\r\nSo we have full control over this class\r\n\r\n@since 3.2.0", "implements_custom": "\\JsonSerializable, \\ArrayAccess, \\IteratorAggregate, \\Countable", "extends_custom": "JoomlaRegistry", diff --git a/src/bb29a833-73f7-4283-9327-bc7e41f0723b/README.md b/src/bb29a833-73f7-4283-9327-bc7e41f0723b/README.md index cf3f4b0..2af5413 100644 --- a/src/bb29a833-73f7-4283-9327-bc7e41f0723b/README.md +++ b/src/bb29a833-73f7-4283-9327-bc7e41f0723b/README.md @@ -9,6 +9,7 @@ # final class Load (Details) > namespace: **VDM\Joomla\Model** > extends: **Model** + ```uml @startuml class Load << (F,LightGreen) >> #RoyalBlue { @@ -57,6 +58,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---bb29a833_73f7_4283_9327_bc7e41f0723b---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/bb30f709-53d2-446a-ab3d-300fe6de0bc8/README.md b/src/bb30f709-53d2-446a-ab3d-300fe6de0bc8/README.md index 609581b..4c964b2 100644 --- a/src/bb30f709-53d2-446a-ab3d-300fe6de0bc8/README.md +++ b/src/bb30f709-53d2-446a-ab3d-300fe6de0bc8/README.md @@ -8,7 +8,7 @@ ``` # interface MultiSubformInterface (Details) > namespace: **VDM\Joomla\Interfaces\Data** -> extends: **** + ```uml @startuml interface MultiSubformInterface #Lavender { @@ -65,6 +65,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---bb30f709_53d2_446a_ab3d_300fe6de0bc8---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/README.md b/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/README.md index 0f47fd4..c99fb7f 100644 --- a/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/README.md +++ b/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/README.md @@ -9,6 +9,7 @@ # final class Table (Details) > namespace: **VDM\Joomla\Componentbuilder** > extends: **BaseTable** + ```uml @startuml class Table << (F,LightGreen) >> #RoyalBlue { @@ -17,6 +18,20 @@ class Table << (F,LightGreen) >> #RoyalBlue { @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---bfd1d6d5_56c1_4fe9_9fee_1c5910e1f5d8---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/code.php b/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/code.php index 17510e4..2fbca74 100644 --- a/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/code.php +++ b/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/code.php @@ -1558,7 +1558,6 @@ final class Table extends BaseTable implements Tableinterface 'tab_name' => 'publishing', 'db' => [ 'type' => 'TEXT', - 'default' => '', ], ], 'metadesc' => [ @@ -1570,7 +1569,6 @@ final class Table extends BaseTable implements Tableinterface 'tab_name' => 'publishing', 'db' => [ 'type' => 'TEXT', - 'default' => '', ], ], 'metadata' => [ @@ -1582,7 +1580,6 @@ final class Table extends BaseTable implements Tableinterface 'tab_name' => 'publishing', 'db' => [ 'type' => 'TEXT', - 'default' => '', ], ], ], diff --git a/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/settings.json b/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/settings.json index 05bda44..afd2de2 100644 --- a/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/settings.json +++ b/src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/settings.json @@ -13,7 +13,7 @@ "type": "final class", "use_selection": null, "extendsinterfaces": null, - "namespace": "[[[NamespacePrefix]]]\\Joomla\\[[[Component]]].Table", + "namespace": "[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Table", "description": "[[[Component]]] Tables\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 \r\n * @git 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": "", diff --git a/src/c09e8968-c767-4175-bb3d-8432f206a2c7/README.md b/src/c09e8968-c767-4175-bb3d-8432f206a2c7/README.md index 82b2d56..2307343 100644 --- a/src/c09e8968-c767-4175-bb3d-8432f206a2c7/README.md +++ b/src/c09e8968-c767-4175-bb3d-8432f206a2c7/README.md @@ -8,7 +8,7 @@ ``` # trait IsArray (Details) > namespace: **VDM\Joomla\Abstraction\Registry\Traits** -> extends: **** + ```uml @startuml class IsArray << (T,Orange) >> #Turquoise { @@ -25,6 +25,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---c09e8968_c767_4175_bb3d_8432f206a2c7---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/c182506a-ab84-439c-b962-1e606b58d545/README.md b/src/c182506a-ab84-439c-b962-1e606b58d545/README.md index eeddece..20f1863 100644 --- a/src/c182506a-ab84-439c-b962-1e606b58d545/README.md +++ b/src/c182506a-ab84-439c-b962-1e606b58d545/README.md @@ -8,17 +8,32 @@ ``` # interface GrepInterface (Details) > namespace: **VDM\Joomla\Interfaces** -> extends: **** + ```uml @startuml interface GrepInterface #Lavender { - + getRemotePowersGuid() : ?array + + get(string $guid, ?array $order = null, ...) : ?object + + getRemoteGuid() : ?array + setBranchField(string $field) : void - + get(string $guid, array $order = ['local', 'remote']) : ?object + + setBranchDefaultName(?string $name) : void + + setIndexPath(string $indexPath) : void + + getRemoteIndex(string $guid) : ?object } -note right of GrepInterface::getRemotePowersGuid - Get all remote powers GUID's +note right of GrepInterface::get + Get an item + + since: 3.2.2 + return: ?object + + arguments: + string $guid + ?array $order = null + ?object $repo = null +end note + +note right of GrepInterface::getRemoteGuid + Get all remote GUID's since: 3.2.0 return: ?array @@ -31,16 +46,44 @@ note right of GrepInterface::setBranchField return: void end note -note right of GrepInterface::get - Get a power +note right of GrepInterface::setBranchDefaultName + Set the DEFAULT branch name (only used if branch field is not found) - since: 3.2.0 + since: 3.2.2 + return: void +end note + +note right of GrepInterface::setIndexPath + Set the index path + + since: 3.2.2 + return: void +end note + +note right of GrepInterface::getRemoteIndex + Get the index of a repo + + since: 3.2.2 return: ?object end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---c182506a_ab84_439c_b962_1e606b58d545---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/c182506a-ab84-439c-b962-1e606b58d545/code.php b/src/c182506a-ab84-439c-b962-1e606b58d545/code.php index 574b2db..d3199d5 100644 --- a/src/c182506a-ab84-439c-b962-1e606b58d545/code.php +++ b/src/c182506a-ab84-439c-b962-1e606b58d545/code.php @@ -20,17 +20,29 @@ namespace VDM\Joomla\Interfaces; interface GrepInterface { /** - * Get all remote powers GUID's + * Get an item + * + * @param string $guid The global unique id of the item + * @param array|null $order The search order + * @param object|null $repo The repository object to search. If null, all repos will be searched. + * + * @return object|null + * @since 3.2.2 + */ + public function get(string $guid, ?array $order = null, ?object $repo = null): ?object; + + /** + * Get all remote GUID's * * @return array|null * @since 3.2.0 */ - public function getRemotePowersGuid(): ?array; + public function getRemoteGuid(): ?array; /** * Set the branch field * - * @param string $field The global unique id of the power + * @param string $field The field to use to get the branch name from the data set * * @return void * @since 3.2.2 @@ -38,14 +50,33 @@ interface GrepInterface public function setBranchField(string $field): void; /** - * Get a power + * Set the DEFAULT branch name (only used if branch field is not found) * - * @param string $guid The global unique id of the power - * @param array $order The search order + * @param string|null $name The default branch to use if no name could be found + * + * @return void + * @since 3.2.2 + */ + public function setBranchDefaultName(?string $name): void; + + /** + * Set the index path + * + * @param string $indexPath The repository index path + * + * @return void + * @since 3.2.2 + */ + public function setIndexPath(string $indexPath): void; + + /** + * Get the index of a repo + * + * @param string $guid The unique identifier for the repo. * * @return object|null - * @since 3.2.0 + * @since 3.2.2 */ - public function get(string $guid, array $order = ['local', 'remote']): ?object; + public function getRemoteIndex(string $guid): ?object; } diff --git a/src/c182506a-ab84-439c-b962-1e606b58d545/code.power b/src/c182506a-ab84-439c-b962-1e606b58d545/code.power index 21eb71f..3403999 100644 --- a/src/c182506a-ab84-439c-b962-1e606b58d545/code.power +++ b/src/c182506a-ab84-439c-b962-1e606b58d545/code.power @@ -1,15 +1,27 @@ /** - * Get all remote powers GUID's + * Get an item + * + * @param string $guid The global unique id of the item + * @param array|null $order The search order + * @param object|null $repo The repository object to search. If null, all repos will be searched. + * + * @return object|null + * @since 3.2.2 + */ + public function get(string $guid, ?array $order = null, ?object $repo = null): ?object; + + /** + * Get all remote GUID's * * @return array|null * @since 3.2.0 */ - public function getRemotePowersGuid(): ?array; + public function getRemoteGuid(): ?array; /** * Set the branch field * - * @param string $field The global unique id of the power + * @param string $field The field to use to get the branch name from the data set * * @return void * @since 3.2.2 @@ -17,12 +29,31 @@ public function setBranchField(string $field): void; /** - * Get a power + * Set the DEFAULT branch name (only used if branch field is not found) * - * @param string $guid The global unique id of the power - * @param array $order The search order + * @param string|null $name The default branch to use if no name could be found + * + * @return void + * @since 3.2.2 + */ + public function setBranchDefaultName(?string $name): void; + + /** + * Set the index path + * + * @param string $indexPath The repository index path + * + * @return void + * @since 3.2.2 + */ + public function setIndexPath(string $indexPath): void; + + /** + * Get the index of a repo + * + * @param string $guid The unique identifier for the repo. * * @return object|null - * @since 3.2.0 + * @since 3.2.2 */ - public function get(string $guid, array $order = ['local', 'remote']): ?object; \ No newline at end of file + public function getRemoteIndex(string $guid): ?object; \ No newline at end of file diff --git a/src/c548640c-a461-4424-9ac5-8dfb5ed06d8d/README.md b/src/c548640c-a461-4424-9ac5-8dfb5ed06d8d/README.md index 890c0a8..0c6924f 100644 --- a/src/c548640c-a461-4424-9ac5-8dfb5ed06d8d/README.md +++ b/src/c548640c-a461-4424-9ac5-8dfb5ed06d8d/README.md @@ -8,7 +8,7 @@ ``` # interface LoadInterface (Details) > namespace: **VDM\Joomla\Interfaces\Data** -> extends: **** + ```uml @startuml interface LoadInterface #Lavender { @@ -89,6 +89,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---c548640c_a461_4424_9ac5_8dfb5ed06d8d---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/README.md b/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/README.md index 39daa0e..e4bc00d 100644 --- a/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/README.md +++ b/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/README.md @@ -8,7 +8,7 @@ ``` # interface FactoryInterface (Details) > namespace: **VDM\Joomla\Interfaces** -> extends: **** + ```uml @startuml interface FactoryInterface #Lavender { @@ -33,6 +33,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---caf33c5d_858c_4f9a_894f_ab302ec5445a---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/cce56585-58b0-4f72-a92c-e2635ea52d83/README.md b/src/cce56585-58b0-4f72-a92c-e2635ea52d83/README.md index 0eefc6a..4f7ba68 100644 --- a/src/cce56585-58b0-4f72-a92c-e2635ea52d83/README.md +++ b/src/cce56585-58b0-4f72-a92c-e2635ea52d83/README.md @@ -9,6 +9,7 @@ # final class Update (Details) > namespace: **VDM\Joomla\Database** > extends: **Database** + ```uml @startuml class Update << (F,LightGreen) >> #RoyalBlue { @@ -71,6 +72,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---cce56585_58b0_4f72_a92c_e2635ea52d83---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/cddcac51-9a46-47c4-ba59-105c70453bd6/README.md b/src/cddcac51-9a46-47c4-ba59-105c70453bd6/README.md deleted file mode 100644 index 60ae64d..0000000 --- a/src/cddcac51-9a46-47c4-ba59-105c70453bd6/README.md +++ /dev/null @@ -1,166 +0,0 @@ -``` -██████╗ ██████╗ ██╗ ██╗███████╗██████╗ -██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ -██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ -██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ -██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ -╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ -``` -# abstract class FilterHelper (Details) -> namespace: **VDM\Joomla\Componentbuilder\Utilities** -> extends: **** -```uml -@startuml -abstract FilterHelper #Orange { - + {static} extensions() : string - + {static} names(string $type, ?string $limiter = null) : ?array - + {static} linked(int $id, string $method) : ?array - + {static} namespaces() : ?array - + {static} namegroup(string $namespace) : ?array - + {static} translation(int $extension, string $type) : ?array - + {static} translations($language, $translated = true) : ?array - + {static} languages() : ?array - + {static} paths(string $path) : ?array - + {static} repositories(int $target) : ?array - - {static} joomla_component_admin_views(int $id) : ?array - - {static} joomla_component_custom_admin_views(int $id) : ?array - - {static} joomla_component_site_views(int $id) : ?array - - {static} joomla_component(int $id) : ?array - - {static} joomla_module(int $id) : ?array - - {static} joomla_plugin(int $id) : ?array - - {static} admin_view(int $id) : ?array -} - -note right of FilterHelper::extensions - get extensions grouped list xml - - since: 3.2.0 - return: string -end note - -note left of FilterHelper::names - Get by type the ids and system names - - since: 3.2.0 - return: ?array -end note - -note right of FilterHelper::linked - get any area linked IDs - - since: 3.2.0 - return: ?array -end note - -note left of FilterHelper::namespaces - get the substrings of the namespace until the last "\" or "." - - since: 3.2.0 - return: ?array -end note - -note right of FilterHelper::namegroup - get get IDs of powers matching namespaces - - since: 3.2.0 - return: ?array -end note - -note left of FilterHelper::translation - get translation extension ids - - since: 3.2.0 - return: ?array -end note - -note right of FilterHelper::translations - get translation ids - - since: 3.2.0 - return: ?array -end note - -note left of FilterHelper::languages - get available languages - - since: 3.2.0 - return: ?array -end note - -note right of FilterHelper::paths - get get IDs of powers link to this path - - since: 3.2.0 - return: ?array -end note - -note left of FilterHelper::repositories - get available repositories of target area - - since: 3.2.0 - return: ?array -end note - -note right of FilterHelper::joomla_component_admin_views - Get a component admin views IDs - - since: 3.2.0 - return: ?array -end note - -note left of FilterHelper::joomla_component_custom_admin_views - get a component custom admin views IDs - - since: 3.2.0 - return: ?array -end note - -note right of FilterHelper::joomla_component_site_views - get a component site views IDs - - since: 3.2.0 - return: ?array -end note - -note left of FilterHelper::joomla_component - get a component fields IDs - - since: 3.2.0 - return: ?array -end note - -note right of FilterHelper::joomla_module - get a module fields IDs - - since: 3.2.0 - return: ?array -end note - -note left of FilterHelper::joomla_plugin - get a plugin fields IDs - - since: 3.2.0 - return: ?array -end note - -note right of FilterHelper::admin_view - get an admin view fields IDs - - since: 3.2.0 - return: ?array -end note - -@enduml -``` - ---- -``` - ██╗ ██████╗██████╗ - ██║██╔════╝██╔══██╗ - ██║██║ ██████╔╝ -██ ██║██║ ██╔══██╗ -╚█████╔╝╚██████╗██████╔╝ - ╚════╝ ╚═════╝╚═════╝ -``` -> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) - diff --git a/src/cddcac51-9a46-47c4-ba59-105c70453bd6/code.php b/src/cddcac51-9a46-47c4-ba59-105c70453bd6/code.php deleted file mode 100644 index 999c38e..0000000 --- a/src/cddcac51-9a46-47c4-ba59-105c70453bd6/code.php +++ /dev/null @@ -1,850 +0,0 @@ - - * @git 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\Utilities; - - -use Joomla\CMS\Factory; -use Joomla\CMS\Language\Text; -use VDM\Joomla\Utilities\ArrayHelper; -use VDM\Joomla\Utilities\JsonHelper; -use VDM\Joomla\Utilities\GetHelper; - - -/** - * Filter Helper - * - * @since 3.2.0 - */ -abstract class FilterHelper -{ - /** - * get extensions grouped list xml - * - * @return string The XML string of Extentions - * @since 3.2.0 - */ - public static function extensions(): string - { - // the extension types - $extensions = array( - 'joomla_component' => 'COM_COMPONENTBUILDER_COMPONENT', - 'joomla_module' => 'COM_COMPONENTBUILDER_MODULE', - 'joomla_plugin' => 'COM_COMPONENTBUILDER_PLUGIN' - ); - - // get the extension values - foreach ($extensions as $extension => $label) - { - ${$extension} = self::names($extension); - } - - $xml = new \DOMDocument(); - $xml->formatOutput = true; - - $root = $xml->createElement('field'); - $root->setAttributeNode(new \DOMAttr('name', 'extension')); - $root->setAttributeNode(new \DOMAttr('type', 'groupedlist')); - $root->setAttributeNode(new \DOMAttr('onchange', 'this.form.submit();')); - - $root - ->appendChild($xml->createElement('option', '- ' . Text::_('COM_COMPONENTBUILDER_SELECT_EXTENSION') . ' -')) - ->setAttributeNode(new \DOMAttr('value', '')); - - foreach ($extensions as $extension => $label) - { - $extension_node = $xml->createElement('group'); - $extension_node->setAttributeNode(new \DOMAttr('label', $label)); - if (!ArrayHelper::check(${$extension})) - { - $extension_node - ->appendChild($xml->createElement('option', '- ' . Text::_('COM_COMPONENTBUILDER_NONE') . ' -')) - ->setAttributeNode(new \DOMAttr('disabled', 'true')); - } - else - { - foreach (${$extension} as $id => $element) - { - $extension_node - ->appendChild($xml->createElement('option', $element)) - ->setAttributeNode(new \DOMAttr('value', $extension . '__' . $id)); - } - } - $root->appendChild($extension_node); - } - $xml->appendChild($root); - - return $xml->saveXML(); - } - - /** - * Get by type the ids and system names - * - * @param string $type The table name to get system names for - * @param string|null $limiter The to limit by limiter table - * - * @return array|null The array of system name and IDs - * @since 3.2.0 - */ - public static function names(string $type, ?string $limiter = null): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - - $query - ->select($db->quoteName(array('id', 'system_name'))) - ->from($db->quoteName('#__componentbuilder_' . $type)) - ->where($db->quoteName('published') . ' >= 1') - ->order($db->quoteName('modified') . ' desc') - ->order($db->quoteName('created') . ' desc'); - - // check if we have a limiter for admin views - if ($type === 'admin_view' && $limiter) - { - // first get all views - $admin_view_ids = array(); - - // if this is a plugin or a module, then no views - if (strpos($limiter, 'joomla_component') !== false) - { - $component = (int) str_replace('joomla_component__', '', $limiter); - // get the views of this component - if ($add_views = GetHelper::var('component_admin_views', (int) $component, 'joomla_component', 'addadmin_views')) - { - if (JsonHelper::check($add_views)) - { - $add_views = json_decode($add_views, true); - if (ArrayHelper::check($add_views)) - { - foreach($add_views as $add_view) - { - if (isset($add_view['adminview'])) - { - $admin_view_ids[(int) $add_view['adminview']] = (int) $add_view['adminview']; - } - } - } - } - } - } - // now check if we still have admin views - if (ArrayHelper::check($admin_view_ids)) - { - $query->where($db->quoteName('id') . ' IN (' . implode(',', $admin_view_ids) . ')'); - } - else - { - return null; - } - } - - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - return $db->loadAssocList('id', 'system_name'); - } - - return null; - } - - /** - * get any area linked IDs - * - * @param int $id The target ID - * @param string $method The target method - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function linked(int $id, string $method): ?array - { - // check if method exist - if (method_exists(__CLASS__, $method)) - { - return self::{$method}($id); - } - - return null; - } - - /** - * get the substrings of the namespace until the last "\" or "." - * - * @return array|null The result substrings - * @since 3.2.0 - **/ - public static function namespaces(): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select( - 'DISTINCT REPLACE(SUBSTRING(' - . $db->quoteName('namespace') - . ', 1, LENGTH(' - . $db->quoteName('namespace') - . ') - LEAST(' - . 'IF(LOCATE(' - . $db->quote('\\') - . ', ' . $db->quoteName('namespace') - . ') > 0, LOCATE(' - . $db->quote('\\') - . ', REVERSE(' - . $db->quoteName('namespace') - . ')), 0), ' - . 'IF(LOCATE(' - . $db->quote('.') - . ', ' . $db->quoteName('namespace') - . ') > 0, LOCATE(' - . $db->quote('.') - . ', REVERSE(' - . $db->quoteName('namespace') - . ')), 0))), ".", "\\\") AS trimmed_namespace' - ) - ->from($db->quoteName('#__componentbuilder_power')) - ->where($db->quoteName('published') . ' = 1') - ->order('LENGTH(trimmed_namespace) ASC, trimmed_namespace ASC'); - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - return $db->loadAssocList('trimmed_namespace', 'trimmed_namespace'); - } - - return null; - } - - /** - * get get IDs of powers matching namespaces - * - * @param string $namespace The target namespace - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function namegroup(string $namespace): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select($db->quoteName(array('id'))) - ->from($db->quoteName('#__componentbuilder_power')) - ->where($db->quoteName('published') . ' = 1'); - - // we get only those that match the owner and repo (smaller set) - $paths = explode('\\', $namespace); - foreach ($paths as $path) - { - $query->where($db->quoteName('namespace') . ' REGEXP ' . $db->quote($path)); - } - - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - return $db->loadColumn(); - } - - return null; - } - - /** - * get translation extension ids - * - * @param int $extension The target ID - * @param string $type The target method - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function translation(int $extension, string $type): ?array - { - // only allow these columns (extension types) - $columns = array( - 'joomla_component' => 'components', - 'joomla_module' => 'modules', - 'joomla_plugin' => 'plugins' - ); - - // check if the column name is correct - if (isset($columns[$type])) - { - $column = $columns[$type]; - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select($db->quoteName(array('id', $column))) - ->from($db->quoteName('#__componentbuilder_language_translation')) - ->where($db->quoteName($column) . ' != ' . $db->quote('')); - - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - $results = $db->loadAssocList(); - $matches = []; - foreach ($results as $k => $v) - { - $value = json_decode($v[$column], true); - if (in_array($extension, $value)) - { - $matches[$v['id']] = $v['id']; - } - } - - // Checks that we found matches - if (ArrayHelper::check($matches)) - { - return array_values($matches); - } - } - } - - return null; - } - - /** - * get translation ids - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function translations($language, $translated = true): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - - $query - ->select($db->quoteName('id')) - ->from($db->quoteName('#__componentbuilder_language_translation')); - - // Build the where condition - if ($translated === true) // Translated - { - if ($language === 'all') - { - if (($languages = self::languages()) !== null) - { - $wheres = []; - foreach ($languages as $k => $v) - { - $wheres[] = $db->quoteName('translation') . ' LIKE ' . $db->quote('%' . $k . '%'); - } - $query->where($wheres); - } - } - else - { - $query->where($db->quoteName('translation') . ' LIKE ' . $db->quote('%' . $language . '%')); - } - } - else // Not translated - { - if ($language === 'none') - { - $query->where( - array( - $db->quoteName('translation') . ' = ' . $db->quote(''), - $db->quoteName('translation') . ' = ' . $db->quote('[]'), - $db->quoteName('translation') . ' = ' . $db->quote('{}') - ), 'OR' - ); - } - else - { - $query->where($db->quoteName('translation') . ' NOT LIKE ' . $db->quote('%' . $language . '%')); - } - } - - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - return array_unique($db->loadColumn()); - } - - return null; - } - - /** - * get available languages - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function languages(): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select($db->quoteName(array('langtag', 'name'))) - ->from($db->quoteName('#__componentbuilder_language')) - ->where($db->quoteName('published') . ' = 1') - ->order($db->quoteName('name') . ' desc'); - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - return $db->loadAssocList('langtag', 'name'); - } - - return null; - } - - /** - * get get IDs of powers link to this path - * - * @param string $path The target PATH - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function paths(string $path): ?array - { - // get all this power ids - $ids = []; - - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select($db->quoteName(array('id', 'approved_paths'))) - ->from($db->quoteName('#__componentbuilder_power')) - ->where($db->quoteName('published') . ' = 1'); - - // we get only those that match the owner and repo (smaller set) - if (($pos = strpos($path, '/')) !== false) - { - $owner = substr($path, 0, $pos); - $repo = substr($path, $pos + 1); - $query - ->where($db->quoteName('approved_paths') . ' REGEXP ' . $db->quote($owner)) - ->where($db->quoteName('approved_paths') . ' REGEXP ' . $db->quote($repo)); - } - - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - $result = $db->loadAssocList('id', 'approved_paths'); - foreach ($result as $id => $paths) - { - if (JsonHelper::check($paths)) - { - $paths = json_decode($paths, true); - if (ArrayHelper::check($paths) && in_array($path, $paths, true)) - { - $ids[$id] = $id; - } - } - } - - if (ArrayHelper::check($ids)) - { - return $ids; - } - } - - return null; - } - - /** - * get available repositories of target area - * - * @param int $target The target area - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function repositories(int $target): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select($db->quoteName(array('repository', 'organisation'))) - ->from($db->quoteName('#__componentbuilder_repository')) - ->where($db->quoteName('published') . ' >= 1') - ->where($db->quoteName('target') . ' = ' . $target) - ->order($db->quoteName('ordering') . ' desc'); - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - $items = $db->loadObjectList(); - $options = []; - foreach($items as $item) - { - $path = $item->organisation . '/' . $item->repository; - $options[$path] = $path; - } - return $options; - } - - return null; - } - - /** - * Get a component admin views IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_component_admin_views(int $id): ?array - { - // get all this components views - $admin_view_ids = []; - - // get the views of this component - if ($add_views = GetHelper::var('component_admin_views', (int) $id, 'joomla_component', 'addadmin_views')) - { - if (JsonHelper::check($add_views)) - { - $add_views = json_decode($add_views, true); - if (ArrayHelper::check($add_views)) - { - foreach($add_views as $add_view) - { - if (isset($add_view['adminview'])) - { - $admin_view_ids[(int) $add_view['adminview']] = (int) $add_view['adminview']; - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($admin_view_ids)) - { - return array_values($admin_view_ids); - } - - return null; - } - - /** - * get a component custom admin views IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_component_custom_admin_views($id): ?array - { - // get all this components views - $admin_view_ids = []; - - // get the views of this component - if ($add_views = GetHelper::var('component_custom_admin_views', (int) $id, 'joomla_component', 'addcustom_admin_views')) - { - if (JsonHelper::check($add_views)) - { - $add_views = json_decode($add_views, true); - if (ArrayHelper::check($add_views)) - { - foreach($add_views as $add_view) - { - if (isset($add_view['customadminview'])) - { - $admin_view_ids[(int) $add_view['customadminview']] = (int) $add_view['customadminview']; - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($admin_view_ids)) - { - return array_values($admin_view_ids); - } - - return null; - } - - /** - * get a component site views IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_component_site_views($id): ?array - { - // get all this components views - $admin_view_ids = []; - - // get the views of this component - if ($add_views = GetHelper::var('component_site_views', (int) $id, 'joomla_component', 'addsite_views')) - { - if (JsonHelper::check($add_views)) - { - $add_views = json_decode($add_views, true); - if (ArrayHelper::check($add_views)) - { - foreach($add_views as $add_view) - { - if (isset($add_view['siteview'])) - { - $admin_view_ids[(int) $add_view['siteview']] = (int) $add_view['siteview']; - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($admin_view_ids)) - { - return array_values($admin_view_ids); - } - - return null; - } - - /** - * get a component fields IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_component($id): ?array - { - // we start the field array - $field_ids = []; - - // first get all views - $admin_view_ids = []; - - // get the views of this component - if ($add_views = GetHelper::var('component_admin_views', (int) $id, 'joomla_component', 'addadmin_views')) - { - if (JsonHelper::check($add_views)) - { - $add_views = json_decode($add_views, true); - if (ArrayHelper::check($add_views)) - { - foreach($add_views as $add_view) - { - if (isset($add_view['adminview'])) - { - $admin_view_ids[(int) $add_view['adminview']] = (int) $add_view['adminview']; - } - } - } - } - } - - // check that we have views - if (ArrayHelper::check($admin_view_ids)) - { - foreach ($admin_view_ids as $admin_view) - { - // get all the fields linked to the admin view - if ($add_fields = GetHelper::var('admin_fields', (int) $admin_view, 'admin_view', 'addfields')) - { - if (JsonHelper::check($add_fields)) - { - $add_fields = json_decode($add_fields, true); - if (ArrayHelper::check($add_fields)) - { - foreach($add_fields as $add_field) - { - if (isset($add_field['field'])) - { - $field_ids[(int) $add_field['field']] = (int) $add_field['field']; - } - } - } - } - } - } - } - - // get config values - if ($add_config = GetHelper::var('component_config', (int) $id, 'joomla_component', 'addconfig')) - { - if (JsonHelper::check($add_config)) - { - $add_config = json_decode($add_config, true); - if (ArrayHelper::check($add_config)) - { - foreach($add_config as $add_conf) - { - if (isset($add_conf['field'])) - { - $field_ids[(int) $add_conf['field']] = (int) $add_conf['field']; - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($field_ids)) - { - return array_values($field_ids); - } - - return null; - } - - /** - * get a module fields IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_module($id): ?array - { - // we start the field array - $field_ids = []; - - if ($fields = GetHelper::var('joomla_module', (int) $id, 'id', 'fields')) - { - if (JsonHelper::check($fields)) - { - $fields = json_decode($fields, true); - if (ArrayHelper::check($fields)) - { - foreach($fields as $form) - { - if (isset($form['fields']) && ArrayHelper::check($form['fields'])) - { - foreach ($form['fields'] as $field) - { - if (isset($field['field'])) - { - $field_ids[(int) $field['field']] = (int) $field['field']; - } - } - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($field_ids)) - { - return array_values($field_ids); - } - - return null; - } - - /** - * get a plugin fields IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_plugin($id): ?array - { - // we start the field array - $field_ids = []; - - if ($fields = GetHelper::var('joomla_plugin', (int) $id, 'id', 'fields')) - { - if (JsonHelper::check($fields)) - { - $fields = json_decode($fields, true); - if (ArrayHelper::check($fields)) - { - foreach($fields as $form) - { - if (isset($form['fields']) && ArrayHelper::check($form['fields'])) - { - foreach ($form['fields'] as $field) - { - if (isset($field['field'])) - { - $field_ids[(int) $field['field']] = (int) $field['field']; - } - } - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($field_ids)) - { - return array_values($field_ids); - } - - return null; - } - - /** - * get an admin view fields IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function admin_view($id): ?array - { - // we start the field array - $field_ids = []; - - // get all the fields linked to the admin view - if ($add_fields = GetHelper::var('admin_fields', (int) $id, 'admin_view', 'addfields')) - { - if (JsonHelper::check($add_fields)) - { - $add_fields = json_decode($add_fields, true); - if (ArrayHelper::check($add_fields)) - { - foreach($add_fields as $add_field) - { - if (isset($add_field['field'])) - { - $field_ids[(int) $add_field['field']] = (int) $add_field['field']; - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($field_ids)) - { - return array_values($field_ids); - } - - return null; - } - -} - diff --git a/src/cddcac51-9a46-47c4-ba59-105c70453bd6/code.power b/src/cddcac51-9a46-47c4-ba59-105c70453bd6/code.power deleted file mode 100644 index e98b951..0000000 --- a/src/cddcac51-9a46-47c4-ba59-105c70453bd6/code.power +++ /dev/null @@ -1,819 +0,0 @@ - /** - * get extensions grouped list xml - * - * @return string The XML string of Extentions - * @since 3.2.0 - */ - public static function extensions(): string - { - // the extension types - $extensions = array( - 'joomla_component' => JustTEXT::_('Component'), - 'joomla_module' => JustTEXT::_('Module'), - 'joomla_plugin' => JustTEXT::_('Plugin') - ); - - // get the extension values - foreach ($extensions as $extension => $label) - { - ${$extension} = self::names($extension); - } - - $xml = new \DOMDocument(); - $xml->formatOutput = true; - - $root = $xml->createElement('field'); - $root->setAttributeNode(new \DOMAttr('name', 'extension')); - $root->setAttributeNode(new \DOMAttr('type', 'groupedlist')); - $root->setAttributeNode(new \DOMAttr('onchange', 'this.form.submit();')); - - $root - ->appendChild($xml->createElement('option', '- ' . Text::_('Select Extension') . ' -')) - ->setAttributeNode(new \DOMAttr('value', '')); - - foreach ($extensions as $extension => $label) - { - $extension_node = $xml->createElement('group'); - $extension_node->setAttributeNode(new \DOMAttr('label', $label)); - if (!ArrayHelper::check(${$extension})) - { - $extension_node - ->appendChild($xml->createElement('option', '- ' . Text::_('None') . ' -')) - ->setAttributeNode(new \DOMAttr('disabled', 'true')); - } - else - { - foreach (${$extension} as $id => $element) - { - $extension_node - ->appendChild($xml->createElement('option', $element)) - ->setAttributeNode(new \DOMAttr('value', $extension . '__' . $id)); - } - } - $root->appendChild($extension_node); - } - $xml->appendChild($root); - - return $xml->saveXML(); - } - - /** - * Get by type the ids and system names - * - * @param string $type The table name to get system names for - * @param string|null $limiter The to limit by limiter table - * - * @return array|null The array of system name and IDs - * @since 3.2.0 - */ - public static function names(string $type, ?string $limiter = null): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - - $query - ->select($db->quoteName(array('id', 'system_name'))) - ->from($db->quoteName('#__componentbuilder_' . $type)) - ->where($db->quoteName('published') . ' >= 1') - ->order($db->quoteName('modified') . ' desc') - ->order($db->quoteName('created') . ' desc'); - - // check if we have a limiter for admin views - if ($type === 'admin_view' && $limiter) - { - // first get all views - $admin_view_ids = array(); - - // if this is a plugin or a module, then no views - if (strpos($limiter, 'joomla_component') !== false) - { - $component = (int) str_replace('joomla_component__', '', $limiter); - // get the views of this component - if ($add_views = GetHelper::var('component_admin_views', (int) $component, 'joomla_component', 'addadmin_views')) - { - if (JsonHelper::check($add_views)) - { - $add_views = json_decode($add_views, true); - if (ArrayHelper::check($add_views)) - { - foreach($add_views as $add_view) - { - if (isset($add_view['adminview'])) - { - $admin_view_ids[(int) $add_view['adminview']] = (int) $add_view['adminview']; - } - } - } - } - } - } - // now check if we still have admin views - if (ArrayHelper::check($admin_view_ids)) - { - $query->where($db->quoteName('id') . ' IN (' . implode(',', $admin_view_ids) . ')'); - } - else - { - return null; - } - } - - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - return $db->loadAssocList('id', 'system_name'); - } - - return null; - } - - /** - * get any area linked IDs - * - * @param int $id The target ID - * @param string $method The target method - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function linked(int $id, string $method): ?array - { - // check if method exist - if (method_exists(__CLASS__, $method)) - { - return self::{$method}($id); - } - - return null; - } - - /** - * get the substrings of the namespace until the last "\" or "." - * - * @return array|null The result substrings - * @since 3.2.0 - **/ - public static function namespaces(): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select( - 'DISTINCT REPLACE(SUBSTRING(' - . $db->quoteName('namespace') - . ', 1, LENGTH(' - . $db->quoteName('namespace') - . ') - LEAST(' - . 'IF(LOCATE(' - . $db->quote('\\') - . ', ' . $db->quoteName('namespace') - . ') > 0, LOCATE(' - . $db->quote('\\') - . ', REVERSE(' - . $db->quoteName('namespace') - . ')), 0), ' - . 'IF(LOCATE(' - . $db->quote('.') - . ', ' . $db->quoteName('namespace') - . ') > 0, LOCATE(' - . $db->quote('.') - . ', REVERSE(' - . $db->quoteName('namespace') - . ')), 0))), ".", "\\\") AS trimmed_namespace' - ) - ->from($db->quoteName('#__componentbuilder_power')) - ->where($db->quoteName('published') . ' = 1') - ->order('LENGTH(trimmed_namespace) ASC, trimmed_namespace ASC'); - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - return $db->loadAssocList('trimmed_namespace', 'trimmed_namespace'); - } - - return null; - } - - /** - * get get IDs of powers matching namespaces - * - * @param string $namespace The target namespace - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function namegroup(string $namespace): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select($db->quoteName(array('id'))) - ->from($db->quoteName('#__componentbuilder_power')) - ->where($db->quoteName('published') . ' = 1'); - - // we get only those that match the owner and repo (smaller set) - $paths = explode('\\', $namespace); - foreach ($paths as $path) - { - $query->where($db->quoteName('namespace') . ' REGEXP ' . $db->quote($path)); - } - - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - return $db->loadColumn(); - } - - return null; - } - - /** - * get translation extension ids - * - * @param int $extension The target ID - * @param string $type The target method - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function translation(int $extension, string $type): ?array - { - // only allow these columns (extension types) - $columns = array( - 'joomla_component' => 'components', - 'joomla_module' => 'modules', - 'joomla_plugin' => 'plugins' - ); - - // check if the column name is correct - if (isset($columns[$type])) - { - $column = $columns[$type]; - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select($db->quoteName(array('id', $column))) - ->from($db->quoteName('#__componentbuilder_language_translation')) - ->where($db->quoteName($column) . ' != ' . $db->quote('')); - - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - $results = $db->loadAssocList(); - $matches = []; - foreach ($results as $k => $v) - { - $value = json_decode($v[$column], true); - if (in_array($extension, $value)) - { - $matches[$v['id']] = $v['id']; - } - } - - // Checks that we found matches - if (ArrayHelper::check($matches)) - { - return array_values($matches); - } - } - } - - return null; - } - - /** - * get translation ids - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function translations($language, $translated = true): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - - $query - ->select($db->quoteName('id')) - ->from($db->quoteName('#__componentbuilder_language_translation')); - - // Build the where condition - if ($translated === true) // Translated - { - if ($language === 'all') - { - if (($languages = self::languages()) !== null) - { - $wheres = []; - foreach ($languages as $k => $v) - { - $wheres[] = $db->quoteName('translation') . ' LIKE ' . $db->quote('%' . $k . '%'); - } - $query->where($wheres); - } - } - else - { - $query->where($db->quoteName('translation') . ' LIKE ' . $db->quote('%' . $language . '%')); - } - } - else // Not translated - { - if ($language === 'none') - { - $query->where( - array( - $db->quoteName('translation') . ' = ' . $db->quote(''), - $db->quoteName('translation') . ' = ' . $db->quote('[]'), - $db->quoteName('translation') . ' = ' . $db->quote('{}') - ), 'OR' - ); - } - else - { - $query->where($db->quoteName('translation') . ' NOT LIKE ' . $db->quote('%' . $language . '%')); - } - } - - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - return array_unique($db->loadColumn()); - } - - return null; - } - - /** - * get available languages - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function languages(): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select($db->quoteName(array('langtag', 'name'))) - ->from($db->quoteName('#__componentbuilder_language')) - ->where($db->quoteName('published') . ' = 1') - ->order($db->quoteName('name') . ' desc'); - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - return $db->loadAssocList('langtag', 'name'); - } - - return null; - } - - /** - * get get IDs of powers link to this path - * - * @param string $path The target PATH - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function paths(string $path): ?array - { - // get all this power ids - $ids = []; - - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select($db->quoteName(array('id', 'approved_paths'))) - ->from($db->quoteName('#__componentbuilder_power')) - ->where($db->quoteName('published') . ' = 1'); - - // we get only those that match the owner and repo (smaller set) - if (($pos = strpos($path, '/')) !== false) - { - $owner = substr($path, 0, $pos); - $repo = substr($path, $pos + 1); - $query - ->where($db->quoteName('approved_paths') . ' REGEXP ' . $db->quote($owner)) - ->where($db->quoteName('approved_paths') . ' REGEXP ' . $db->quote($repo)); - } - - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - $result = $db->loadAssocList('id', 'approved_paths'); - foreach ($result as $id => $paths) - { - if (JsonHelper::check($paths)) - { - $paths = json_decode($paths, true); - if (ArrayHelper::check($paths) && in_array($path, $paths, true)) - { - $ids[$id] = $id; - } - } - } - - if (ArrayHelper::check($ids)) - { - return $ids; - } - } - - return null; - } - - /** - * get available repositories of target area - * - * @param int $target The target area - * - * @return array|null The result ids - * @since 3.2.0 - **/ - public static function repositories(int $target): ?array - { - $db = Factory::getDbo(); - $query = $db->getQuery(true); - $query - ->select($db->quoteName(array('repository', 'organisation'))) - ->from($db->quoteName('#__componentbuilder_repository')) - ->where($db->quoteName('published') . ' >= 1') - ->where($db->quoteName('target') . ' = ' . $target) - ->order($db->quoteName('ordering') . ' desc'); - $db->setQuery($query); - $db->execute(); - - if ($db->getNumRows()) - { - $items = $db->loadObjectList(); - $options = []; - foreach($items as $item) - { - $path = $item->organisation . '/' . $item->repository; - $options[$path] = $path; - } - return $options; - } - - return null; - } - - /** - * Get a component admin views IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_component_admin_views(int $id): ?array - { - // get all this components views - $admin_view_ids = []; - - // get the views of this component - if ($add_views = GetHelper::var('component_admin_views', (int) $id, 'joomla_component', 'addadmin_views')) - { - if (JsonHelper::check($add_views)) - { - $add_views = json_decode($add_views, true); - if (ArrayHelper::check($add_views)) - { - foreach($add_views as $add_view) - { - if (isset($add_view['adminview'])) - { - $admin_view_ids[(int) $add_view['adminview']] = (int) $add_view['adminview']; - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($admin_view_ids)) - { - return array_values($admin_view_ids); - } - - return null; - } - - /** - * get a component custom admin views IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_component_custom_admin_views($id): ?array - { - // get all this components views - $admin_view_ids = []; - - // get the views of this component - if ($add_views = GetHelper::var('component_custom_admin_views', (int) $id, 'joomla_component', 'addcustom_admin_views')) - { - if (JsonHelper::check($add_views)) - { - $add_views = json_decode($add_views, true); - if (ArrayHelper::check($add_views)) - { - foreach($add_views as $add_view) - { - if (isset($add_view['customadminview'])) - { - $admin_view_ids[(int) $add_view['customadminview']] = (int) $add_view['customadminview']; - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($admin_view_ids)) - { - return array_values($admin_view_ids); - } - - return null; - } - - /** - * get a component site views IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_component_site_views($id): ?array - { - // get all this components views - $admin_view_ids = []; - - // get the views of this component - if ($add_views = GetHelper::var('component_site_views', (int) $id, 'joomla_component', 'addsite_views')) - { - if (JsonHelper::check($add_views)) - { - $add_views = json_decode($add_views, true); - if (ArrayHelper::check($add_views)) - { - foreach($add_views as $add_view) - { - if (isset($add_view['siteview'])) - { - $admin_view_ids[(int) $add_view['siteview']] = (int) $add_view['siteview']; - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($admin_view_ids)) - { - return array_values($admin_view_ids); - } - - return null; - } - - /** - * get a component fields IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_component($id): ?array - { - // we start the field array - $field_ids = []; - - // first get all views - $admin_view_ids = []; - - // get the views of this component - if ($add_views = GetHelper::var('component_admin_views', (int) $id, 'joomla_component', 'addadmin_views')) - { - if (JsonHelper::check($add_views)) - { - $add_views = json_decode($add_views, true); - if (ArrayHelper::check($add_views)) - { - foreach($add_views as $add_view) - { - if (isset($add_view['adminview'])) - { - $admin_view_ids[(int) $add_view['adminview']] = (int) $add_view['adminview']; - } - } - } - } - } - - // check that we have views - if (ArrayHelper::check($admin_view_ids)) - { - foreach ($admin_view_ids as $admin_view) - { - // get all the fields linked to the admin view - if ($add_fields = GetHelper::var('admin_fields', (int) $admin_view, 'admin_view', 'addfields')) - { - if (JsonHelper::check($add_fields)) - { - $add_fields = json_decode($add_fields, true); - if (ArrayHelper::check($add_fields)) - { - foreach($add_fields as $add_field) - { - if (isset($add_field['field'])) - { - $field_ids[(int) $add_field['field']] = (int) $add_field['field']; - } - } - } - } - } - } - } - - // get config values - if ($add_config = GetHelper::var('component_config', (int) $id, 'joomla_component', 'addconfig')) - { - if (JsonHelper::check($add_config)) - { - $add_config = json_decode($add_config, true); - if (ArrayHelper::check($add_config)) - { - foreach($add_config as $add_conf) - { - if (isset($add_conf['field'])) - { - $field_ids[(int) $add_conf['field']] = (int) $add_conf['field']; - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($field_ids)) - { - return array_values($field_ids); - } - - return null; - } - - /** - * get a module fields IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_module($id): ?array - { - // we start the field array - $field_ids = []; - - if ($fields = GetHelper::var('joomla_module', (int) $id, 'id', 'fields')) - { - if (JsonHelper::check($fields)) - { - $fields = json_decode($fields, true); - if (ArrayHelper::check($fields)) - { - foreach($fields as $form) - { - if (isset($form['fields']) && ArrayHelper::check($form['fields'])) - { - foreach ($form['fields'] as $field) - { - if (isset($field['field'])) - { - $field_ids[(int) $field['field']] = (int) $field['field']; - } - } - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($field_ids)) - { - return array_values($field_ids); - } - - return null; - } - - /** - * get a plugin fields IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function joomla_plugin($id): ?array - { - // we start the field array - $field_ids = []; - - if ($fields = GetHelper::var('joomla_plugin', (int) $id, 'id', 'fields')) - { - if (JsonHelper::check($fields)) - { - $fields = json_decode($fields, true); - if (ArrayHelper::check($fields)) - { - foreach($fields as $form) - { - if (isset($form['fields']) && ArrayHelper::check($form['fields'])) - { - foreach ($form['fields'] as $field) - { - if (isset($field['field'])) - { - $field_ids[(int) $field['field']] = (int) $field['field']; - } - } - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($field_ids)) - { - return array_values($field_ids); - } - - return null; - } - - /** - * get an admin view fields IDs - * - * @param int $id The target ID - * - * @return array|null The result ids - * @since 3.2.0 - */ - private static function admin_view($id): ?array - { - // we start the field array - $field_ids = []; - - // get all the fields linked to the admin view - if ($add_fields = GetHelper::var('admin_fields', (int) $id, 'admin_view', 'addfields')) - { - if (JsonHelper::check($add_fields)) - { - $add_fields = json_decode($add_fields, true); - if (ArrayHelper::check($add_fields)) - { - foreach($add_fields as $add_field) - { - if (isset($add_field['field'])) - { - $field_ids[(int) $add_field['field']] = (int) $add_field['field']; - } - } - } - } - } - - // check that we have fields - if (ArrayHelper::check($field_ids)) - { - return array_values($field_ids); - } - - return null; - } diff --git a/src/ce8cf834-6bac-44fb-941c-861f7e046cc0/README.md b/src/ce8cf834-6bac-44fb-941c-861f7e046cc0/README.md index c43cd3c..5e181ea 100644 --- a/src/ce8cf834-6bac-44fb-941c-861f7e046cc0/README.md +++ b/src/ce8cf834-6bac-44fb-941c-861f7e046cc0/README.md @@ -8,7 +8,7 @@ ``` # abstract class NamespaceHelper (Details) > namespace: **VDM\Joomla\Utilities\String** -> extends: **** + ```uml @startuml abstract NamespaceHelper #Orange { @@ -33,6 +33,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---ce8cf834_6bac_44fb_941c_861f7e046cc0---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/cefe4092-a4c2-41a6-a683-bd3ab5419cc6/README.md b/src/cefe4092-a4c2-41a6-a683-bd3ab5419cc6/README.md index 345798d..ac884e6 100644 --- a/src/cefe4092-a4c2-41a6-a683-bd3ab5419cc6/README.md +++ b/src/cefe4092-a4c2-41a6-a683-bd3ab5419cc6/README.md @@ -9,6 +9,7 @@ # abstract class GetHelperExtrusion (Details) > namespace: **VDM\Joomla\Utilities** > extends: **GetHelper** + ```uml @startuml abstract GetHelperExtrusion #Orange { @@ -44,6 +45,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---cefe4092_a4c2_41a6_a683_bd3ab5419cc6---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/d8f9ba53-c490-4e8b-8e9f-6757224e069c/README.md b/src/d8f9ba53-c490-4e8b-8e9f-6757224e069c/README.md index f629a79..4c33b8e 100644 --- a/src/d8f9ba53-c490-4e8b-8e9f-6757224e069c/README.md +++ b/src/d8f9ba53-c490-4e8b-8e9f-6757224e069c/README.md @@ -8,7 +8,7 @@ ``` # interface DeleteInterface (Details) > namespace: **VDM\Joomla\Interfaces\Data** -> extends: **** + ```uml @startuml interface DeleteInterface #Lavender { @@ -49,6 +49,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---d8f9ba53_c490_4e8b_8e9f_6757224e069c---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/db87c339-5bb6-4291-a7ef-2c48ea1b06bc/README.md b/src/db87c339-5bb6-4291-a7ef-2c48ea1b06bc/README.md index 459b9ef..14f4f8a 100644 --- a/src/db87c339-5bb6-4291-a7ef-2c48ea1b06bc/README.md +++ b/src/db87c339-5bb6-4291-a7ef-2c48ea1b06bc/README.md @@ -8,7 +8,7 @@ ``` # abstract class GetHelper (Details) > namespace: **VDM\Joomla\Utilities** -> extends: **** + ```uml @startuml abstract GetHelper #Orange { @@ -77,6 +77,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---db87c339_5bb6_4291_a7ef_2c48ea1b06bc---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/README.md b/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/README.md index 5e5a4a0..abf6780 100644 --- a/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/README.md +++ b/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/README.md @@ -8,7 +8,7 @@ ``` # final class MultiSubform (Details) > namespace: **VDM\Joomla\Data** -> extends: **** + ```uml @startuml class MultiSubform << (F,LightGreen) >> #RoyalBlue { @@ -256,6 +256,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---e0198c3f_777a_4a0b_87b7_e6a198afc8f9---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/code.php b/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/code.php index f1aca34..24853e8 100644 --- a/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/code.php +++ b/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/code.php @@ -46,7 +46,7 @@ final class MultiSubform implements MultiSubformInterface /** * Get a subform items * - * @param array $getMap The the map to get the subfrom data + * @param array $getMap The map to get the subfrom data * * Example: * $getMap = [ @@ -95,7 +95,7 @@ final class MultiSubform implements MultiSubformInterface * Set a subform items * * @param mixed $items The list of items from the subform to set - * @param array $setMap The the map to set the subfrom data + * @param array $setMap The map to set the subfrom data * * Example: * $items, @@ -128,7 +128,7 @@ final class MultiSubform implements MultiSubformInterface // catch an empty set if (!is_array($items)) { - $items = []; // will delete all exisitng linked items :( not ideal, but real + $items = []; // will delete all existing linked items :( not ideal, but real } // Save the core data @@ -173,7 +173,7 @@ final class MultiSubform implements MultiSubformInterface * Set data based on provided map configuration. * * @param array $items The list of items from the subform to set - * @param array $map The the map to set the subfrom data + * @param array $map The map to set the subfrom data * @param array|null $coreData The core data to be appended with subform data * * @return bool diff --git a/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/code.power b/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/code.power index 4a9e127..3c6b90d 100644 --- a/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/code.power +++ b/src/e0198c3f-777a-4a0b-87b7-e6a198afc8f9/code.power @@ -21,7 +21,7 @@ /** * Get a subform items * - * @param array $getMap The the map to get the subfrom data + * @param array $getMap The map to get the subfrom data * * Example: * $getMap = [ @@ -70,7 +70,7 @@ * Set a subform items * * @param mixed $items The list of items from the subform to set - * @param array $setMap The the map to set the subfrom data + * @param array $setMap The map to set the subfrom data * * Example: * $items, @@ -103,7 +103,7 @@ // catch an empty set if (!is_array($items)) { - $items = []; // will delete all exisitng linked items :( not ideal, but real + $items = []; // will delete all existing linked items :( not ideal, but real } // Save the core data @@ -148,7 +148,7 @@ * Set data based on provided map configuration. * * @param array $items The list of items from the subform to set - * @param array $map The the map to set the subfrom data + * @param array $map The map to set the subfrom data * @param array|null $coreData The core data to be appended with subform data * * @return bool diff --git a/src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6/README.md b/src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6/README.md index 02118ed..f85b571 100644 --- a/src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6/README.md +++ b/src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6/README.md @@ -8,7 +8,7 @@ ``` # abstract class BaseTable (Details) > namespace: **VDM\Joomla\Abstraction** -> extends: **** + ```uml @startuml abstract BaseTable #Orange { @@ -124,6 +124,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---e0f6ddbe_2a35_4537_942c_faff2ebd04f6---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/README.md b/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/README.md new file mode 100644 index 0000000..e52ca9f --- /dev/null +++ b/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/README.md @@ -0,0 +1,76 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# interface RemoteSetInterface (Details) +> namespace: **VDM\Joomla\Interfaces\Data** + +```uml +@startuml +interface RemoteSetInterface #Lavender { + + table(string $table) : self + + setSettingsPath(string $settingsPath) : self + + items(array $guids) : bool + + getTable() : string +} + +note right of RemoteSetInterface::table + Set the current active table + + since: 3.2.2 + return: self +end note + +note right of RemoteSetInterface::setSettingsPath + Set the settings path + + since: 3.2.2 + return: self +end note + +note right of RemoteSetInterface::items + Save items remotely + + since: 3.2.2 + return: bool +end note + +note right of RemoteSetInterface::getTable + Get the current active table + + since: 3.2.2 + return: string +end note + +@enduml +``` + +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---e335dd61_c2f9_4536_8ed9_aec5edee0b26---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/code.php b/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/code.php new file mode 100644 index 0000000..fa9016e --- /dev/null +++ b/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/code.php @@ -0,0 +1,61 @@ + + * @git 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\Interfaces\Data; + + +/** + * Set data based on global unique ids to remote system + * + * @since 3.2.2 + */ +interface RemoteSetInterface +{ + /** + * Set the current active table + * + * @param string $table The table that should be active + * + * @return self + * @since 3.2.2 + */ + public function table(string $table): self; + + /** + * Set the settings path + * + * @param string $settingsPath The repository settings path + * + * @return self + * @since 3.2.2 + */ + public function setSettingsPath(string $settingsPath): self; + + /** + * Save items remotely + * + * @param array $guids The global unique id of the item + * + * @return bool + * @throws \Exception + * @since 3.2.2 + */ + public function items(array $guids): bool; + + /** + * Get the current active table + * + * @return string + * @since 3.2.2 + */ + public function getTable(): string; +} + diff --git a/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/code.power b/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/code.power new file mode 100644 index 0000000..78d69dd --- /dev/null +++ b/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/code.power @@ -0,0 +1,38 @@ + /** + * Set the current active table + * + * @param string $table The table that should be active + * + * @return self + * @since 3.2.2 + */ + public function table(string $table): self; + + /** + * Set the settings path + * + * @param string $settingsPath The repository settings path + * + * @return self + * @since 3.2.2 + */ + public function setSettingsPath(string $settingsPath): self; + + /** + * Save items remotely + * + * @param array $guids The global unique id of the item + * + * @return bool + * @throws \Exception + * @since 3.2.2 + */ + public function items(array $guids): bool; + + /** + * Get the current active table + * + * @return string + * @since 3.2.2 + */ + public function getTable(): string; \ No newline at end of file diff --git a/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/settings.json b/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/settings.json new file mode 100644 index 0000000..84576fe --- /dev/null +++ b/src/e335dd61-c2f9-4536-8ed9-aec5edee0b26/settings.json @@ -0,0 +1,19 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "", + "guid": "e335dd61-c2f9-4536-8ed9-aec5edee0b26", + "implements": null, + "load_selection": null, + "name": "RemoteSetInterface", + "power_version": "1.0.0", + "system_name": "VDM.Interfaces.RemoteSetInterface", + "type": "interface", + "use_selection": null, + "extendsinterfaces": null, + "namespace": "[[[NamespacePrefix]]]\\Joomla\\Interfaces.Data.RemoteSetInterface", + "description": "Set data based on global unique ids to remote system\r\n\r\n@since 3.2.2", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \r\n * @git 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": "" +} \ No newline at end of file diff --git a/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/README.md b/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/README.md index d89618a..92c6da6 100644 --- a/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/README.md +++ b/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/README.md @@ -6,34 +6,42 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Repository (Details) -> namespace: **VDM\Joomla\Data** -> extends: **** +# class Set (Details) +> namespace: **VDM\Joomla\Data\Remote** + ```uml @startuml -class Repository #Gold { +class Set #Gold { # Grep $grep # Items $items + # ItemReadme $itemReadme + # MainReadme $mainReadme # Git $git + array $repos # string $table # array $map + # array $settings + __construct(array $repos, Grep $grep, ...) + table(string $table) : self - + set(array $guids) : bool + + setSettingsPath(string $settingsPath) : self + + items(array $guids) : bool + getTable() : string - + getLocalItems(array $guids) : ?array + # {abstract} updateItem(object $item, object $existing, ...) : bool + # {abstract} createItem(object $item, object $repo) : void + # {abstract} updateItemReadme(object $item, object $existing, ...) : void + # {abstract} createItemReadme(object $item, object $repo) : void + # {abstract} saveRepoMainSettings(array $repo) : void + # getLocalItems(array $guids) : ?array + # save(object $item) : void # fetchLocalItems(array $guids) : ?array # mapItems(array $items) : array # mapItem(object $item) : object - # getRepoItems(array $guids) : ?array # canWrite() : bool # areObjectsEqual(object $obj1, object $obj2) : bool - # updateItem(object $item, object $existing) : void - # createItem(object $item) : void + # getSettingsPath() : string } -note right of Repository::__construct +note right of Set::__construct Constructor. since: 3.2.2 @@ -42,74 +50,129 @@ note right of Repository::__construct array $repos Grep $grep Items $items + ItemReadme $itemReadme + MainReadme $mainReadme Git $git ?string $table = null + ?string $settingsPath = null end note -note left of Repository::table +note left of Set::table Set the current active table since: 3.2.2 return: self end note -note right of Repository::set - Set items +note right of Set::setSettingsPath + Set the settings path - since: 3.2.0 + since: 3.2.2 + return: self +end note + +note left of Set::items + Save items remotely + + since: 3.2.2 return: bool end note -note left of Repository::getTable +note right of Set::getTable Get the current active table since: 3.2.2 return: string end note -note right of Repository::getLocalItems +note left of Set::updateItem + update an existing item (if changed) + + since: 3.2.2 + return: bool + + arguments: + object $item + object $existing + object $repo +end note + +note right of Set::createItem + create a new item + + since: 3.2.2 + return: void +end note + +note left of Set::updateItemReadme + update an existing item readme + + since: 3.2.2 + return: void + + arguments: + object $item + object $existing + object $repo +end note + +note right of Set::createItemReadme + create a new item readme + + since: 3.2.2 + return: void +end note + +note left of Set::saveRepoMainSettings + Update/Create the repo main readme and index + + since: 3.2.2 + return: void +end note + +note right of Set::getLocalItems Get items since: 3.2.2 return: ?array end note -note left of Repository::fetchLocalItems +note left of Set::save + Save an item remotely + + since: 3.2.2 + return: void +end note + +note right of Set::fetchLocalItems Fetch items from the database since: 3.2.2 return: ?array end note -note right of Repository::mapItems +note left of Set::mapItems Map items to their properties since: 3.2.2 return: array end note -note left of Repository::mapItem +note right of Set::mapItem Map a single item to its properties since: 3.2.2 return: object end note -note right of Repository::getRepoItems - get existing items - - since: 3.2.2 - return: ?array -end note - -note left of Repository::canWrite +note left of Set::canWrite check that we have an active repo towards which we can write data since: 3.2.2 return: bool end note -note right of Repository::areObjectsEqual +note right of Set::areObjectsEqual Checks if two objects are equal by comparing their JSON representations. This method converts both input objects to JSON strings and compares these strings. If the JSON strings are identical, the objects are considered equal. @@ -118,23 +181,30 @@ If the JSON strings are identical, the objects are considered equal. return: bool end note -note left of Repository::updateItem - update an existing item (if changed) +note left of Set::getSettingsPath + Get the settings path since: 3.2.2 - return: void -end note - -note right of Repository::createItem - create a new item - - since: 3.2.2 - return: void + return: string end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---eb7d69c2_4ee9_4bd0_aacc_ab51a12be895---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/code.php b/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/code.php index 44e6bf6..df82ccc 100644 --- a/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/code.php +++ b/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/code.php @@ -9,12 +9,15 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ -namespace VDM\Joomla\Data; +namespace VDM\Joomla\Data\Remote; use VDM\Joomla\Interfaces\GrepInterface as Grep; use VDM\Joomla\Interfaces\Data\ItemsInterface as Items; +use VDM\Joomla\Interfaces\Readme\ItemInterface as ItemReadme; +use VDM\Joomla\Interfaces\Readme\MainInterface as MainReadme; use VDM\Joomla\Gitea\Repository\Contents as Git; +use VDM\Joomla\Interfaces\Data\RemoteSetInterface; /** @@ -22,10 +25,10 @@ use VDM\Joomla\Gitea\Repository\Contents as Git; * * @since 3.2.2 */ -class Repository +class Set implements RemoteSetInterface { /** - * The GrepInterface Class. + * The Grep Class. * * @var Grep * @since 3.2.2 @@ -33,13 +36,29 @@ class Repository protected Grep $grep; /** - * The ItemsInterface Class. + * The Items Class. * * @var Items * @since 3.2.2 */ protected Items $items; + /** + * The Item Readme Class. + * + * @var ItemReadme + * @since 3.2.2 + */ + protected ItemReadme $itemReadme; + + /** + * The Main Readme Class. + * + * @var MainReadme + * @since 3.2.2 + */ + protected MainReadme $mainReadme; + /** * The Contents Class. * @@ -51,7 +70,7 @@ class Repository /** * All active repos * - * @var array + * @var array * @since 3.2.0 **/ public array $repos; @@ -59,7 +78,7 @@ class Repository /** * Table Name * - * @var string + * @var string * @since 3.2.1 */ protected string $table; @@ -67,32 +86,62 @@ class Repository /** * The item map * - * @var array + * @var array * @since 3.2.2 */ protected array $map; + /** + * The repo main settings + * + * @var array + * @since 3.2.2 + */ + protected array $settings; + + /** + * The item settings file path + * + * @var string + * @since 3.2.2 + */ + protected string $settings_path = 'item.json'; + /** * Constructor. * - * @param array $repos The active repos - * @param Grep $grep The GrepInterface Class. - * @param Items $items The ItemsInterface Class. - * @param Git $git The Contents Class. - * @param string|null $table The table name. + * @param array $repos The active repos + * @param Grep $grep The Grep Class. + * @param Items $items The Items Class. + * @param ItemReadme $itemReadme The Item Readme Class. + * @param MainReadme $mainReadme The Main Readme Class. + * @param Git $git The Contents Class. + * @param string|null $table The table name. + * @param string|null $settingsPath The settings path. * * @since 3.2.2 */ - public function __construct(array $repos, Grep $grep, Items $items, Git $git, ?string $table = null) + public function __construct(array $repos, Grep $grep, Items $items, + ItemReadme $itemReadme, MainReadme $mainReadme, Git $git, + ?string $table = null, ?string $settingsPath = null) { $this->repos = $repos; $this->grep = $grep; $this->items = $items; + $this->itemReadme = $itemReadme; + $this->mainReadme = $mainReadme; $this->git = $git; + if ($table !== null) { $this->table = $table; } + + if ($settingsPath !== null) + { + $this->settings_path = $settingsPath; + } + // set the branch to writing $this->grep->setBranchField('write_branch'); } @@ -113,43 +162,56 @@ class Repository } /** - * Set items + * Set the settings path + * + * @param string $settingsPath The repository settings path + * + * @return self + * @since 3.2.2 + */ + public function setSettingsPath(string $settingsPath): self + { + $this->settings_path = $settingsPath; + + return $this; + } + + /** + * Save items remotely * * @param array $guids The global unique id of the item * * @return bool * @throws \Exception - * @since 3.2.0 + * @since 3.2.2 */ - public function set(array $guids): bool + public function items(array $guids): bool { - if (($items = $this->getLocalItems($guids)) === null) - { - throw new \Exception("At least one valid local [Joomla Power] must exist for the push function to operate correctly."); - } - if (!$this->canWrite()) { - throw new \Exception("At least one [Joomla Power] content repository must be configured with a [Write Branch] value in the repositories area for the push function to operate correctly."); + throw new \Exception("At least one [Item] content repository must be configured with a [Write Branch] value in the repositories area for the push function to operate correctly."); } - // update the existing found - if (($existing_items = $this->getRepoItems($guids)) !== []) + // we reset the index settings + $this->settings = []; + + if (($items = $this->getLocalItems($guids)) === null) { - foreach ($existing_items as $e_guid => $item) - { - if (isset($items[$e_guid])) - { - $this->updateItem($items[$e_guid], $item); - unset($items[$e_guid]); - } - } + throw new \Exception("At least one valid local [Item] must exist for the push function to operate correctly."); } - // create the new items foreach ($items as $item) { - $this->createItem($item); + $this->save($item); + } + + // update the repos main readme and index settings + if ($this->settings !== []) + { + foreach ($this->settings as $repo) + { + $this->saveRepoMainSettings($repo); + } } return true; @@ -166,6 +228,62 @@ class Repository return $this->table; } + /** + * update an existing item (if changed) + * + * @param object $item + * @param object $existing + * @param object $repo + * + * @return bool + * @since 3.2.2 + */ + abstract protected function updateItem(object $item, object $existing, object $repo): bool; + + /** + * create a new item + * + * @param object $item + * @param object $repo + * + * @return void + * @since 3.2.2 + */ + abstract protected function createItem(object $item, object $repo): void; + + /** + * update an existing item readme + * + * @param object $item + * @param object $existing + * @param object $repo + * + * @return void + * @since 3.2.2 + */ + abstract protected function updateItemReadme(object $item, object $existing, object $repo): void; + + /** + * create a new item readme + * + * @param object $item + * @param object $repo + * + * @return void + * @since 3.2.2 + */ + abstract protected function createItemReadme(object $item, object $repo): void; + + /** + * Update/Create the repo main readme and index + * + * @param array $repo + * + * @return void + * @since 3.2.2 + */ + abstract protected function saveRepoMainSettings(array $repo): void; + /** * Get items * @@ -174,7 +292,7 @@ class Repository * @return array|null * @since 3.2.2 */ - public function getLocalItems(array $guids): ?array + protected function getLocalItems(array $guids): ?array { $items = $this->fetchLocalItems($guids); @@ -186,10 +304,56 @@ class Repository return $this->mapItems($items); } + /** + * Save an item remotely + * + * @param object $item The item to save + * + * @return void + * @since 3.2.2 + */ + protected function save(object $item): void + { + foreach ($this->repos as $key => $repo) + { + if (empty($repo->write_branch) || $repo->write_branch === 'default') + { + continue; + } + + $this->git->load_($repo->base ?? null, $repo->token ?? null); + + if (($existing = $this->grep->get($guid, ['remote'], $repo)) !== null) + { + if ($this->updateItem($item, $existing, $repo)) + { + $this->updateItemReadme($item, $existing, $repo); + } + } + else + { + $this->createItem($item, $repo); + + $this->createItemReadme($item, $repo); + + if (!isset($this->settings[$key])) + { + $this->settings[$key] = ['repo' => $repo, 'items' => [$item]); + } + else + { + $this->settings[$key]['items'][] = $item; + } + } + + $this->git->reset_(); + } + } + /** * Fetch items from the database * - * @param array $guids The global unique id of the item + * @param array $guids The global unique ids of the items * * @return array|null * @since 3.2.2 @@ -244,28 +408,6 @@ class Repository return (object) $power; } - /** - * get existing items - * - * @param array $guids The global unique id of the item - * - * @return array|null - * @since 3.2.2 - */ - protected function getRepoItems(array $guids): ?array - { - $bucket = []; - foreach ($guids as $guid) - { - if (($item = $this->grep->get($guid)) !== null) - { - $bucket[$guid] = (object) $item; - } - } - - return $bucket ?? null; - } - /** * check that we have an active repo towards which we can write data * @@ -308,79 +450,14 @@ class Repository } /** - * update an existing item (if changed) + * Get the settings path * - * @param object $item - * @param object $existing - * - * @return void + * @return string * @since 3.2.2 */ - protected function updateItem(object $item, object $existing): void + protected function getSettingsPath(): string { - if (isset($existing->params->source) && is_array($existing->params->source)) - { - // get the source values - $source = $existing->params->source; - - // make sure there was a change - $existing = $this->mapItem($existing); - if ($this->areObjectsEqual($item, $existing)) - { - return; - } - - foreach ($this->repos as $repo) - { - if (isset($source[$repo->guid])) - { - $this->git->load_($repo->base ?? null, $repo->token ?? null); - $this->git->update( - $repo->organisation, // The owner name. - $repo->repository, // The repository name. - 'src/' . $item->guid . '/item.json', // The file path. - json_encode($item, JSON_PRETTY_PRINT), // The file content. - 'Update ' . $item->system_name, // The commit message. - $source[$repo->guid], // The blob SHA of the old file. - $repo->write_branch // The branch name. - ); - $this->git->reset_(); - - // only update in the first found repo - return; - } - } - } - } - - /** - * create a new item - * - * @param object $item - * - * @return void - * @since 3.2.2 - */ - protected function createItem(object $item): void - { - foreach ($this->repos as $repo) - { - if (!empty($repo->write_branch) && $repo->write_branch !== 'default') - { - $this->git->load_($repo->base ?? null, $repo->token ?? null); - $this->git->create( - $repo->organisation, // The owner name. - $repo->repository, // The repository name. - 'src/' . $item->guid . '/item.json', // The file path. - json_encode($item, JSON_PRETTY_PRINT), // The file content. - 'Create ' . $item->system_name, // The commit message. - $repo->write_branch // The branch name. - ); - $this->git->reset_(); - // only create in the first found repo - return; - } - } + return $this->settings_path; } } diff --git a/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/code.power b/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/code.power index 90219be..42c0d95 100644 --- a/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/code.power +++ b/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/code.power @@ -1,5 +1,5 @@ /** - * The GrepInterface Class. + * The Grep Class. * * @var Grep * @since 3.2.2 @@ -7,13 +7,29 @@ protected Grep $grep; /** - * The ItemsInterface Class. + * The Items Class. * * @var Items * @since 3.2.2 */ protected Items $items; + /** + * The Item Readme Class. + * + * @var ItemReadme + * @since 3.2.2 + */ + protected ItemReadme $itemReadme; + + /** + * The Main Readme Class. + * + * @var MainReadme + * @since 3.2.2 + */ + protected MainReadme $mainReadme; + /** * The Contents Class. * @@ -25,7 +41,7 @@ /** * All active repos * - * @var array + * @var array * @since 3.2.0 **/ public array $repos; @@ -33,7 +49,7 @@ /** * Table Name * - * @var string + * @var string * @since 3.2.1 */ protected string $table; @@ -41,32 +57,62 @@ /** * The item map * - * @var array + * @var array * @since 3.2.2 */ protected array $map; + /** + * The repo main settings + * + * @var array + * @since 3.2.2 + */ + protected array $settings; + + /** + * The item settings file path + * + * @var string + * @since 3.2.2 + */ + protected string $settings_path = 'item.json'; + /** * Constructor. * - * @param array $repos The active repos - * @param Grep $grep The GrepInterface Class. - * @param Items $items The ItemsInterface Class. - * @param Git $git The Contents Class. - * @param string|null $table The table name. + * @param array $repos The active repos + * @param Grep $grep The Grep Class. + * @param Items $items The Items Class. + * @param ItemReadme $itemReadme The Item Readme Class. + * @param MainReadme $mainReadme The Main Readme Class. + * @param Git $git The Contents Class. + * @param string|null $table The table name. + * @param string|null $settingsPath The settings path. * * @since 3.2.2 */ - public function __construct(array $repos, Grep $grep, Items $items, Git $git, ?string $table = null) + public function __construct(array $repos, Grep $grep, Items $items, + ItemReadme $itemReadme, MainReadme $mainReadme, Git $git, + ?string $table = null, ?string $settingsPath = null) { $this->repos = $repos; $this->grep = $grep; $this->items = $items; + $this->itemReadme = $itemReadme; + $this->mainReadme = $mainReadme; $this->git = $git; + if ($table !== null) { $this->table = $table; } + + if ($settingsPath !== null) + { + $this->settings_path = $settingsPath; + } + // set the branch to writing $this->grep->setBranchField('write_branch'); } @@ -87,43 +133,56 @@ } /** - * Set items + * Set the settings path + * + * @param string $settingsPath The repository settings path + * + * @return self + * @since 3.2.2 + */ + public function setSettingsPath(string $settingsPath): self + { + $this->settings_path = $settingsPath; + + return $this; + } + + /** + * Save items remotely * * @param array $guids The global unique id of the item * * @return bool * @throws \Exception - * @since 3.2.0 + * @since 3.2.2 */ - public function set(array $guids): bool + public function items(array $guids): bool { - if (($items = $this->getLocalItems($guids)) === null) - { - throw new \Exception("At least one valid local [Joomla Power] must exist for the push function to operate correctly."); - } - if (!$this->canWrite()) { - throw new \Exception("At least one [Joomla Power] content repository must be configured with a [Write Branch] value in the repositories area for the push function to operate correctly."); + throw new \Exception("At least one [Item] content repository must be configured with a [Write Branch] value in the repositories area for the push function to operate correctly."); } - // update the existing found - if (($existing_items = $this->getRepoItems($guids)) !== []) + // we reset the index settings + $this->settings = []; + + if (($items = $this->getLocalItems($guids)) === null) { - foreach ($existing_items as $e_guid => $item) - { - if (isset($items[$e_guid])) - { - $this->updateItem($items[$e_guid], $item); - unset($items[$e_guid]); - } - } + throw new \Exception("At least one valid local [Item] must exist for the push function to operate correctly."); } - // create the new items foreach ($items as $item) { - $this->createItem($item); + $this->save($item); + } + + // update the repos main readme and index settings + if ($this->settings !== []) + { + foreach ($this->settings as $repo) + { + $this->saveRepoMainSettings($repo); + } } return true; @@ -140,6 +199,62 @@ return $this->table; } + /** + * update an existing item (if changed) + * + * @param object $item + * @param object $existing + * @param object $repo + * + * @return bool + * @since 3.2.2 + */ + abstract protected function updateItem(object $item, object $existing, object $repo): bool; + + /** + * create a new item + * + * @param object $item + * @param object $repo + * + * @return void + * @since 3.2.2 + */ + abstract protected function createItem(object $item, object $repo): void; + + /** + * update an existing item readme + * + * @param object $item + * @param object $existing + * @param object $repo + * + * @return void + * @since 3.2.2 + */ + abstract protected function updateItemReadme(object $item, object $existing, object $repo): void; + + /** + * create a new item readme + * + * @param object $item + * @param object $repo + * + * @return void + * @since 3.2.2 + */ + abstract protected function createItemReadme(object $item, object $repo): void; + + /** + * Update/Create the repo main readme and index + * + * @param array $repo + * + * @return void + * @since 3.2.2 + */ + abstract protected function saveRepoMainSettings(array $repo): void; + /** * Get items * @@ -148,7 +263,7 @@ * @return array|null * @since 3.2.2 */ - public function getLocalItems(array $guids): ?array + protected function getLocalItems(array $guids): ?array { $items = $this->fetchLocalItems($guids); @@ -160,10 +275,56 @@ return $this->mapItems($items); } + /** + * Save an item remotely + * + * @param object $item The item to save + * + * @return void + * @since 3.2.2 + */ + protected function save(object $item): void + { + foreach ($this->repos as $key => $repo) + { + if (empty($repo->write_branch) || $repo->write_branch === 'default') + { + continue; + } + + $this->git->load_($repo->base ?? null, $repo->token ?? null); + + if (($existing = $this->grep->get($guid, ['remote'], $repo)) !== null) + { + if ($this->updateItem($item, $existing, $repo)) + { + $this->updateItemReadme($item, $existing, $repo); + } + } + else + { + $this->createItem($item, $repo); + + $this->createItemReadme($item, $repo); + + if (!isset($this->settings[$key])) + { + $this->settings[$key] = ['repo' => $repo, 'items' => [$item]); + } + else + { + $this->settings[$key]['items'][] = $item; + } + } + + $this->git->reset_(); + } + } + /** * Fetch items from the database * - * @param array $guids The global unique id of the item + * @param array $guids The global unique ids of the items * * @return array|null * @since 3.2.2 @@ -218,28 +379,6 @@ return (object) $power; } - /** - * get existing items - * - * @param array $guids The global unique id of the item - * - * @return array|null - * @since 3.2.2 - */ - protected function getRepoItems(array $guids): ?array - { - $bucket = []; - foreach ($guids as $guid) - { - if (($item = $this->grep->get($guid)) !== null) - { - $bucket[$guid] = (object) $item; - } - } - - return $bucket ?? null; - } - /** * check that we have an active repo towards which we can write data * @@ -282,77 +421,12 @@ } /** - * update an existing item (if changed) + * Get the settings path * - * @param object $item - * @param object $existing - * - * @return void + * @return string * @since 3.2.2 */ - protected function updateItem(object $item, object $existing): void + protected function getSettingsPath(): string { - if (isset($existing->params->source) && is_array($existing->params->source)) - { - // get the source values - $source = $existing->params->source; - - // make sure there was a change - $existing = $this->mapItem($existing); - if ($this->areObjectsEqual($item, $existing)) - { - return; - } - - foreach ($this->repos as $repo) - { - if (isset($source[$repo->guid])) - { - $this->git->load_($repo->base ?? null, $repo->token ?? null); - $this->git->update( - $repo->organisation, // The owner name. - $repo->repository, // The repository name. - 'src/' . $item->guid . '/item.json', // The file path. - json_encode($item, JSON_PRETTY_PRINT), // The file content. - 'Update ' . $item->system_name, // The commit message. - $source[$repo->guid], // The blob SHA of the old file. - $repo->write_branch // The branch name. - ); - $this->git->reset_(); - - // only update in the first found repo - return; - } - } - } - } - - /** - * create a new item - * - * @param object $item - * - * @return void - * @since 3.2.2 - */ - protected function createItem(object $item): void - { - foreach ($this->repos as $repo) - { - if (!empty($repo->write_branch) && $repo->write_branch !== 'default') - { - $this->git->load_($repo->base ?? null, $repo->token ?? null); - $this->git->create( - $repo->organisation, // The owner name. - $repo->repository, // The repository name. - 'src/' . $item->guid . '/item.json', // The file path. - json_encode($item, JSON_PRETTY_PRINT), // The file content. - 'Create ' . $item->system_name, // The commit message. - $repo->write_branch // The branch name. - ); - $this->git->reset_(); - // only create in the first found repo - return; - } - } + return $this->settings_path; } \ No newline at end of file diff --git a/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/settings.json b/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/settings.json index c7530a0..3ab33b8 100644 --- a/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/settings.json +++ b/src/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895/settings.json @@ -3,11 +3,13 @@ "add_licensing_template": "2", "extends": "", "guid": "eb7d69c2-4ee9-4bd0-aacc-ab51a12be895", - "implements": null, + "implements": [ + "e335dd61-c2f9-4536-8ed9-aec5edee0b26" + ], "load_selection": null, - "name": "Repository", + "name": "Set", "power_version": "1.0.0", - "system_name": "VDM.Data.Repository", + "system_name": "VDM.Data.Remote.Set", "type": "class", "use_selection": { "use_selection0": { @@ -19,12 +21,20 @@ "as": "Items" }, "use_selection2": { + "use": "65a0f81a-14fc-4870-9382-b8d830b19937", + "as": "ItemReadme" + }, + "use_selection3": { + "use": "217416f6-24cf-41c0-b18e-11086111d447", + "as": "MainReadme" + }, + "use_selection4": { "use": "8d1baef6-fcad-49a9-848f-428009cdb989", "as": "Git" } }, "extendsinterfaces": null, - "namespace": "[[[NamespacePrefix]]]\\Joomla\\Data.Repository", + "namespace": "[[[NamespacePrefix]]]\\Joomla\\Data.Remote.Set", "description": "Set data based on global unique ids to remote repository\r\n\r\n@since 3.2.2", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \r\n * @git 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": "", diff --git a/src/f3c04c28-bce4-422e-be93-7d163e4e342b/README.md b/src/f3c04c28-bce4-422e-be93-7d163e4e342b/README.md index 0ae4dcf..05a3361 100644 --- a/src/f3c04c28-bce4-422e-be93-7d163e4e342b/README.md +++ b/src/f3c04c28-bce4-422e-be93-7d163e4e342b/README.md @@ -8,7 +8,7 @@ ``` # abstract class Schema (Details) > namespace: **VDM\Joomla\Abstraction** -> extends: **** + ```uml @startuml abstract Schema #Orange { @@ -233,6 +233,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---f3c04c28_bce4_422e_be93_7d163e4e342b---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/ff7d0111-8f79-42aa-ac14-b53ba2c49369/README.md b/src/ff7d0111-8f79-42aa-ac14-b53ba2c49369/README.md index 63ddcfb..379c144 100644 --- a/src/ff7d0111-8f79-42aa-ac14-b53ba2c49369/README.md +++ b/src/ff7d0111-8f79-42aa-ac14-b53ba2c49369/README.md @@ -8,7 +8,7 @@ ``` # trait IsString (Details) > namespace: **VDM\Joomla\Abstraction\Registry\Traits** -> extends: **** + ```uml @startuml class IsString << (T,Orange) >> #Turquoise { @@ -25,6 +25,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---ff7d0111_8f79_42aa_ac14_b53ba2c49369---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/src/ffbd4e1f-a342-4080-ab7d-1de3741bf319/README.md b/src/ffbd4e1f-a342-4080-ab7d-1de3741bf319/README.md index f288632..89d7d07 100644 --- a/src/ffbd4e1f-a342-4080-ab7d-1de3741bf319/README.md +++ b/src/ffbd4e1f-a342-4080-ab7d-1de3741bf319/README.md @@ -9,6 +9,7 @@ # abstract class BaseConfig (Details) > namespace: **VDM\Joomla\Abstraction** > extends: **JoomlaRegistry** + ```uml @startuml abstract BaseConfig #Orange { @@ -54,6 +55,20 @@ end note @enduml ``` +The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you. + +By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component. + +JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability. + +To add this specific Power to your project in JCB: + +> simply use this SPK +``` +Super---ffbd4e1f_a342_4080_ab7d_1de3741bf319---Power +``` +> remember to replace the `---` with `___` to activate this Power in your code + --- ``` ██╗ ██████╗██████╗ diff --git a/super-powers.json b/super-powers.json index 0cfbc35..5f43217 100644 --- a/super-powers.json +++ b/super-powers.json @@ -7,7 +7,7 @@ "power": "src\/008d111c-9d43-427c-8dd4-2653e8b74be8\/code.power", "settings": "src\/008d111c-9d43-427c-8dd4-2653e8b74be8\/settings.json", "path": "src\/008d111c-9d43-427c-8dd4-2653e8b74be8", - "spk": "Super__008d111c_9d43_427c_8dd4_2653e8b74be8__Power", + "spk": "Super---008d111c_9d43_427c_8dd4_2653e8b74be8---Power", "guid": "008d111c-9d43-427c-8dd4-2653e8b74be8" }, "03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13": { @@ -18,7 +18,7 @@ "power": "src\/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13\/code.power", "settings": "src\/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13\/settings.json", "path": "src\/03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13", - "spk": "Super__03bbc8d5_86e8_4d2f_ae5f_0d44a4f7af13__Power", + "spk": "Super---03bbc8d5_86e8_4d2f_ae5f_0d44a4f7af13---Power", "guid": "03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13" }, "05744dd3-4030-4cf8-8dda-a93ab809b473": { @@ -29,7 +29,7 @@ "power": "src\/05744dd3-4030-4cf8-8dda-a93ab809b473\/code.power", "settings": "src\/05744dd3-4030-4cf8-8dda-a93ab809b473\/settings.json", "path": "src\/05744dd3-4030-4cf8-8dda-a93ab809b473", - "spk": "Super__05744dd3_4030_4cf8_8dda_a93ab809b473__Power", + "spk": "Super---05744dd3_4030_4cf8_8dda_a93ab809b473---Power", "guid": "05744dd3-4030-4cf8-8dda-a93ab809b473" }, "06f8eada-d59b-441c-b287-0aea1793da5a": { @@ -40,7 +40,7 @@ "power": "src\/06f8eada-d59b-441c-b287-0aea1793da5a\/code.power", "settings": "src\/06f8eada-d59b-441c-b287-0aea1793da5a\/settings.json", "path": "src\/06f8eada-d59b-441c-b287-0aea1793da5a", - "spk": "Super__06f8eada_d59b_441c_b287_0aea1793da5a__Power", + "spk": "Super---06f8eada_d59b_441c_b287_0aea1793da5a---Power", "guid": "06f8eada-d59b-441c-b287-0aea1793da5a" }, "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a": { @@ -51,7 +51,7 @@ "power": "src\/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\/code.power", "settings": "src\/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\/settings.json", "path": "src\/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", - "spk": "Super__0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a__Power", + "spk": "Super---0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a---Power", "guid": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a" }, "11572d9b-e3d5-4b29-904c-9618d8f2bfd8": { @@ -62,7 +62,7 @@ "power": "src\/11572d9b-e3d5-4b29-904c-9618d8f2bfd8\/code.power", "settings": "src\/11572d9b-e3d5-4b29-904c-9618d8f2bfd8\/settings.json", "path": "src\/11572d9b-e3d5-4b29-904c-9618d8f2bfd8", - "spk": "Super__11572d9b_e3d5_4b29_904c_9618d8f2bfd8__Power", + "spk": "Super---11572d9b_e3d5_4b29_904c_9618d8f2bfd8---Power", "guid": "11572d9b-e3d5-4b29-904c-9618d8f2bfd8" }, "1198aecf-84c6-45d2-aea8-d531aa4afdfa": { @@ -73,9 +73,20 @@ "power": "src\/1198aecf-84c6-45d2-aea8-d531aa4afdfa\/code.power", "settings": "src\/1198aecf-84c6-45d2-aea8-d531aa4afdfa\/settings.json", "path": "src\/1198aecf-84c6-45d2-aea8-d531aa4afdfa", - "spk": "Super__1198aecf_84c6_45d2_aea8_d531aa4afdfa__Power", + "spk": "Super---1198aecf_84c6_45d2_aea8_d531aa4afdfa---Power", "guid": "1198aecf-84c6-45d2-aea8-d531aa4afdfa" }, + "13c2cac1-a70d-42d7-99fc-eb7ac3443069": { + "name": "ClassHelper", + "type": "abstract class", + "namespace": "VDM\\Joomla\\Utilities", + "code": "src\/13c2cac1-a70d-42d7-99fc-eb7ac3443069\/code.php", + "power": "src\/13c2cac1-a70d-42d7-99fc-eb7ac3443069\/code.power", + "settings": "src\/13c2cac1-a70d-42d7-99fc-eb7ac3443069\/settings.json", + "path": "src\/13c2cac1-a70d-42d7-99fc-eb7ac3443069", + "spk": "Super---13c2cac1_a70d_42d7_99fc_eb7ac3443069---Power", + "guid": "13c2cac1-a70d-42d7-99fc-eb7ac3443069" + }, "1401a167-0ce4-4f4a-afee-2d8b02ed339b": { "name": "Grep", "type": "abstract class", @@ -84,7 +95,7 @@ "power": "src\/1401a167-0ce4-4f4a-afee-2d8b02ed339b\/code.power", "settings": "src\/1401a167-0ce4-4f4a-afee-2d8b02ed339b\/settings.json", "path": "src\/1401a167-0ce4-4f4a-afee-2d8b02ed339b", - "spk": "Super__1401a167_0ce4_4f4a_afee_2d8b02ed339b__Power", + "spk": "Super---1401a167_0ce4_4f4a_afee_2d8b02ed339b---Power", "guid": "1401a167-0ce4-4f4a-afee-2d8b02ed339b" }, "152c8793-8b75-4715-996a-257b9f65451c": { @@ -95,7 +106,7 @@ "power": "src\/152c8793-8b75-4715-996a-257b9f65451c\/code.power", "settings": "src\/152c8793-8b75-4715-996a-257b9f65451c\/settings.json", "path": "src\/152c8793-8b75-4715-996a-257b9f65451c", - "spk": "Super__152c8793_8b75_4715_996a_257b9f65451c__Power", + "spk": "Super---152c8793_8b75_4715_996a_257b9f65451c---Power", "guid": "152c8793-8b75-4715-996a-257b9f65451c" }, "19b2ba92-1655-4384-acfb-979c80de8b6d": { @@ -106,7 +117,7 @@ "power": "src\/19b2ba92-1655-4384-acfb-979c80de8b6d\/code.power", "settings": "src\/19b2ba92-1655-4384-acfb-979c80de8b6d\/settings.json", "path": "src\/19b2ba92-1655-4384-acfb-979c80de8b6d", - "spk": "Super__19b2ba92_1655_4384_acfb_979c80de8b6d__Power", + "spk": "Super---19b2ba92_1655_4384_acfb_979c80de8b6d---Power", "guid": "19b2ba92-1655-4384-acfb-979c80de8b6d" }, "1f28cb53-60d9-4db1-b517-3c7dc6b429ef": { @@ -117,7 +128,7 @@ "power": "src\/1f28cb53-60d9-4db1-b517-3c7dc6b429ef\/code.power", "settings": "src\/1f28cb53-60d9-4db1-b517-3c7dc6b429ef\/settings.json", "path": "src\/1f28cb53-60d9-4db1-b517-3c7dc6b429ef", - "spk": "Super__1f28cb53_60d9_4db1_b517_3c7dc6b429ef__Power", + "spk": "Super---1f28cb53_60d9_4db1_b517_3c7dc6b429ef---Power", "guid": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef" }, "215b35ac-1b26-4838-bbcf-d1fdbbd9353f": { @@ -128,9 +139,20 @@ "power": "src\/215b35ac-1b26-4838-bbcf-d1fdbbd9353f\/code.power", "settings": "src\/215b35ac-1b26-4838-bbcf-d1fdbbd9353f\/settings.json", "path": "src\/215b35ac-1b26-4838-bbcf-d1fdbbd9353f", - "spk": "Super__215b35ac_1b26_4838_bbcf_d1fdbbd9353f__Power", + "spk": "Super---215b35ac_1b26_4838_bbcf_d1fdbbd9353f---Power", "guid": "215b35ac-1b26-4838-bbcf-d1fdbbd9353f" }, + "217416f6-24cf-41c0-b18e-11086111d447": { + "name": "MainInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Interfaces\\Readme", + "code": "src\/217416f6-24cf-41c0-b18e-11086111d447\/code.php", + "power": "src\/217416f6-24cf-41c0-b18e-11086111d447\/code.power", + "settings": "src\/217416f6-24cf-41c0-b18e-11086111d447\/settings.json", + "path": "src\/217416f6-24cf-41c0-b18e-11086111d447", + "spk": "Super---217416f6_24cf_41c0_b18e_11086111d447---Power", + "guid": "217416f6-24cf-41c0-b18e-11086111d447" + }, "21bca8a4-5b28-41c4-843e-8097f0ba7cca": { "name": "Items", "type": "final class", @@ -139,7 +161,7 @@ "power": "src\/21bca8a4-5b28-41c4-843e-8097f0ba7cca\/code.power", "settings": "src\/21bca8a4-5b28-41c4-843e-8097f0ba7cca\/settings.json", "path": "src\/21bca8a4-5b28-41c4-843e-8097f0ba7cca", - "spk": "Super__21bca8a4_5b28_41c4_843e_8097f0ba7cca__Power", + "spk": "Super---21bca8a4_5b28_41c4_843e_8097f0ba7cca---Power", "guid": "21bca8a4-5b28-41c4-843e-8097f0ba7cca" }, "2ad31f74-f579-499d-b98b-c4f54fd615dd": { @@ -150,7 +172,7 @@ "power": "src\/2ad31f74-f579-499d-b98b-c4f54fd615dd\/code.power", "settings": "src\/2ad31f74-f579-499d-b98b-c4f54fd615dd\/settings.json", "path": "src\/2ad31f74-f579-499d-b98b-c4f54fd615dd", - "spk": "Super__2ad31f74_f579_499d_b98b_c4f54fd615dd__Power", + "spk": "Super---2ad31f74_f579_499d_b98b_c4f54fd615dd---Power", "guid": "2ad31f74-f579-499d-b98b-c4f54fd615dd" }, "2da6d6c4-eb29-4d69-8bc2-36d96e916adf": { @@ -161,7 +183,7 @@ "power": "src\/2da6d6c4-eb29-4d69-8bc2-36d96e916adf\/code.power", "settings": "src\/2da6d6c4-eb29-4d69-8bc2-36d96e916adf\/settings.json", "path": "src\/2da6d6c4-eb29-4d69-8bc2-36d96e916adf", - "spk": "Super__2da6d6c4_eb29_4d69_8bc2_36d96e916adf__Power", + "spk": "Super---2da6d6c4_eb29_4d69_8bc2_36d96e916adf---Power", "guid": "2da6d6c4-eb29-4d69-8bc2-36d96e916adf" }, "2dcedd6c-c95b-4a37-9cac-95d28faedca3": { @@ -172,7 +194,7 @@ "power": "src\/2dcedd6c-c95b-4a37-9cac-95d28faedca3\/code.power", "settings": "src\/2dcedd6c-c95b-4a37-9cac-95d28faedca3\/settings.json", "path": "src\/2dcedd6c-c95b-4a37-9cac-95d28faedca3", - "spk": "Super__2dcedd6c_c95b_4a37_9cac_95d28faedca3__Power", + "spk": "Super---2dcedd6c_c95b_4a37_9cac_95d28faedca3---Power", "guid": "2dcedd6c-c95b-4a37-9cac-95d28faedca3" }, "2e5bf608-de5c-4b00-a20d-47c26aa350d9": { @@ -183,7 +205,7 @@ "power": "src\/2e5bf608-de5c-4b00-a20d-47c26aa350d9\/code.power", "settings": "src\/2e5bf608-de5c-4b00-a20d-47c26aa350d9\/settings.json", "path": "src\/2e5bf608-de5c-4b00-a20d-47c26aa350d9", - "spk": "Super__2e5bf608_de5c_4b00_a20d_47c26aa350d9__Power", + "spk": "Super---2e5bf608_de5c_4b00_a20d_47c26aa350d9---Power", "guid": "2e5bf608-de5c-4b00-a20d-47c26aa350d9" }, "30c5b4c2-f75f-4d15-869a-f8bfedd87358": { @@ -194,7 +216,7 @@ "power": "src\/30c5b4c2-f75f-4d15-869a-f8bfedd87358\/code.power", "settings": "src\/30c5b4c2-f75f-4d15-869a-f8bfedd87358\/settings.json", "path": "src\/30c5b4c2-f75f-4d15-869a-f8bfedd87358", - "spk": "Super__30c5b4c2_f75f_4d15_869a_f8bfedd87358__Power", + "spk": "Super---30c5b4c2_f75f_4d15_869a_f8bfedd87358---Power", "guid": "30c5b4c2-f75f-4d15-869a-f8bfedd87358" }, "34959721-415b-4b5e-8002-3d1fc84b3b2b": { @@ -205,7 +227,7 @@ "power": "src\/34959721-415b-4b5e-8002-3d1fc84b3b2b\/code.power", "settings": "src\/34959721-415b-4b5e-8002-3d1fc84b3b2b\/settings.json", "path": "src\/34959721-415b-4b5e-8002-3d1fc84b3b2b", - "spk": "Super__34959721_415b_4b5e_8002_3d1fc84b3b2b__Power", + "spk": "Super---34959721_415b_4b5e_8002_3d1fc84b3b2b---Power", "guid": "34959721-415b-4b5e-8002-3d1fc84b3b2b" }, "3cf76fbf-fd95-4a33-878e-7aff6d36b7f6": { @@ -216,7 +238,7 @@ "power": "src\/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6\/code.power", "settings": "src\/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6\/settings.json", "path": "src\/3cf76fbf-fd95-4a33-878e-7aff6d36b7f6", - "spk": "Super__3cf76fbf_fd95_4a33_878e_7aff6d36b7f6__Power", + "spk": "Super---3cf76fbf_fd95_4a33_878e_7aff6d36b7f6---Power", "guid": "3cf76fbf-fd95-4a33-878e-7aff6d36b7f6" }, "3fc72954-a303-4cac-b53c-554be38b85e7": { @@ -227,7 +249,7 @@ "power": "src\/3fc72954-a303-4cac-b53c-554be38b85e7\/code.power", "settings": "src\/3fc72954-a303-4cac-b53c-554be38b85e7\/settings.json", "path": "src\/3fc72954-a303-4cac-b53c-554be38b85e7", - "spk": "Super__3fc72954_a303_4cac_b53c_554be38b85e7__Power", + "spk": "Super---3fc72954_a303_4cac_b53c_554be38b85e7---Power", "guid": "3fc72954-a303-4cac-b53c-554be38b85e7" }, "43134867-5cb8-4280-9be8-309fd2fd135f": { @@ -238,7 +260,7 @@ "power": "src\/43134867-5cb8-4280-9be8-309fd2fd135f\/code.power", "settings": "src\/43134867-5cb8-4280-9be8-309fd2fd135f\/settings.json", "path": "src\/43134867-5cb8-4280-9be8-309fd2fd135f", - "spk": "Super__43134867_5cb8_4280_9be8_309fd2fd135f__Power", + "spk": "Super---43134867_5cb8_4280_9be8_309fd2fd135f---Power", "guid": "43134867-5cb8-4280-9be8-309fd2fd135f" }, "4815e1c7-a433-443d-a112-d1e03d7df84b": { @@ -249,7 +271,7 @@ "power": "src\/4815e1c7-a433-443d-a112-d1e03d7df84b\/code.power", "settings": "src\/4815e1c7-a433-443d-a112-d1e03d7df84b\/settings.json", "path": "src\/4815e1c7-a433-443d-a112-d1e03d7df84b", - "spk": "Super__4815e1c7_a433_443d_a112_d1e03d7df84b__Power", + "spk": "Super---4815e1c7_a433_443d_a112_d1e03d7df84b---Power", "guid": "4815e1c7-a433-443d-a112-d1e03d7df84b" }, "491dbe41-f26c-4de9-8a95-fcf87b35b56f": { @@ -260,7 +282,7 @@ "power": "src\/491dbe41-f26c-4de9-8a95-fcf87b35b56f\/code.power", "settings": "src\/491dbe41-f26c-4de9-8a95-fcf87b35b56f\/settings.json", "path": "src\/491dbe41-f26c-4de9-8a95-fcf87b35b56f", - "spk": "Super__491dbe41_f26c_4de9_8a95_fcf87b35b56f__Power", + "spk": "Super---491dbe41_f26c_4de9_8a95_fcf87b35b56f---Power", "guid": "491dbe41-f26c-4de9-8a95-fcf87b35b56f" }, "4b225c51-d293-48e4-b3f6-5136cf5c3f18": { @@ -271,7 +293,7 @@ "power": "src\/4b225c51-d293-48e4-b3f6-5136cf5c3f18\/code.power", "settings": "src\/4b225c51-d293-48e4-b3f6-5136cf5c3f18\/settings.json", "path": "src\/4b225c51-d293-48e4-b3f6-5136cf5c3f18", - "spk": "Super__4b225c51_d293_48e4_b3f6_5136cf5c3f18__Power", + "spk": "Super---4b225c51_d293_48e4_b3f6_5136cf5c3f18---Power", "guid": "4b225c51-d293-48e4-b3f6-5136cf5c3f18" }, "4dd11b9b-3c64-460b-aaa6-62ba467db7aa": { @@ -282,18 +304,18 @@ "power": "src\/4dd11b9b-3c64-460b-aaa6-62ba467db7aa\/code.power", "settings": "src\/4dd11b9b-3c64-460b-aaa6-62ba467db7aa\/settings.json", "path": "src\/4dd11b9b-3c64-460b-aaa6-62ba467db7aa", - "spk": "Super__4dd11b9b_3c64_460b_aaa6_62ba467db7aa__Power", + "spk": "Super---4dd11b9b_3c64_460b_aaa6_62ba467db7aa---Power", "guid": "4dd11b9b-3c64-460b-aaa6-62ba467db7aa" }, "51de80f2-2868-4c2c-8198-ef79349e9bd7": { - "name": "RemoteInterface", + "name": "RemoteGetInterface", "type": "interface", "namespace": "VDM\\Joomla\\Interfaces\\Data", "code": "src\/51de80f2-2868-4c2c-8198-ef79349e9bd7\/code.php", "power": "src\/51de80f2-2868-4c2c-8198-ef79349e9bd7\/code.power", "settings": "src\/51de80f2-2868-4c2c-8198-ef79349e9bd7\/settings.json", "path": "src\/51de80f2-2868-4c2c-8198-ef79349e9bd7", - "spk": "Super__51de80f2_2868_4c2c_8198_ef79349e9bd7__Power", + "spk": "Super---51de80f2_2868_4c2c_8198_ef79349e9bd7---Power", "guid": "51de80f2-2868-4c2c-8198-ef79349e9bd7" }, "524eb8f6-38d4-47dc-92ad-98b94e099ac0": { @@ -304,7 +326,7 @@ "power": "src\/524eb8f6-38d4-47dc-92ad-98b94e099ac0\/code.power", "settings": "src\/524eb8f6-38d4-47dc-92ad-98b94e099ac0\/settings.json", "path": "src\/524eb8f6-38d4-47dc-92ad-98b94e099ac0", - "spk": "Super__524eb8f6_38d4_47dc_92ad_98b94e099ac0__Power", + "spk": "Super---524eb8f6_38d4_47dc_92ad_98b94e099ac0---Power", "guid": "524eb8f6-38d4-47dc-92ad-98b94e099ac0" }, "52a1d14f-304a-431c-8fa4-411179942db5": { @@ -315,7 +337,7 @@ "power": "src\/52a1d14f-304a-431c-8fa4-411179942db5\/code.power", "settings": "src\/52a1d14f-304a-431c-8fa4-411179942db5\/settings.json", "path": "src\/52a1d14f-304a-431c-8fa4-411179942db5", - "spk": "Super__52a1d14f_304a_431c_8fa4_411179942db5__Power", + "spk": "Super---52a1d14f_304a_431c_8fa4_411179942db5---Power", "guid": "52a1d14f-304a-431c-8fa4-411179942db5" }, "584747d1-3a86-453d-b7a3-a2219de8d777": { @@ -326,7 +348,7 @@ "power": "src\/584747d1-3a86-453d-b7a3-a2219de8d777\/code.power", "settings": "src\/584747d1-3a86-453d-b7a3-a2219de8d777\/settings.json", "path": "src\/584747d1-3a86-453d-b7a3-a2219de8d777", - "spk": "Super__584747d1_3a86_453d_b7a3_a2219de8d777__Power", + "spk": "Super---584747d1_3a86_453d_b7a3_a2219de8d777---Power", "guid": "584747d1-3a86-453d-b7a3-a2219de8d777" }, "59b1a2ea-d77e-4040-ac8c-e65cd8743e9b": { @@ -337,9 +359,20 @@ "power": "src\/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b\/code.power", "settings": "src\/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b\/settings.json", "path": "src\/59b1a2ea-d77e-4040-ac8c-e65cd8743e9b", - "spk": "Super__59b1a2ea_d77e_4040_ac8c_e65cd8743e9b__Power", + "spk": "Super---59b1a2ea_d77e_4040_ac8c_e65cd8743e9b---Power", "guid": "59b1a2ea-d77e-4040-ac8c-e65cd8743e9b" }, + "5f0205fa-5c43-424a-af7d-abc943c17c8c": { + "name": "SchemaChecker", + "type": "abstract class", + "namespace": "VDM\\Joomla\\Abstraction", + "code": "src\/5f0205fa-5c43-424a-af7d-abc943c17c8c\/code.php", + "power": "src\/5f0205fa-5c43-424a-af7d-abc943c17c8c\/code.power", + "settings": "src\/5f0205fa-5c43-424a-af7d-abc943c17c8c\/settings.json", + "path": "src\/5f0205fa-5c43-424a-af7d-abc943c17c8c", + "spk": "Super---5f0205fa_5c43_424a_af7d_abc943c17c8c---Power", + "guid": "5f0205fa-5c43-424a-af7d-abc943c17c8c" + }, "640b5352-fb09-425f-a26e-cd44eda03f15": { "name": "Helper", "type": "abstract class", @@ -348,7 +381,7 @@ "power": "src\/640b5352-fb09-425f-a26e-cd44eda03f15\/code.power", "settings": "src\/640b5352-fb09-425f-a26e-cd44eda03f15\/settings.json", "path": "src\/640b5352-fb09-425f-a26e-cd44eda03f15", - "spk": "Super__640b5352_fb09_425f_a26e_cd44eda03f15__Power", + "spk": "Super---640b5352_fb09_425f_a26e_cd44eda03f15---Power", "guid": "640b5352-fb09-425f-a26e-cd44eda03f15" }, "64a6ff6c-069c-4a11-a76b-db5e36c27690": { @@ -359,7 +392,7 @@ "power": "src\/64a6ff6c-069c-4a11-a76b-db5e36c27690\/code.power", "settings": "src\/64a6ff6c-069c-4a11-a76b-db5e36c27690\/settings.json", "path": "src\/64a6ff6c-069c-4a11-a76b-db5e36c27690", - "spk": "Super__64a6ff6c_069c_4a11_a76b_db5e36c27690__Power", + "spk": "Super---64a6ff6c_069c_4a11_a76b_db5e36c27690---Power", "guid": "64a6ff6c-069c-4a11-a76b-db5e36c27690" }, "64e291c2-11f1-423d-a44d-837cc12cc017": { @@ -370,9 +403,20 @@ "power": "src\/64e291c2-11f1-423d-a44d-837cc12cc017\/code.power", "settings": "src\/64e291c2-11f1-423d-a44d-837cc12cc017\/settings.json", "path": "src\/64e291c2-11f1-423d-a44d-837cc12cc017", - "spk": "Super__64e291c2_11f1_423d_a44d_837cc12cc017__Power", + "spk": "Super---64e291c2_11f1_423d_a44d_837cc12cc017---Power", "guid": "64e291c2-11f1-423d-a44d-837cc12cc017" }, + "65a0f81a-14fc-4870-9382-b8d830b19937": { + "name": "ItemInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Interfaces\\Readme", + "code": "src\/65a0f81a-14fc-4870-9382-b8d830b19937\/code.php", + "power": "src\/65a0f81a-14fc-4870-9382-b8d830b19937\/code.power", + "settings": "src\/65a0f81a-14fc-4870-9382-b8d830b19937\/settings.json", + "path": "src\/65a0f81a-14fc-4870-9382-b8d830b19937", + "spk": "Super---65a0f81a_14fc_4870_9382_b8d830b19937---Power", + "guid": "65a0f81a-14fc-4870-9382-b8d830b19937" + }, "68a41264-64c0-441a-a3d8-8a5e557b1883": { "name": "UpdateInterface", "type": "interface", @@ -381,7 +425,7 @@ "power": "src\/68a41264-64c0-441a-a3d8-8a5e557b1883\/code.power", "settings": "src\/68a41264-64c0-441a-a3d8-8a5e557b1883\/settings.json", "path": "src\/68a41264-64c0-441a-a3d8-8a5e557b1883", - "spk": "Super__68a41264_64c0_441a_a3d8_8a5e557b1883__Power", + "spk": "Super---68a41264_64c0_441a_a3d8_8a5e557b1883---Power", "guid": "68a41264-64c0-441a-a3d8-8a5e557b1883" }, "6cbef8f8-4813-48e3-b05a-65e1aea95171": { @@ -392,9 +436,20 @@ "power": "src\/6cbef8f8-4813-48e3-b05a-65e1aea95171\/code.power", "settings": "src\/6cbef8f8-4813-48e3-b05a-65e1aea95171\/settings.json", "path": "src\/6cbef8f8-4813-48e3-b05a-65e1aea95171", - "spk": "Super__6cbef8f8_4813_48e3_b05a_65e1aea95171__Power", + "spk": "Super---6cbef8f8_4813_48e3_b05a_65e1aea95171---Power", "guid": "6cbef8f8-4813-48e3-b05a-65e1aea95171" }, + "709d7294-9a43-46e2-b64e-d16a16f0eab1": { + "name": "SchemaChecker", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Table", + "code": "src\/709d7294-9a43-46e2-b64e-d16a16f0eab1\/code.php", + "power": "src\/709d7294-9a43-46e2-b64e-d16a16f0eab1\/code.power", + "settings": "src\/709d7294-9a43-46e2-b64e-d16a16f0eab1\/settings.json", + "path": "src\/709d7294-9a43-46e2-b64e-d16a16f0eab1", + "spk": "Super---709d7294_9a43_46e2_b64e_d16a16f0eab1---Power", + "guid": "709d7294-9a43-46e2-b64e-d16a16f0eab1" + }, "7179fde6-1e51-4b51-8545-7ca18f74a0f4": { "name": "UpdateInterface", "type": "interface", @@ -403,7 +458,7 @@ "power": "src\/7179fde6-1e51-4b51-8545-7ca18f74a0f4\/code.power", "settings": "src\/7179fde6-1e51-4b51-8545-7ca18f74a0f4\/settings.json", "path": "src\/7179fde6-1e51-4b51-8545-7ca18f74a0f4", - "spk": "Super__7179fde6_1e51_4b51_8545_7ca18f74a0f4__Power", + "spk": "Super---7179fde6_1e51_4b51_8545_7ca18f74a0f4---Power", "guid": "7179fde6-1e51-4b51-8545-7ca18f74a0f4" }, "7212e4db-371f-4cfd-8122-32e9bb100d83": { @@ -414,18 +469,18 @@ "power": "src\/7212e4db-371f-4cfd-8122-32e9bb100d83\/code.power", "settings": "src\/7212e4db-371f-4cfd-8122-32e9bb100d83\/settings.json", "path": "src\/7212e4db-371f-4cfd-8122-32e9bb100d83", - "spk": "Super__7212e4db_371f_4cfd_8122_32e9bb100d83__Power", + "spk": "Super---7212e4db_371f_4cfd_8122_32e9bb100d83---Power", "guid": "7212e4db-371f-4cfd-8122-32e9bb100d83" }, "728ee726-3f0f-4762-899d-f8c9430cee58": { - "name": "Remote", + "name": "Get", "type": "class", - "namespace": "VDM\\Joomla\\Data", + "namespace": "VDM\\Joomla\\Data\\Remote", "code": "src\/728ee726-3f0f-4762-899d-f8c9430cee58\/code.php", "power": "src\/728ee726-3f0f-4762-899d-f8c9430cee58\/code.power", "settings": "src\/728ee726-3f0f-4762-899d-f8c9430cee58\/settings.json", "path": "src\/728ee726-3f0f-4762-899d-f8c9430cee58", - "spk": "Super__728ee726_3f0f_4762_899d_f8c9430cee58__Power", + "spk": "Super---728ee726_3f0f_4762_899d_f8c9430cee58---Power", "guid": "728ee726-3f0f-4762-899d-f8c9430cee58" }, "7c1fb50f-8fb1-4627-8705-6fedf7182ca5": { @@ -436,7 +491,7 @@ "power": "src\/7c1fb50f-8fb1-4627-8705-6fedf7182ca5\/code.power", "settings": "src\/7c1fb50f-8fb1-4627-8705-6fedf7182ca5\/settings.json", "path": "src\/7c1fb50f-8fb1-4627-8705-6fedf7182ca5", - "spk": "Super__7c1fb50f_8fb1_4627_8705_6fedf7182ca5__Power", + "spk": "Super---7c1fb50f_8fb1_4627_8705_6fedf7182ca5---Power", "guid": "7c1fb50f-8fb1-4627-8705-6fedf7182ca5" }, "7d494d91-ab60-43cd-aecf-d50e07f7f30e": { @@ -447,7 +502,7 @@ "power": "src\/7d494d91-ab60-43cd-aecf-d50e07f7f30e\/code.power", "settings": "src\/7d494d91-ab60-43cd-aecf-d50e07f7f30e\/settings.json", "path": "src\/7d494d91-ab60-43cd-aecf-d50e07f7f30e", - "spk": "Super__7d494d91_ab60_43cd_aecf_d50e07f7f30e__Power", + "spk": "Super---7d494d91_ab60_43cd_aecf_d50e07f7f30e---Power", "guid": "7d494d91-ab60-43cd-aecf-d50e07f7f30e" }, "7e822c03-1b20-41d1-9427-f5b8d5836af7": { @@ -458,7 +513,7 @@ "power": "src\/7e822c03-1b20-41d1-9427-f5b8d5836af7\/code.power", "settings": "src\/7e822c03-1b20-41d1-9427-f5b8d5836af7\/settings.json", "path": "src\/7e822c03-1b20-41d1-9427-f5b8d5836af7", - "spk": "Super__7e822c03_1b20_41d1_9427_f5b8d5836af7__Power", + "spk": "Super---7e822c03_1b20_41d1_9427_f5b8d5836af7---Power", "guid": "7e822c03-1b20-41d1-9427-f5b8d5836af7" }, "85785701-07b2-4f81-bc1e-0f423700c254": { @@ -469,7 +524,7 @@ "power": "src\/85785701-07b2-4f81-bc1e-0f423700c254\/code.power", "settings": "src\/85785701-07b2-4f81-bc1e-0f423700c254\/settings.json", "path": "src\/85785701-07b2-4f81-bc1e-0f423700c254", - "spk": "Super__85785701_07b2_4f81_bc1e_0f423700c254__Power", + "spk": "Super---85785701_07b2_4f81_bc1e_0f423700c254---Power", "guid": "85785701-07b2-4f81-bc1e-0f423700c254" }, "8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff": { @@ -480,7 +535,7 @@ "power": "src\/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\/code.power", "settings": "src\/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\/settings.json", "path": "src\/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff", - "spk": "Super__8aef58c1_3f70_4bd4_b9e4_3f29fcd41cff__Power", + "spk": "Super---8aef58c1_3f70_4bd4_b9e4_3f29fcd41cff---Power", "guid": "8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff" }, "8f83fb79-f92b-4f1f-952b-325f6c22d11e": { @@ -491,7 +546,7 @@ "power": "src\/8f83fb79-f92b-4f1f-952b-325f6c22d11e\/code.power", "settings": "src\/8f83fb79-f92b-4f1f-952b-325f6c22d11e\/settings.json", "path": "src\/8f83fb79-f92b-4f1f-952b-325f6c22d11e", - "spk": "Super__8f83fb79_f92b_4f1f_952b_325f6c22d11e__Power", + "spk": "Super---8f83fb79_f92b_4f1f_952b_325f6c22d11e---Power", "guid": "8f83fb79-f92b-4f1f-952b-325f6c22d11e" }, "91004529-94a9-4590-b842-e7c6b624ecf5": { @@ -502,7 +557,7 @@ "power": "src\/91004529-94a9-4590-b842-e7c6b624ecf5\/code.power", "settings": "src\/91004529-94a9-4590-b842-e7c6b624ecf5\/settings.json", "path": "src\/91004529-94a9-4590-b842-e7c6b624ecf5", - "spk": "Super__91004529_94a9_4590_b842_e7c6b624ecf5__Power", + "spk": "Super---91004529_94a9_4590_b842_e7c6b624ecf5---Power", "guid": "91004529-94a9-4590-b842-e7c6b624ecf5" }, "9206082e-a3f7-472e-98b2-de90d06cbdcd": { @@ -513,7 +568,7 @@ "power": "src\/9206082e-a3f7-472e-98b2-de90d06cbdcd\/code.power", "settings": "src\/9206082e-a3f7-472e-98b2-de90d06cbdcd\/settings.json", "path": "src\/9206082e-a3f7-472e-98b2-de90d06cbdcd", - "spk": "Super__9206082e_a3f7_472e_98b2_de90d06cbdcd__Power", + "spk": "Super---9206082e_a3f7_472e_98b2_de90d06cbdcd---Power", "guid": "9206082e-a3f7-472e-98b2-de90d06cbdcd" }, "92291f1f-f248-4ec0-9f2a-3d47c49eeac1": { @@ -524,7 +579,7 @@ "power": "src\/92291f1f-f248-4ec0-9f2a-3d47c49eeac1\/code.power", "settings": "src\/92291f1f-f248-4ec0-9f2a-3d47c49eeac1\/settings.json", "path": "src\/92291f1f-f248-4ec0-9f2a-3d47c49eeac1", - "spk": "Super__92291f1f_f248_4ec0_9f2a_3d47c49eeac1__Power", + "spk": "Super---92291f1f_f248_4ec0_9f2a_3d47c49eeac1---Power", "guid": "92291f1f-f248-4ec0-9f2a-3d47c49eeac1" }, "9c3aa650-e536-4eea-a2d4-73cc3e184aa9": { @@ -535,7 +590,7 @@ "power": "src\/9c3aa650-e536-4eea-a2d4-73cc3e184aa9\/code.power", "settings": "src\/9c3aa650-e536-4eea-a2d4-73cc3e184aa9\/settings.json", "path": "src\/9c3aa650-e536-4eea-a2d4-73cc3e184aa9", - "spk": "Super__9c3aa650_e536_4eea_a2d4_73cc3e184aa9__Power", + "spk": "Super---9c3aa650_e536_4eea_a2d4_73cc3e184aa9---Power", "guid": "9c3aa650-e536-4eea-a2d4-73cc3e184aa9" }, "9c513baf-b279-43fd-ae29-a585c8cbc4f0": { @@ -546,7 +601,7 @@ "power": "src\/9c513baf-b279-43fd-ae29-a585c8cbc4f0\/code.power", "settings": "src\/9c513baf-b279-43fd-ae29-a585c8cbc4f0\/settings.json", "path": "src\/9c513baf-b279-43fd-ae29-a585c8cbc4f0", - "spk": "Super__9c513baf_b279_43fd_ae29_a585c8cbc4f0__Power", + "spk": "Super---9c513baf_b279_43fd_ae29_a585c8cbc4f0---Power", "guid": "9c513baf-b279-43fd-ae29-a585c8cbc4f0" }, "9d76b8dc-3883-4755-b11c-131d19ca8a53": { @@ -557,7 +612,7 @@ "power": "src\/9d76b8dc-3883-4755-b11c-131d19ca8a53\/code.power", "settings": "src\/9d76b8dc-3883-4755-b11c-131d19ca8a53\/settings.json", "path": "src\/9d76b8dc-3883-4755-b11c-131d19ca8a53", - "spk": "Super__9d76b8dc_3883_4755_b11c_131d19ca8a53__Power", + "spk": "Super---9d76b8dc_3883_4755_b11c_131d19ca8a53---Power", "guid": "9d76b8dc-3883-4755-b11c-131d19ca8a53" }, "9ef0eb24-aae4-4f5a-99af-d724db44808f": { @@ -568,7 +623,7 @@ "power": "src\/9ef0eb24-aae4-4f5a-99af-d724db44808f\/code.power", "settings": "src\/9ef0eb24-aae4-4f5a-99af-d724db44808f\/settings.json", "path": "src\/9ef0eb24-aae4-4f5a-99af-d724db44808f", - "spk": "Super__9ef0eb24_aae4_4f5a_99af_d724db44808f__Power", + "spk": "Super---9ef0eb24_aae4_4f5a_99af_d724db44808f---Power", "guid": "9ef0eb24-aae4-4f5a-99af-d724db44808f" }, "a223b31e-ea1d-4cdf-92ae-5f9becffaff0": { @@ -579,7 +634,7 @@ "power": "src\/a223b31e-ea1d-4cdf-92ae-5f9becffaff0\/code.power", "settings": "src\/a223b31e-ea1d-4cdf-92ae-5f9becffaff0\/settings.json", "path": "src\/a223b31e-ea1d-4cdf-92ae-5f9becffaff0", - "spk": "Super__a223b31e_ea1d_4cdf_92ae_5f9becffaff0__Power", + "spk": "Super---a223b31e_ea1d_4cdf_92ae_5f9becffaff0---Power", "guid": "a223b31e-ea1d-4cdf-92ae-5f9becffaff0" }, "a455d916-cfe4-41df-9245-bafb709aacdb": { @@ -590,7 +645,7 @@ "power": "src\/a455d916-cfe4-41df-9245-bafb709aacdb\/code.power", "settings": "src\/a455d916-cfe4-41df-9245-bafb709aacdb\/settings.json", "path": "src\/a455d916-cfe4-41df-9245-bafb709aacdb", - "spk": "Super__a455d916_cfe4_41df_9245_bafb709aacdb__Power", + "spk": "Super---a455d916_cfe4_41df_9245_bafb709aacdb---Power", "guid": "a455d916-cfe4-41df-9245-bafb709aacdb" }, "a5daf189-3345-4b13-8716-c51f686f545b": { @@ -601,7 +656,7 @@ "power": "src\/a5daf189-3345-4b13-8716-c51f686f545b\/code.power", "settings": "src\/a5daf189-3345-4b13-8716-c51f686f545b\/settings.json", "path": "src\/a5daf189-3345-4b13-8716-c51f686f545b", - "spk": "Super__a5daf189_3345_4b13_8716_c51f686f545b__Power", + "spk": "Super---a5daf189_3345_4b13_8716_c51f686f545b---Power", "guid": "a5daf189-3345-4b13-8716-c51f686f545b" }, "a8935cbe-7701-40dc-bfd5-675f2d600954": { @@ -612,7 +667,7 @@ "power": "src\/a8935cbe-7701-40dc-bfd5-675f2d600954\/code.power", "settings": "src\/a8935cbe-7701-40dc-bfd5-675f2d600954\/settings.json", "path": "src\/a8935cbe-7701-40dc-bfd5-675f2d600954", - "spk": "Super__a8935cbe_7701_40dc_bfd5_675f2d600954__Power", + "spk": "Super---a8935cbe_7701_40dc_bfd5_675f2d600954---Power", "guid": "a8935cbe-7701-40dc-bfd5-675f2d600954" }, "ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48": { @@ -623,7 +678,7 @@ "power": "src\/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\/code.power", "settings": "src\/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\/settings.json", "path": "src\/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48", - "spk": "Super__ad12ca1c_d3ce_4e7f_88c5_c6c92bdedc48__Power", + "spk": "Super---ad12ca1c_d3ce_4e7f_88c5_c6c92bdedc48---Power", "guid": "ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48" }, "af0eedbe-603b-4671-8e5a-28165d88254b": { @@ -634,7 +689,7 @@ "power": "src\/af0eedbe-603b-4671-8e5a-28165d88254b\/code.power", "settings": "src\/af0eedbe-603b-4671-8e5a-28165d88254b\/settings.json", "path": "src\/af0eedbe-603b-4671-8e5a-28165d88254b", - "spk": "Super__af0eedbe_603b_4671_8e5a_28165d88254b__Power", + "spk": "Super---af0eedbe_603b_4671_8e5a_28165d88254b---Power", "guid": "af0eedbe-603b-4671-8e5a-28165d88254b" }, "b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce": { @@ -645,9 +700,20 @@ "power": "src\/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce\/code.power", "settings": "src\/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce\/settings.json", "path": "src\/b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce", - "spk": "Super__b3d2ec33_76d4_4c3b_bb2c_86ac14a221ce__Power", + "spk": "Super---b3d2ec33_76d4_4c3b_bb2c_86ac14a221ce---Power", "guid": "b3d2ec33-76d4-4c3b-bb2c-86ac14a221ce" }, + "b6e9854c-3672-42ec-8843-26c24b4635bd": { + "name": "SchemaCheckerInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Interfaces", + "code": "src\/b6e9854c-3672-42ec-8843-26c24b4635bd\/code.php", + "power": "src\/b6e9854c-3672-42ec-8843-26c24b4635bd\/code.power", + "settings": "src\/b6e9854c-3672-42ec-8843-26c24b4635bd\/settings.json", + "path": "src\/b6e9854c-3672-42ec-8843-26c24b4635bd", + "spk": "Super---b6e9854c_3672_42ec_8843_26c24b4635bd---Power", + "guid": "b6e9854c-3672-42ec-8843-26c24b4635bd" + }, "b84e947d-2a13-44f7-ac0f-3902ae55ae0c": { "name": "BaseRegistry", "type": "abstract class", @@ -656,7 +722,7 @@ "power": "src\/b84e947d-2a13-44f7-ac0f-3902ae55ae0c\/code.power", "settings": "src\/b84e947d-2a13-44f7-ac0f-3902ae55ae0c\/settings.json", "path": "src\/b84e947d-2a13-44f7-ac0f-3902ae55ae0c", - "spk": "Super__b84e947d_2a13_44f7_ac0f_3902ae55ae0c__Power", + "spk": "Super---b84e947d_2a13_44f7_ac0f_3902ae55ae0c---Power", "guid": "b84e947d-2a13-44f7-ac0f-3902ae55ae0c" }, "bb29a833-73f7-4283-9327-bc7e41f0723b": { @@ -667,7 +733,7 @@ "power": "src\/bb29a833-73f7-4283-9327-bc7e41f0723b\/code.power", "settings": "src\/bb29a833-73f7-4283-9327-bc7e41f0723b\/settings.json", "path": "src\/bb29a833-73f7-4283-9327-bc7e41f0723b", - "spk": "Super__bb29a833_73f7_4283_9327_bc7e41f0723b__Power", + "spk": "Super---bb29a833_73f7_4283_9327_bc7e41f0723b---Power", "guid": "bb29a833-73f7-4283-9327-bc7e41f0723b" }, "bb30f709-53d2-446a-ab3d-300fe6de0bc8": { @@ -678,7 +744,7 @@ "power": "src\/bb30f709-53d2-446a-ab3d-300fe6de0bc8\/code.power", "settings": "src\/bb30f709-53d2-446a-ab3d-300fe6de0bc8\/settings.json", "path": "src\/bb30f709-53d2-446a-ab3d-300fe6de0bc8", - "spk": "Super__bb30f709_53d2_446a_ab3d_300fe6de0bc8__Power", + "spk": "Super---bb30f709_53d2_446a_ab3d_300fe6de0bc8---Power", "guid": "bb30f709-53d2-446a-ab3d-300fe6de0bc8" }, "bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8": { @@ -689,7 +755,7 @@ "power": "src\/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8\/code.power", "settings": "src\/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8\/settings.json", "path": "src\/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8", - "spk": "Super__bfd1d6d5_56c1_4fe9_9fee_1c5910e1f5d8__Power", + "spk": "Super---bfd1d6d5_56c1_4fe9_9fee_1c5910e1f5d8---Power", "guid": "bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8" }, "c09e8968-c767-4175-bb3d-8432f206a2c7": { @@ -700,7 +766,7 @@ "power": "src\/c09e8968-c767-4175-bb3d-8432f206a2c7\/code.power", "settings": "src\/c09e8968-c767-4175-bb3d-8432f206a2c7\/settings.json", "path": "src\/c09e8968-c767-4175-bb3d-8432f206a2c7", - "spk": "Super__c09e8968_c767_4175_bb3d_8432f206a2c7__Power", + "spk": "Super---c09e8968_c767_4175_bb3d_8432f206a2c7---Power", "guid": "c09e8968-c767-4175-bb3d-8432f206a2c7" }, "c182506a-ab84-439c-b962-1e606b58d545": { @@ -711,7 +777,7 @@ "power": "src\/c182506a-ab84-439c-b962-1e606b58d545\/code.power", "settings": "src\/c182506a-ab84-439c-b962-1e606b58d545\/settings.json", "path": "src\/c182506a-ab84-439c-b962-1e606b58d545", - "spk": "Super__c182506a_ab84_439c_b962_1e606b58d545__Power", + "spk": "Super---c182506a_ab84_439c_b962_1e606b58d545---Power", "guid": "c182506a-ab84-439c-b962-1e606b58d545" }, "c548640c-a461-4424-9ac5-8dfb5ed06d8d": { @@ -722,7 +788,7 @@ "power": "src\/c548640c-a461-4424-9ac5-8dfb5ed06d8d\/code.power", "settings": "src\/c548640c-a461-4424-9ac5-8dfb5ed06d8d\/settings.json", "path": "src\/c548640c-a461-4424-9ac5-8dfb5ed06d8d", - "spk": "Super__c548640c_a461_4424_9ac5_8dfb5ed06d8d__Power", + "spk": "Super---c548640c_a461_4424_9ac5_8dfb5ed06d8d---Power", "guid": "c548640c-a461-4424-9ac5-8dfb5ed06d8d" }, "caf33c5d-858c-4f9a-894f-ab302ec5445a": { @@ -733,7 +799,7 @@ "power": "src\/caf33c5d-858c-4f9a-894f-ab302ec5445a\/code.power", "settings": "src\/caf33c5d-858c-4f9a-894f-ab302ec5445a\/settings.json", "path": "src\/caf33c5d-858c-4f9a-894f-ab302ec5445a", - "spk": "Super__caf33c5d_858c_4f9a_894f_ab302ec5445a__Power", + "spk": "Super---caf33c5d_858c_4f9a_894f_ab302ec5445a---Power", "guid": "caf33c5d-858c-4f9a-894f-ab302ec5445a" }, "cce56585-58b0-4f72-a92c-e2635ea52d83": { @@ -744,7 +810,7 @@ "power": "src\/cce56585-58b0-4f72-a92c-e2635ea52d83\/code.power", "settings": "src\/cce56585-58b0-4f72-a92c-e2635ea52d83\/settings.json", "path": "src\/cce56585-58b0-4f72-a92c-e2635ea52d83", - "spk": "Super__cce56585_58b0_4f72_a92c_e2635ea52d83__Power", + "spk": "Super---cce56585_58b0_4f72_a92c_e2635ea52d83---Power", "guid": "cce56585-58b0-4f72-a92c-e2635ea52d83" }, "ce8cf834-6bac-44fb-941c-861f7e046cc0": { @@ -755,7 +821,7 @@ "power": "src\/ce8cf834-6bac-44fb-941c-861f7e046cc0\/code.power", "settings": "src\/ce8cf834-6bac-44fb-941c-861f7e046cc0\/settings.json", "path": "src\/ce8cf834-6bac-44fb-941c-861f7e046cc0", - "spk": "Super__ce8cf834_6bac_44fb_941c_861f7e046cc0__Power", + "spk": "Super---ce8cf834_6bac_44fb_941c_861f7e046cc0---Power", "guid": "ce8cf834-6bac-44fb-941c-861f7e046cc0" }, "cefe4092-a4c2-41a6-a683-bd3ab5419cc6": { @@ -766,7 +832,7 @@ "power": "src\/cefe4092-a4c2-41a6-a683-bd3ab5419cc6\/code.power", "settings": "src\/cefe4092-a4c2-41a6-a683-bd3ab5419cc6\/settings.json", "path": "src\/cefe4092-a4c2-41a6-a683-bd3ab5419cc6", - "spk": "Super__cefe4092_a4c2_41a6_a683_bd3ab5419cc6__Power", + "spk": "Super---cefe4092_a4c2_41a6_a683_bd3ab5419cc6---Power", "guid": "cefe4092-a4c2-41a6-a683-bd3ab5419cc6" }, "d8f9ba53-c490-4e8b-8e9f-6757224e069c": { @@ -777,7 +843,7 @@ "power": "src\/d8f9ba53-c490-4e8b-8e9f-6757224e069c\/code.power", "settings": "src\/d8f9ba53-c490-4e8b-8e9f-6757224e069c\/settings.json", "path": "src\/d8f9ba53-c490-4e8b-8e9f-6757224e069c", - "spk": "Super__d8f9ba53_c490_4e8b_8e9f_6757224e069c__Power", + "spk": "Super---d8f9ba53_c490_4e8b_8e9f_6757224e069c---Power", "guid": "d8f9ba53-c490-4e8b-8e9f-6757224e069c" }, "db87c339-5bb6-4291-a7ef-2c48ea1b06bc": { @@ -788,7 +854,7 @@ "power": "src\/db87c339-5bb6-4291-a7ef-2c48ea1b06bc\/code.power", "settings": "src\/db87c339-5bb6-4291-a7ef-2c48ea1b06bc\/settings.json", "path": "src\/db87c339-5bb6-4291-a7ef-2c48ea1b06bc", - "spk": "Super__db87c339_5bb6_4291_a7ef_2c48ea1b06bc__Power", + "spk": "Super---db87c339_5bb6_4291_a7ef_2c48ea1b06bc---Power", "guid": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc" }, "e0198c3f-777a-4a0b-87b7-e6a198afc8f9": { @@ -799,7 +865,7 @@ "power": "src\/e0198c3f-777a-4a0b-87b7-e6a198afc8f9\/code.power", "settings": "src\/e0198c3f-777a-4a0b-87b7-e6a198afc8f9\/settings.json", "path": "src\/e0198c3f-777a-4a0b-87b7-e6a198afc8f9", - "spk": "Super__e0198c3f_777a_4a0b_87b7_e6a198afc8f9__Power", + "spk": "Super---e0198c3f_777a_4a0b_87b7_e6a198afc8f9---Power", "guid": "e0198c3f-777a-4a0b-87b7-e6a198afc8f9" }, "e0f6ddbe-2a35-4537-942c-faff2ebd04f6": { @@ -810,18 +876,29 @@ "power": "src\/e0f6ddbe-2a35-4537-942c-faff2ebd04f6\/code.power", "settings": "src\/e0f6ddbe-2a35-4537-942c-faff2ebd04f6\/settings.json", "path": "src\/e0f6ddbe-2a35-4537-942c-faff2ebd04f6", - "spk": "Super__e0f6ddbe_2a35_4537_942c_faff2ebd04f6__Power", + "spk": "Super---e0f6ddbe_2a35_4537_942c_faff2ebd04f6---Power", "guid": "e0f6ddbe-2a35-4537-942c-faff2ebd04f6" }, + "e335dd61-c2f9-4536-8ed9-aec5edee0b26": { + "name": "RemoteSetInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Interfaces\\Data", + "code": "src\/e335dd61-c2f9-4536-8ed9-aec5edee0b26\/code.php", + "power": "src\/e335dd61-c2f9-4536-8ed9-aec5edee0b26\/code.power", + "settings": "src\/e335dd61-c2f9-4536-8ed9-aec5edee0b26\/settings.json", + "path": "src\/e335dd61-c2f9-4536-8ed9-aec5edee0b26", + "spk": "Super---e335dd61_c2f9_4536_8ed9_aec5edee0b26---Power", + "guid": "e335dd61-c2f9-4536-8ed9-aec5edee0b26" + }, "eb7d69c2-4ee9-4bd0-aacc-ab51a12be895": { - "name": "Repository", + "name": "Set", "type": "class", - "namespace": "VDM\\Joomla\\Data", + "namespace": "VDM\\Joomla\\Data\\Remote", "code": "src\/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895\/code.php", "power": "src\/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895\/code.power", "settings": "src\/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895\/settings.json", "path": "src\/eb7d69c2-4ee9-4bd0-aacc-ab51a12be895", - "spk": "Super__eb7d69c2_4ee9_4bd0_aacc_ab51a12be895__Power", + "spk": "Super---eb7d69c2_4ee9_4bd0_aacc_ab51a12be895---Power", "guid": "eb7d69c2-4ee9-4bd0-aacc-ab51a12be895" }, "f3c04c28-bce4-422e-be93-7d163e4e342b": { @@ -832,7 +909,7 @@ "power": "src\/f3c04c28-bce4-422e-be93-7d163e4e342b\/code.power", "settings": "src\/f3c04c28-bce4-422e-be93-7d163e4e342b\/settings.json", "path": "src\/f3c04c28-bce4-422e-be93-7d163e4e342b", - "spk": "Super__f3c04c28_bce4_422e_be93_7d163e4e342b__Power", + "spk": "Super---f3c04c28_bce4_422e_be93_7d163e4e342b---Power", "guid": "f3c04c28-bce4-422e-be93-7d163e4e342b" }, "ff7d0111-8f79-42aa-ac14-b53ba2c49369": { @@ -843,7 +920,7 @@ "power": "src\/ff7d0111-8f79-42aa-ac14-b53ba2c49369\/code.power", "settings": "src\/ff7d0111-8f79-42aa-ac14-b53ba2c49369\/settings.json", "path": "src\/ff7d0111-8f79-42aa-ac14-b53ba2c49369", - "spk": "Super__ff7d0111_8f79_42aa_ac14_b53ba2c49369__Power", + "spk": "Super---ff7d0111_8f79_42aa_ac14_b53ba2c49369---Power", "guid": "ff7d0111-8f79-42aa-ac14-b53ba2c49369" }, "ffbd4e1f-a342-4080-ab7d-1de3741bf319": { @@ -854,7 +931,7 @@ "power": "src\/ffbd4e1f-a342-4080-ab7d-1de3741bf319\/code.power", "settings": "src\/ffbd4e1f-a342-4080-ab7d-1de3741bf319\/settings.json", "path": "src\/ffbd4e1f-a342-4080-ab7d-1de3741bf319", - "spk": "Super__ffbd4e1f_a342_4080_ab7d_1de3741bf319__Power", + "spk": "Super---ffbd4e1f_a342_4080_ab7d_1de3741bf319---Power", "guid": "ffbd4e1f-a342-4080-ab7d-1de3741bf319" } } \ No newline at end of file