diff --git a/README.md b/README.md index fc39a8f..7fc70e5 100644 --- a/README.md +++ b/README.md @@ -23,2415 +23,365 @@ This repository contains an index (see below) of all the approved powers within # Index of powers +- **Namespace**: [VDM\Joomla\Componentbuilder\Abstraction](#vdm-joomla-componentbuilder-abstraction) + + - **abstract class BaseConfig** | [Details](src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36) | [Code](src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/code.php) | [Settings](src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/settings.json) | Super__9769f3b2_17bf_4f20_b54b_3a4ebe572b36__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler](#vdm-joomla-componentbuilder-compiler) - - **abstract class Factory** | [Details](src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac) | [Code](src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/code.php) | [Settings](src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/settings.json) | [d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac](src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac) - - **class Component** | [Details](src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0) | [Code](src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/code.php) | [Settings](src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/settings.json) | [e2472b22-a329-44d8-b4a2-ae3ba99e17a0](src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0) - - **class Config** | [Details](src/fa4bf18e-301e-42e3-91fb-6e0096c07adc) | [Code](src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/code.php) | [Settings](src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/settings.json) | [fa4bf18e-301e-42e3-91fb-6e0096c07adc](src/fa4bf18e-301e-42e3-91fb-6e0096c07adc) - - **class Content** | [Details](src/adfbe68a-6d22-43e5-aee8-2787e8c47e75) | [Code](src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/code.php) | [Settings](src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/settings.json) | [adfbe68a-6d22-43e5-aee8-2787e8c47e75](src/adfbe68a-6d22-43e5-aee8-2787e8c47e75) - - **class Customcode** | [Details](src/313b43c4-98c3-4f62-9177-2d73ec8eba31) | [Code](src/313b43c4-98c3-4f62-9177-2d73ec8eba31/code.php) | [Settings](src/313b43c4-98c3-4f62-9177-2d73ec8eba31/settings.json) | [313b43c4-98c3-4f62-9177-2d73ec8eba31](src/313b43c4-98c3-4f62-9177-2d73ec8eba31) - - **class Field** | [Details](src/d7ba2d5d-10b6-470d-978d-9f91ea65ee75) | [Code](src/d7ba2d5d-10b6-470d-978d-9f91ea65ee75/code.php) | [Settings](src/d7ba2d5d-10b6-470d-978d-9f91ea65ee75/settings.json) | [d7ba2d5d-10b6-470d-978d-9f91ea65ee75](src/d7ba2d5d-10b6-470d-978d-9f91ea65ee75) - - **class Language** | [Details](src/8eee7df5-2775-41a9-9372-c46c5939a252) | [Code](src/8eee7df5-2775-41a9-9372-c46c5939a252/code.php) | [Settings](src/8eee7df5-2775-41a9-9372-c46c5939a252/settings.json) | [8eee7df5-2775-41a9-9372-c46c5939a252](src/8eee7df5-2775-41a9-9372-c46c5939a252) - - **class Placeholder** | [Details](src/06453ada-e370-49f0-b262-e3f5a8ed0c2c) | [Code](src/06453ada-e370-49f0-b262-e3f5a8ed0c2c/code.php) | [Settings](src/06453ada-e370-49f0-b262-e3f5a8ed0c2c/settings.json) | [06453ada-e370-49f0-b262-e3f5a8ed0c2c](src/06453ada-e370-49f0-b262-e3f5a8ed0c2c) - - **class Power** | [Details](src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1) | [Code](src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/code.php) | [Settings](src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/settings.json) | [b836c1b1-b6b1-44f7-b8a2-9a763a4185b1](src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1) - - **class Registry** | [Details](src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6) | [Code](src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/code.php) | [Settings](src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/settings.json) | [e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6](src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6) + - **abstract class Factory** | [Details](src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac) | [Code](src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/code.php) | [Settings](src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/settings.json) | Super__d910d8b8_4c23_4f3e_8cda_438f2d2bd7ac__Power + - **final class Component** | [Details](src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0) | [Code](src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/code.php) | [Settings](src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/settings.json) | Super__e2472b22_a329_44d8_b4a2_ae3ba99e17a0__Power + - **class Config** | [Details](src/fa4bf18e-301e-42e3-91fb-6e0096c07adc) | [Code](src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/code.php) | [Settings](src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/settings.json) | Super__fa4bf18e_301e_42e3_91fb_6e0096c07adc__Power + - **class Content** | [Details](src/adfbe68a-6d22-43e5-aee8-2787e8c47e75) | [Code](src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/code.php) | [Settings](src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/settings.json) | Super__adfbe68a_6d22_43e5_aee8_2787e8c47e75__Power + - **class Customcode** | [Details](src/313b43c4-98c3-4f62-9177-2d73ec8eba31) | [Code](src/313b43c4-98c3-4f62-9177-2d73ec8eba31/code.php) | [Settings](src/313b43c4-98c3-4f62-9177-2d73ec8eba31/settings.json) | Super__313b43c4_98c3_4f62_9177_2d73ec8eba31__Power + - **class Field** | [Details](src/d7ba2d5d-10b6-470d-978d-9f91ea65ee75) | [Code](src/d7ba2d5d-10b6-470d-978d-9f91ea65ee75/code.php) | [Settings](src/d7ba2d5d-10b6-470d-978d-9f91ea65ee75/settings.json) | Super__d7ba2d5d_10b6_470d_978d_9f91ea65ee75__Power + - **class Language** | [Details](src/8eee7df5-2775-41a9-9372-c46c5939a252) | [Code](src/8eee7df5-2775-41a9-9372-c46c5939a252/code.php) | [Settings](src/8eee7df5-2775-41a9-9372-c46c5939a252/settings.json) | Super__8eee7df5_2775_41a9_9372_c46c5939a252__Power + - **class Placeholder** | [Details](src/06453ada-e370-49f0-b262-e3f5a8ed0c2c) | [Code](src/06453ada-e370-49f0-b262-e3f5a8ed0c2c/code.php) | [Settings](src/06453ada-e370-49f0-b262-e3f5a8ed0c2c/settings.json) | Super__06453ada_e370_49f0_b262_e3f5a8ed0c2c__Power + - **class Power** | [Details](src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1) | [Code](src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/code.php) | [Settings](src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/settings.json) | Super__b836c1b1_b6b1_44f7_b8a2_9a763a4185b1__Power + - **class Registry** | [Details](src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6) | [Code](src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/code.php) | [Settings](src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/settings.json) | Super__e5d9804f_0eb0_4ee9_b406_ad4e8cdbc1f6__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Interfaces](#vdm-joomla-componentbuilder-interfaces) - - **interface Cryptinterface** | [Details](src/81de8f57-dd9c-4a17-964f-848cd4a0743b) | [Code](src/81de8f57-dd9c-4a17-964f-848cd4a0743b/code.php) | [Settings](src/81de8f57-dd9c-4a17-964f-848cd4a0743b/settings.json) | [81de8f57-dd9c-4a17-964f-848cd4a0743b](src/81de8f57-dd9c-4a17-964f-848cd4a0743b) - - **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) | [caf33c5d-858c-4f9a-894f-ab302ec5445a](src/caf33c5d-858c-4f9a-894f-ab302ec5445a) - - **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) | [ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48) - - **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) | [2ad31f74-f579-499d-b98b-c4f54fd615dd](src/2ad31f74-f579-499d-b98b-c4f54fd615dd) - - **interface Mapperdoubleinterface** | [Details](src/fbc58009-fa16-4d49-a0dd-419c3b62d42f) | [Code](src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/code.php) | [Settings](src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/settings.json) | [fbc58009-fa16-4d49-a0dd-419c3b62d42f](src/fbc58009-fa16-4d49-a0dd-419c3b62d42f) - - **interface Mappersingleinterface** | [Details](src/78527c29-24ad-4735-ad4c-ec33a4952d9b) | [Code](src/78527c29-24ad-4735-ad4c-ec33a4952d9b/code.php) | [Settings](src/78527c29-24ad-4735-ad4c-ec33a4952d9b/settings.json) | [78527c29-24ad-4735-ad4c-ec33a4952d9b](src/78527c29-24ad-4735-ad4c-ec33a4952d9b) - - **interface Serverinterface** | [Details](src/86ac0760-26f5-4746-9c7f-ce77860f80f8) | [Code](src/86ac0760-26f5-4746-9c7f-ce77860f80f8/code.php) | [Settings](src/86ac0760-26f5-4746-9c7f-ce77860f80f8/settings.json) | [86ac0760-26f5-4746-9c7f-ce77860f80f8](src/86ac0760-26f5-4746-9c7f-ce77860f80f8) - - **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) | [2da6d6c4-eb29-4d69-8bc2-36d96e916adf](src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf) + - **interface Cryptinterface** | [Details](src/81de8f57-dd9c-4a17-964f-848cd4a0743b) | [Code](src/81de8f57-dd9c-4a17-964f-848cd4a0743b/code.php) | [Settings](src/81de8f57-dd9c-4a17-964f-848cd4a0743b/settings.json) | Super__81de8f57_dd9c_4a17_964f_848cd4a0743b__Power + - **interface Mapperdoubleinterface** | [Details](src/fbc58009-fa16-4d49-a0dd-419c3b62d42f) | [Code](src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/code.php) | [Settings](src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/settings.json) | Super__fbc58009_fa16_4d49_a0dd_419c3b62d42f__Power + - **interface Mappersingleinterface** | [Details](src/78527c29-24ad-4735-ad4c-ec33a4952d9b) | [Code](src/78527c29-24ad-4735-ad4c-ec33a4952d9b/code.php) | [Settings](src/78527c29-24ad-4735-ad4c-ec33a4952d9b/settings.json) | Super__78527c29_24ad_4735_ad4c_ec33a4952d9b__Power + - **interface Serverinterface** | [Details](src/86ac0760-26f5-4746-9c7f-ce77860f80f8) | [Code](src/86ac0760-26f5-4746-9c7f-ce77860f80f8/code.php) | [Settings](src/86ac0760-26f5-4746-9c7f-ce77860f80f8/settings.json) | Super__86ac0760_26f5_4746_9c7f_ce77860f80f8__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Power](#vdm-joomla-componentbuilder-power) - - **final class Grep** | [Details](src/6784dd52-0909-451a-a872-9a942a023c68) | [Code](src/6784dd52-0909-451a-a872-9a942a023c68/code.php) | [Settings](src/6784dd52-0909-451a-a872-9a942a023c68/settings.json) | [6784dd52-0909-451a-a872-9a942a023c68](src/6784dd52-0909-451a-a872-9a942a023c68) - - **final class Model** | [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) | [7c1fb50f-8fb1-4627-8705-6fedf7182ca5](src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5) - - **final class Super** | [Details](src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff) | [Code](src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/code.php) | [Settings](src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/settings.json) | [3ab0eba9-f37b-4b37-aec1-2e78067f2aff](src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff) + - **abstract class Factory** | [Details](src/a5734b9e-a72d-494c-bc72-c3bc7506015f) | [Code](src/a5734b9e-a72d-494c-bc72-c3bc7506015f/code.php) | [Settings](src/a5734b9e-a72d-494c-bc72-c3bc7506015f/settings.json) | Super__a5734b9e_a72d_494c_bc72_c3bc7506015f__Power + - **final class Generator** | [Details](src/505801ac-d3e2-44c6-a300-9a57a96170c6) | [Code](src/505801ac-d3e2-44c6-a300-9a57a96170c6/code.php) | [Settings](src/505801ac-d3e2-44c6-a300-9a57a96170c6/settings.json) | Super__505801ac_d3e2_44c6_a300_9a57a96170c6__Power + - **final class Grep** | [Details](src/6784dd52-0909-451a-a872-9a942a023c68) | [Code](src/6784dd52-0909-451a-a872-9a942a023c68/code.php) | [Settings](src/6784dd52-0909-451a-a872-9a942a023c68/settings.json) | Super__6784dd52_0909_451a_a872_9a942a023c68__Power + - **final class Super** | [Details](src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff) | [Code](src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/code.php) | [Settings](src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/settings.json) | Super__3ab0eba9_f37b_4b37_aec1_2e78067f2aff__Power + - **class Config** | [Details](src/be4ccfae-65a9-401e-bdbe-637d8c226954) | [Code](src/be4ccfae-65a9-401e-bdbe-637d8c226954/code.php) | [Settings](src/be4ccfae-65a9-401e-bdbe-637d8c226954/settings.json) | Super__be4ccfae_65a9_401e_bdbe_637d8c226954__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Utilities](#vdm-joomla-componentbuilder-utilities) - - **class Constantpaths** | [Details](src/e0c8c931-52a0-4171-9909-e8769505bb1f) | [Code](src/e0c8c931-52a0-4171-9909-e8769505bb1f/code.php) | [Settings](src/e0c8c931-52a0-4171-9909-e8769505bb1f/settings.json) | [e0c8c931-52a0-4171-9909-e8769505bb1f](src/e0c8c931-52a0-4171-9909-e8769505bb1f) + - **class Constantpaths** | [Details](src/e0c8c931-52a0-4171-9909-e8769505bb1f) | [Code](src/e0c8c931-52a0-4171-9909-e8769505bb1f/code.php) | [Settings](src/e0c8c931-52a0-4171-9909-e8769505bb1f/settings.json) | Super__e0c8c931_52a0_4171_9909_e8769505bb1f__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Adminview](#vdm-joomla-componentbuilder-compiler-adminview) - - **class Data** | [Details](src/cef2815b-f72b-402a-b769-f028f676692d) | [Code](src/cef2815b-f72b-402a-b769-f028f676692d/code.php) | [Settings](src/cef2815b-f72b-402a-b769-f028f676692d/settings.json) | [cef2815b-f72b-402a-b769-f028f676692d](src/cef2815b-f72b-402a-b769-f028f676692d) + - **final class Permission** | [Details](src/a85451d3-a5c5-446a-90ae-0cf715a16d94) | [Code](src/a85451d3-a5c5-446a-90ae-0cf715a16d94/code.php) | [Settings](src/a85451d3-a5c5-446a-90ae-0cf715a16d94/settings.json) | Super__a85451d3_a5c5_446a_90ae_0cf715a16d94__Power + - **class Data** | [Details](src/cef2815b-f72b-402a-b769-f028f676692d) | [Code](src/cef2815b-f72b-402a-b769-f028f676692d/code.php) | [Settings](src/cef2815b-f72b-402a-b769-f028f676692d/settings.json) | Super__cef2815b_f72b_402a_b769_f028f676692d__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Alias](#vdm-joomla-componentbuilder-compiler-alias) - - **class Data** | [Details](src/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c) | [Code](src/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c/code.php) | [Settings](src/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c/settings.json) | [f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c](src/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c) + - **class Data** | [Details](src/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c) | [Code](src/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c/code.php) | [Settings](src/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c/settings.json) | Super__f05ac28d_44f4_4e6d_a1be_5c8ae6baf69c__Power +- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Builder](#vdm-joomla-componentbuilder-compiler-builder) + + - **final class AccessSwitch** | [Details](src/e38a5276-6664-4bc6-8002-0562fcc248f8) | [Code](src/e38a5276-6664-4bc6-8002-0562fcc248f8/code.php) | [Settings](src/e38a5276-6664-4bc6-8002-0562fcc248f8/settings.json) | Super__e38a5276_6664_4bc6_8002_0562fcc248f8__Power + - **final class AccessSwitchList** | [Details](src/81212121-ad5c-43c5-b046-f2650864f690) | [Code](src/81212121-ad5c-43c5-b046-f2650864f690/code.php) | [Settings](src/81212121-ad5c-43c5-b046-f2650864f690/settings.json) | Super__81212121_ad5c_43c5_b046_f2650864f690__Power + - **final class AdminFilterType** | [Details](src/9481caa2-6d04-4598-8320-543a93927243) | [Code](src/9481caa2-6d04-4598-8320-543a93927243/code.php) | [Settings](src/9481caa2-6d04-4598-8320-543a93927243/settings.json) | Super__9481caa2_6d04_4598_8320_543a93927243__Power + - **final class Alias** | [Details](src/fe87df7f-b65f-4778-8875-6122ab6b025f) | [Code](src/fe87df7f-b65f-4778-8875-6122ab6b025f/code.php) | [Settings](src/fe87df7f-b65f-4778-8875-6122ab6b025f/settings.json) | Super__fe87df7f_b65f_4778_8875_6122ab6b025f__Power + - **final class BaseSixFour** | [Details](src/b8b474d4-30e3-4b5a-9988-3adb3450998c) | [Code](src/b8b474d4-30e3-4b5a-9988-3adb3450998c/code.php) | [Settings](src/b8b474d4-30e3-4b5a-9988-3adb3450998c/settings.json) | Super__b8b474d4_30e3_4b5a_9988_3adb3450998c__Power + - **final class Category** | [Details](src/007177eb-d39d-4093-8840-07a38811c502) | [Code](src/007177eb-d39d-4093-8840-07a38811c502/code.php) | [Settings](src/007177eb-d39d-4093-8840-07a38811c502/settings.json) | Super__007177eb_d39d_4093_8840_07a38811c502__Power + - **final class CategoryCode** | [Details](src/b24f5184-7e7c-448d-9475-ff3f998f70c3) | [Code](src/b24f5184-7e7c-448d-9475-ff3f998f70c3/code.php) | [Settings](src/b24f5184-7e7c-448d-9475-ff3f998f70c3/settings.json) | Super__b24f5184_7e7c_448d_9475_ff3f998f70c3__Power + - **final class CategoryOtherName** | [Details](src/a1e551a9-8369-48c9-a076-4e5beb65e0df) | [Code](src/a1e551a9-8369-48c9-a076-4e5beb65e0df/code.php) | [Settings](src/a1e551a9-8369-48c9-a076-4e5beb65e0df/settings.json) | Super__a1e551a9_8369_48c9_a076_4e5beb65e0df__Power + - **final class CheckBox** | [Details](src/8561f1f6-96c7-4e54-8869-0132116d57ce) | [Code](src/8561f1f6-96c7-4e54-8869-0132116d57ce/code.php) | [Settings](src/8561f1f6-96c7-4e54-8869-0132116d57ce/settings.json) | Super__8561f1f6_96c7_4e54_8869_0132116d57ce__Power + - **final class ComponentFields** | [Details](src/3230dd65-6590-4043-9bb8-bebd6d8224b2) | [Code](src/3230dd65-6590-4043-9bb8-bebd6d8224b2/code.php) | [Settings](src/3230dd65-6590-4043-9bb8-bebd6d8224b2/settings.json) | Super__3230dd65_6590_4043_9bb8_bebd6d8224b2__Power + - **final class CustomAlias** | [Details](src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806) | [Code](src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/code.php) | [Settings](src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/settings.json) | Super__9d74d613_5ef7_4cf1_9f12_64f0a8e19806__Power + - **final class CustomField** | [Details](src/87d1da23-08d6-4fbf-bd0d-b746da240b8a) | [Code](src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/code.php) | [Settings](src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/settings.json) | Super__87d1da23_08d6_4fbf_bd0d_b746da240b8a__Power + - **final class CustomFieldLinks** | [Details](src/a4857c60-680c-4e0c-ae8f-9250a7b5e317) | [Code](src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/code.php) | [Settings](src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/settings.json) | Super__a4857c60_680c_4e0c_ae8f_9250a7b5e317__Power + - **final class CustomList** | [Details](src/202f748a-516b-4782-962e-ac9725c3cac4) | [Code](src/202f748a-516b-4782-962e-ac9725c3cac4/code.php) | [Settings](src/202f748a-516b-4782-962e-ac9725c3cac4/settings.json) | Super__202f748a_516b_4782_962e_ac9725c3cac4__Power + - **final class CustomTabs** | [Details](src/9551b683-67b6-4367-bb14-4b016def37e3) | [Code](src/9551b683-67b6-4367-bb14-4b016def37e3/code.php) | [Settings](src/9551b683-67b6-4367-bb14-4b016def37e3/settings.json) | Super__9551b683_67b6_4367_bb14_4b016def37e3__Power + - **final class DatabaseKeys** | [Details](src/0d8db719-39a6-48b4-85a6-2f97e784e588) | [Code](src/0d8db719-39a6-48b4-85a6-2f97e784e588/code.php) | [Settings](src/0d8db719-39a6-48b4-85a6-2f97e784e588/settings.json) | Super__0d8db719_39a6_48b4_85a6_2f97e784e588__Power + - **final class DatabaseTables** | [Details](src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996) | [Code](src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/code.php) | [Settings](src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/settings.json) | Super__b3c36de1_9b18_4ea8_8383_6ab8f0e33996__Power + - **final class DatabaseUniqueGuid** | [Details](src/58b7f907-4195-4ca3-886c-17877be59887) | [Code](src/58b7f907-4195-4ca3-886c-17877be59887/code.php) | [Settings](src/58b7f907-4195-4ca3-886c-17877be59887/settings.json) | Super__58b7f907_4195_4ca3_886c_17877be59887__Power + - **final class DatabaseUniqueKeys** | [Details](src/ce0899a9-6271-4fc4-800a-697c122bb112) | [Code](src/ce0899a9-6271-4fc4-800a-697c122bb112/code.php) | [Settings](src/ce0899a9-6271-4fc4-800a-697c122bb112/settings.json) | Super__ce0899a9_6271_4fc4_800a_697c122bb112__Power + - **final class DoNotEscape** | [Details](src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2) | [Code](src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/code.php) | [Settings](src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/settings.json) | Super__0d9d3294_0bed_4c44_b1a1_e172f62cafb2__Power + - **final class DynamicFields** | [Details](src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076) | [Code](src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/code.php) | [Settings](src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/settings.json) | Super__1ae9a8e8_59f7_4844_a08d_9a4dce4be076__Power + - **final class ExtensionCustomFields** | [Details](src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92) | [Code](src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/code.php) | [Settings](src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/settings.json) | Super__e9b6b06b_f600_4f9d_984d_79c70ae7ae92__Power + - **final class FieldGroupControl** | [Details](src/d5530adf-c809-45a9-87fc-7cecd3d972d8) | [Code](src/d5530adf-c809-45a9-87fc-7cecd3d972d8/code.php) | [Settings](src/d5530adf-c809-45a9-87fc-7cecd3d972d8/settings.json) | Super__d5530adf_c809_45a9_87fc_7cecd3d972d8__Power + - **final class FieldNames** | [Details](src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66) | [Code](src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/code.php) | [Settings](src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/settings.json) | Super__961a2a2e_9f95_4b5f_b1c0_62ee783f9c66__Power + - **final class FieldRelations** | [Details](src/a090a472-eb3d-4086-a6d5-4215e1b1851f) | [Code](src/a090a472-eb3d-4086-a6d5-4215e1b1851f/code.php) | [Settings](src/a090a472-eb3d-4086-a6d5-4215e1b1851f/settings.json) | Super__a090a472_eb3d_4086_a6d5_4215e1b1851f__Power + - **final class Filter** | [Details](src/e4e65c5b-00ec-439c-96bf-3153c3a73398) | [Code](src/e4e65c5b-00ec-439c-96bf-3153c3a73398/code.php) | [Settings](src/e4e65c5b-00ec-439c-96bf-3153c3a73398/settings.json) | Super__e4e65c5b_00ec_439c_96bf_3153c3a73398__Power + - **final class FootableScripts** | [Details](src/dba0776e-e582-4f73-af3e-e7ed17bc34b3) | [Code](src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/code.php) | [Settings](src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/settings.json) | Super__dba0776e_e582_4f73_af3e_e7ed17bc34b3__Power + - **final class GetAsLookup** | [Details](src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a) | [Code](src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/code.php) | [Settings](src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/settings.json) | Super__8f46f85d_7921_44e9_a40e_dc4f01c5d43a__Power + - **final class GetModule** | [Details](src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63) | [Code](src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/code.php) | [Settings](src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/settings.json) | Super__c7b6f0d5_ec47_4166_915c_e78d49b4fb63__Power + - **final class GoogleChart** | [Details](src/507ab90f-7d64-4697-9815-d96f5d1d1185) | [Code](src/507ab90f-7d64-4697-9815-d96f5d1d1185/code.php) | [Settings](src/507ab90f-7d64-4697-9815-d96f5d1d1185/settings.json) | Super__507ab90f_7d64_4697_9815_d96f5d1d1185__Power + - **final class HasPermissions** | [Details](src/e54965e7-34fd-481e-b40c-4da089afec5a) | [Code](src/e54965e7-34fd-481e-b40c-4da089afec5a/code.php) | [Settings](src/e54965e7-34fd-481e-b40c-4da089afec5a/settings.json) | Super__e54965e7_34fd_481e_b40c_4da089afec5a__Power + - **final class HiddenFields** | [Details](src/0b45357f-b077-4337-92f3-65c1e19d36cd) | [Code](src/0b45357f-b077-4337-92f3-65c1e19d36cd/code.php) | [Settings](src/0b45357f-b077-4337-92f3-65c1e19d36cd/settings.json) | Super__0b45357f_b077_4337_92f3_65c1e19d36cd__Power + - **final class History** | [Details](src/2cb33994-052e-42dd-adbc-3ea9f932816f) | [Code](src/2cb33994-052e-42dd-adbc-3ea9f932816f/code.php) | [Settings](src/2cb33994-052e-42dd-adbc-3ea9f932816f/settings.json) | Super__2cb33994_052e_42dd_adbc_3ea9f932816f__Power + - **final class IntegerFields** | [Details](src/952423ba-015a-4104-89a4-030695aa4d15) | [Code](src/952423ba-015a-4104-89a4-030695aa4d15/code.php) | [Settings](src/952423ba-015a-4104-89a4-030695aa4d15/settings.json) | Super__952423ba_015a_4104_89a4_030695aa4d15__Power + - **final class ItemsMethodEximportString** | [Details](src/1f086665-c007-4085-b363-3a118659ff1b) | [Code](src/1f086665-c007-4085-b363-3a118659ff1b/code.php) | [Settings](src/1f086665-c007-4085-b363-3a118659ff1b/settings.json) | Super__1f086665_c007_4085_b363_3a118659ff1b__Power + - **final class ItemsMethodListString** | [Details](src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba) | [Code](src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/code.php) | [Settings](src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/settings.json) | Super__972c4de9_6f6f_463b_8eea_cc7cbdb96aba__Power + - **final class JsonItem** | [Details](src/45652787-9085-4c67-914f-0da25ae62646) | [Code](src/45652787-9085-4c67-914f-0da25ae62646/code.php) | [Settings](src/45652787-9085-4c67-914f-0da25ae62646/settings.json) | Super__45652787_9085_4c67_914f_0da25ae62646__Power + - **final class JsonItemArray** | [Details](src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb) | [Code](src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/code.php) | [Settings](src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/settings.json) | Super__6b386f2e_3eb1_4f60_81af_a90c8da1ffeb__Power + - **final class JsonString** | [Details](src/bb26cf63-69a5-4c43-b2df-43284c9d907d) | [Code](src/bb26cf63-69a5-4c43-b2df-43284c9d907d/code.php) | [Settings](src/bb26cf63-69a5-4c43-b2df-43284c9d907d/settings.json) | Super__bb26cf63_69a5_4c43_b2df_43284c9d907d__Power + - **final class Layout** | [Details](src/a90a2495-9c26-446c-867e-9ee8f42fb6af) | [Code](src/a90a2495-9c26-446c-867e-9ee8f42fb6af/code.php) | [Settings](src/a90a2495-9c26-446c-867e-9ee8f42fb6af/settings.json) | Super__a90a2495_9c26_446c_867e_9ee8f42fb6af__Power + - **final class LayoutData** | [Details](src/7415fdb4-5719-40b7-b01f-05588e968b47) | [Code](src/7415fdb4-5719-40b7-b01f-05588e968b47/code.php) | [Settings](src/7415fdb4-5719-40b7-b01f-05588e968b47/settings.json) | Super__7415fdb4_5719_40b7_b01f_05588e968b47__Power + - **final class LibraryManager** | [Details](src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8) | [Code](src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/code.php) | [Settings](src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/settings.json) | Super__e696927b_e8f4_4cfc_9d25_215db4e3c7a8__Power + - **final class ListFieldClass** | [Details](src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6) | [Code](src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/code.php) | [Settings](src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/settings.json) | Super__c8c5d364_d2bf_41c0_8c64_6b6fed1a28b6__Power + - **final class ListHeadOverride** | [Details](src/7506a35c-fa32-44ab-bd41-363439b20b82) | [Code](src/7506a35c-fa32-44ab-bd41-363439b20b82/code.php) | [Settings](src/7506a35c-fa32-44ab-bd41-363439b20b82/settings.json) | Super__7506a35c_fa32_44ab_bd41_363439b20b82__Power + - **final class ListJoin** | [Details](src/597663e1-1c02-43e8-aea5-f2161e38ac7f) | [Code](src/597663e1-1c02-43e8-aea5-f2161e38ac7f/code.php) | [Settings](src/597663e1-1c02-43e8-aea5-f2161e38ac7f/settings.json) | Super__597663e1_1c02_43e8_aea5_f2161e38ac7f__Power + - **final class Lists** | [Details](src/4a857023-2d96-4649-9ed5-910d0329854d) | [Code](src/4a857023-2d96-4649-9ed5-910d0329854d/code.php) | [Settings](src/4a857023-2d96-4649-9ed5-910d0329854d/settings.json) | Super__4a857023_2d96_4649_9ed5_910d0329854d__Power + - **final class MainTextField** | [Details](src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d) | [Code](src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/code.php) | [Settings](src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/settings.json) | Super__c6de9da0_1a73_4c73_b355_7fe02efe4c9d__Power + - **final class MetaData** | [Details](src/f052eeef-5112-4efe-98c8-8c7db69dc2d1) | [Code](src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/code.php) | [Settings](src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/settings.json) | Super__f052eeef_5112_4efe_98c8_8c7db69dc2d1__Power + - **final class ModelBasicField** | [Details](src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791) | [Code](src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/code.php) | [Settings](src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/settings.json) | Super__a5189bfe_6d15_4452_9fa5_e3e57f7fa791__Power + - **final class ModelExpertField** | [Details](src/b8a92303-8543-4d88-a83c-ece300eaba6d) | [Code](src/b8a92303-8543-4d88-a83c-ece300eaba6d/code.php) | [Settings](src/b8a92303-8543-4d88-a83c-ece300eaba6d/settings.json) | Super__b8a92303_8543_4d88_a83c_ece300eaba6d__Power + - **final class ModelExpertFieldInitiator** | [Details](src/3468b447-a929-4c28-84a1-f2c3a27e3127) | [Code](src/3468b447-a929-4c28-84a1-f2c3a27e3127/code.php) | [Settings](src/3468b447-a929-4c28-84a1-f2c3a27e3127/settings.json) | Super__3468b447_a929_4c28_84a1_f2c3a27e3127__Power + - **final class ModelMediumField** | [Details](src/b0b26749-5e2c-4b56-8982-48172f2531fa) | [Code](src/b0b26749-5e2c-4b56-8982-48172f2531fa/code.php) | [Settings](src/b0b26749-5e2c-4b56-8982-48172f2531fa/settings.json) | Super__b0b26749_5e2c_4b56_8982_48172f2531fa__Power + - **final class ModelWhmcsField** | [Details](src/28cac2bb-df04-454f-b4d6-923b573eb94e) | [Code](src/28cac2bb-df04-454f-b4d6-923b573eb94e/code.php) | [Settings](src/28cac2bb-df04-454f-b4d6-923b573eb94e/settings.json) | Super__28cac2bb_df04_454f_b4d6_923b573eb94e__Power + - **final class MovedPublishingFields** | [Details](src/9cdff2af-bd1b-452f-810e-d034b9720d2a) | [Code](src/9cdff2af-bd1b-452f-810e-d034b9720d2a/code.php) | [Settings](src/9cdff2af-bd1b-452f-810e-d034b9720d2a/settings.json) | Super__9cdff2af_bd1b_452f_810e_d034b9720d2a__Power + - **final class MysqlTableSetting** | [Details](src/9ff6d6cd-afea-4f15-a67b-fd132d386989) | [Code](src/9ff6d6cd-afea-4f15-a67b-fd132d386989/code.php) | [Settings](src/9ff6d6cd-afea-4f15-a67b-fd132d386989/settings.json) | Super__9ff6d6cd_afea_4f15_a67b_fd132d386989__Power + - **final class NewPublishingFields** | [Details](src/0f141480-afe6-41fb-996c-2a4e566a2f0d) | [Code](src/0f141480-afe6-41fb-996c-2a4e566a2f0d/code.php) | [Settings](src/0f141480-afe6-41fb-996c-2a4e566a2f0d/settings.json) | Super__0f141480_afe6_41fb_996c_2a4e566a2f0d__Power + - **final class OrderZero** | [Details](src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780) | [Code](src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/code.php) | [Settings](src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/settings.json) | Super__66b7b5f8_60d6_427a_9f8c_84c11a3d6780__Power + - **final class OtherFilter** | [Details](src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f) | [Code](src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/code.php) | [Settings](src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/settings.json) | Super__9d1eec29_f304_4b08_a3e7_8b2d6b1f4a1f__Power + - **final class OtherGroup** | [Details](src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33) | [Code](src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/code.php) | [Settings](src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/settings.json) | Super__bf92e1c1_3d5e_4e9d_a585_c79e1468df33__Power + - **final class OtherJoin** | [Details](src/46b02edb-427e-4c26-a5cb-279828eb4433) | [Code](src/46b02edb-427e-4c26-a5cb-279828eb4433/code.php) | [Settings](src/46b02edb-427e-4c26-a5cb-279828eb4433/settings.json) | Super__46b02edb_427e_4c26_a5cb_279828eb4433__Power + - **final class OtherOrder** | [Details](src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a) | [Code](src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/code.php) | [Settings](src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/settings.json) | Super__3f83fe11_1ef6_4020_bd73_f3bb58cefe3a__Power + - **final class OtherQuery** | [Details](src/74595661-236d-4aa1-99f3-358d093000be) | [Code](src/74595661-236d-4aa1-99f3-358d093000be/code.php) | [Settings](src/74595661-236d-4aa1-99f3-358d093000be/settings.json) | Super__74595661_236d_4aa1_99f3_358d093000be__Power + - **final class OtherWhere** | [Details](src/fd885c23-88dd-440a-9b05-d02a2b2962f9) | [Code](src/fd885c23-88dd-440a-9b05-d02a2b2962f9/code.php) | [Settings](src/fd885c23-88dd-440a-9b05-d02a2b2962f9/settings.json) | Super__fd885c23_88dd_440a_9b05_d02a2b2962f9__Power + - **final class PermissionAction** | [Details](src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a) | [Code](src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/code.php) | [Settings](src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/settings.json) | Super__2528f2bb_6ebc_4d55_9a9d_23ef58534c1a__Power + - **final class PermissionComponent** | [Details](src/94f4939f-82cc-4196-802b-1346ce5c7f99) | [Code](src/94f4939f-82cc-4196-802b-1346ce5c7f99/code.php) | [Settings](src/94f4939f-82cc-4196-802b-1346ce5c7f99/settings.json) | Super__94f4939f_82cc_4196_802b_1346ce5c7f99__Power + - **final class PermissionCore** | [Details](src/5e3d856d-8174-4131-b4e9-9328066438e1) | [Code](src/5e3d856d-8174-4131-b4e9-9328066438e1/code.php) | [Settings](src/5e3d856d-8174-4131-b4e9-9328066438e1/settings.json) | Super__5e3d856d_8174_4131_b4e9_9328066438e1__Power + - **final class PermissionDashboard** | [Details](src/e046b530-47fe-406f-b45a-b5eec8cbb238) | [Code](src/e046b530-47fe-406f-b45a-b5eec8cbb238/code.php) | [Settings](src/e046b530-47fe-406f-b45a-b5eec8cbb238/settings.json) | Super__e046b530_47fe_406f_b45a_b5eec8cbb238__Power + - **final class PermissionGlobalAction** | [Details](src/a601888d-12b6-427f-94ae-95004206e24e) | [Code](src/a601888d-12b6-427f-94ae-95004206e24e/code.php) | [Settings](src/a601888d-12b6-427f-94ae-95004206e24e/settings.json) | Super__a601888d_12b6_427f_94ae_95004206e24e__Power + - **final class PermissionViews** | [Details](src/480d11b9-783b-45d5-bce1-b0c2fcaad08a) | [Code](src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/code.php) | [Settings](src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/settings.json) | Super__480d11b9_783b_45d5_bce1_b0c2fcaad08a__Power + - **final class ScriptMediaSwitch** | [Details](src/17bf80af-3609-4f36-a520-be1a339c278b) | [Code](src/17bf80af-3609-4f36-a520-be1a339c278b/code.php) | [Settings](src/17bf80af-3609-4f36-a520-be1a339c278b/settings.json) | Super__17bf80af_3609_4f36_a520_be1a339c278b__Power + - **final class ScriptUserSwitch** | [Details](src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36) | [Code](src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/code.php) | [Settings](src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/settings.json) | Super__9042fac6_5ca5_4ebe_94fe_cf9b0718ed36__Power + - **final class Search** | [Details](src/2e764839-8ec6-4726-af50-b5678e0714a4) | [Code](src/2e764839-8ec6-4726-af50-b5678e0714a4/code.php) | [Settings](src/2e764839-8ec6-4726-af50-b5678e0714a4/settings.json) | Super__2e764839_8ec6_4726_af50_b5678e0714a4__Power + - **final class SelectionTranslation** | [Details](src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e) | [Code](src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/code.php) | [Settings](src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/settings.json) | Super__d8e46d2c_d63e_4b92_80a2_d17638a7ae9e__Power + - **final class SiteDecrypt** | [Details](src/c0e46033-5ade-4829-88b7-ca160d36a4d1) | [Code](src/c0e46033-5ade-4829-88b7-ca160d36a4d1/code.php) | [Settings](src/c0e46033-5ade-4829-88b7-ca160d36a4d1/settings.json) | Super__c0e46033_5ade_4829_88b7_ca160d36a4d1__Power + - **final class SiteDynamicGet** | [Details](src/ec0682ee-9166-48f8-951b-9b763792c1d1) | [Code](src/ec0682ee-9166-48f8-951b-9b763792c1d1/code.php) | [Settings](src/ec0682ee-9166-48f8-951b-9b763792c1d1/settings.json) | Super__ec0682ee_9166_48f8_951b_9b763792c1d1__Power + - **final class SiteEditView** | [Details](src/abdb7d20-a15e-42d8-bd91-7b09514df7f2) | [Code](src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/code.php) | [Settings](src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/settings.json) | Super__abdb7d20_a15e_42d8_bd91_7b09514df7f2__Power + - **final class SiteFieldData** | [Details](src/33f5131e-4a5b-414b-95dd-d22227c2666d) | [Code](src/33f5131e-4a5b-414b-95dd-d22227c2666d/code.php) | [Settings](src/33f5131e-4a5b-414b-95dd-d22227c2666d/settings.json) | Super__33f5131e_4a5b_414b_95dd_d22227c2666d__Power + - **final class SiteFieldDecodeFilter** | [Details](src/d393c946-4481-43fa-b737-449119dd0a63) | [Code](src/d393c946-4481-43fa-b737-449119dd0a63/code.php) | [Settings](src/d393c946-4481-43fa-b737-449119dd0a63/settings.json) | Super__d393c946_4481_43fa_b737_449119dd0a63__Power + - **final class SiteFields** | [Details](src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe) | [Code](src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/code.php) | [Settings](src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/settings.json) | Super__52de0ac8_bb9d_4a45_bd2a_a44c48c17ffe__Power + - **final class SiteMainGet** | [Details](src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b) | [Code](src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/code.php) | [Settings](src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/settings.json) | Super__17fa7789_a7d1_465e_b733_8c8d53f5ca1b__Power + - **final class Sort** | [Details](src/94e0beae-7daa-43b2-81b9-0bde390a76d8) | [Code](src/94e0beae-7daa-43b2-81b9-0bde390a76d8/code.php) | [Settings](src/94e0beae-7daa-43b2-81b9-0bde390a76d8/settings.json) | Super__94e0beae_7daa_43b2_81b9_0bde390a76d8__Power + - **final class TabCounter** | [Details](src/d645881c-ae8c-4828-a217-6bad98cd3b44) | [Code](src/d645881c-ae8c-4828-a217-6bad98cd3b44/code.php) | [Settings](src/d645881c-ae8c-4828-a217-6bad98cd3b44/settings.json) | Super__d645881c_ae8c_4828_a217_6bad98cd3b44__Power + - **final class Tags** | [Details](src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903) | [Code](src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/code.php) | [Settings](src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/settings.json) | Super__8ca30d59_e56a_4cdd_bd8c_d9aad28f5903__Power + - **final class TemplateData** | [Details](src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade) | [Code](src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/code.php) | [Settings](src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/settings.json) | Super__8591f6db_dd3c_4a63_9b3f_574c0ec74ade__Power + - **final class Title** | [Details](src/6a1dddb3-a955-425e-b713-8ef81f256035) | [Code](src/6a1dddb3-a955-425e-b713-8ef81f256035/code.php) | [Settings](src/6a1dddb3-a955-425e-b713-8ef81f256035/settings.json) | Super__6a1dddb3_a955_425e_b713_8ef81f256035__Power + - **final class UikitComp** | [Details](src/54ec57f6-2fc3-42e5-975e-1fabeacb845d) | [Code](src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/code.php) | [Settings](src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/settings.json) | Super__54ec57f6_2fc3_42e5_975e_1fabeacb845d__Power + - **class UpdateMysql** | [Details](src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9) | [Code](src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/code.php) | [Settings](src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/settings.json) | Super__2b5c9989_1d4e_4f59_8b95_5cd2f72f82d9__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Component](#vdm-joomla-componentbuilder-compiler-component) - - **class Dashboard** | [Details](src/cfe62a32-8818-4bfb-8751-2f1e109b5336) | [Code](src/cfe62a32-8818-4bfb-8751-2f1e109b5336/code.php) | [Settings](src/cfe62a32-8818-4bfb-8751-2f1e109b5336/settings.json) | [cfe62a32-8818-4bfb-8751-2f1e109b5336](src/cfe62a32-8818-4bfb-8751-2f1e109b5336) - - **class Data** | [Details](src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753) | [Code](src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/code.php) | [Settings](src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/settings.json) | [ef9578e5-4c9d-46bf-866f-3a94bdc7b753](src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753) - - **class Placeholder** | [Details](src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb) | [Code](src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/code.php) | [Settings](src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/settings.json) | [aecc17ba-0b0f-4e5c-ae43-71be063a3dcb](src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb) - - **class Settings** | [Details](src/63dabe82-0f4a-4ade-9851-8518ade23de2) | [Code](src/63dabe82-0f4a-4ade-9851-8518ade23de2/code.php) | [Settings](src/63dabe82-0f4a-4ade-9851-8518ade23de2/settings.json) | [63dabe82-0f4a-4ade-9851-8518ade23de2](src/63dabe82-0f4a-4ade-9851-8518ade23de2) - - **class Structure** | [Details](src/6c89c663-78f5-4078-9fac-7047f2eaaf96) | [Code](src/6c89c663-78f5-4078-9fac-7047f2eaaf96/code.php) | [Settings](src/6c89c663-78f5-4078-9fac-7047f2eaaf96/settings.json) | [6c89c663-78f5-4078-9fac-7047f2eaaf96](src/6c89c663-78f5-4078-9fac-7047f2eaaf96) - - **class Structuremultiple** | [Details](src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c) | [Code](src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/code.php) | [Settings](src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/settings.json) | [b69a23db-0a62-4840-a9c5-b2d8d63ecc6c](src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c) - - **class Structuresingle** | [Details](src/673954d3-78d3-445a-b99f-4b40d617c882) | [Code](src/673954d3-78d3-445a-b99f-4b40d617c882/code.php) | [Settings](src/673954d3-78d3-445a-b99f-4b40d617c882/settings.json) | [673954d3-78d3-445a-b99f-4b40d617c882](src/673954d3-78d3-445a-b99f-4b40d617c882) + - **final class Dashboard** | [Details](src/cfe62a32-8818-4bfb-8751-2f1e109b5336) | [Code](src/cfe62a32-8818-4bfb-8751-2f1e109b5336/code.php) | [Settings](src/cfe62a32-8818-4bfb-8751-2f1e109b5336/settings.json) | Super__cfe62a32_8818_4bfb_8751_2f1e109b5336__Power + - **final class Data** | [Details](src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753) | [Code](src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/code.php) | [Settings](src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/settings.json) | Super__ef9578e5_4c9d_46bf_866f_3a94bdc7b753__Power + - **final class Placeholder** | [Details](src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb) | [Code](src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/code.php) | [Settings](src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/settings.json) | Super__aecc17ba_0b0f_4e5c_ae43_71be063a3dcb__Power + - **final class Settings** | [Details](src/63dabe82-0f4a-4ade-9851-8518ade23de2) | [Code](src/63dabe82-0f4a-4ade-9851-8518ade23de2/code.php) | [Settings](src/63dabe82-0f4a-4ade-9851-8518ade23de2/settings.json) | Super__63dabe82_0f4a_4ade_9851_8518ade23de2__Power + - **final class Structure** | [Details](src/6c89c663-78f5-4078-9fac-7047f2eaaf96) | [Code](src/6c89c663-78f5-4078-9fac-7047f2eaaf96/code.php) | [Settings](src/6c89c663-78f5-4078-9fac-7047f2eaaf96/settings.json) | Super__6c89c663_78f5_4078_9fac_7047f2eaaf96__Power + - **final class Structuremultiple** | [Details](src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c) | [Code](src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/code.php) | [Settings](src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/settings.json) | Super__b69a23db_0a62_4840_a9c5_b2d8d63ecc6c__Power + - **final class Structuresingle** | [Details](src/673954d3-78d3-445a-b99f-4b40d617c882) | [Code](src/673954d3-78d3-445a-b99f-4b40d617c882/code.php) | [Settings](src/673954d3-78d3-445a-b99f-4b40d617c882/settings.json) | Super__673954d3_78d3_445a_b99f_4b40d617c882__Power +- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Creator](#vdm-joomla-componentbuilder-compiler-creator) + + - **final class Builders** | [Details](src/55278140-80d5-4168-8241-d64515c4b35e) | [Code](src/55278140-80d5-4168-8241-d64515c4b35e/code.php) | [Settings](src/55278140-80d5-4168-8241-d64515c4b35e/settings.json) | Super__55278140_80d5_4168_8241_d64515c4b35e__Power + - **final class CustomFieldTypeFile** | [Details](src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96) | [Code](src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/code.php) | [Settings](src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/settings.json) | Super__6dced3d9_7d10_4ea1_bcf6_a5e6af4b9c96__Power + - **final class FieldAsString** | [Details](src/f48764e0-16c6-459c-8576-af7616f3b720) | [Code](src/f48764e0-16c6-459c-8576-af7616f3b720/code.php) | [Settings](src/f48764e0-16c6-459c-8576-af7616f3b720/settings.json) | Super__f48764e0_16c6_459c_8576_af7616f3b720__Power + - **final class FieldDynamic** | [Details](src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e) | [Code](src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/code.php) | [Settings](src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/settings.json) | Super__4801f8b0_4a4a_4eda_8f0e_cf77f042c35e__Power + - **final class FieldString** | [Details](src/44d039b9-d293-481b-b560-23a6e7a63962) | [Code](src/44d039b9-d293-481b-b560-23a6e7a63962/code.php) | [Settings](src/44d039b9-d293-481b-b560-23a6e7a63962/settings.json) | Super__44d039b9_d293_481b_b560_23a6e7a63962__Power + - **final class FieldXML** | [Details](src/ac691a05-5630-4002-b166-dedec3fb0fcb) | [Code](src/ac691a05-5630-4002-b166-dedec3fb0fcb/code.php) | [Settings](src/ac691a05-5630-4002-b166-dedec3fb0fcb/settings.json) | Super__ac691a05_5630_4002_b166_dedec3fb0fcb__Power + - **final class FieldsetDynamic** | [Details](src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba) | [Code](src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/code.php) | [Settings](src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/settings.json) | Super__b5986fab_17ca_4236_8c0c_81ebd2bb82ba__Power + - **final class FieldsetString** | [Details](src/05448890-e324-41a0-b6db-d804bfc241cc) | [Code](src/05448890-e324-41a0-b6db-d804bfc241cc/code.php) | [Settings](src/05448890-e324-41a0-b6db-d804bfc241cc/settings.json) | Super__05448890_e324_41a0_b6db_d804bfc241cc__Power + - **final class FieldsetXML** | [Details](src/79739667-72c6-4576-9830-7b1eb92e4791) | [Code](src/79739667-72c6-4576-9830-7b1eb92e4791/code.php) | [Settings](src/79739667-72c6-4576-9830-7b1eb92e4791/settings.json) | Super__79739667_72c6_4576_9830_7b1eb92e4791__Power + - **final class Layout** | [Details](src/a0f032db-2242-41df-8e4a-5e9e6f88201d) | [Code](src/a0f032db-2242-41df-8e4a-5e9e6f88201d/code.php) | [Settings](src/a0f032db-2242-41df-8e4a-5e9e6f88201d/settings.json) | Super__a0f032db_2242_41df_8e4a_5e9e6f88201d__Power + - **final class Permission** | [Details](src/7f01622a-74c9-4e67-b111-3eb488035206) | [Code](src/7f01622a-74c9-4e67-b111-3eb488035206/code.php) | [Settings](src/7f01622a-74c9-4e67-b111-3eb488035206/settings.json) | Super__7f01622a_74c9_4e67_b111_3eb488035206__Power + - **final class SiteFieldData** | [Details](src/15b4addf-bf6b-4691-9c92-858c7de9c2c1) | [Code](src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/code.php) | [Settings](src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/settings.json) | Super__15b4addf_bf6b_4691_9c92_858c7de9c2c1__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Customcode](#vdm-joomla-componentbuilder-compiler-customcode) - - **class Dispenser** | [Details](src/f1dc6430-fb54-452e-aa53-ce32ae93db88) | [Code](src/f1dc6430-fb54-452e-aa53-ce32ae93db88/code.php) | [Settings](src/f1dc6430-fb54-452e-aa53-ce32ae93db88/settings.json) | [f1dc6430-fb54-452e-aa53-ce32ae93db88](src/f1dc6430-fb54-452e-aa53-ce32ae93db88) - - **class External** | [Details](src/1cef0266-99e2-40d8-919f-c2ce32226b0a) | [Code](src/1cef0266-99e2-40d8-919f-c2ce32226b0a/code.php) | [Settings](src/1cef0266-99e2-40d8-919f-c2ce32226b0a/settings.json) | [1cef0266-99e2-40d8-919f-c2ce32226b0a](src/1cef0266-99e2-40d8-919f-c2ce32226b0a) - - **class Extractor** | [Details](src/01411bb1-fdd6-4cca-84d7-1b62d93c70c1) | [Code](src/01411bb1-fdd6-4cca-84d7-1b62d93c70c1/code.php) | [Settings](src/01411bb1-fdd6-4cca-84d7-1b62d93c70c1/settings.json) | [01411bb1-fdd6-4cca-84d7-1b62d93c70c1](src/01411bb1-fdd6-4cca-84d7-1b62d93c70c1) - - **class Gui** | [Details](src/1bd48df2-4f7e-4581-9fe9-4b54e59105e3) | [Code](src/1bd48df2-4f7e-4581-9fe9-4b54e59105e3/code.php) | [Settings](src/1bd48df2-4f7e-4581-9fe9-4b54e59105e3/settings.json) | [1bd48df2-4f7e-4581-9fe9-4b54e59105e3](src/1bd48df2-4f7e-4581-9fe9-4b54e59105e3) - - **class Hash** | [Details](src/797579e8-b272-41ed-91de-428cb0b3e089) | [Code](src/797579e8-b272-41ed-91de-428cb0b3e089/code.php) | [Settings](src/797579e8-b272-41ed-91de-428cb0b3e089/settings.json) | [797579e8-b272-41ed-91de-428cb0b3e089](src/797579e8-b272-41ed-91de-428cb0b3e089) - - **class LockBase** | [Details](src/7c07c9d6-34cd-4491-934a-ef0a83f414c0) | [Code](src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/code.php) | [Settings](src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/settings.json) | [7c07c9d6-34cd-4491-934a-ef0a83f414c0](src/7c07c9d6-34cd-4491-934a-ef0a83f414c0) + - **class Dispenser** | [Details](src/f1dc6430-fb54-452e-aa53-ce32ae93db88) | [Code](src/f1dc6430-fb54-452e-aa53-ce32ae93db88/code.php) | [Settings](src/f1dc6430-fb54-452e-aa53-ce32ae93db88/settings.json) | Super__f1dc6430_fb54_452e_aa53_ce32ae93db88__Power + - **class External** | [Details](src/1cef0266-99e2-40d8-919f-c2ce32226b0a) | [Code](src/1cef0266-99e2-40d8-919f-c2ce32226b0a/code.php) | [Settings](src/1cef0266-99e2-40d8-919f-c2ce32226b0a/settings.json) | Super__1cef0266_99e2_40d8_919f_c2ce32226b0a__Power + - **class Extractor** | [Details](src/01411bb1-fdd6-4cca-84d7-1b62d93c70c1) | [Code](src/01411bb1-fdd6-4cca-84d7-1b62d93c70c1/code.php) | [Settings](src/01411bb1-fdd6-4cca-84d7-1b62d93c70c1/settings.json) | Super__01411bb1_fdd6_4cca_84d7_1b62d93c70c1__Power + - **class Gui** | [Details](src/1bd48df2-4f7e-4581-9fe9-4b54e59105e3) | [Code](src/1bd48df2-4f7e-4581-9fe9-4b54e59105e3/code.php) | [Settings](src/1bd48df2-4f7e-4581-9fe9-4b54e59105e3/settings.json) | Super__1bd48df2_4f7e_4581_9fe9_4b54e59105e3__Power + - **class Hash** | [Details](src/797579e8-b272-41ed-91de-428cb0b3e089) | [Code](src/797579e8-b272-41ed-91de-428cb0b3e089/code.php) | [Settings](src/797579e8-b272-41ed-91de-428cb0b3e089/settings.json) | Super__797579e8_b272_41ed_91de_428cb0b3e089__Power + - **class LockBase** | [Details](src/7c07c9d6-34cd-4491-934a-ef0a83f414c0) | [Code](src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/code.php) | [Settings](src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/settings.json) | Super__7c07c9d6_34cd_4491_934a_ef0a83f414c0__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Customview](#vdm-joomla-componentbuilder-compiler-customview) - - **class Data** | [Details](src/3b6895da-d9eb-4164-90b1-4632a4cc2474) | [Code](src/3b6895da-d9eb-4164-90b1-4632a4cc2474/code.php) | [Settings](src/3b6895da-d9eb-4164-90b1-4632a4cc2474/settings.json) | [3b6895da-d9eb-4164-90b1-4632a4cc2474](src/3b6895da-d9eb-4164-90b1-4632a4cc2474) + - **class Data** | [Details](src/3b6895da-d9eb-4164-90b1-4632a4cc2474) | [Code](src/3b6895da-d9eb-4164-90b1-4632a4cc2474/code.php) | [Settings](src/3b6895da-d9eb-4164-90b1-4632a4cc2474/settings.json) | Super__3b6895da_d9eb_4164_90b1_4632a4cc2474__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Dynamicget](#vdm-joomla-componentbuilder-compiler-dynamicget) - - **class Data** | [Details](src/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46) | [Code](src/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46/code.php) | [Settings](src/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46/settings.json) | [05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46](src/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46) - - **class Selection** | [Details](src/5b021139-dad0-4e9b-882a-2b4d807795af) | [Code](src/5b021139-dad0-4e9b-882a-2b4d807795af/code.php) | [Settings](src/5b021139-dad0-4e9b-882a-2b4d807795af/settings.json) | [5b021139-dad0-4e9b-882a-2b4d807795af](src/5b021139-dad0-4e9b-882a-2b4d807795af) + - **class Data** | [Details](src/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46) | [Code](src/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46/code.php) | [Settings](src/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46/settings.json) | Super__05c49a1f_ba5b_4be1_b3d0_4a74c42f7a46__Power + - **class Selection** | [Details](src/5b021139-dad0-4e9b-882a-2b4d807795af) | [Code](src/5b021139-dad0-4e9b-882a-2b4d807795af/code.php) | [Settings](src/5b021139-dad0-4e9b-882a-2b4d807795af/settings.json) | Super__5b021139_dad0_4e9b_882a_2b4d807795af__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Field](#vdm-joomla-componentbuilder-compiler-field) - - **class Customcode** | [Details](src/a356d103-74f3-49ca-8e4f-3bd37746f089) | [Code](src/a356d103-74f3-49ca-8e4f-3bd37746f089/code.php) | [Settings](src/a356d103-74f3-49ca-8e4f-3bd37746f089/settings.json) | [a356d103-74f3-49ca-8e4f-3bd37746f089](src/a356d103-74f3-49ca-8e4f-3bd37746f089) - - **class Data** | [Details](src/ce826b66-0f2d-43da-8005-41b8e4cb21ee) | [Code](src/ce826b66-0f2d-43da-8005-41b8e4cb21ee/code.php) | [Settings](src/ce826b66-0f2d-43da-8005-41b8e4cb21ee/settings.json) | [ce826b66-0f2d-43da-8005-41b8e4cb21ee](src/ce826b66-0f2d-43da-8005-41b8e4cb21ee) - - **class DatabaseName** | [Details](src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6) | [Code](src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/code.php) | [Settings](src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/settings.json) | [99368a6f-2f64-4d4e-ad3a-544d4020ecc6](src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6) - - **class Name** | [Details](src/9387215f-a965-4421-acf3-5e8f9d11382f) | [Code](src/9387215f-a965-4421-acf3-5e8f9d11382f/code.php) | [Settings](src/9387215f-a965-4421-acf3-5e8f9d11382f/settings.json) | [9387215f-a965-4421-acf3-5e8f9d11382f](src/9387215f-a965-4421-acf3-5e8f9d11382f) - - **class TypeName** | [Details](src/eb33420d-359d-44a5-852e-613aef1feaae) | [Code](src/eb33420d-359d-44a5-852e-613aef1feaae/code.php) | [Settings](src/eb33420d-359d-44a5-852e-613aef1feaae/settings.json) | [eb33420d-359d-44a5-852e-613aef1feaae](src/eb33420d-359d-44a5-852e-613aef1feaae) - - **class UniqueName** | [Details](src/8c018533-e967-4bf2-9bd9-9e92966fcb5e) | [Code](src/8c018533-e967-4bf2-9bd9-9e92966fcb5e/code.php) | [Settings](src/8c018533-e967-4bf2-9bd9-9e92966fcb5e/settings.json) | [8c018533-e967-4bf2-9bd9-9e92966fcb5e](src/8c018533-e967-4bf2-9bd9-9e92966fcb5e) - - **class Validation** | [Details](src/c871fb4a-4c33-4302-bb79-a9cd7ef4a557) | [Code](src/c871fb4a-4c33-4302-bb79-a9cd7ef4a557/code.php) | [Settings](src/c871fb4a-4c33-4302-bb79-a9cd7ef4a557/settings.json) | [c871fb4a-4c33-4302-bb79-a9cd7ef4a557](src/c871fb4a-4c33-4302-bb79-a9cd7ef4a557) + - **final class Attributes** | [Details](src/7f515c18-d019-4d2d-9852-b2dc970985b3) | [Code](src/7f515c18-d019-4d2d-9852-b2dc970985b3/code.php) | [Settings](src/7f515c18-d019-4d2d-9852-b2dc970985b3/settings.json) | Super__7f515c18_d019_4d2d_9852_b2dc970985b3__Power + - **final class Groups** | [Details](src/12df35ad-2d44-4c4c-a7d5-a3350932a520) | [Code](src/12df35ad-2d44-4c4c-a7d5-a3350932a520/code.php) | [Settings](src/12df35ad-2d44-4c4c-a7d5-a3350932a520/settings.json) | Super__12df35ad_2d44_4c4c_a7d5_a3350932a520__Power + - **final class InputButton** | [Details](src/c600f58c-3fe2-4d2d-b711-2660eab6effe) | [Code](src/c600f58c-3fe2-4d2d-b711-2660eab6effe/code.php) | [Settings](src/c600f58c-3fe2-4d2d-b711-2660eab6effe/settings.json) | Super__c600f58c_3fe2_4d2d_b711_2660eab6effe__Power + - **class Customcode** | [Details](src/a356d103-74f3-49ca-8e4f-3bd37746f089) | [Code](src/a356d103-74f3-49ca-8e4f-3bd37746f089/code.php) | [Settings](src/a356d103-74f3-49ca-8e4f-3bd37746f089/settings.json) | Super__a356d103_74f3_49ca_8e4f_3bd37746f089__Power + - **class Data** | [Details](src/ce826b66-0f2d-43da-8005-41b8e4cb21ee) | [Code](src/ce826b66-0f2d-43da-8005-41b8e4cb21ee/code.php) | [Settings](src/ce826b66-0f2d-43da-8005-41b8e4cb21ee/settings.json) | Super__ce826b66_0f2d_43da_8005_41b8e4cb21ee__Power + - **class DatabaseName** | [Details](src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6) | [Code](src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/code.php) | [Settings](src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/settings.json) | Super__99368a6f_2f64_4d4e_ad3a_544d4020ecc6__Power + - **class Name** | [Details](src/9387215f-a965-4421-acf3-5e8f9d11382f) | [Code](src/9387215f-a965-4421-acf3-5e8f9d11382f/code.php) | [Settings](src/9387215f-a965-4421-acf3-5e8f9d11382f/settings.json) | Super__9387215f_a965_4421_acf3_5e8f9d11382f__Power + - **class TypeName** | [Details](src/eb33420d-359d-44a5-852e-613aef1feaae) | [Code](src/eb33420d-359d-44a5-852e-613aef1feaae/code.php) | [Settings](src/eb33420d-359d-44a5-852e-613aef1feaae/settings.json) | Super__eb33420d_359d_44a5_852e_613aef1feaae__Power + - **class UniqueName** | [Details](src/8c018533-e967-4bf2-9bd9-9e92966fcb5e) | [Code](src/8c018533-e967-4bf2-9bd9-9e92966fcb5e/code.php) | [Settings](src/8c018533-e967-4bf2-9bd9-9e92966fcb5e/settings.json) | Super__8c018533_e967_4bf2_9bd9_9e92966fcb5e__Power + - **class Validation** | [Details](src/c871fb4a-4c33-4302-bb79-a9cd7ef4a557) | [Code](src/c871fb4a-4c33-4302-bb79-a9cd7ef4a557/code.php) | [Settings](src/c871fb4a-4c33-4302-bb79-a9cd7ef4a557/settings.json) | Super__c871fb4a_4c33_4302_bb79_a9cd7ef4a557__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Interfaces](#vdm-joomla-componentbuilder-compiler-interfaces) - - **interface CustomcodeInterface** | [Details](src/33bdc535-0ff1-40c8-bb22-b5d44f1731c4) | [Code](src/33bdc535-0ff1-40c8-bb22-b5d44f1731c4/code.php) | [Settings](src/33bdc535-0ff1-40c8-bb22-b5d44f1731c4/settings.json) | [33bdc535-0ff1-40c8-bb22-b5d44f1731c4](src/33bdc535-0ff1-40c8-bb22-b5d44f1731c4) - - **interface EventInterface** | [Details](src/20ed72b0-fcac-4344-aee1-8a65e3bf221d) | [Code](src/20ed72b0-fcac-4344-aee1-8a65e3bf221d/code.php) | [Settings](src/20ed72b0-fcac-4344-aee1-8a65e3bf221d/settings.json) | [20ed72b0-fcac-4344-aee1-8a65e3bf221d](src/20ed72b0-fcac-4344-aee1-8a65e3bf221d) - - **interface GetScriptInterface** | [Details](src/2e6731ba-3a03-4836-b2c2-4e50e38cb890) | [Code](src/2e6731ba-3a03-4836-b2c2-4e50e38cb890/code.php) | [Settings](src/2e6731ba-3a03-4836-b2c2-4e50e38cb890/settings.json) | [2e6731ba-3a03-4836-b2c2-4e50e38cb890](src/2e6731ba-3a03-4836-b2c2-4e50e38cb890) - - **interface HistoryInterface** | [Details](src/4325745f-da1f-4d4d-a591-3189fe8c06e5) | [Code](src/4325745f-da1f-4d4d-a591-3189fe8c06e5/code.php) | [Settings](src/4325745f-da1f-4d4d-a591-3189fe8c06e5/settings.json) | [4325745f-da1f-4d4d-a591-3189fe8c06e5](src/4325745f-da1f-4d4d-a591-3189fe8c06e5) - - **interface LanguageInterface** | [Details](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83) | [Code](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83/code.php) | [Settings](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83/settings.json) | [d6592c9b-93a6-41b3-83c7-c43a0a80cb83](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83) - - **interface PlaceholderInterface** | [Details](src/a6cdd935-c038-4a54-8446-54bed87f003c) | [Code](src/a6cdd935-c038-4a54-8446-54bed87f003c/code.php) | [Settings](src/a6cdd935-c038-4a54-8446-54bed87f003c/settings.json) | [a6cdd935-c038-4a54-8446-54bed87f003c](src/a6cdd935-c038-4a54-8446-54bed87f003c) - - **interface PowerInterface** | [Details](src/1133c2d7-ba7e-4c95-8cde-01f084d04682) | [Code](src/1133c2d7-ba7e-4c95-8cde-01f084d04682/code.php) | [Settings](src/1133c2d7-ba7e-4c95-8cde-01f084d04682/settings.json) | [1133c2d7-ba7e-4c95-8cde-01f084d04682](src/1133c2d7-ba7e-4c95-8cde-01f084d04682) + - **interface CustomcodeInterface** | [Details](src/33bdc535-0ff1-40c8-bb22-b5d44f1731c4) | [Code](src/33bdc535-0ff1-40c8-bb22-b5d44f1731c4/code.php) | [Settings](src/33bdc535-0ff1-40c8-bb22-b5d44f1731c4/settings.json) | Super__33bdc535_0ff1_40c8_bb22_b5d44f1731c4__Power + - **interface EventInterface** | [Details](src/20ed72b0-fcac-4344-aee1-8a65e3bf221d) | [Code](src/20ed72b0-fcac-4344-aee1-8a65e3bf221d/code.php) | [Settings](src/20ed72b0-fcac-4344-aee1-8a65e3bf221d/settings.json) | Super__20ed72b0_fcac_4344_aee1_8a65e3bf221d__Power + - **interface GetScriptInterface** | [Details](src/2e6731ba-3a03-4836-b2c2-4e50e38cb890) | [Code](src/2e6731ba-3a03-4836-b2c2-4e50e38cb890/code.php) | [Settings](src/2e6731ba-3a03-4836-b2c2-4e50e38cb890/settings.json) | Super__2e6731ba_3a03_4836_b2c2_4e50e38cb890__Power + - **interface HistoryInterface** | [Details](src/4325745f-da1f-4d4d-a591-3189fe8c06e5) | [Code](src/4325745f-da1f-4d4d-a591-3189fe8c06e5/code.php) | [Settings](src/4325745f-da1f-4d4d-a591-3189fe8c06e5/settings.json) | Super__4325745f_da1f_4d4d_a591_3189fe8c06e5__Power + - **interface LanguageInterface** | [Details](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83) | [Code](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83/code.php) | [Settings](src/d6592c9b-93a6-41b3-83c7-c43a0a80cb83/settings.json) | Super__d6592c9b_93a6_41b3_83c7_c43a0a80cb83__Power + - **interface PlaceholderInterface** | [Details](src/a6cdd935-c038-4a54-8446-54bed87f003c) | [Code](src/a6cdd935-c038-4a54-8446-54bed87f003c/code.php) | [Settings](src/a6cdd935-c038-4a54-8446-54bed87f003c/settings.json) | Super__a6cdd935_c038_4a54_8446_54bed87f003c__Power + - **interface PowerInterface** | [Details](src/1133c2d7-ba7e-4c95-8cde-01f084d04682) | [Code](src/1133c2d7-ba7e-4c95-8cde-01f084d04682/code.php) | [Settings](src/1133c2d7-ba7e-4c95-8cde-01f084d04682/settings.json) | Super__1133c2d7_ba7e_4c95_8cde_01f084d04682__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\JoomlaThree](#vdm-joomla-componentbuilder-compiler-joomlathree) - - **class Event** | [Details](src/4b86f62e-ce41-4325-a11a-08148807d0df) | [Code](src/4b86f62e-ce41-4325-a11a-08148807d0df/code.php) | [Settings](src/4b86f62e-ce41-4325-a11a-08148807d0df/settings.json) | [4b86f62e-ce41-4325-a11a-08148807d0df](src/4b86f62e-ce41-4325-a11a-08148807d0df) - - **class History** | [Details](src/87db51b9-1126-4c21-858b-53dbd3a68b61) | [Code](src/87db51b9-1126-4c21-858b-53dbd3a68b61/code.php) | [Settings](src/87db51b9-1126-4c21-858b-53dbd3a68b61/settings.json) | [87db51b9-1126-4c21-858b-53dbd3a68b61](src/87db51b9-1126-4c21-858b-53dbd3a68b61) + - **class Event** | [Details](src/4b86f62e-ce41-4325-a11a-08148807d0df) | [Code](src/4b86f62e-ce41-4325-a11a-08148807d0df/code.php) | [Settings](src/4b86f62e-ce41-4325-a11a-08148807d0df/settings.json) | Super__4b86f62e_ce41_4325_a11a_08148807d0df__Power + - **class History** | [Details](src/87db51b9-1126-4c21-858b-53dbd3a68b61) | [Code](src/87db51b9-1126-4c21-858b-53dbd3a68b61/code.php) | [Settings](src/87db51b9-1126-4c21-858b-53dbd3a68b61/settings.json) | Super__87db51b9_1126_4c21_858b_53dbd3a68b61__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Joomlamodule](#vdm-joomla-componentbuilder-compiler-joomlamodule) - - **class Data** | [Details](src/cb11e8d9-69c2-4095-831c-59908ea402e7) | [Code](src/cb11e8d9-69c2-4095-831c-59908ea402e7/code.php) | [Settings](src/cb11e8d9-69c2-4095-831c-59908ea402e7/settings.json) | [cb11e8d9-69c2-4095-831c-59908ea402e7](src/cb11e8d9-69c2-4095-831c-59908ea402e7) - - **class Structure** | [Details](src/071c7cff-4c88-4b80-bd99-066c572dcb71) | [Code](src/071c7cff-4c88-4b80-bd99-066c572dcb71/code.php) | [Settings](src/071c7cff-4c88-4b80-bd99-066c572dcb71/settings.json) | [071c7cff-4c88-4b80-bd99-066c572dcb71](src/071c7cff-4c88-4b80-bd99-066c572dcb71) + - **class Data** | [Details](src/cb11e8d9-69c2-4095-831c-59908ea402e7) | [Code](src/cb11e8d9-69c2-4095-831c-59908ea402e7/code.php) | [Settings](src/cb11e8d9-69c2-4095-831c-59908ea402e7/settings.json) | Super__cb11e8d9_69c2_4095_831c_59908ea402e7__Power + - **class Structure** | [Details](src/071c7cff-4c88-4b80-bd99-066c572dcb71) | [Code](src/071c7cff-4c88-4b80-bd99-066c572dcb71/code.php) | [Settings](src/071c7cff-4c88-4b80-bd99-066c572dcb71/settings.json) | Super__071c7cff_4c88_4b80_bd99_066c572dcb71__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Joomlaplugin](#vdm-joomla-componentbuilder-compiler-joomlaplugin) - - **class Data** | [Details](src/766a9524-37df-4604-91a7-b98a6150ee26) | [Code](src/766a9524-37df-4604-91a7-b98a6150ee26/code.php) | [Settings](src/766a9524-37df-4604-91a7-b98a6150ee26/settings.json) | [766a9524-37df-4604-91a7-b98a6150ee26](src/766a9524-37df-4604-91a7-b98a6150ee26) - - **class Structure** | [Details](src/a900b836-f2eb-4f13-8f28-b7cac839c7ff) | [Code](src/a900b836-f2eb-4f13-8f28-b7cac839c7ff/code.php) | [Settings](src/a900b836-f2eb-4f13-8f28-b7cac839c7ff/settings.json) | [a900b836-f2eb-4f13-8f28-b7cac839c7ff](src/a900b836-f2eb-4f13-8f28-b7cac839c7ff) + - **class Data** | [Details](src/766a9524-37df-4604-91a7-b98a6150ee26) | [Code](src/766a9524-37df-4604-91a7-b98a6150ee26/code.php) | [Settings](src/766a9524-37df-4604-91a7-b98a6150ee26/settings.json) | Super__766a9524_37df_4604_91a7_b98a6150ee26__Power + - **class Structure** | [Details](src/a900b836-f2eb-4f13-8f28-b7cac839c7ff) | [Code](src/a900b836-f2eb-4f13-8f28-b7cac839c7ff/code.php) | [Settings](src/a900b836-f2eb-4f13-8f28-b7cac839c7ff/settings.json) | Super__a900b836_f2eb_4f13_8f28_b7cac839c7ff__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Language](#vdm-joomla-componentbuilder-compiler-language) - - **class Extractor** | [Details](src/d33b9278-c409-4aec-a047-b72f56712391) | [Code](src/d33b9278-c409-4aec-a047-b72f56712391/code.php) | [Settings](src/d33b9278-c409-4aec-a047-b72f56712391/settings.json) | [d33b9278-c409-4aec-a047-b72f56712391](src/d33b9278-c409-4aec-a047-b72f56712391) + - **class Extractor** | [Details](src/d33b9278-c409-4aec-a047-b72f56712391) | [Code](src/d33b9278-c409-4aec-a047-b72f56712391/code.php) | [Settings](src/d33b9278-c409-4aec-a047-b72f56712391/settings.json) | Super__d33b9278_c409_4aec_a047_b72f56712391__Power + - **class Fieldset** | [Details](src/4ad7020e-39ab-49ba-977b-de6084944502) | [Code](src/4ad7020e-39ab-49ba-977b-de6084944502/code.php) | [Settings](src/4ad7020e-39ab-49ba-977b-de6084944502/settings.json) | Super__4ad7020e_39ab_49ba_977b_de6084944502__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Library](#vdm-joomla-componentbuilder-compiler-library) - - **class Data** | [Details](src/7175c1cd-2071-4cd7-b499-23881e168c3f) | [Code](src/7175c1cd-2071-4cd7-b499-23881e168c3f/code.php) | [Settings](src/7175c1cd-2071-4cd7-b499-23881e168c3f/settings.json) | [7175c1cd-2071-4cd7-b499-23881e168c3f](src/7175c1cd-2071-4cd7-b499-23881e168c3f) - - **class Structure** | [Details](src/d3ce5763-4d00-4245-a175-54fc2e80e9b7) | [Code](src/d3ce5763-4d00-4245-a175-54fc2e80e9b7/code.php) | [Settings](src/d3ce5763-4d00-4245-a175-54fc2e80e9b7/settings.json) | [d3ce5763-4d00-4245-a175-54fc2e80e9b7](src/d3ce5763-4d00-4245-a175-54fc2e80e9b7) + - **class Data** | [Details](src/7175c1cd-2071-4cd7-b499-23881e168c3f) | [Code](src/7175c1cd-2071-4cd7-b499-23881e168c3f/code.php) | [Settings](src/7175c1cd-2071-4cd7-b499-23881e168c3f/settings.json) | Super__7175c1cd_2071_4cd7_b499_23881e168c3f__Power + - **class Structure** | [Details](src/d3ce5763-4d00-4245-a175-54fc2e80e9b7) | [Code](src/d3ce5763-4d00-4245-a175-54fc2e80e9b7/code.php) | [Settings](src/d3ce5763-4d00-4245-a175-54fc2e80e9b7/settings.json) | Super__d3ce5763_4d00_4245_a175_54fc2e80e9b7__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Model](#vdm-joomla-componentbuilder-compiler-model) - - **class Adminviews** | [Details](src/cebdcccb-24c5-46db-92de-63453852dcb8) | [Code](src/cebdcccb-24c5-46db-92de-63453852dcb8/code.php) | [Settings](src/cebdcccb-24c5-46db-92de-63453852dcb8/settings.json) | [cebdcccb-24c5-46db-92de-63453852dcb8](src/cebdcccb-24c5-46db-92de-63453852dcb8) - - **class Ajaxadmin** | [Details](src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad) | [Code](src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/code.php) | [Settings](src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/settings.json) | [4f575bd6-de97-41f8-80d6-259c8a6dd9ad](src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad) - - **class Ajaxcustomview** | [Details](src/592aed4e-2c5f-4fc5-8f7a-409203d1af82) | [Code](src/592aed4e-2c5f-4fc5-8f7a-409203d1af82/code.php) | [Settings](src/592aed4e-2c5f-4fc5-8f7a-409203d1af82/settings.json) | [592aed4e-2c5f-4fc5-8f7a-409203d1af82](src/592aed4e-2c5f-4fc5-8f7a-409203d1af82) - - **class Conditions** | [Details](src/55e61314-ba10-4e2b-92dd-b44adebabce9) | [Code](src/55e61314-ba10-4e2b-92dd-b44adebabce9/code.php) | [Settings](src/55e61314-ba10-4e2b-92dd-b44adebabce9/settings.json) | [55e61314-ba10-4e2b-92dd-b44adebabce9](src/55e61314-ba10-4e2b-92dd-b44adebabce9) - - **class Createdate** | [Details](src/53cf9828-7ad4-4856-aac1-7c4c67bd3121) | [Code](src/53cf9828-7ad4-4856-aac1-7c4c67bd3121/code.php) | [Settings](src/53cf9828-7ad4-4856-aac1-7c4c67bd3121/settings.json) | [53cf9828-7ad4-4856-aac1-7c4c67bd3121](src/53cf9828-7ad4-4856-aac1-7c4c67bd3121) - - **class Cssadminview** | [Details](src/e79842d3-51b7-4282-93c7-3487cd8b61ab) | [Code](src/e79842d3-51b7-4282-93c7-3487cd8b61ab/code.php) | [Settings](src/e79842d3-51b7-4282-93c7-3487cd8b61ab/settings.json) | [e79842d3-51b7-4282-93c7-3487cd8b61ab](src/e79842d3-51b7-4282-93c7-3487cd8b61ab) - - **class Csscustomview** | [Details](src/3283a89c-329a-47fb-a011-0df6c31a5c73) | [Code](src/3283a89c-329a-47fb-a011-0df6c31a5c73/code.php) | [Settings](src/3283a89c-329a-47fb-a011-0df6c31a5c73/settings.json) | [3283a89c-329a-47fb-a011-0df6c31a5c73](src/3283a89c-329a-47fb-a011-0df6c31a5c73) - - **class Customadminviews** | [Details](src/e0e24173-a808-4dd5-8e26-de971d014f86) | [Code](src/e0e24173-a808-4dd5-8e26-de971d014f86/code.php) | [Settings](src/e0e24173-a808-4dd5-8e26-de971d014f86/settings.json) | [e0e24173-a808-4dd5-8e26-de971d014f86](src/e0e24173-a808-4dd5-8e26-de971d014f86) - - **class Customalias** | [Details](src/5f8e8fa6-3793-44af-882d-9cfb209434e9) | [Code](src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.php) | [Settings](src/5f8e8fa6-3793-44af-882d-9cfb209434e9/settings.json) | [5f8e8fa6-3793-44af-882d-9cfb209434e9](src/5f8e8fa6-3793-44af-882d-9cfb209434e9) - - **class Custombuttons** | [Details](src/ebe3287d-bfa0-4519-b663-f442f4dea432) | [Code](src/ebe3287d-bfa0-4519-b663-f442f4dea432/code.php) | [Settings](src/ebe3287d-bfa0-4519-b663-f442f4dea432/settings.json) | [ebe3287d-bfa0-4519-b663-f442f4dea432](src/ebe3287d-bfa0-4519-b663-f442f4dea432) - - **class Customimportscripts** | [Details](src/037c7274-fb16-455d-989a-bf1da022620b) | [Code](src/037c7274-fb16-455d-989a-bf1da022620b/code.php) | [Settings](src/037c7274-fb16-455d-989a-bf1da022620b/settings.json) | [037c7274-fb16-455d-989a-bf1da022620b](src/037c7274-fb16-455d-989a-bf1da022620b) - - **class Customtabs** | [Details](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c) | [Code](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.php) | [Settings](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/settings.json) | [fa8c1125-d370-4cb6-a7ff-eb32193c198c](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c) - - **class Dynamicget** | [Details](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6) | [Code](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.php) | [Settings](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/settings.json) | [79740ee8-4d10-4b51-9ff5-18e1386ec1c6](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6) - - **class Fields** | [Details](src/e6a64c41-405e-4bbc-9722-27402c22bbea) | [Code](src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.php) | [Settings](src/e6a64c41-405e-4bbc-9722-27402c22bbea/settings.json) | [e6a64c41-405e-4bbc-9722-27402c22bbea](src/e6a64c41-405e-4bbc-9722-27402c22bbea) - - **class Filesfolders** | [Details](src/f4578c04-a81e-4218-b80d-b0612196eaf0) | [Code](src/f4578c04-a81e-4218-b80d-b0612196eaf0/code.php) | [Settings](src/f4578c04-a81e-4218-b80d-b0612196eaf0/settings.json) | [f4578c04-a81e-4218-b80d-b0612196eaf0](src/f4578c04-a81e-4218-b80d-b0612196eaf0) - - **class Historyadminview** | [Details](src/6dfbf568-f3cd-4ea7-af04-6859447b5462) | [Code](src/6dfbf568-f3cd-4ea7-af04-6859447b5462/code.php) | [Settings](src/6dfbf568-f3cd-4ea7-af04-6859447b5462/settings.json) | [6dfbf568-f3cd-4ea7-af04-6859447b5462](src/6dfbf568-f3cd-4ea7-af04-6859447b5462) - - **class Historycomponent** | [Details](src/17a728e9-d6cf-4060-9efb-241b0ff2f981) | [Code](src/17a728e9-d6cf-4060-9efb-241b0ff2f981/code.php) | [Settings](src/17a728e9-d6cf-4060-9efb-241b0ff2f981/settings.json) | [17a728e9-d6cf-4060-9efb-241b0ff2f981](src/17a728e9-d6cf-4060-9efb-241b0ff2f981) - - **class Javascriptadminview** | [Details](src/dfd3c893-0296-46eb-9ae4-a0348713cd8f) | [Code](src/dfd3c893-0296-46eb-9ae4-a0348713cd8f/code.php) | [Settings](src/dfd3c893-0296-46eb-9ae4-a0348713cd8f/settings.json) | [dfd3c893-0296-46eb-9ae4-a0348713cd8f](src/dfd3c893-0296-46eb-9ae4-a0348713cd8f) - - **class Javascriptcustomview** | [Details](src/29455d3b-df2b-4e41-8684-1608060e37a4) | [Code](src/29455d3b-df2b-4e41-8684-1608060e37a4/code.php) | [Settings](src/29455d3b-df2b-4e41-8684-1608060e37a4/settings.json) | [29455d3b-df2b-4e41-8684-1608060e37a4](src/29455d3b-df2b-4e41-8684-1608060e37a4) - - **class Joomlamodules** | [Details](src/bfdc4ce5-cb12-4fc6-9023-51cede25edd0) | [Code](src/bfdc4ce5-cb12-4fc6-9023-51cede25edd0/code.php) | [Settings](src/bfdc4ce5-cb12-4fc6-9023-51cede25edd0/settings.json) | [bfdc4ce5-cb12-4fc6-9023-51cede25edd0](src/bfdc4ce5-cb12-4fc6-9023-51cede25edd0) - - **class Joomlaplugins** | [Details](src/ef97b03e-1018-447a-8d7e-30401b0257bb) | [Code](src/ef97b03e-1018-447a-8d7e-30401b0257bb/code.php) | [Settings](src/ef97b03e-1018-447a-8d7e-30401b0257bb/settings.json) | [ef97b03e-1018-447a-8d7e-30401b0257bb](src/ef97b03e-1018-447a-8d7e-30401b0257bb) - - **class Libraries** | [Details](src/59895f37-50c8-4af3-9dad-230e18841953) | [Code](src/59895f37-50c8-4af3-9dad-230e18841953/code.php) | [Settings](src/59895f37-50c8-4af3-9dad-230e18841953/settings.json) | [59895f37-50c8-4af3-9dad-230e18841953](src/59895f37-50c8-4af3-9dad-230e18841953) - - **class Linkedviews** | [Details](src/ae1fa148-91be-4f80-89a9-69d91ba9d575) | [Code](src/ae1fa148-91be-4f80-89a9-69d91ba9d575/code.php) | [Settings](src/ae1fa148-91be-4f80-89a9-69d91ba9d575/settings.json) | [ae1fa148-91be-4f80-89a9-69d91ba9d575](src/ae1fa148-91be-4f80-89a9-69d91ba9d575) - - **class Loader** | [Details](src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7) | [Code](src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/code.php) | [Settings](src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/settings.json) | [0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7](src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7) - - **class Modifieddate** | [Details](src/9127e428-5dee-46cb-b3a9-ab5b91ea6df3) | [Code](src/9127e428-5dee-46cb-b3a9-ab5b91ea6df3/code.php) | [Settings](src/9127e428-5dee-46cb-b3a9-ab5b91ea6df3/settings.json) | [9127e428-5dee-46cb-b3a9-ab5b91ea6df3](src/9127e428-5dee-46cb-b3a9-ab5b91ea6df3) - - **class Mysqlsettings** | [Details](src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e) | [Code](src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/code.php) | [Settings](src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/settings.json) | [35191b0c-f7f3-44d6-8ec1-c816b997bd4e](src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e) - - **class Permissions** | [Details](src/0dabc67c-abec-4541-82bf-279abd3c9be1) | [Code](src/0dabc67c-abec-4541-82bf-279abd3c9be1/code.php) | [Settings](src/0dabc67c-abec-4541-82bf-279abd3c9be1/settings.json) | [0dabc67c-abec-4541-82bf-279abd3c9be1](src/0dabc67c-abec-4541-82bf-279abd3c9be1) - - **class Phpadminview** | [Details](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe) | [Code](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe/code.php) | [Settings](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe/settings.json) | [c20a63e0-0eeb-4424-9d08-b1bf0f049dfe](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe) - - **class Phpcustomview** | [Details](src/489da602-27c7-418c-bf59-1d45ad42bdcc) | [Code](src/489da602-27c7-418c-bf59-1d45ad42bdcc/code.php) | [Settings](src/489da602-27c7-418c-bf59-1d45ad42bdcc/settings.json) | [489da602-27c7-418c-bf59-1d45ad42bdcc](src/489da602-27c7-418c-bf59-1d45ad42bdcc) - - **class Relations** | [Details](src/a8eb2fb1-88ed-4af8-842d-898eb915b588) | [Code](src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.php) | [Settings](src/a8eb2fb1-88ed-4af8-842d-898eb915b588/settings.json) | [a8eb2fb1-88ed-4af8-842d-898eb915b588](src/a8eb2fb1-88ed-4af8-842d-898eb915b588) - - **class Siteviews** | [Details](src/e0075978-315d-4807-8507-ce9c6922a885) | [Code](src/e0075978-315d-4807-8507-ce9c6922a885/code.php) | [Settings](src/e0075978-315d-4807-8507-ce9c6922a885/settings.json) | [e0075978-315d-4807-8507-ce9c6922a885](src/e0075978-315d-4807-8507-ce9c6922a885) - - **class Sql** | [Details](src/d4b418a7-bf9b-4768-969d-e07c36916fd2) | [Code](src/d4b418a7-bf9b-4768-969d-e07c36916fd2/code.php) | [Settings](src/d4b418a7-bf9b-4768-969d-e07c36916fd2/settings.json) | [d4b418a7-bf9b-4768-969d-e07c36916fd2](src/d4b418a7-bf9b-4768-969d-e07c36916fd2) - - **class Sqldump** | [Details](src/a6e1227c-1efe-407d-84ef-03c6989a6a88) | [Code](src/a6e1227c-1efe-407d-84ef-03c6989a6a88/code.php) | [Settings](src/a6e1227c-1efe-407d-84ef-03c6989a6a88/settings.json) | [a6e1227c-1efe-407d-84ef-03c6989a6a88](src/a6e1227c-1efe-407d-84ef-03c6989a6a88) - - **class Sqltweaking** | [Details](src/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26) | [Code](src/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26/code.php) | [Settings](src/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26/settings.json) | [e50cbac5-9c9d-4fd4-aa7a-5e830719ed26](src/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26) - - **class Tabs** | [Details](src/143ac6ea-b64f-4331-9a97-31e3fce2bb69) | [Code](src/143ac6ea-b64f-4331-9a97-31e3fce2bb69/code.php) | [Settings](src/143ac6ea-b64f-4331-9a97-31e3fce2bb69/settings.json) | [143ac6ea-b64f-4331-9a97-31e3fce2bb69](src/143ac6ea-b64f-4331-9a97-31e3fce2bb69) - - **class Updateserver** | [Details](src/1d0fd857-12ec-4f47-ab1c-124d85748e24) | [Code](src/1d0fd857-12ec-4f47-ab1c-124d85748e24/code.php) | [Settings](src/1d0fd857-12ec-4f47-ab1c-124d85748e24/settings.json) | [1d0fd857-12ec-4f47-ab1c-124d85748e24](src/1d0fd857-12ec-4f47-ab1c-124d85748e24) - - **class Updatesql** | [Details](src/b80296eb-4718-4ed3-894d-69f3ac293733) | [Code](src/b80296eb-4718-4ed3-894d-69f3ac293733/code.php) | [Settings](src/b80296eb-4718-4ed3-894d-69f3ac293733/settings.json) | [b80296eb-4718-4ed3-894d-69f3ac293733](src/b80296eb-4718-4ed3-894d-69f3ac293733) - - **class Whmcs** | [Details](src/af5beb21-214a-44f6-9090-7ea24c22e649) | [Code](src/af5beb21-214a-44f6-9090-7ea24c22e649/code.php) | [Settings](src/af5beb21-214a-44f6-9090-7ea24c22e649/settings.json) | [af5beb21-214a-44f6-9090-7ea24c22e649](src/af5beb21-214a-44f6-9090-7ea24c22e649) + - **class Adminviews** | [Details](src/cebdcccb-24c5-46db-92de-63453852dcb8) | [Code](src/cebdcccb-24c5-46db-92de-63453852dcb8/code.php) | [Settings](src/cebdcccb-24c5-46db-92de-63453852dcb8/settings.json) | Super__cebdcccb_24c5_46db_92de_63453852dcb8__Power + - **class Ajaxadmin** | [Details](src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad) | [Code](src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/code.php) | [Settings](src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/settings.json) | Super__4f575bd6_de97_41f8_80d6_259c8a6dd9ad__Power + - **class Ajaxcustomview** | [Details](src/592aed4e-2c5f-4fc5-8f7a-409203d1af82) | [Code](src/592aed4e-2c5f-4fc5-8f7a-409203d1af82/code.php) | [Settings](src/592aed4e-2c5f-4fc5-8f7a-409203d1af82/settings.json) | Super__592aed4e_2c5f_4fc5_8f7a_409203d1af82__Power + - **class Conditions** | [Details](src/55e61314-ba10-4e2b-92dd-b44adebabce9) | [Code](src/55e61314-ba10-4e2b-92dd-b44adebabce9/code.php) | [Settings](src/55e61314-ba10-4e2b-92dd-b44adebabce9/settings.json) | Super__55e61314_ba10_4e2b_92dd_b44adebabce9__Power + - **class Createdate** | [Details](src/53cf9828-7ad4-4856-aac1-7c4c67bd3121) | [Code](src/53cf9828-7ad4-4856-aac1-7c4c67bd3121/code.php) | [Settings](src/53cf9828-7ad4-4856-aac1-7c4c67bd3121/settings.json) | Super__53cf9828_7ad4_4856_aac1_7c4c67bd3121__Power + - **class Cssadminview** | [Details](src/e79842d3-51b7-4282-93c7-3487cd8b61ab) | [Code](src/e79842d3-51b7-4282-93c7-3487cd8b61ab/code.php) | [Settings](src/e79842d3-51b7-4282-93c7-3487cd8b61ab/settings.json) | Super__e79842d3_51b7_4282_93c7_3487cd8b61ab__Power + - **class Csscustomview** | [Details](src/3283a89c-329a-47fb-a011-0df6c31a5c73) | [Code](src/3283a89c-329a-47fb-a011-0df6c31a5c73/code.php) | [Settings](src/3283a89c-329a-47fb-a011-0df6c31a5c73/settings.json) | Super__3283a89c_329a_47fb_a011_0df6c31a5c73__Power + - **class Customadminviews** | [Details](src/e0e24173-a808-4dd5-8e26-de971d014f86) | [Code](src/e0e24173-a808-4dd5-8e26-de971d014f86/code.php) | [Settings](src/e0e24173-a808-4dd5-8e26-de971d014f86/settings.json) | Super__e0e24173_a808_4dd5_8e26_de971d014f86__Power + - **class Customalias** | [Details](src/5f8e8fa6-3793-44af-882d-9cfb209434e9) | [Code](src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.php) | [Settings](src/5f8e8fa6-3793-44af-882d-9cfb209434e9/settings.json) | Super__5f8e8fa6_3793_44af_882d_9cfb209434e9__Power + - **class Custombuttons** | [Details](src/ebe3287d-bfa0-4519-b663-f442f4dea432) | [Code](src/ebe3287d-bfa0-4519-b663-f442f4dea432/code.php) | [Settings](src/ebe3287d-bfa0-4519-b663-f442f4dea432/settings.json) | Super__ebe3287d_bfa0_4519_b663_f442f4dea432__Power + - **class Customimportscripts** | [Details](src/037c7274-fb16-455d-989a-bf1da022620b) | [Code](src/037c7274-fb16-455d-989a-bf1da022620b/code.php) | [Settings](src/037c7274-fb16-455d-989a-bf1da022620b/settings.json) | Super__037c7274_fb16_455d_989a_bf1da022620b__Power + - **class Customtabs** | [Details](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c) | [Code](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.php) | [Settings](src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/settings.json) | Super__fa8c1125_d370_4cb6_a7ff_eb32193c198c__Power + - **class Dynamicget** | [Details](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6) | [Code](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.php) | [Settings](src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/settings.json) | Super__79740ee8_4d10_4b51_9ff5_18e1386ec1c6__Power + - **class Fields** | [Details](src/e6a64c41-405e-4bbc-9722-27402c22bbea) | [Code](src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.php) | [Settings](src/e6a64c41-405e-4bbc-9722-27402c22bbea/settings.json) | Super__e6a64c41_405e_4bbc_9722_27402c22bbea__Power + - **class Filesfolders** | [Details](src/f4578c04-a81e-4218-b80d-b0612196eaf0) | [Code](src/f4578c04-a81e-4218-b80d-b0612196eaf0/code.php) | [Settings](src/f4578c04-a81e-4218-b80d-b0612196eaf0/settings.json) | Super__f4578c04_a81e_4218_b80d_b0612196eaf0__Power + - **class Historyadminview** | [Details](src/6dfbf568-f3cd-4ea7-af04-6859447b5462) | [Code](src/6dfbf568-f3cd-4ea7-af04-6859447b5462/code.php) | [Settings](src/6dfbf568-f3cd-4ea7-af04-6859447b5462/settings.json) | Super__6dfbf568_f3cd_4ea7_af04_6859447b5462__Power + - **class Historycomponent** | [Details](src/17a728e9-d6cf-4060-9efb-241b0ff2f981) | [Code](src/17a728e9-d6cf-4060-9efb-241b0ff2f981/code.php) | [Settings](src/17a728e9-d6cf-4060-9efb-241b0ff2f981/settings.json) | Super__17a728e9_d6cf_4060_9efb_241b0ff2f981__Power + - **class Javascriptadminview** | [Details](src/dfd3c893-0296-46eb-9ae4-a0348713cd8f) | [Code](src/dfd3c893-0296-46eb-9ae4-a0348713cd8f/code.php) | [Settings](src/dfd3c893-0296-46eb-9ae4-a0348713cd8f/settings.json) | Super__dfd3c893_0296_46eb_9ae4_a0348713cd8f__Power + - **class Javascriptcustomview** | [Details](src/29455d3b-df2b-4e41-8684-1608060e37a4) | [Code](src/29455d3b-df2b-4e41-8684-1608060e37a4/code.php) | [Settings](src/29455d3b-df2b-4e41-8684-1608060e37a4/settings.json) | Super__29455d3b_df2b_4e41_8684_1608060e37a4__Power + - **class Joomlamodules** | [Details](src/bfdc4ce5-cb12-4fc6-9023-51cede25edd0) | [Code](src/bfdc4ce5-cb12-4fc6-9023-51cede25edd0/code.php) | [Settings](src/bfdc4ce5-cb12-4fc6-9023-51cede25edd0/settings.json) | Super__bfdc4ce5_cb12_4fc6_9023_51cede25edd0__Power + - **class Joomlaplugins** | [Details](src/ef97b03e-1018-447a-8d7e-30401b0257bb) | [Code](src/ef97b03e-1018-447a-8d7e-30401b0257bb/code.php) | [Settings](src/ef97b03e-1018-447a-8d7e-30401b0257bb/settings.json) | Super__ef97b03e_1018_447a_8d7e_30401b0257bb__Power + - **class Libraries** | [Details](src/59895f37-50c8-4af3-9dad-230e18841953) | [Code](src/59895f37-50c8-4af3-9dad-230e18841953/code.php) | [Settings](src/59895f37-50c8-4af3-9dad-230e18841953/settings.json) | Super__59895f37_50c8_4af3_9dad_230e18841953__Power + - **class Linkedviews** | [Details](src/ae1fa148-91be-4f80-89a9-69d91ba9d575) | [Code](src/ae1fa148-91be-4f80-89a9-69d91ba9d575/code.php) | [Settings](src/ae1fa148-91be-4f80-89a9-69d91ba9d575/settings.json) | Super__ae1fa148_91be_4f80_89a9_69d91ba9d575__Power + - **class Loader** | [Details](src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7) | [Code](src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/code.php) | [Settings](src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/settings.json) | Super__0d71c2d9_2fc0_4c20_82c5_43c46b0fc6f7__Power + - **class Modifieddate** | [Details](src/9127e428-5dee-46cb-b3a9-ab5b91ea6df3) | [Code](src/9127e428-5dee-46cb-b3a9-ab5b91ea6df3/code.php) | [Settings](src/9127e428-5dee-46cb-b3a9-ab5b91ea6df3/settings.json) | Super__9127e428_5dee_46cb_b3a9_ab5b91ea6df3__Power + - **class Mysqlsettings** | [Details](src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e) | [Code](src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/code.php) | [Settings](src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/settings.json) | Super__35191b0c_f7f3_44d6_8ec1_c816b997bd4e__Power + - **class Permissions** | [Details](src/0dabc67c-abec-4541-82bf-279abd3c9be1) | [Code](src/0dabc67c-abec-4541-82bf-279abd3c9be1/code.php) | [Settings](src/0dabc67c-abec-4541-82bf-279abd3c9be1/settings.json) | Super__0dabc67c_abec_4541_82bf_279abd3c9be1__Power + - **class Phpadminview** | [Details](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe) | [Code](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe/code.php) | [Settings](src/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe/settings.json) | Super__c20a63e0_0eeb_4424_9d08_b1bf0f049dfe__Power + - **class Phpcustomview** | [Details](src/489da602-27c7-418c-bf59-1d45ad42bdcc) | [Code](src/489da602-27c7-418c-bf59-1d45ad42bdcc/code.php) | [Settings](src/489da602-27c7-418c-bf59-1d45ad42bdcc/settings.json) | Super__489da602_27c7_418c_bf59_1d45ad42bdcc__Power + - **class Relations** | [Details](src/a8eb2fb1-88ed-4af8-842d-898eb915b588) | [Code](src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.php) | [Settings](src/a8eb2fb1-88ed-4af8-842d-898eb915b588/settings.json) | Super__a8eb2fb1_88ed_4af8_842d_898eb915b588__Power + - **class Siteviews** | [Details](src/e0075978-315d-4807-8507-ce9c6922a885) | [Code](src/e0075978-315d-4807-8507-ce9c6922a885/code.php) | [Settings](src/e0075978-315d-4807-8507-ce9c6922a885/settings.json) | Super__e0075978_315d_4807_8507_ce9c6922a885__Power + - **class Sql** | [Details](src/d4b418a7-bf9b-4768-969d-e07c36916fd2) | [Code](src/d4b418a7-bf9b-4768-969d-e07c36916fd2/code.php) | [Settings](src/d4b418a7-bf9b-4768-969d-e07c36916fd2/settings.json) | Super__d4b418a7_bf9b_4768_969d_e07c36916fd2__Power + - **class Sqldump** | [Details](src/a6e1227c-1efe-407d-84ef-03c6989a6a88) | [Code](src/a6e1227c-1efe-407d-84ef-03c6989a6a88/code.php) | [Settings](src/a6e1227c-1efe-407d-84ef-03c6989a6a88/settings.json) | Super__a6e1227c_1efe_407d_84ef_03c6989a6a88__Power + - **class Sqltweaking** | [Details](src/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26) | [Code](src/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26/code.php) | [Settings](src/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26/settings.json) | Super__e50cbac5_9c9d_4fd4_aa7a_5e830719ed26__Power + - **class Tabs** | [Details](src/143ac6ea-b64f-4331-9a97-31e3fce2bb69) | [Code](src/143ac6ea-b64f-4331-9a97-31e3fce2bb69/code.php) | [Settings](src/143ac6ea-b64f-4331-9a97-31e3fce2bb69/settings.json) | Super__143ac6ea_b64f_4331_9a97_31e3fce2bb69__Power + - **class Updateserver** | [Details](src/1d0fd857-12ec-4f47-ab1c-124d85748e24) | [Code](src/1d0fd857-12ec-4f47-ab1c-124d85748e24/code.php) | [Settings](src/1d0fd857-12ec-4f47-ab1c-124d85748e24/settings.json) | Super__1d0fd857_12ec_4f47_ab1c_124d85748e24__Power + - **class Updatesql** | [Details](src/b80296eb-4718-4ed3-894d-69f3ac293733) | [Code](src/b80296eb-4718-4ed3-894d-69f3ac293733/code.php) | [Settings](src/b80296eb-4718-4ed3-894d-69f3ac293733/settings.json) | Super__b80296eb_4718_4ed3_894d_69f3ac293733__Power + - **class Whmcs** | [Details](src/af5beb21-214a-44f6-9090-7ea24c22e649) | [Code](src/af5beb21-214a-44f6-9090-7ea24c22e649/code.php) | [Settings](src/af5beb21-214a-44f6-9090-7ea24c22e649/settings.json) | Super__af5beb21_214a_44f6_9090_7ea24c22e649__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Placeholder](#vdm-joomla-componentbuilder-compiler-placeholder) - - **class Reverse** | [Details](src/ca111518-e47c-4049-b1b2-cb010f23866f) | [Code](src/ca111518-e47c-4049-b1b2-cb010f23866f/code.php) | [Settings](src/ca111518-e47c-4049-b1b2-cb010f23866f/settings.json) | [ca111518-e47c-4049-b1b2-cb010f23866f](src/ca111518-e47c-4049-b1b2-cb010f23866f) + - **class Reverse** | [Details](src/ca111518-e47c-4049-b1b2-cb010f23866f) | [Code](src/ca111518-e47c-4049-b1b2-cb010f23866f/code.php) | [Settings](src/ca111518-e47c-4049-b1b2-cb010f23866f/settings.json) | Super__ca111518_e47c_4049_b1b2_cb010f23866f__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Power](#vdm-joomla-componentbuilder-compiler-power) - - **final class Extractor** | [Details](src/eeb03266-22fd-45bb-953a-961bb6be3a54) | [Code](src/eeb03266-22fd-45bb-953a-961bb6be3a54/code.php) | [Settings](src/eeb03266-22fd-45bb-953a-961bb6be3a54/settings.json) | [eeb03266-22fd-45bb-953a-961bb6be3a54](src/eeb03266-22fd-45bb-953a-961bb6be3a54) - - **final class Injector** | [Details](src/763d137c-42bc-4282-98d8-cc5c0654985f) | [Code](src/763d137c-42bc-4282-98d8-cc5c0654985f/code.php) | [Settings](src/763d137c-42bc-4282-98d8-cc5c0654985f/settings.json) | [763d137c-42bc-4282-98d8-cc5c0654985f](src/763d137c-42bc-4282-98d8-cc5c0654985f) - - **final class Parser** | [Details](src/95d0e03f-24fd-4412-bc2e-f0899fcc3205) | [Code](src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/code.php) | [Settings](src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/settings.json) | [95d0e03f-24fd-4412-bc2e-f0899fcc3205](src/95d0e03f-24fd-4412-bc2e-f0899fcc3205) - - **class Autoloader** | [Details](src/6e64917c-d687-4ef3-a655-811319f5a81e) | [Code](src/6e64917c-d687-4ef3-a655-811319f5a81e/code.php) | [Settings](src/6e64917c-d687-4ef3-a655-811319f5a81e/settings.json) | [6e64917c-d687-4ef3-a655-811319f5a81e](src/6e64917c-d687-4ef3-a655-811319f5a81e) - - **class Infusion** | [Details](src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c) | [Code](src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/code.php) | [Settings](src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/settings.json) | [0419081e-4cb3-4c65-8c6a-ffe941fb0f1c](src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c) - - **class Plantuml** | [Details](src/ff5e9e63-86d0-4691-ab59-d4b9d9154096) | [Code](src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/code.php) | [Settings](src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/settings.json) | [ff5e9e63-86d0-4691-ab59-d4b9d9154096](src/ff5e9e63-86d0-4691-ab59-d4b9d9154096) - - **class Structure** | [Details](src/324566de-0f7d-4b6e-9caf-8424d55013ae) | [Code](src/324566de-0f7d-4b6e-9caf-8424d55013ae/code.php) | [Settings](src/324566de-0f7d-4b6e-9caf-8424d55013ae/settings.json) | [324566de-0f7d-4b6e-9caf-8424d55013ae](src/324566de-0f7d-4b6e-9caf-8424d55013ae) + - **final class Extractor** | [Details](src/eeb03266-22fd-45bb-953a-961bb6be3a54) | [Code](src/eeb03266-22fd-45bb-953a-961bb6be3a54/code.php) | [Settings](src/eeb03266-22fd-45bb-953a-961bb6be3a54/settings.json) | Super__eeb03266_22fd_45bb_953a_961bb6be3a54__Power + - **final class Injector** | [Details](src/763d137c-42bc-4282-98d8-cc5c0654985f) | [Code](src/763d137c-42bc-4282-98d8-cc5c0654985f/code.php) | [Settings](src/763d137c-42bc-4282-98d8-cc5c0654985f/settings.json) | Super__763d137c_42bc_4282_98d8_cc5c0654985f__Power + - **final class Parser** | [Details](src/95d0e03f-24fd-4412-bc2e-f0899fcc3205) | [Code](src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/code.php) | [Settings](src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/settings.json) | Super__95d0e03f_24fd_4412_bc2e_f0899fcc3205__Power + - **class Autoloader** | [Details](src/6e64917c-d687-4ef3-a655-811319f5a81e) | [Code](src/6e64917c-d687-4ef3-a655-811319f5a81e/code.php) | [Settings](src/6e64917c-d687-4ef3-a655-811319f5a81e/settings.json) | Super__6e64917c_d687_4ef3_a655_811319f5a81e__Power + - **class Infusion** | [Details](src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c) | [Code](src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/code.php) | [Settings](src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/settings.json) | Super__0419081e_4cb3_4c65_8c6a_ffe941fb0f1c__Power + - **class Plantuml** | [Details](src/ff5e9e63-86d0-4691-ab59-d4b9d9154096) | [Code](src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/code.php) | [Settings](src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/settings.json) | Super__ff5e9e63_86d0_4691_ab59_d4b9d9154096__Power + - **class Structure** | [Details](src/324566de-0f7d-4b6e-9caf-8424d55013ae) | [Code](src/324566de-0f7d-4b6e-9caf-8424d55013ae/code.php) | [Settings](src/324566de-0f7d-4b6e-9caf-8424d55013ae/settings.json) | Super__324566de_0f7d_4b6e_9caf_8424d55013ae__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Service](#vdm-joomla-componentbuilder-compiler-service) - - **class Adminview** | [Details](src/2dd1289a-4000-43cc-8c62-77ff32de56bf) | [Code](src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.php) | [Settings](src/2dd1289a-4000-43cc-8c62-77ff32de56bf/settings.json) | [2dd1289a-4000-43cc-8c62-77ff32de56bf](src/2dd1289a-4000-43cc-8c62-77ff32de56bf) - - **class Builder** | [Details](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7) | [Code](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.php) | [Settings](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/settings.json) | [2c76c06e-a371-4b73-9fbe-b4d9b4df55d7](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7) - - **class Compiler** | [Details](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69) | [Code](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69/code.php) | [Settings](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69/settings.json) | [ea5ed06e-72ae-4906-9167-1cc0fa32fe69](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69) - - **class Component** | [Details](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c) | [Code](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c/code.php) | [Settings](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c/settings.json) | [8a63e87b-b39b-4a15-8044-9b2a2f4fb61c](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c) - - **class Customcode** | [Details](src/a74ac3b7-bb79-4639-8f14-54a8021be68b) | [Code](src/a74ac3b7-bb79-4639-8f14-54a8021be68b/code.php) | [Settings](src/a74ac3b7-bb79-4639-8f14-54a8021be68b/settings.json) | [a74ac3b7-bb79-4639-8f14-54a8021be68b](src/a74ac3b7-bb79-4639-8f14-54a8021be68b) - - **class Customview** | [Details](src/87faa133-4cac-4816-ae41-5c3f9a2f76aa) | [Code](src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/code.php) | [Settings](src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/settings.json) | [87faa133-4cac-4816-ae41-5c3f9a2f76aa](src/87faa133-4cac-4816-ae41-5c3f9a2f76aa) - - **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) | [4815e1c7-a433-443d-a112-d1e03d7df84b](src/4815e1c7-a433-443d-a112-d1e03d7df84b) - - **class Event** | [Details](src/b94aaedb-6774-4739-a63f-8f87141a85db) | [Code](src/b94aaedb-6774-4739-a63f-8f87141a85db/code.php) | [Settings](src/b94aaedb-6774-4739-a63f-8f87141a85db/settings.json) | [b94aaedb-6774-4739-a63f-8f87141a85db](src/b94aaedb-6774-4739-a63f-8f87141a85db) - - **class Extension** | [Details](src/ed9591cb-0a03-400a-bf47-eaf78ab19b9d) | [Code](src/ed9591cb-0a03-400a-bf47-eaf78ab19b9d/code.php) | [Settings](src/ed9591cb-0a03-400a-bf47-eaf78ab19b9d/settings.json) | [ed9591cb-0a03-400a-bf47-eaf78ab19b9d](src/ed9591cb-0a03-400a-bf47-eaf78ab19b9d) - - **class Field** | [Details](src/c6c30d66-3106-44eb-9272-b2cf7ec74613) | [Code](src/c6c30d66-3106-44eb-9272-b2cf7ec74613/code.php) | [Settings](src/c6c30d66-3106-44eb-9272-b2cf7ec74613/settings.json) | [c6c30d66-3106-44eb-9272-b2cf7ec74613](src/c6c30d66-3106-44eb-9272-b2cf7ec74613) - - **class History** | [Details](src/63782f74-7b03-4745-aa40-0adf8ed4e704) | [Code](src/63782f74-7b03-4745-aa40-0adf8ed4e704/code.php) | [Settings](src/63782f74-7b03-4745-aa40-0adf8ed4e704/settings.json) | [63782f74-7b03-4745-aa40-0adf8ed4e704](src/63782f74-7b03-4745-aa40-0adf8ed4e704) - - **class Joomlamodule** | [Details](src/295186de-5954-4a65-a4c1-2f79ef305743) | [Code](src/295186de-5954-4a65-a4c1-2f79ef305743/code.php) | [Settings](src/295186de-5954-4a65-a4c1-2f79ef305743/settings.json) | [295186de-5954-4a65-a4c1-2f79ef305743](src/295186de-5954-4a65-a4c1-2f79ef305743) - - **class Joomlaplugin** | [Details](src/9eba241c-af90-42dd-ae05-92ff4d8391d3) | [Code](src/9eba241c-af90-42dd-ae05-92ff4d8391d3/code.php) | [Settings](src/9eba241c-af90-42dd-ae05-92ff4d8391d3/settings.json) | [9eba241c-af90-42dd-ae05-92ff4d8391d3](src/9eba241c-af90-42dd-ae05-92ff4d8391d3) - - **class Language** | [Details](src/9f00e793-86f8-4ef9-b775-a3eb129f83c0) | [Code](src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/code.php) | [Settings](src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/settings.json) | [9f00e793-86f8-4ef9-b775-a3eb129f83c0](src/9f00e793-86f8-4ef9-b775-a3eb129f83c0) - - **class Library** | [Details](src/253317c7-3c3b-48a0-aec8-8af5e7a86504) | [Code](src/253317c7-3c3b-48a0-aec8-8af5e7a86504/code.php) | [Settings](src/253317c7-3c3b-48a0-aec8-8af5e7a86504/settings.json) | [253317c7-3c3b-48a0-aec8-8af5e7a86504](src/253317c7-3c3b-48a0-aec8-8af5e7a86504) - - **class Mapper** | [Details](src/23f2ca33-440a-4941-8e9a-4bc67522c0cb) | [Code](src/23f2ca33-440a-4941-8e9a-4bc67522c0cb/code.php) | [Settings](src/23f2ca33-440a-4941-8e9a-4bc67522c0cb/settings.json) | [23f2ca33-440a-4941-8e9a-4bc67522c0cb](src/23f2ca33-440a-4941-8e9a-4bc67522c0cb) - - **class Model** | [Details](src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45) | [Code](src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/code.php) | [Settings](src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/settings.json) | [0601fee8-d51e-4af0-9ad3-b5f8700c4a45](src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45) - - **class Placeholder** | [Details](src/2f7b1998-bb93-4055-ae82-aa659ce8a37f) | [Code](src/2f7b1998-bb93-4055-ae82-aa659ce8a37f/code.php) | [Settings](src/2f7b1998-bb93-4055-ae82-aa659ce8a37f/settings.json) | [2f7b1998-bb93-4055-ae82-aa659ce8a37f](src/2f7b1998-bb93-4055-ae82-aa659ce8a37f) - - **class Power** | [Details](src/de01527a-6586-46ea-92e7-11ea3de1cedb) | [Code](src/de01527a-6586-46ea-92e7-11ea3de1cedb/code.php) | [Settings](src/de01527a-6586-46ea-92e7-11ea3de1cedb/settings.json) | [de01527a-6586-46ea-92e7-11ea3de1cedb](src/de01527a-6586-46ea-92e7-11ea3de1cedb) - - **class Templatelayout** | [Details](src/fff3255d-c493-4c21-a48f-73b3ebf8ba05) | [Code](src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/code.php) | [Settings](src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/settings.json) | [fff3255d-c493-4c21-a48f-73b3ebf8ba05](src/fff3255d-c493-4c21-a48f-73b3ebf8ba05) - - **class Utilities** | [Details](src/516f93b8-5fff-41c6-aeaf-2d93180a12cc) | [Code](src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/code.php) | [Settings](src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/settings.json) | [516f93b8-5fff-41c6-aeaf-2d93180a12cc](src/516f93b8-5fff-41c6-aeaf-2d93180a12cc) + - **class Adminview** | [Details](src/2dd1289a-4000-43cc-8c62-77ff32de56bf) | [Code](src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.php) | [Settings](src/2dd1289a-4000-43cc-8c62-77ff32de56bf/settings.json) | Super__2dd1289a_4000_43cc_8c62_77ff32de56bf__Power + - **class Builder** | [Details](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7) | [Code](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.php) | [Settings](src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/settings.json) | Super__2c76c06e_a371_4b73_9fbe_b4d9b4df55d7__Power + - **class Compiler** | [Details](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69) | [Code](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69/code.php) | [Settings](src/ea5ed06e-72ae-4906-9167-1cc0fa32fe69/settings.json) | Super__ea5ed06e_72ae_4906_9167_1cc0fa32fe69__Power + - **class Component** | [Details](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c) | [Code](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c/code.php) | [Settings](src/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c/settings.json) | Super__8a63e87b_b39b_4a15_8044_9b2a2f4fb61c__Power + - **class Creator** | [Details](src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b) | [Code](src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/code.php) | [Settings](src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/settings.json) | Super__8fdd604f_53e7_4a91_9935_afcfd2f6ac1b__Power + - **class Customcode** | [Details](src/a74ac3b7-bb79-4639-8f14-54a8021be68b) | [Code](src/a74ac3b7-bb79-4639-8f14-54a8021be68b/code.php) | [Settings](src/a74ac3b7-bb79-4639-8f14-54a8021be68b/settings.json) | Super__a74ac3b7_bb79_4639_8f14_54a8021be68b__Power + - **class Customview** | [Details](src/87faa133-4cac-4816-ae41-5c3f9a2f76aa) | [Code](src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/code.php) | [Settings](src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/settings.json) | Super__87faa133_4cac_4816_ae41_5c3f9a2f76aa__Power + - **class Event** | [Details](src/b94aaedb-6774-4739-a63f-8f87141a85db) | [Code](src/b94aaedb-6774-4739-a63f-8f87141a85db/code.php) | [Settings](src/b94aaedb-6774-4739-a63f-8f87141a85db/settings.json) | Super__b94aaedb_6774_4739_a63f_8f87141a85db__Power + - **class Extension** | [Details](src/ed9591cb-0a03-400a-bf47-eaf78ab19b9d) | [Code](src/ed9591cb-0a03-400a-bf47-eaf78ab19b9d/code.php) | [Settings](src/ed9591cb-0a03-400a-bf47-eaf78ab19b9d/settings.json) | Super__ed9591cb_0a03_400a_bf47_eaf78ab19b9d__Power + - **class Field** | [Details](src/c6c30d66-3106-44eb-9272-b2cf7ec74613) | [Code](src/c6c30d66-3106-44eb-9272-b2cf7ec74613/code.php) | [Settings](src/c6c30d66-3106-44eb-9272-b2cf7ec74613/settings.json) | Super__c6c30d66_3106_44eb_9272_b2cf7ec74613__Power + - **class History** | [Details](src/63782f74-7b03-4745-aa40-0adf8ed4e704) | [Code](src/63782f74-7b03-4745-aa40-0adf8ed4e704/code.php) | [Settings](src/63782f74-7b03-4745-aa40-0adf8ed4e704/settings.json) | Super__63782f74_7b03_4745_aa40_0adf8ed4e704__Power + - **class Joomlamodule** | [Details](src/295186de-5954-4a65-a4c1-2f79ef305743) | [Code](src/295186de-5954-4a65-a4c1-2f79ef305743/code.php) | [Settings](src/295186de-5954-4a65-a4c1-2f79ef305743/settings.json) | Super__295186de_5954_4a65_a4c1_2f79ef305743__Power + - **class Joomlaplugin** | [Details](src/9eba241c-af90-42dd-ae05-92ff4d8391d3) | [Code](src/9eba241c-af90-42dd-ae05-92ff4d8391d3/code.php) | [Settings](src/9eba241c-af90-42dd-ae05-92ff4d8391d3/settings.json) | Super__9eba241c_af90_42dd_ae05_92ff4d8391d3__Power + - **class Language** | [Details](src/9f00e793-86f8-4ef9-b775-a3eb129f83c0) | [Code](src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/code.php) | [Settings](src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/settings.json) | Super__9f00e793_86f8_4ef9_b775_a3eb129f83c0__Power + - **class Library** | [Details](src/253317c7-3c3b-48a0-aec8-8af5e7a86504) | [Code](src/253317c7-3c3b-48a0-aec8-8af5e7a86504/code.php) | [Settings](src/253317c7-3c3b-48a0-aec8-8af5e7a86504/settings.json) | Super__253317c7_3c3b_48a0_aec8_8af5e7a86504__Power + - **class Mapper** | [Details](src/23f2ca33-440a-4941-8e9a-4bc67522c0cb) | [Code](src/23f2ca33-440a-4941-8e9a-4bc67522c0cb/code.php) | [Settings](src/23f2ca33-440a-4941-8e9a-4bc67522c0cb/settings.json) | Super__23f2ca33_440a_4941_8e9a_4bc67522c0cb__Power + - **class Model** | [Details](src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45) | [Code](src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/code.php) | [Settings](src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/settings.json) | Super__0601fee8_d51e_4af0_9ad3_b5f8700c4a45__Power + - **class Placeholder** | [Details](src/2f7b1998-bb93-4055-ae82-aa659ce8a37f) | [Code](src/2f7b1998-bb93-4055-ae82-aa659ce8a37f/code.php) | [Settings](src/2f7b1998-bb93-4055-ae82-aa659ce8a37f/settings.json) | Super__2f7b1998_bb93_4055_ae82_aa659ce8a37f__Power + - **class Power** | [Details](src/de01527a-6586-46ea-92e7-11ea3de1cedb) | [Code](src/de01527a-6586-46ea-92e7-11ea3de1cedb/code.php) | [Settings](src/de01527a-6586-46ea-92e7-11ea3de1cedb/settings.json) | Super__de01527a_6586_46ea_92e7_11ea3de1cedb__Power + - **class Templatelayout** | [Details](src/fff3255d-c493-4c21-a48f-73b3ebf8ba05) | [Code](src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/code.php) | [Settings](src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/settings.json) | Super__fff3255d_c493_4c21_a48f_73b3ebf8ba05__Power + - **class Utilities** | [Details](src/516f93b8-5fff-41c6-aeaf-2d93180a12cc) | [Code](src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/code.php) | [Settings](src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/settings.json) | Super__516f93b8_5fff_41c6_aeaf_2d93180a12cc__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Templatelayout](#vdm-joomla-componentbuilder-compiler-templatelayout) - - **class Data** | [Details](src/39ea8150-f124-4e47-909d-641bf1c96d5e) | [Code](src/39ea8150-f124-4e47-909d-641bf1c96d5e/code.php) | [Settings](src/39ea8150-f124-4e47-909d-641bf1c96d5e/settings.json) | [39ea8150-f124-4e47-909d-641bf1c96d5e](src/39ea8150-f124-4e47-909d-641bf1c96d5e) + - **class Data** | [Details](src/39ea8150-f124-4e47-909d-641bf1c96d5e) | [Code](src/39ea8150-f124-4e47-909d-641bf1c96d5e/code.php) | [Settings](src/39ea8150-f124-4e47-909d-641bf1c96d5e/settings.json) | Super__39ea8150_f124_4e47_909d_641bf1c96d5e__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Utilities](#vdm-joomla-componentbuilder-compiler-utilities) - - **abstract class FieldHelper** | [Details](src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec) | [Code](src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/code.php) | [Settings](src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/settings.json) | [7a5fd3f3-199e-43ba-a8e8-f473d6c030ec](src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec) - - **abstract class Indent** | [Details](src/a68c010b-e92e-47d5-8a44-d23cfddeb6c6) | [Code](src/a68c010b-e92e-47d5-8a44-d23cfddeb6c6/code.php) | [Settings](src/a68c010b-e92e-47d5-8a44-d23cfddeb6c6/settings.json) | [a68c010b-e92e-47d5-8a44-d23cfddeb6c6](src/a68c010b-e92e-47d5-8a44-d23cfddeb6c6) - - **abstract class Line** | [Details](src/4e6ff11d-bebf-42f5-8fd7-b2f882857222) | [Code](src/4e6ff11d-bebf-42f5-8fd7-b2f882857222/code.php) | [Settings](src/4e6ff11d-bebf-42f5-8fd7-b2f882857222/settings.json) | [4e6ff11d-bebf-42f5-8fd7-b2f882857222](src/4e6ff11d-bebf-42f5-8fd7-b2f882857222) - - **abstract class Placefix** | [Details](src/500f3a7f-c16d-4dd4-81b2-2df6776b5388) | [Code](src/500f3a7f-c16d-4dd4-81b2-2df6776b5388/code.php) | [Settings](src/500f3a7f-c16d-4dd4-81b2-2df6776b5388/settings.json) | [500f3a7f-c16d-4dd4-81b2-2df6776b5388](src/500f3a7f-c16d-4dd4-81b2-2df6776b5388) - - **abstract class Unique** | [Details](src/f02fb1df-f4b6-4be1-9595-2e72084a5e6e) | [Code](src/f02fb1df-f4b6-4be1-9595-2e72084a5e6e/code.php) | [Settings](src/f02fb1df-f4b6-4be1-9595-2e72084a5e6e/settings.json) | [f02fb1df-f4b6-4be1-9595-2e72084a5e6e](src/f02fb1df-f4b6-4be1-9595-2e72084a5e6e) - - **class Counter** | [Details](src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4) | [Code](src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/code.php) | [Settings](src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/settings.json) | [e6d871a6-bbe7-497d-af01-68f6bb9a87f4](src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4) - - **class Dynamicpath** | [Details](src/268b85ef-49f3-4c39-8187-bb12e38d19ee) | [Code](src/268b85ef-49f3-4c39-8187-bb12e38d19ee/code.php) | [Settings](src/268b85ef-49f3-4c39-8187-bb12e38d19ee/settings.json) | [268b85ef-49f3-4c39-8187-bb12e38d19ee](src/268b85ef-49f3-4c39-8187-bb12e38d19ee) - - **class File** | [Details](src/5c75b455-3d4c-452a-867e-e90424a64c88) | [Code](src/5c75b455-3d4c-452a-867e-e90424a64c88/code.php) | [Settings](src/5c75b455-3d4c-452a-867e-e90424a64c88/settings.json) | [5c75b455-3d4c-452a-867e-e90424a64c88](src/5c75b455-3d4c-452a-867e-e90424a64c88) - - **class Folder** | [Details](src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1) | [Code](src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/code.php) | [Settings](src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/settings.json) | [6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1](src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1) - - **class Pathfix** | [Details](src/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f) | [Code](src/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f/code.php) | [Settings](src/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f/settings.json) | [cdc9b06d-8333-4fa7-ab4d-b810dd90f95f](src/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f) - - **class Paths** | [Details](src/6f20369a-8536-4870-a1a3-cda254c939c8) | [Code](src/6f20369a-8536-4870-a1a3-cda254c939c8/code.php) | [Settings](src/6f20369a-8536-4870-a1a3-cda254c939c8/settings.json) | [6f20369a-8536-4870-a1a3-cda254c939c8](src/6f20369a-8536-4870-a1a3-cda254c939c8) - - **class Structure** | [Details](src/1efdded5-d6c8-452c-8f37-0374483a7b3f) | [Code](src/1efdded5-d6c8-452c-8f37-0374483a7b3f/code.php) | [Settings](src/1efdded5-d6c8-452c-8f37-0374483a7b3f/settings.json) | [1efdded5-d6c8-452c-8f37-0374483a7b3f](src/1efdded5-d6c8-452c-8f37-0374483a7b3f) + - **abstract class FieldHelper** | [Details](src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec) | [Code](src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/code.php) | [Settings](src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/settings.json) | Super__7a5fd3f3_199e_43ba_a8e8_f473d6c030ec__Power + - **abstract class Indent** | [Details](src/a68c010b-e92e-47d5-8a44-d23cfddeb6c6) | [Code](src/a68c010b-e92e-47d5-8a44-d23cfddeb6c6/code.php) | [Settings](src/a68c010b-e92e-47d5-8a44-d23cfddeb6c6/settings.json) | Super__a68c010b_e92e_47d5_8a44_d23cfddeb6c6__Power + - **abstract class Line** | [Details](src/4e6ff11d-bebf-42f5-8fd7-b2f882857222) | [Code](src/4e6ff11d-bebf-42f5-8fd7-b2f882857222/code.php) | [Settings](src/4e6ff11d-bebf-42f5-8fd7-b2f882857222/settings.json) | Super__4e6ff11d_bebf_42f5_8fd7_b2f882857222__Power + - **abstract class Placefix** | [Details](src/500f3a7f-c16d-4dd4-81b2-2df6776b5388) | [Code](src/500f3a7f-c16d-4dd4-81b2-2df6776b5388/code.php) | [Settings](src/500f3a7f-c16d-4dd4-81b2-2df6776b5388/settings.json) | Super__500f3a7f_c16d_4dd4_81b2_2df6776b5388__Power + - **abstract class Unique** | [Details](src/f02fb1df-f4b6-4be1-9595-2e72084a5e6e) | [Code](src/f02fb1df-f4b6-4be1-9595-2e72084a5e6e/code.php) | [Settings](src/f02fb1df-f4b6-4be1-9595-2e72084a5e6e/settings.json) | Super__f02fb1df_f4b6_4be1_9595_2e72084a5e6e__Power + - **final class Xml** | [Details](src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b) | [Code](src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/code.php) | [Settings](src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/settings.json) | Super__f6ba34a2_0cd7_4dc1_ab67_75e962a5045b__Power + - **class Counter** | [Details](src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4) | [Code](src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/code.php) | [Settings](src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/settings.json) | Super__e6d871a6_bbe7_497d_af01_68f6bb9a87f4__Power + - **class Dynamicpath** | [Details](src/268b85ef-49f3-4c39-8187-bb12e38d19ee) | [Code](src/268b85ef-49f3-4c39-8187-bb12e38d19ee/code.php) | [Settings](src/268b85ef-49f3-4c39-8187-bb12e38d19ee/settings.json) | Super__268b85ef_49f3_4c39_8187_bb12e38d19ee__Power + - **class File** | [Details](src/5c75b455-3d4c-452a-867e-e90424a64c88) | [Code](src/5c75b455-3d4c-452a-867e-e90424a64c88/code.php) | [Settings](src/5c75b455-3d4c-452a-867e-e90424a64c88/settings.json) | Super__5c75b455_3d4c_452a_867e_e90424a64c88__Power + - **class Files** | [Details](src/1d967151-7c20-4ca7-9400-65233cdcd4db) | [Code](src/1d967151-7c20-4ca7-9400-65233cdcd4db/code.php) | [Settings](src/1d967151-7c20-4ca7-9400-65233cdcd4db/settings.json) | Super__1d967151_7c20_4ca7_9400_65233cdcd4db__Power + - **class Folder** | [Details](src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1) | [Code](src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/code.php) | [Settings](src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/settings.json) | Super__6bbb6ffe_3f09_4c21_aa9d_c93159afa1e1__Power + - **class Pathfix** | [Details](src/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f) | [Code](src/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f/code.php) | [Settings](src/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f/settings.json) | Super__cdc9b06d_8333_4fa7_ab4d_b810dd90f95f__Power + - **class Paths** | [Details](src/6f20369a-8536-4870-a1a3-cda254c939c8) | [Code](src/6f20369a-8536-4870-a1a3-cda254c939c8/code.php) | [Settings](src/6f20369a-8536-4870-a1a3-cda254c939c8/settings.json) | Super__6f20369a_8536_4870_a1a3_cda254c939c8__Power + - **class Structure** | [Details](src/1efdded5-d6c8-452c-8f37-0374483a7b3f) | [Code](src/1efdded5-d6c8-452c-8f37-0374483a7b3f/code.php) | [Settings](src/1efdded5-d6c8-452c-8f37-0374483a7b3f/settings.json) | Super__1efdded5_d6c8_452c_8f37_0374483a7b3f__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Power\Database](#vdm-joomla-componentbuilder-power-database) - - **final class Insert** | [Details](src/380bb7a3-cdcc-4336-a699-5070cbf521a5) | [Code](src/380bb7a3-cdcc-4336-a699-5070cbf521a5/code.php) | [Settings](src/380bb7a3-cdcc-4336-a699-5070cbf521a5/settings.json) | [380bb7a3-cdcc-4336-a699-5070cbf521a5](src/380bb7a3-cdcc-4336-a699-5070cbf521a5) - - **final class Update** | [Details](src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3) | [Code](src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/code.php) | [Settings](src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/settings.json) | [e543c123-b1d9-4a0b-83b2-a9d371da5ff3](src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3) -- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Builder\Update](#vdm-joomla-componentbuilder-compiler-builder-update) + - **final class Insert** | [Details](src/380bb7a3-cdcc-4336-a699-5070cbf521a5) | [Code](src/380bb7a3-cdcc-4336-a699-5070cbf521a5/code.php) | [Settings](src/380bb7a3-cdcc-4336-a699-5070cbf521a5/settings.json) | Super__380bb7a3_cdcc_4336_a699_5070cbf521a5__Power + - **final class Load** | [Details](src/1f86db0f-e271-45df-8795-3e503ec76698) | [Code](src/1f86db0f-e271-45df-8795-3e503ec76698/code.php) | [Settings](src/1f86db0f-e271-45df-8795-3e503ec76698/settings.json) | Super__1f86db0f_e271_45df_8795_3e503ec76698__Power + - **final class Update** | [Details](src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3) | [Code](src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/code.php) | [Settings](src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/settings.json) | Super__e543c123_b1d9_4a0b_83b2_a9d371da5ff3__Power +- **Namespace**: [VDM\Joomla\Componentbuilder\Power\Generator](#vdm-joomla-componentbuilder-power-generator) - - **class Mysql** | [Details](src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9) | [Code](src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/code.php) | [Settings](src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/settings.json) | [2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9](src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9) + - **final class Bucket** | [Details](src/5d4278f0-7db2-498f-872a-c974bd8ce334) | [Code](src/5d4278f0-7db2-498f-872a-c974bd8ce334/code.php) | [Settings](src/5d4278f0-7db2-498f-872a-c974bd8ce334/settings.json) | Super__5d4278f0_7db2_498f_872a_c974bd8ce334__Power + - **final class ClassInjector** | [Details](src/c72692b0-0a0f-412a-b05b-80002cbf886a) | [Code](src/c72692b0-0a0f-412a-b05b-80002cbf886a/code.php) | [Settings](src/c72692b0-0a0f-412a-b05b-80002cbf886a/settings.json) | Super__c72692b0_0a0f_412a_b05b_80002cbf886a__Power + - **final class ClassInjectorBuilder** | [Details](src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7) | [Code](src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/code.php) | [Settings](src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/settings.json) | Super__9c2fdd98_ce4e_4b97_a2f8_ee6990bdcbf7__Power + - **final class Search** | [Details](src/50302fce-62b4-48ae-a692-9cc4595ce74c) | [Code](src/50302fce-62b4-48ae-a692-9cc4595ce74c/code.php) | [Settings](src/50302fce-62b4-48ae-a692-9cc4595ce74c/settings.json) | Super__50302fce_62b4_48ae_a692_9cc4595ce74c__Power + - **final class ServiceProvider** | [Details](src/369ae3f5-90db-43b9-aba9-ce5c83311c4e) | [Code](src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/code.php) | [Settings](src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/settings.json) | Super__369ae3f5_90db_43b9_aba9_ce5c83311c4e__Power + - **final class ServiceProviderBuilder** | [Details](src/8a2a3ee5-6ce2-4604-91e2-01f770228960) | [Code](src/8a2a3ee5-6ce2-4604-91e2-01f770228960/code.php) | [Settings](src/8a2a3ee5-6ce2-4604-91e2-01f770228960/settings.json) | Super__8a2a3ee5_6ce2_4604_91e2_01f770228960__Power +- **Namespace**: [VDM\Joomla\Componentbuilder\Power\Model](#vdm-joomla-componentbuilder-power-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 +- **Namespace**: [VDM\Joomla\Componentbuilder\Power\Service](#vdm-joomla-componentbuilder-power-service) + + - **class Database** | [Details](src/7243aaf6-b76c-4391-8698-50abbfc98fbe) | [Code](src/7243aaf6-b76c-4391-8698-50abbfc98fbe/code.php) | [Settings](src/7243aaf6-b76c-4391-8698-50abbfc98fbe/settings.json) | Super__7243aaf6_b76c_4391_8698_50abbfc98fbe__Power + - **class Generator** | [Details](src/a7101bbc-3c81-4b52-a4aa-522291f7594b) | [Code](src/a7101bbc-3c81-4b52-a4aa-522291f7594b/code.php) | [Settings](src/a7101bbc-3c81-4b52-a4aa-522291f7594b/settings.json) | Super__a7101bbc_3c81_4b52_a4aa_522291f7594b__Power + - **class Gitea** | [Details](src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae) | [Code](src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/code.php) | [Settings](src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/settings.json) | Super__510dc0f6_da3f_4a78_b43d_3a03e2cb5fae__Power + - **class Power** | [Details](src/02bc072b-1e89-46c1-9732-4da77b1a9ac9) | [Code](src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/code.php) | [Settings](src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/settings.json) | Super__02bc072b_1e89_46c1_9732_4da77b1a9ac9__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Customcode\Extractor](#vdm-joomla-componentbuilder-compiler-customcode-extractor) - - **class Paths** | [Details](src/053803e6-1251-4aed-aefe-46a8e84198d2) | [Code](src/053803e6-1251-4aed-aefe-46a8e84198d2/code.php) | [Settings](src/053803e6-1251-4aed-aefe-46a8e84198d2/settings.json) | [053803e6-1251-4aed-aefe-46a8e84198d2](src/053803e6-1251-4aed-aefe-46a8e84198d2) + - **class Paths** | [Details](src/053803e6-1251-4aed-aefe-46a8e84198d2) | [Code](src/053803e6-1251-4aed-aefe-46a8e84198d2/code.php) | [Settings](src/053803e6-1251-4aed-aefe-46a8e84198d2/settings.json) | Super__053803e6_1251_4aed_aefe_46a8e84198d2__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaThree](#vdm-joomla-componentbuilder-compiler-extension-joomlathree) - - **class InstallScript** | [Details](src/1d929017-a5de-4e0f-9b5a-838934857e26) | [Code](src/1d929017-a5de-4e0f-9b5a-838934857e26/code.php) | [Settings](src/1d929017-a5de-4e0f-9b5a-838934857e26/settings.json) | [1d929017-a5de-4e0f-9b5a-838934857e26](src/1d929017-a5de-4e0f-9b5a-838934857e26) + - **class InstallScript** | [Details](src/1d929017-a5de-4e0f-9b5a-838934857e26) | [Code](src/1d929017-a5de-4e0f-9b5a-838934857e26/code.php) | [Settings](src/1d929017-a5de-4e0f-9b5a-838934857e26/settings.json) | Super__1d929017_a5de_4e0f_9b5a_838934857e26__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree](#vdm-joomla-componentbuilder-compiler-field-joomlathree) - - **class CoreValidation** | [Details](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957) | [Code](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957/code.php) | [Settings](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957/settings.json) | [24da9672-e47f-4bb1-b6c0-0ebfc17f0957](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957) + - **class CoreValidation** | [Details](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957) | [Code](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957/code.php) | [Settings](src/24da9672-e47f-4bb1-b6c0-0ebfc17f0957/settings.json) | Super__24da9672_e47f_4bb1_b6c0_0ebfc17f0957__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Interfaces\Component](#vdm-joomla-componentbuilder-compiler-interfaces-component) - - **interface PlaceholderInterface** | [Details](src/97698747-c2ce-4e09-a470-acf6d8e86281) | [Code](src/97698747-c2ce-4e09-a470-acf6d8e86281/code.php) | [Settings](src/97698747-c2ce-4e09-a470-acf6d8e86281/settings.json) | [97698747-c2ce-4e09-a470-acf6d8e86281](src/97698747-c2ce-4e09-a470-acf6d8e86281) + - **interface PlaceholderInterface** | [Details](src/97698747-c2ce-4e09-a470-acf6d8e86281) | [Code](src/97698747-c2ce-4e09-a470-acf6d8e86281/code.php) | [Settings](src/97698747-c2ce-4e09-a470-acf6d8e86281/settings.json) | Super__97698747_c2ce_4e09_a470_acf6d8e86281__Power +- **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator](#vdm-joomla-componentbuilder-compiler-interfaces-creator) + + - **interface Fielddynamicinterface** | [Details](src/c902743e-8c6e-4a50-a4a3-8c955ef2960f) | [Code](src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/code.php) | [Settings](src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/settings.json) | Super__c902743e_8c6e_4a50_a4a3_8c955ef2960f__Power + - **interface Fieldsetinterface** | [Details](src/d44f3294-6b68-4d85-a617-15fb772b7d14) | [Code](src/d44f3294-6b68-4d85-a617-15fb772b7d14/code.php) | [Settings](src/d44f3294-6b68-4d85-a617-15fb772b7d14/settings.json) | Super__d44f3294_6b68_4d85_a617_15fb772b7d14__Power + - **interface Fieldtypeinterface** | [Details](src/2d27c436-4d8e-4692-8382-d9e97af2231c) | [Code](src/2d27c436-4d8e-4692-8382-d9e97af2231c/code.php) | [Settings](src/2d27c436-4d8e-4692-8382-d9e97af2231c/settings.json) | Super__2d27c436_4d8e_4692_8382_d9e97af2231c__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Interfaces\Customcode](#vdm-joomla-componentbuilder-compiler-interfaces-customcode) - - **interface DispenserInterface** | [Details](src/ef687e42-dc25-4423-9dd4-ec6e9743cfb0) | [Code](src/ef687e42-dc25-4423-9dd4-ec6e9743cfb0/code.php) | [Settings](src/ef687e42-dc25-4423-9dd4-ec6e9743cfb0/settings.json) | [ef687e42-dc25-4423-9dd4-ec6e9743cfb0](src/ef687e42-dc25-4423-9dd4-ec6e9743cfb0) - - **interface ExternalInterface** | [Details](src/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a) | [Code](src/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a/code.php) | [Settings](src/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a/settings.json) | [1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a](src/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a) - - **interface ExtractorInterface** | [Details](src/6da2afa5-6087-46dd-80a0-74c6434bcb18) | [Code](src/6da2afa5-6087-46dd-80a0-74c6434bcb18/code.php) | [Settings](src/6da2afa5-6087-46dd-80a0-74c6434bcb18/settings.json) | [6da2afa5-6087-46dd-80a0-74c6434bcb18](src/6da2afa5-6087-46dd-80a0-74c6434bcb18) - - **interface GuiInterface** | [Details](src/2cc8517d-1105-4697-9743-048b4b7c089c) | [Code](src/2cc8517d-1105-4697-9743-048b4b7c089c/code.php) | [Settings](src/2cc8517d-1105-4697-9743-048b4b7c089c/settings.json) | [2cc8517d-1105-4697-9743-048b4b7c089c](src/2cc8517d-1105-4697-9743-048b4b7c089c) - - **interface LockBaseInterface** | [Details](src/a3c515f5-4adf-4eb3-b637-0a1add550da6) | [Code](src/a3c515f5-4adf-4eb3-b637-0a1add550da6/code.php) | [Settings](src/a3c515f5-4adf-4eb3-b637-0a1add550da6/settings.json) | [a3c515f5-4adf-4eb3-b637-0a1add550da6](src/a3c515f5-4adf-4eb3-b637-0a1add550da6) + - **interface DispenserInterface** | [Details](src/ef687e42-dc25-4423-9dd4-ec6e9743cfb0) | [Code](src/ef687e42-dc25-4423-9dd4-ec6e9743cfb0/code.php) | [Settings](src/ef687e42-dc25-4423-9dd4-ec6e9743cfb0/settings.json) | Super__ef687e42_dc25_4423_9dd4_ec6e9743cfb0__Power + - **interface ExternalInterface** | [Details](src/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a) | [Code](src/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a/code.php) | [Settings](src/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a/settings.json) | Super__1fcb13a2_f3f0_4fa8_b8c6_ff9dc546777a__Power + - **interface ExtractorInterface** | [Details](src/6da2afa5-6087-46dd-80a0-74c6434bcb18) | [Code](src/6da2afa5-6087-46dd-80a0-74c6434bcb18/code.php) | [Settings](src/6da2afa5-6087-46dd-80a0-74c6434bcb18/settings.json) | Super__6da2afa5_6087_46dd_80a0_74c6434bcb18__Power + - **interface GuiInterface** | [Details](src/2cc8517d-1105-4697-9743-048b4b7c089c) | [Code](src/2cc8517d-1105-4697-9743-048b4b7c089c/code.php) | [Settings](src/2cc8517d-1105-4697-9743-048b4b7c089c/settings.json) | Super__2cc8517d_1105_4697_9743_048b4b7c089c__Power + - **interface LockBaseInterface** | [Details](src/a3c515f5-4adf-4eb3-b637-0a1add550da6) | [Code](src/a3c515f5-4adf-4eb3-b637-0a1add550da6/code.php) | [Settings](src/a3c515f5-4adf-4eb3-b637-0a1add550da6/settings.json) | Super__a3c515f5_4adf_4eb3_b637_0a1add550da6__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Interfaces\Extension](#vdm-joomla-componentbuilder-compiler-interfaces-extension) - - **interface InstallInterface** | [Details](src/1aefb8f5-486f-4f00-adf9-696340b3254e) | [Code](src/1aefb8f5-486f-4f00-adf9-696340b3254e/code.php) | [Settings](src/1aefb8f5-486f-4f00-adf9-696340b3254e/settings.json) | [1aefb8f5-486f-4f00-adf9-696340b3254e](src/1aefb8f5-486f-4f00-adf9-696340b3254e) + - **interface InstallInterface** | [Details](src/1aefb8f5-486f-4f00-adf9-696340b3254e) | [Code](src/1aefb8f5-486f-4f00-adf9-696340b3254e/code.php) | [Settings](src/1aefb8f5-486f-4f00-adf9-696340b3254e/settings.json) | Super__1aefb8f5_486f_4f00_adf9_696340b3254e__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field](#vdm-joomla-componentbuilder-compiler-interfaces-field) - - **interface CoreValidationInterface** | [Details](src/b9f05dc4-d23a-499a-a826-9749b81818ed) | [Code](src/b9f05dc4-d23a-499a-a826-9749b81818ed/code.php) | [Settings](src/b9f05dc4-d23a-499a-a826-9749b81818ed/settings.json) | [b9f05dc4-d23a-499a-a826-9749b81818ed](src/b9f05dc4-d23a-499a-a826-9749b81818ed) + - **interface CoreValidationInterface** | [Details](src/b9f05dc4-d23a-499a-a826-9749b81818ed) | [Code](src/b9f05dc4-d23a-499a-a826-9749b81818ed/code.php) | [Settings](src/b9f05dc4-d23a-499a-a826-9749b81818ed/settings.json) | Super__b9f05dc4_d23a_499a_a826_9749b81818ed__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Power\Repo](#vdm-joomla-componentbuilder-compiler-power-repo) - - **class Readme** | [Details](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5) | [Code](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.php) | [Settings](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/settings.json) | [efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5) + - **class Readme** | [Details](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5) | [Code](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.php) | [Settings](src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/settings.json) | Super__efb1d0f8_2d14_4d2c_8b5f_4fcdd9df45a5__Power - **Namespace**: [VDM\Joomla\Componentbuilder\Compiler\Power\Repos](#vdm-joomla-componentbuilder-compiler-power-repos) - - **class Readme** | [Details](src/0d08c583-04d5-454e-b756-48ca05e1651a) | [Code](src/0d08c583-04d5-454e-b756-48ca05e1651a/code.php) | [Settings](src/0d08c583-04d5-454e-b756-48ca05e1651a/settings.json) | [0d08c583-04d5-454e-b756-48ca05e1651a](src/0d08c583-04d5-454e-b756-48ca05e1651a) - -# Class Diagrams - -## VDM Joomla Componentbuilder Compiler -> namespace VDM\Joomla\Componentbuilder\Compiler -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler #Olive { - - - abstract Factory #Orange { - # static $container - # static $JoomlaVersion - + {static} _() : mixed - + {static} _J() : mixed - + {static} getContainer() : Container - # {static} createContainer() : Container - } - - class Component #Gold { - + __construct() - + __get() - } - - class Config #Gold { - # JoomlaRegistry $config - + __construct() - # getGiteatoken() : ?string - # getAddcontributors() : bool - # getAddajax() : bool - # getAddsiteajax() : bool - # getAddeximport() : bool - # getAddcheckin() : bool - # getComponentid() : int - # getComponentversion() : string - # getComponentcodename() : string - # getComponentcontext() : string - # getComponentcodenamelength() : int - # getJoomlaversion() : int - # getJoomlaversions() : array - # getJoomlaversionname() : string - # getSetjoomlafields() : bool - # getShowadvancedoptions() : bool - # getIndentationvalue() : string - # getAddbuilddate() : int - # getBuilddate() : string - # getBackup() : int - # getRepository() : int - # getDebuglinenr() : int - # getMinify() : int - # getRemovelinebreaks() : bool - # getTidy() : bool - # getSettidywarning() : bool - # getSettaghistory() : bool - # getLangtag() : string - # getLangprefix() : string - # getLangtarget() : string - # getLangstringtargets() : array - # getLangstringkeytargets() : array - # getFieldbuildertype() : int - # getDefaultfields() : array - # getTmppath() : string - # getCompilerpath() : string - # getJcbpowerspath() : string - # getLocalpowersrepositorypath() : string - # getApprovedpaths() : array - # getBompath() : string - # getCustomfolderpath() : string - # getAddassetstablefix() : int - # getAddassetstablenamefix() : bool - # getAccessworsecase() : int - # getMysqltablekeys() : array - # getAddplaceholders() : bool - # getAddpower() : bool - # getAddsuperpowers() : bool - # getAddownpowers() : bool - # getBuildtarget() : string - # getCryptiontypes() : array - # getBasicencryption() : bool - # getMediumencryption() : bool - # getWhmcsencryption() : bool - # getRemovesitefolder() : bool - # getRemovesiteeditfolder() : bool - # getUikit() : int - # getGooglechart() : bool - # getFootable() : bool - # getFootableversion() : int - } - - class Content #Gold { - # key() : string - # firstKey() : string - # secondKey() : string - } - - class Customcode #Gold { - + array $functionNameMemory - + $active - + $memory - # $data - # Config $config - # Placeholder $placeholder - # Extractor $extractor - # Power $power - # External $external - # $db - + __construct() - + update() : string - + set() : string - + get() : bool - # insert() : string - # buildPlaceholders() : void - # check() : Mixed - } - - class Field #Gold { - # Data $data - # Name $name - # TypeName $typeName - # UniqueName $uniqueName - + __construct() - + set() : void - } - - class Language #Gold { - # array $content - # Config $config - + __construct() - + key() : string - + exist() : bool - + get() : string - + getTarget() : array - + setTarget() : void - + set() : void - # fix() : string - } - - class Placeholder #Gold { - + array $active - # Config $config - + __construct() - + set() : void - + get() : mixed - + exist() : bool - + add() : void - + remove() : void - + set_() : void - + get_() : mixed - + exist_() : bool - + add_() : void - + remove_() : void - + set_h() : void - + get_h() : mixed - + exist_h() : bool - + add_h() : void - + remove_h() : void - + setType() : void - + clearType() : void - + update() : string - + update_() : string - + keys() : array - } - - class Power #Gold { - + array $active - + array $namespace - + array $composer - + array $superpowers - # string $fixUrl - # array $state - # array $retry - # Config $config - # Placeholder $placeholder - # Customcode $customcode - # Gui $gui - # Superpower $superpower - # \JDatabaseDriver $db - # CMSApplication $app - + __construct() - + load() : void - + get() : ?object - - set() : bool - - isPowerSet() : bool - - isGuidValid() : bool - - getPowerData() : ?object - - setNamespace() : bool - - setUseSelection() : void - - setLoadSelection() : void - - setComposer() : void - - setImplements() : void - - setExtend() : void - - setUseAs() : void - - getCleanNamespace() : string - - getUseNamespace() : string - - addToHeader() : void - - setLicensingTemplate() : void - - setHeader() : void - - setMainClassCode() : void - - setSuperPowers() : void - } - - class Registry #Gold { - # $indent - + varExport() : ?string - # convertIndent() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Interfaces -> namespace VDM\Joomla\Componentbuilder\Interfaces -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Interfaces #Olive { - - - interface Cryptinterface #Lavender { - + encrypt() : string - + decrypt() : string - } - - interface FactoryInterface #Lavender { - + {static} _() : Mixed - + {static} getContainer() : Container - } - - interface InsertInterface #Lavender { - + defaults() : void - + rows() : bool - + items() : bool - + row() : bool - + item() : bool - } - - interface LoadInterface #Lavender { - + rows() : ?array - + items() : ?array - + row() : ?array - + item() : ?object - + value() : mixed - } - - interface Mapperdoubleinterface #Lavender { - + isActive_() : bool - + set_() : void - + get_() : mixed - + exist_() : bool - + add_() : void - + remove_() : void - } - - interface Mappersingleinterface #Lavender { - + isActive() : bool - + set() : void - + get() : mixed - + exist() : bool - + add() : void - + remove() : void - } - - interface Serverinterface #Lavender { - + set() : self - + move() : bool - } - - interface Tableinterface #Lavender { - + get() : mixed - + title() : ?array - + titleName() : string - + tables() : array - + exist() : bool - + fields() : ?array - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Power -> namespace VDM\Joomla\Componentbuilder\Power -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Power #Olive { - - - class Grep << (F,LightGreen) >> #Green { - + string $path - + ?array $paths - # Contents $contents - # CMSApplication $app - + __construct() - + get() : ?object - - searchLocal() : ?object - - searchRemote() : ?object - - getLocal() : ?object - - getRemote() : ?object - - init() : void - - localIndex() : void - - remoteIndex() : void - - loadRemoteFile() : mixed - - getFunctionName() : ?string - } - - class Model << (F,LightGreen) >> #Green { - + value() : mixed - # validateBefore() : bool - # validateAfter() : bool - # getTable() : string - } - - class Super << (F,LightGreen) >> #Green { - # Grep $grep - # Insert $insert - # Update $update - + __construct() - + load() : bool - - insert() : bool - - update() : bool - - action() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Utilities -> namespace VDM\Joomla\Componentbuilder\Utilities -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Utilities #Olive { - - - class Constantpaths #Gold { - # array $paths - + get() : array|string|null - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Adminview -> namespace VDM\Joomla\Componentbuilder\Compiler\Adminview -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Adminview #LightGreen { - - - class Data #Gold { - # array $data - # Config $config - # Registry $registry - # EventInterface $event - # Placeholder $placeholder - # Dispenser $dispenser - # Customtabs $customtabs - # Tabs $tabs - # Fields $fields - # Historyadminview $history - # Permissions $permissions - # Conditions $conditions - # Relations $relations - # Linkedviews $linkedviews - # Javascriptadminview $javascript - # Cssadminview $css - # Phpadminview $php - # Custombuttons $custombuttons - # Customimportscripts $customimportscripts - # Ajaxadmin $ajax - # Customalias $customalias - # Sql $sql - # Mysqlsettings $mysqlsettings - # \JDatabaseDriver $db - + __construct() - + get() : ?object - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Alias -> namespace VDM\Joomla\Componentbuilder\Compiler\Alias -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Alias #LightGreen { - - - class Data #Gold { - # Config $config - # Registry $registry - # Customcode $customcode - # Gui $gui - # Loader $loader - # Libraries $libraries - # \JDatabaseDriver $db - + __construct() - + get() : ?array - # set() : void - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Component -> namespace VDM\Joomla\Componentbuilder\Compiler\Component -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Component #LightGreen { - - - class Dashboard #Gold { - # Registry $registry - # Component $component - # CMSApplication $app - + __construct() - + set() : void - } - - class Data #Gold { - # Config $config - # EventInterface $event - # Placeholder $placeholder - # ComponentPlaceholder $componentPlaceholder - # Dispenser $dispenser - # Customcode $customcode - # Gui $gui - # Field $field - # FieldName $fieldName - # UniqueName $uniqueName - # Filesfolders $filesFolders - # Historycomponent $history - # Whmcs $whmcs - # Sqltweaking $sqltweaking - # Adminviews $adminviews - # Siteviews $siteviews - # Customadminviews $customadminviews - # Updateserver $updateserver - # Joomlamodules $modules - # Joomlaplugins $plugins - # \JDatabaseDriver $db - + __construct() - + get() : ?object - } - - class Placeholder #Gold { - # $placeholders - # $config - # $db - + __construct() - + get() : array - } - - class Settings #Gold { - # array $standardFolders - # array $standardRootFiles - # ?object $data - # Config $config - # Registry $registry - # EventInterface $event - # Placeholder $placeholder - # Component $component - # Paths $paths - # Dynamicpath $dynamicpath - # Pathfix $pathfix - + __construct() - + exists() : bool - + structure() : object - + multiple() : object - + single() : object - + standardFolder() : bool - + standardRootFile() : bool - - isSet() : bool - - get() : ?object - - readJsonFile() : ?object - - isValidData() : bool - - loadExtraFolders() : void - - addImportViewFolder() : void - - addPhpSpreadsheetFolder() : void - - addUikitFolder() : void - - addFooTableFolder() : void - - loadExtraFiles() : void - - addGoogleChartFiles() : void - - addFolders() : void - - addFiles() : void - } - - class Structure #Gold { - # Settings $settings - # Paths $paths - # Folder $folder - + __construct() - + build() : bool - # folders() : void - } - - class Structuremultiple #Gold { - # Config $config - # Registry $registry - # Settings $settings - # Component $component - # Createdate $createdate - # Modifieddate $modifieddate - # Structure $structure - + __construct() - + build() : bool - # admin() : bool - # site() : bool - # custom() : bool - - isValidAdminView() : bool - - isValidView() : bool - - buildAdminView() : void - - buildView() : void - } - - class Structuresingle #Gold { - # string $newName - # string $currentFullPath - # string $packageFullPath - # string $zipFullPath - # Config $config - # Registry $registry - # Settings $settings - # Component $component - # Content $content - # Counter $counter - # Paths $paths - # Files $files - # CMSApplication $app - + __construct() - + build() : bool - - doLicenseCheck() : bool - - doReadmeCheck() : bool - - doChangelogCheck() : bool - - setNewName() : void - - setPaths() : void - - pathExist() : bool - - setTarget() : void - - moveFile() : void - - registerFile() : void - - setDynamicTarget() : void - - setDynamicFolders() : void - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Customcode -> namespace VDM\Joomla\Componentbuilder\Compiler\Customcode -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Customcode #LightGreen { - - - class Dispenser #Gold { - + array $hub - # Placeholder $placeholder - # Customcode $customcode - # Gui $gui - # Hash $hash - # LockBase $base64 - + __construct() - + set() : bool - + get() : mixed - # initHub() : void - # setHub() : void - } - - class External #Gold { - # array $code - # array $cutter - # Placeholder $placeholder - # \JDatabaseDriver $db - # User $user - # CMSApplication $app - + __construct() - + set() : string - # getCode() : void - # cut() : string - } - - class Extractor #Gold { - # array $existing - # array $new - # array $done - # array $counter - # array $fileTypes - # array $placeholders - # string $today - # Config $config - # Gui $gui - # Paths $paths - # Reverse $reverse - # Placeholder $componentPlaceholder - # Pathfix $pathfix - # User $user - # \JDatabaseDriver $db - # CMSApplication $app - + __construct() - + run() : void - # searchFileContent() : array - # insert() : void - # update() : void - # setStartReplace() : string - # addLineChecker() : bool|int - # getSystemID() : mixed - } - - class Gui #Gold { - # Config $config - # Reverse $reverse - # Parser $parser - # \JDatabaseDriver $db - # CMSApplication $app - + __construct() - + set() : string - + search() : void - # check() : bool - } - - class Hash #Gold { - # Placeholder $placeholder - + __construct() - + set() : string - } - - class LockBase #Gold { - # Placeholder $placeholder - + __construct() - + set() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Customview -> namespace VDM\Joomla\Componentbuilder\Compiler\Customview -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Customview #LightGreen { - - - class Data #Gold { - # array $data - # Config $config - # EventInterface $event - # Customcode $customcode - # Gui $gui - # Libraries $libraries - # Templatelayout $templateLayout - # Dynamicget $dynamic - # Loader $loader - # Javascriptcustomview $javascript - # Csscustomview $css - # Phpcustomview $php - # Custombuttons $custombuttons - # Ajaxcustomview $ajax - # \JDatabaseDriver $db - + __construct() - + get() : ?object - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Dynamicget -> namespace VDM\Joomla\Componentbuilder\Compiler\Dynamicget -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Dynamicget #LightGreen { - - - class Data #Gold { - # array $guiMapper - # Config $config - # Registry $registry - # EventInterface $event - # Customcode $customcode - # Dispenser $dispenser - # Gui $gui - # Dynamicget $dynamic - # \JDatabaseDriver $db - + __construct() - + get() : ?array - } - - class Selection #Gold { - # array $name - # Config $config - # Registry $registry - # \JDatabaseDriver $db - + __construct() - + get() : ?array - # name() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Field -> namespace VDM\Joomla\Componentbuilder\Compiler\Field -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Field #LightGreen { - - - class Customcode #Gold { - # array $views - # Dispenser $dispenser - + __construct() - + update() : void - } - - class Data #Gold { - # array $fields - # Config $config - # EventInterface $event - # HistoryInterface $history - # Placeholder $placeholder - # Customcode $customcode - # FieldCustomcode $fieldCustomcode - # Validation $validation - # \JDatabaseDriver $db - + __construct() - + get() : ?object - } - - class DatabaseName #Gold { - # Registry $registry - + __construct() - + get() : ?string - } - - class Name #Gold { - # Registry $registry - # array $unique - # Placeholder $placeholder - # UniqueName $uniqueName - + __construct() - + get() : string - } - - class TypeName #Gold { - + get() : string - } - - class UniqueName #Gold { - # Registry $registry - + __construct() - + set() : void - + get() : string - } - - class Validation #Gold { - # Registry $registry - # Gui $gui - # Placeholder $placeholder - # Customcode $customcode - # CoreValidationInterface $validation - + __construct() - + set() : void - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Interfaces -> namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces #LightGreen { - - - interface CustomcodeInterface #Lavender { - + update() : string - + set() : string - + get() : bool - } - - interface EventInterface #Lavender { - + trigger() : void - } - - interface GetScriptInterface #Lavender { - + get() : string - } - - interface HistoryInterface #Lavender { - + get() : ?object - } - - interface LanguageInterface #Lavender { - + key() : string - + exist() : bool - + get() : string - + getTarget() : array - + setTarget() : void - + set() : void - } - - interface PlaceholderInterface #Lavender { - + set() : void - + get() : mixed - + exist() : bool - + add() : void - + remove() : void - + set_() : void - + get_() : mixed - + exist_() : bool - + add_() : void - + remove_() : void - + set_h() : void - + get_h() : mixed - + exist_h() : bool - + add_h() : void - + remove_h() : void - + setType() : void - + clearType() : void - + update() : string - + update_() : string - + keys() : array - } - - interface PowerInterface #Lavender { - + load() : void - + get() : mixed - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler JoomlaThree -> namespace VDM\Joomla\Componentbuilder\Compiler\JoomlaThree -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\JoomlaThree #LightGreen { - - - class Event #Gold { - # $activePlugins - + __construct() - + trigger() : void - } - - class History #Gold { - # ?object $tmp - # Config $config - # \JDatabaseDriver $db - + __construct() - + get() : ?object - # set() : bool - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Joomlamodule -> namespace VDM\Joomla\Componentbuilder\Compiler\Joomlamodule -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Joomlamodule #LightGreen { - - - class Data #Gold { - # array $data - # Config $config - # Customcode $customcode - # Gui $gui - # Placeholder $placeholder - # Language $language - # Field $field - # FieldName $fieldName - # Filesfolders $filesFolders - # Libraries $libraries - # Dynamicget $dynamic - # \JDatabaseDriver $db - + __construct() - + get() : object|array|null - + exists() : bool - + set() : bool - } - - class Structure #Gold { - # Module $module - # Component $component - # Config $config - # Registry $registry - # Dispenser $dispenser - # EventInterface $event - # Counter $counter - # Folder $folder - # File $file - # Files $files - + __construct() - + build() : void - # getXML() : string - # getCustomScriptField() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Joomlaplugin -> namespace VDM\Joomla\Componentbuilder\Compiler\Joomlaplugin -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Joomlaplugin #LightGreen { - - - class Data #Gold { - # array $data - # Config $config - # Customcode $customcode - # Gui $gui - # Placeholder $placeholder - # Language $language - # Field $field - # FieldName $fieldName - # Filesfolders $filesFolders - # \JDatabaseDriver $db - + __construct() - + get() : object|array|null - + exists() : bool - + set() : bool - } - - class Structure #Gold { - # Plugin $plugin - # Component $component - # Config $config - # Registry $registry - # Dispenser $dispenser - # EventInterface $event - # Counter $counter - # Folder $folder - # File $file - # Files $files - + __construct() - + build() : void - # getXML() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Language -> namespace VDM\Joomla\Componentbuilder\Compiler\Language -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Language #LightGreen { - - - class Extractor #Gold { - + array $langKeys - + array $langMismatch - + array $langMatch - # Config $config - # Placeholder $placeholder - # Language $language - + __construct() - + engine() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Library -> namespace VDM\Joomla\Componentbuilder\Compiler\Library -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Library #LightGreen { - - - class Data #Gold { - # Config $config - # Registry $registry - # Customcode $customcode - # Gui $gui - # FieldData $field - # Filesfolders $filesFolders - # \JDatabaseDriver $db - + __construct() - + get() : object|bool - } - - class Structure #Gold { - # Config $config - # Registry $registry - # EventInterface $event - # Component $component - # Content $content - # Counter $counter - # Paths $paths - # Folder $folder - # File $file - + __construct() - + build() : void - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Model -> namespace VDM\Joomla\Componentbuilder\Compiler\Model -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Model #LightGreen { - - - class Adminviews #Gold { - # Adminview $admin - # Registry $registry - # Config $config - + __construct() - + set() : void - } - - class Ajaxadmin #Gold { - # array $guiMapper - # Config $config - # Registry $registry - # Dispenser $dispenser - + __construct() - + set() : void - } - - class Ajaxcustomview #Gold { - # array $guiMapper - # Config $config - # Dispenser $dispenser - + __construct() - + set() : void - } - - class Conditions #Gold { - # TypeName $typeName - # FieldName $fieldName - + __construct() - + set() : void - } - - class Createdate #Gold { - + get() : string - } - - class Cssadminview #Gold { - # array $areas - # Dispenser $dispenser - + __construct() - + set() : void - } - - class Csscustomview #Gold { - # array $areas - # Customcode $customcode - + __construct() - + set() : void - } - - class Customadminviews #Gold { - # Customview $customadmin - # Config $config - + __construct() - + set() : void - } - - class Customalias #Gold { - # Registry $registry - # FieldName $fieldName - + __construct() - + set() : void - } - - class Custombuttons #Gold { - # array $areas - # array $guiMapper - # Customcode $customcode - # Gui $gui - # Templatelayout $templateLayout - + __construct() - + set() : void - } - - class Customimportscripts #Gold { - # array $areas - # array $guiMapper - # Dispenser $dispenser - + __construct() - + set() : void - } - - class Customtabs #Gold { - # Config $config - # Registry $registry - # Language $language - # Placeholder $placeholder - # Customcode $customcode - + __construct() - + set() : void - } - - class Dynamicget #Gold { - # array $jointer - # array $operator - # array $guiMapper - # Config $config - # Registry $registry - # Customcode $customcode - # Gui $gui - # Placeholder $placeholder - # Selection $selection - + __construct() - + set() : void - } - - class Fields #Gold { - # Config $config - # Registry $registry - # HistoryInterface $history - # Customcode $customcode - # Field $field - # FieldName $fieldName - # UpdateSql $updateSql - # CMSApplication $app - + __construct() - + set() : void - } - - class Filesfolders #Gold { - # array $keys - + set() : void - } - - class Historyadminview #Gold { - # Config $config - # HistoryInterface $history - # Updatesql $updatesql - + __construct() - + set() : void - } - - class Historycomponent #Gold { - # Config $config - # HistoryInterface $history - # Updatesql $updatesql - + __construct() - + set() : void - - setAdminView() : void - - setComponent() : void - } - - class Javascriptadminview #Gold { - # array $scripter - # array $guiMapper - # Dispenser $dispenser - + __construct() - + set() : void - } - - class Javascriptcustomview #Gold { - # array $areas - # array $guiMapper - # Customcode $customcode - # Gui $gui - + __construct() - + set() : void - } - - class Joomlamodules #Gold { - # Module $module - + __construct() - + set() : void - } - - class Joomlaplugins #Gold { - # Plugin $plugin - + __construct() - + set() : void - } - - class Libraries #Gold { - # Config $config - # Registry $registry - # Library $library - + __construct() - + set() : void - } - - class Linkedviews #Gold { - # Registry $registry - + __construct() - + set() : void - } - - class Loader #Gold { - # Config $config - # Registry $registry - + __construct() - + set() : void - + uikit() : void - # getFootableScripts() : bool - # getGetModule() : bool - # getGoogleChart() : bool - } - - class Modifieddate #Gold { - # array $last - + get() : string - # getDate() : int - # getModified() : int - # getKey() : string - } - - class Mysqlsettings #Gold { - # Config $config - # Registry $registry - + __construct() - + set() : void - } - - class Permissions #Gold { - + set() : void - } - - class Phpadminview #Gold { - # array $areas - # array $guiMapper - # Dispenser $dispenser - # Templatelayout $templateLayout - + __construct() - + set() : void - } - - class Phpcustomview #Gold { - # array $areas - # array $guiMapper - # Customcode $customcode - # Gui $gui - # Loader $loader - # Templatelayout $templateLayout - + __construct() - + set() : void - } - - class Relations #Gold { - # Config $config - # Registry $registry - # Language $language - # Customcode $customcode - + __construct() - + set() : void - } - - class Siteviews #Gold { - # Customview $site - # Config $config - + __construct() - + set() : void - } - - class Sql #Gold { - # Dispenser $dispenser - # Sqldump $dump - + __construct() - + set() : void - } - - class Sqldump #Gold { - # Registry $registry - # \JDatabaseDriver $db - + __construct() - + get() : ?string - # escape() : string|array - } - - class Sqltweaking #Gold { - # Registry $registry - + __construct() - + set() : void - # tweak() : void - } - - class Tabs #Gold { - + set() : void - } - - class Updateserver #Gold { - + set() : void - # changelog() : void - } - - class Updatesql #Gold { - # array $name - # Registry $registry - + __construct() - + set() : void - # add() : void - # name() : string - } - - class Whmcs #Gold { - + set() : void - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Placeholder -> namespace VDM\Joomla\Componentbuilder\Compiler\Placeholder -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Placeholder #LightGreen { - - - class Reverse #Gold { - # Config $config - # Placeholder $placeholder - # Language $language - # Extractor $extractor - # Power $power - + __construct() - + engine() : string - # setReverse() : string - # reverseSuperPowers() : string - # getReversePower() : ?array - # reverseLanguage() : string - # reverseCustomCode() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Power -> namespace VDM\Joomla\Componentbuilder\Compiler\Power -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Power #LightGreen { - - - class Extractor << (F,LightGreen) >> #Green { - # array $powers - # \JDatabaseDriver $db - + __construct() - + get_() : ?array - + get() : ?array - + reverse() : ?array - + search() : void - # load() : void - # map() : ?array - # filter() : ?array - # namespaces() : ?array - } - - class Injector << (F,LightGreen) >> #Green { - # Power $power - # Extractor $extractor - # Parser $parser - # Placeholder $placeholder - # array $map - # array $useStatements - # array $traits - + __construct() - + power() : string - # update() : string - # inspect() : ?string - # getName() : ?string - # getUniqueName() : string - # removeLastSpace() : string - # addUseStatements() : string - # addLines() : string - # addLinesAfterDefinedLine() : string - } - - class Parser << (F,LightGreen) >> #Green { - + code() : array - + getClassCode() : ?string - + getClassLicense() : ?string - + getUseStatements() : ?array - + getTraits() : ?array - - properties() : ?array - - methods() : ?array - - extractDocBlock() : ?string - - extractFunctionArgumentDetails() : ?array - - extractReturnType() : ?string - - extractArgTypesFromComment() : ?array - - extractArgTypesArguments() : ?array - - extractReturnTypeFromComment() : ?string - - extractSinceVersion() : ?string - - extractDeprecatedVersion() : ?string - - removeWhiteSpaceFromComment() : string - - mergeArgumentTypes() : array - } - - class Autoloader #Gold { - # Power $power - # Config $config - # Content $content - # string $helper - + __construct() - + set() : void - - loadPluginAutoloader() : bool - - loadHelperAutoloader() : bool - - loadSiteAutoloader() : bool - - getPluginAutoloader() : string - - getHelperAutoloader() : string - - getBLockSiteLoading() : ?string - - getAutoloader() : ?string - - getComposer() : ?string - } - - class Infusion #Gold { - # Config $config - # Power $power - # Content $content - # Autoloader $autoloader - # Parser $parser - # RepoReadme $reporeadme - # ReposReadme $reposreadme - # Placeholder $placeholder - # Event $event - # array $linker - + __construct() - + set() : void - - parsePowers() : void - - setSuperPowers() : void - - setPowers() : void - - index() : string - - code() : string - - raw() : string - - linker() : string - } - - class Plantuml #Gold { - + namespaceDiagram() : string - + classBasicDiagram() : string - + classDetailedDiagram() : string - - generatePropertiesPlantUML() : string - - generateDetailedMethodsPlantUML() : array - - generateBasicMethodsPlantUML() : string - - generateMethodArgumentsAndNotes() : array - - generateMethodNotes() : array - - generateNotesPlantUML() : string - - getAccessSign() : string - - getClassTypeLable() : string - - getClassTypeTag() : string - - getClassColor() : string - - getNamespaceColor() : string - } - - class Structure #Gold { - # array $htaccess - # Power $power - # Config $config - # Registry $registry - # EventInterface $event - # Counter $counter - # Paths $paths - # Folder $folder - # File $file - # Files $files - # CMSApplication $app - + __construct() - + build() : void - - createFile() : void - - setHtaccess() : void - - setDynamicFolders() : void - - setSuperPowerDetails() : void - - setSuperPowerFiles() : void - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Service -> namespace VDM\Joomla\Componentbuilder\Compiler\Service -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Service #LightGreen { - - - class Adminview #Gold { - + register() : void - + getAdminviewData() : AdminviewData - } - - class Builder #Gold { - + register() : void - + getMysql() : Mysql - } - - class Compiler #Gold { - + register() : void - + getConfig() : Config - + getRegistry() : Registry - + getTable() : Table - } - - class Component #Gold { - + register() : void - + getComponent() : CompilerComponent - + getSettings() : Settings - + getDashboard() : Dashboard - + getPlaceholder() : Placeholder - + getData() : Data - + getStructure() : Structure - + getStructuresingle() : Structuresingle - + getStructuremultiple() : Structuremultiple - } - - class Customcode #Gold { - + register() : void - + getCustomcode() : CustomcodeInterface - + getExternal() : External - + getGui() : Gui - + getHash() : Hash - + getLockBase() : LockBase - + getDispenser() : Dispenser - + getPaths() : Paths - + getExtractor() : Extractor - } - - class Customview #Gold { - + register() : void - + getCustomviewData() : CustomviewData - + getDynamicgetData() : DynamicgetData - + getDynamicgetSelection() : DynamicgetSelection - } - - class Database #Gold { - + register() : void - + getLoad() : Load - + getInsert() : Insert - + getUpdate() : Update - } - - class Event #Gold { - # $currentVersion - + register() : void - + getEvent() : EventInterface - + getJ3Event() : J3Event - } - - class Extension #Gold { - # $targetVersion - + register() : void - + getJ3ExtensionInstallScript() : J3InstallScript - + getExtensionInstallScript() : GetScriptInterface - } - - class Field #Gold { - # $targetVersion - + register() : void - + getField() : CompilerField - + getData() : Data - + getValidation() : Validation - + getJ3CoreValidation() : J3CoreValidation - + getCoreValidation() : CoreValidationInterface - + getCustomcode() : Customcode - + getFieldName() : Name - + getFieldTypeName() : TypeName - + getFieldUniqueName() : UniqueName - + getFieldDatabaseName() : DatabaseName - } - - class History #Gold { - # $currentVersion - + register() : void - + getHistory() : HistoryInterface - + getJ3History() : J3History - } - - class Joomlamodule #Gold { - + register() : void - + getData() : Data - + getStructure() : Structure - } - - class Joomlaplugin #Gold { - + register() : void - + getData() : Data - + getStructure() : Structure - } - - class Language #Gold { - + register() : void - + getLanguage() : CompilerLanguage - + getLanguageExtractor() : Extractor - } - - class Library #Gold { - + register() : void - + getData() : Data - + getStructure() : Structure - } - - class Mapper #Gold { - + register() : void - + getContent() : Content - } - - class Model #Gold { - + register() : void - + getModelJoomlaplugins() : Joomlaplugins - + getModelJoomlamodules() : Joomlamodules - + getModelHistorycomponent() : Historycomponent - + getModelCustomadminviews() : Customadminviews - + getModelAjaxcustomview() : Ajaxcustomview - + getModelJavascriptcustomview() : Javascriptcustomview - + getModelCsscustomview() : Csscustomview - + getModelPhpcustomview() : Phpcustomview - + getModelDynamicget() : Dynamicget - + getModelLibraries() : Libraries - + getModelSiteviews() : Siteviews - + getModelPermissions() : Permissions - + getModelHistoryadminview() : Historyadminview - + getModelMysqlsettings() : Mysqlsettings - + getModelSql() : Sql - + getModelCustomalias() : Customalias - + getModelAjaxadmin() : Ajaxadmin - + getModelCustomimportscripts() : Customimportscripts - + getModelCustombuttons() : Custombuttons - + getModelLoader() : Loader - + getModelPhpadminview() : Phpadminview - + getModelCssadminview() : Cssadminview - + getModelJavascriptadminview() : Javascriptadminview - + getModelLinkedviews() : Linkedviews - + getModelRelations() : Relations - + getModelConditions() : Conditions - + getModelFields() : Fields - + getModelUpdatesql() : Updatesql - + getModelTabs() : Tabs - + getModelCustomtabs() : Customtabs - + getModelAdminviews() : Adminviews - + getModelSqltweaking() : Sqltweaking - + getModelSqldump() : Sqldump - + getModelWhmcs() : Whmcs - + getModifieddate() : Modifieddate - + getCreatedate() : Createdate - + getUpdateserver() : Updateserver - + getModelFilesfolders() : Filesfolders - + getServerLoad() : ServerLoad - } - - class Placeholder #Gold { - + register() : void - + getPlaceholder() : CompilerPlaceholder - + getPlaceholderReverse() : Reverse - } - - class Power #Gold { - + register() : void - + getPowers() : Powers - + getSuperpower() : Superpower - + getGrep() : Grep - + getAutoloader() : Autoloader - + getInfusion() : Infusion - + getStructure() : Structure - + getParser() : Parser - + getPlantuml() : Plantuml - + getRepoReadme() : RepoReadme - + getReposReadme() : ReposReadme - + getExtractor() : Extractor - + getInjector() : Injector - + getModel() : Model - + getInsert() : Insert - + getUpdate() : Update - } - - class Templatelayout #Gold { - + register() : void - + getTemplatelayoutData() : TemplatelayoutData - + getAliasData() : AliasData - } - - class Utilities #Gold { - + register() : void - + getFolder() : Folder - + getFile() : File - + getCounter() : Counter - + getPaths() : Paths - + getFiles() : Files - + getConstantpaths() : Constantpaths - + getDynamicpath() : Dynamicpath - + getPathfix() : Pathfix - + getStructure() : Structure - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Templatelayout -> namespace VDM\Joomla\Componentbuilder\Compiler\Templatelayout -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Templatelayout #LightGreen { - - - class Data #Gold { - # Config $config - # Registry $registry - # Aliasdata $alias - + __construct() - + set() : bool - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Utilities -> namespace VDM\Joomla\Componentbuilder\Compiler\Utilities -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Utilities #LightGreen { - - - abstract FieldHelper #Orange { - + {static} check() : bool - } - - abstract Indent #Orange { - + {static} _() : string - - {static} indent() : string - - {static} init() : void - } - - abstract Line #Orange { - - static $add - + {static} _() : string - - {static} add() : bool - - {static} init() : void - } - - abstract Placefix #Orange { - + {static} _() : string - + {static} b() : string - + {static} d() : string - + {static} _h() : string - + {static} h() : string - } - - abstract Unique #Orange { - + {static} get() : string - + {static} code() : string - } - - class Counter #Gold { - + int $folder - + int $file - + int $page - + int $line - + int $field - # int $seconds - # float $actualSeconds - # int $folderSeconds - # int $fileSeconds - # int $lineSeconds - # float $secondsDebugging - # float $secondsPlanning - # float $secondsMapping - # float $secondsOffice - # int $totalHours - # int $debuggingHours - # int $planningHours - # int $mappingHours - # int $officeHours - # int $actualTotalHours - # int $actualHoursSpent - # int $actualDaysSpent - # int $totalDays - # int $actualTotalDays - # float $projectWeekTime - # float $projectMonthTime - # float $start - # float $end - # float $timer - # Content $content - + __construct() - + start() : void - + end() : void - + set() : void - # calculate() : void - } - - class Dynamicpath #Gold { - # Placeholder $placeholder - # array $paths - + __construct() - + update() : string - } - - class File #Gold { - # Counter $counter - # Paths $paths - + __construct() - + html() : void - + write() : bool - } - - class Folder #Gold { - # Counter $counter - # File $file - + __construct() - + create() : void - + remove() : bool - } - - class Pathfix #Gold { - + set() : void - } - - class Paths #Gold { - # Config $config - # Component $component - + __construct() - + __get() : string - # key() : string - - setTemplatePath() : void - - setComponentSalesName() : void - - setComponentBackupName() : void - - setComponentFolderName() : void - - setComponentPath() : void - - setTemplatePathCustom() : void - } - - class Structure #Gold { - # Settings $settings - # Paths $paths - # Counter $counter - # File $file - # Files $files - # CMSApplication $app - + __construct() - + build() : bool - - getFileDetails() : ?array - - getPath() : ?string - - getNewName() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Power Database -> namespace VDM\Joomla\Componentbuilder\Power\Database -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Power\Database #LightGreen { - - - class Insert << (F,LightGreen) >> #Green { - # Model $model - # Database $database - + __construct() - + value() : bool - + row() : bool - + rows() : bool - + item() : bool - + items() : bool - } - - class Update << (F,LightGreen) >> #Green { - # Model $model - # Database $database - + __construct() - + value() : bool - + row() : bool - + rows() : bool - + item() : bool - + items() : bool - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Builder Update -> namespace VDM\Joomla\Componentbuilder\Compiler\Builder\Update -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Builder\Update #DeepSkyBlue { - - - class Mysql #Gold { - # key() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Customcode Extractor -> namespace VDM\Joomla\Componentbuilder\Compiler\Customcode\Extractor -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Customcode\Extractor #DeepSkyBlue { - - - class Paths #Gold { - + array $active - # array $componentPlaceholder - # Config $config - # Placeholder $placeholder - # Customcode $customcode - # Extractor $extractor - # \JDatabaseDriver $db - + __construct() - # load() : void - # getModuleIDs() : mixed - # getModulePath() : mixed - # getPluginIDs() : mixed - # getPluginPath() : mixed - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Extension JoomlaThree -> namespace VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaThree -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Extension\JoomlaThree #DeepSkyBlue { - - - class InstallScript #Gold { - # object $extension - # array $methods - # array $types - # array $construct - # array $install - # array $update - # array $uninstall - # bool $preflightActive - # bool $postflightActive - + get() : string - # build() : string - # head() : string - # construct() : string - # main() : string - # flight() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Field JoomlaThree -> namespace VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree #DeepSkyBlue { - - - class CoreValidation #Gold { - # ?array $rules - # string $path - + __construct() - + get() : array - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Interfaces Component -> namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces\Component -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces\Component #DeepSkyBlue { - - - interface PlaceholderInterface #Lavender { - + get() : array - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Interfaces Customcode -> namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces\Customcode -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces\Customcode #DeepSkyBlue { - - - interface DispenserInterface #Lavender { - + set() : bool - + get() : mixed - } - - interface ExternalInterface #Lavender { - + set() : string - } - - interface ExtractorInterface #Lavender { - + run() : void - } - - interface GuiInterface #Lavender { - + set() : string - + search() : void - } - - interface LockBaseInterface #Lavender { - + set() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Interfaces Extension -> namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces\Extension -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces\Extension #DeepSkyBlue { - - - interface InstallInterface #Lavender { - + getOfficialName() : string - + getClassName() : string - + getInstallerClassName() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Interfaces Field -> namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field #DeepSkyBlue { - - - interface CoreValidationInterface #Lavender { - + get() : array - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Power Repo -> namespace VDM\Joomla\Componentbuilder\Compiler\Power\Repo -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Power\Repo #DeepSkyBlue { - - - class Readme #Gold { - # Power $power - # Plantuml $plantuml - + __construct() - + get() : string - } -} - - -@enduml -``` - -## VDM Joomla Componentbuilder Compiler Power Repos -> namespace VDM\Joomla\Componentbuilder\Compiler\Power\Repos -```uml -@startuml - -namespace VDM\Joomla\Componentbuilder\Compiler\Power\Repos #DeepSkyBlue { - - - class Readme #Gold { - # Power $power - # Plantuml $plantuml - + __construct() - + get() : string - - readmeBuilder() : string - - readmeModel() : string - - generateIndex() : string - - generateDiagramBucket() : string - - defineTypeOrder() : array - - sortClasses() : void - - compareNamespace() : int - - compareType() : int - - compareName() : int - - generateNamespaceDiagram() : string - - indexLinkPower() : string - - linkPowerRepo() : string - - linkPowerCode() : string - - linkPowerSettings() : string - - linkPowerGuid() : string - } -} - - -@enduml -``` - + - **class Readme** | [Details](src/0d08c583-04d5-454e-b756-48ca05e1651a) | [Code](src/0d08c583-04d5-454e-b756-48ca05e1651a/code.php) | [Settings](src/0d08c583-04d5-454e-b756-48ca05e1651a/settings.json) | Super__0d08c583_04d5_454e_b756_48ca05e1651a__Power --- ``` diff --git a/src/007177eb-d39d-4093-8840-07a38811c502/README.md b/src/007177eb-d39d-4093-8840-07a38811c502/README.md new file mode 100644 index 0000000..0d86df5 --- /dev/null +++ b/src/007177eb-d39d-4093-8840-07a38811c502/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Category (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class Category << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/007177eb-d39d-4093-8840-07a38811c502/code.php b/src/007177eb-d39d-4093-8840-07a38811c502/code.php new file mode 100644 index 0000000..385f5fc --- /dev/null +++ b/src/007177eb-d39d-4093-8840-07a38811c502/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Category Builder Class + * + * @since 3.2.0 + */ +final class Category extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/007177eb-d39d-4093-8840-07a38811c502/code.power b/src/007177eb-d39d-4093-8840-07a38811c502/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/007177eb-d39d-4093-8840-07a38811c502/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/007177eb-d39d-4093-8840-07a38811c502/settings.json b/src/007177eb-d39d-4093-8840-07a38811c502/settings.json new file mode 100644 index 0000000..5d32673 --- /dev/null +++ b/src/007177eb-d39d-4093-8840-07a38811c502/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "007177eb-d39d-4093-8840-07a38811c502", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "Category", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.Category", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Category", + "description": "Category Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/02bc072b-1e89-46c1-9732-4da77b1a9ac9/README.md b/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/README.md new file mode 100644 index 0000000..86cab65 --- /dev/null +++ b/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/README.md @@ -0,0 +1,77 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# class Power (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Service** +```uml +@startuml +class Power #Gold { + + register(Container $container) : void + + getConfig(Container $container) : Config + + getTable(Container $container) : Table + + getGrep(Container $container) : Grep + + getSuperpower(Container $container) : Superpower + + getParser(Container $container) : Parser +} + +note right of Power::register + Registers the service provider with a DI container. + + since: 3.2.0 + return: void +end note + +note right of Power::getConfig + Get The Config Class. + + since: 3.2.0 + return: Config +end note + +note right of Power::getTable + Get The Table Class. + + since: 3.2.0 + return: Table +end note + +note right of Power::getGrep + Get The Grep Class. + + since: 3.2.0 + return: Grep +end note + +note right of Power::getSuperpower + Get The Super Class. + + since: 3.2.0 + return: Superpower +end note + +note right of Power::getParser + Get The Parser Class. + + since: 3.2.0 + return: Parser +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/code.php b/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/code.php new file mode 100644 index 0000000..f316dc4 --- /dev/null +++ b/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/code.php @@ -0,0 +1,130 @@ + + * @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\Power\Service; + + +use Joomla\DI\Container; +use Joomla\DI\ServiceProviderInterface; +use VDM\Joomla\Componentbuilder\Power\Config; +use VDM\Joomla\Componentbuilder\Table; +use VDM\Joomla\Componentbuilder\Power\Grep; +use VDM\Joomla\Componentbuilder\Power\Super as Superpower; +use VDM\Joomla\Componentbuilder\Compiler\Power\Parser; + + +/** + * Power Service Provider + * + * @since 3.2.0 + */ +class Power implements ServiceProviderInterface +{ + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(Config::class, 'Config') + ->share('Config', [$this, 'getConfig'], true); + + $container->alias(Table::class, 'Table') + ->share('Table', [$this, 'getTable'], true); + + $container->alias(Grep::class, 'Power.Grep') + ->share('Power.Grep', [$this, 'getGrep'], true); + + $container->alias(Superpower::class, 'Superpower') + ->share('Superpower', [$this, 'getSuperpower'], true); + + $container->alias(Parser::class, 'Power.Parser') + ->share('Power.Parser', [$this, 'getParser'], true); + } + + /** + * Get The Config Class. + * + * @param Container $container The DI container. + * + * @return Config + * @since 3.2.0 + */ + public function getConfig(Container $container): Config + { + return new Config(); + } + + /** + * Get The Table Class. + * + * @param Container $container The DI container. + * + * @return Table + * @since 3.2.0 + */ + public function getTable(Container $container): Table + { + return new Table(); + } + + /** + * Get The Grep Class. + * + * @param Container $container The DI container. + * + * @return Grep + * @since 3.2.0 + */ + public function getGrep(Container $container): Grep + { + return new Grep( + $container->get('Config')->local_powers_repository_path, + $container->get('Config')->approved_paths, + $container->get('Gitea.Repository.Contents') + ); + } + + /** + * Get The Super Class. + * + * @param Container $container The DI container. + * + * @return Superpower + * @since 3.2.0 + */ + public function getSuperpower(Container $container): Superpower + { + return new Superpower( + $container->get('Power.Grep'), + $container->get('Power.Insert'), + $container->get('Power.Update') + ); + } + + /** + * Get The Parser Class. + * + * @param Container $container The DI container. + * + * @return Parser + * @since 3.2.0 + */ + public function getParser(Container $container): Parser + { + return new Parser(); + } +} + diff --git a/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/code.power b/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/code.power new file mode 100644 index 0000000..c815fa9 --- /dev/null +++ b/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/code.power @@ -0,0 +1,98 @@ + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(Config::class, 'Config') + ->share('Config', [$this, 'getConfig'], true); + + $container->alias(Table::class, 'Table') + ->share('Table', [$this, 'getTable'], true); + + $container->alias(Grep::class, 'Power.Grep') + ->share('Power.Grep', [$this, 'getGrep'], true); + + $container->alias(Superpower::class, 'Superpower') + ->share('Superpower', [$this, 'getSuperpower'], true); + + $container->alias(Parser::class, 'Power.Parser') + ->share('Power.Parser', [$this, 'getParser'], true); + } + + /** + * Get The Config Class. + * + * @param Container $container The DI container. + * + * @return Config + * @since 3.2.0 + */ + public function getConfig(Container $container): Config + { + return new Config(); + } + + /** + * Get The Table Class. + * + * @param Container $container The DI container. + * + * @return Table + * @since 3.2.0 + */ + public function getTable(Container $container): Table + { + return new Table(); + } + + /** + * Get The Grep Class. + * + * @param Container $container The DI container. + * + * @return Grep + * @since 3.2.0 + */ + public function getGrep(Container $container): Grep + { + return new Grep( + $container->get('Config')->local_powers_repository_path, + $container->get('Config')->approved_paths, + $container->get('Gitea.Repository.Contents') + ); + } + + /** + * Get The Super Class. + * + * @param Container $container The DI container. + * + * @return Superpower + * @since 3.2.0 + */ + public function getSuperpower(Container $container): Superpower + { + return new Superpower( + $container->get('Power.Grep'), + $container->get('Power.Insert'), + $container->get('Power.Update') + ); + } + + /** + * Get The Parser Class. + * + * @param Container $container The DI container. + * + * @return Parser + * @since 3.2.0 + */ + public function getParser(Container $container): Parser + { + return new Parser(); + } \ No newline at end of file diff --git a/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/settings.json b/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/settings.json new file mode 100644 index 0000000..b04e526 --- /dev/null +++ b/src/02bc072b-1e89-46c1-9732-4da77b1a9ac9/settings.json @@ -0,0 +1,42 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "0", + "guid": "02bc072b-1e89-46c1-9732-4da77b1a9ac9", + "implements": [ + "-1" + ], + "load_selection": null, + "name": "Power", + "power_version": "1.0.0", + "system_name": "JCB.Power.Service.Power", + "type": "class", + "use_selection": { + "use_selection0": { + "use": "be4ccfae-65a9-401e-bdbe-637d8c226954", + "as": "default" + }, + "use_selection1": { + "use": "bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8", + "as": "default" + }, + "use_selection2": { + "use": "6784dd52-0909-451a-a872-9a942a023c68", + "as": "default" + }, + "use_selection3": { + "use": "3ab0eba9-f37b-4b37-aec1-2e78067f2aff", + "as": "Superpower" + }, + "use_selection4": { + "use": "95d0e03f-24fd-4412-bc2e-f0899fcc3205", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Service.Power", + "description": "Power Service Provider\r\n\r\n@since 3.2.0", + "implements_custom": "ServiceProviderInterface", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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\\DI\\Container;\r\nuse Joomla\\DI\\ServiceProviderInterface;", + "composer": "" +} \ No newline at end of file diff --git a/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/README.md b/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/README.md index 559e892..9654a5b 100644 --- a/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/README.md +++ b/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/README.md @@ -25,6 +25,8 @@ class Infusion #Gold { + set() : void - parsePowers() : void - setSuperPowers() : void + - mergePowers($powers, $old) : void + - sortPowers($powers) : void - setPowers() : void - index(array $powers) : string - code(object $power) : string @@ -70,6 +72,20 @@ note left of Infusion::setSuperPowers return: void end note +note right of Infusion::mergePowers + Merge the old missing powers found in local repository back into the index + + since: 3.2.0 + return: void +end note + +note left of Infusion::sortPowers + Sort Powers + + since: 3.2.0 + return: void +end note + note right of Infusion::setPowers Set the Powers code diff --git a/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/code.php b/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/code.php index c0dd35b..53b4643 100644 --- a/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/code.php +++ b/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/code.php @@ -113,7 +113,6 @@ class Infusion **/ protected array $linker = [ 'add_head' => 'add_head', - 'unchanged_composer' => 'composer', 'unchanged_description' => 'description', 'extends' => 'extends', 'unchanged_extends_custom' => 'extends_custom', @@ -232,9 +231,18 @@ class Infusion array(&$context, &$path, &$key, &$powers) ); + // we add and all missing powers + if (isset($this->power->old_superpowers[$path])) + { + $this->mergePowers($powers, $this->power->old_superpowers[$path]); + } + // POWERREADME $this->content->set_($key, 'POWERREADME', $this->reposreadme->get($powers)); + // sort all powers + $this->sortPowers($powers); + // POWERINDEX $this->content->set_($key, 'POWERINDEX', $this->index($powers)); @@ -247,6 +255,34 @@ class Infusion } } + /** + * Merge the old missing powers found in local repository back into the index + * + * @return void + * @since 3.2.0 + */ + private function mergePowers(array &$powers, array &$old) + { + foreach ($old as $guid => $values) + { + if (!isset($powers[$guid])) + { + $powers[$guid] = $values; + } + } + } + + /** + * Sort Powers + * + * @return void + * @since 3.2.0 + */ + private function sortPowers(array &$powers) + { + ksort($powers, SORT_STRING); + } + /** * Set the Powers code * diff --git a/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/code.power b/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/code.power index 93291f2..462a553 100644 --- a/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/code.power +++ b/src/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c/code.power @@ -78,7 +78,6 @@ **/ protected array $linker = [ 'add_head' => 'add_head', - 'unchanged_composer' => 'composer', 'unchanged_description' => 'description', 'extends' => 'extends', 'unchanged_extends_custom' => 'extends_custom', @@ -197,9 +196,18 @@ array(&$context, &$path, &$key, &$powers) ); + // we add and all missing powers + if (isset($this->power->old_superpowers[$path])) + { + $this->mergePowers($powers, $this->power->old_superpowers[$path]); + } + // POWERREADME $this->content->set_($key, 'POWERREADME', $this->reposreadme->get($powers)); + // sort all powers + $this->sortPowers($powers); + // POWERINDEX $this->content->set_($key, 'POWERINDEX', $this->index($powers)); @@ -212,6 +220,34 @@ } } + /** + * Merge the old missing powers found in local repository back into the index + * + * @return void + * @since 3.2.0 + */ + private function mergePowers(array &$powers, array &$old) + { + foreach ($old as $guid => $values) + { + if (!isset($powers[$guid])) + { + $powers[$guid] = $values; + } + } + } + + /** + * Sort Powers + * + * @return void + * @since 3.2.0 + */ + private function sortPowers(array &$powers) + { + ksort($powers, SORT_STRING); + } + /** * Set the Powers code * diff --git a/src/05448890-e324-41a0-b6db-d804bfc241cc/README.md b/src/05448890-e324-41a0-b6db-d804bfc241cc/README.md new file mode 100644 index 0000000..7dd13c3 --- /dev/null +++ b/src/05448890-e324-41a0-b6db-d804bfc241cc/README.md @@ -0,0 +1,74 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FieldsetString (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class FieldsetString << (F,LightGreen) >> #RoyalBlue { + # Config $config + # Placeholder $placeholder + # Language $language + # Event $event + # Permission $permission + # FieldDynamic $fielddynamic + # FieldNames $fieldnames + # AccessSwitch $accessswitch + # MetaData $metadata + # Layout $layout + # Counter $counter + + __construct(Config $config, Placeholder $placeholder, ...) + + get(array $view, string $component, ...) : string +} + +note right of FieldsetString::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + Placeholder $placeholder + Language $language + Event $event + Permission $permission + FieldDynamic $fielddynamic + FieldNames $fieldnames + AccessSwitch $accessswitch + MetaData $metadata + Layout $layout + Counter $counter +end note + +note right of FieldsetString::get + Get a fieldset + + since: 3.2.0 + return: string + + arguments: + array $view + string $component + string $nameSingleCode + string $nameListCode +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/05448890-e324-41a0-b6db-d804bfc241cc/code.php b/src/05448890-e324-41a0-b6db-d804bfc241cc/code.php new file mode 100644 index 0000000..270627e --- /dev/null +++ b/src/05448890-e324-41a0-b6db-d804bfc241cc/code.php @@ -0,0 +1,616 @@ + + * @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\Compiler\Creator; + + +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Placeholder; +use VDM\Joomla\Componentbuilder\Compiler\Language\Fieldset as Language; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\EventInterface as Event; +use VDM\Joomla\Componentbuilder\Compiler\Adminview\Permission; +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldDynamic; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldNames; +use VDM\Joomla\Componentbuilder\Compiler\Builder\AccessSwitch; +use VDM\Joomla\Componentbuilder\Compiler\Builder\MetaData; +use VDM\Joomla\Componentbuilder\Compiler\Creator\Layout; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Counter; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator\Fieldsetinterface; + + +/** + * Fieldset String Creator Class + * + * @since 3.2.0 + */ +final class FieldsetString implements Fieldsetinterface +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Fieldset Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The EventInterface Class. + * + * @var Event + * @since 3.2.0 + */ + protected Event $event; + + /** + * The Permission Class. + * + * @var Permission + * @since 3.2.0 + */ + protected Permission $permission; + + /** + * The FieldDynamic Class. + * + * @var FieldDynamic + * @since 3.2.0 + */ + protected FieldDynamic $fielddynamic; + + /** + * The FieldNames Class. + * + * @var FieldNames + * @since 3.2.0 + */ + protected FieldNames $fieldnames; + + /** + * The AccessSwitch Class. + * + * @var AccessSwitch + * @since 3.2.0 + */ + protected AccessSwitch $accessswitch; + + /** + * The MetaData Class. + * + * @var MetaData + * @since 3.2.0 + */ + protected MetaData $metadata; + + /** + * The Layout Class. + * + * @var Layout + * @since 3.2.0 + */ + protected Layout $layout; + + /** + * The Counter Class. + * + * @var Counter + * @since 3.2.0 + */ + protected Counter $counter; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Language $language The Fieldset Class. + * @param Event $event The EventInterface Class. + * @param Permission $permission The Permission Class. + * @param FieldDynamic $fielddynamic The FieldDynamic Class. + * @param FieldNames $fieldnames The FieldNames Class. + * @param AccessSwitch $accessswitch The AccessSwitch Class. + * @param MetaData $metadata The MetaData Class. + * @param Layout $layout The Layout Class. + * @param Counter $counter The Counter Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Placeholder $placeholder, + Language $language, Event $event, Permission $permission, + FieldDynamic $fielddynamic, FieldNames $fieldnames, + AccessSwitch $accessswitch, MetaData $metadata, + Layout $layout, Counter $counter) + { + $this->config = $config; + $this->placeholder = $placeholder; + $this->language = $language; + $this->event = $event; + $this->permission = $permission; + $this->fielddynamic = $fielddynamic; + $this->fieldnames = $fieldnames; + $this->accessswitch = $accessswitch; + $this->metadata = $metadata; + $this->layout = $layout; + $this->counter = $counter; + } + + /** + * Get a fieldset + * + * @param array $view The view data + * @param string $component The component name + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * + * @return string The fields set as a string or empty string if no field found. + * @since 3.2.0 + */ + public function get(array $view, string $component, string $nameSingleCode, + string $nameListCode): string + { + // setup the fieldset language values of this view + if (!isset($view['settings']->fields) + || !ArrayHelper::check($view['settings']->fields)) + { + return ''; + } + + // add metadata to the view + $metadata = false; + if (isset($view['metadata']) && $view['metadata']) + { + $metadata = true; + } + + // add access to the view + $access = false; + if (isset($view['access']) && $view['access']) + { + $access = true; + } + + // main lang prefix + $lang_view = $this->config->lang_prefix . '_' + . $this->placeholder->get('VIEW'); + $lang_views = $this->config->lang_prefix . '_' + . $this->placeholder->get('VIEWS'); + + $name_single = $view['settings']->name_single ?? 'Error'; + $name_list = $view['settings']->name_list ?? 'Error'; + $lang_target = $this->config->lang_target ?? 'both'; + + // load the language values + $this->language->set( + $access, + $metadata, + $lang_target, + $lang_view, + $lang_views, + $name_single, + $name_list, + $nameSingleCode, + $nameListCode + ); + + // set the read only + $read_only = false; + if ($view['settings']->type == 2) + { + $read_only = Indent::_(3) . 'readonly="true"' . PHP_EOL . Indent::_( + 3 + ) . 'disabled="true"'; + } + // start adding dynamic fields + $dynamic_fields = ''; + // set the custom table key + $dbkey = 'g'; + // for plugin event TODO change event api signatures + $placeholders = $this->placeholder->active; + $component_context = $this->config->component_context; + // Trigger Event: jcb_ce_onBeforeBuildFields + $this->event->trigger( + 'jcb_ce_onBeforeBuildFields', + array(&$component_context, &$dynamic_fields, &$read_only, + &$dbkey, &$view, &$component, &$nameSingleCode, + &$nameListCode, &$placeholders, &$lang_view, + &$lang_views) + ); + unset($placeholders); + // TODO we should add the global and local view switch if field for front end + foreach ($view['settings']->fields as $field) + { + $dynamic_fields .= $this->fielddynamic->get( + $field, $view, $view['settings']->type, $lang_view, + $nameSingleCode, $nameListCode, $this->placeholder->active, $dbkey, + true + ); + } + // for plugin event TODO change event api signatures + $placeholders = $this->placeholder->active; + // Trigger Event: jcb_ce_onAfterBuildFields + $this->event->trigger( + 'jcb_ce_onAfterBuildFields', + array(&$component_context, &$dynamic_fields, &$read_only, + &$dbkey, &$view, &$component, &$nameSingleCode, + &$nameListCode, &$placeholders, &$lang_view, + &$lang_views) + ); + unset($placeholders); + // set the default fields + $field_set = array(); + $field_set[] = '
'; + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // if id is not set + if (!$this->fieldnames->isString($nameSingleCode . '.id')) + { + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // if created is not set + if (!$this->fieldnames->isString($nameSingleCode . '.created')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // if created_by is not set + if (!$this->fieldnames->isString($nameSingleCode . '.created_by')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // if published is not set + if (!$this->fieldnames->isString($nameSingleCode . '.published')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . "'; + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // if modified is not set + if (!$this->fieldnames->isString($nameSingleCode . '.modified')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) + . ''; + // count the static field created + $this->counter->field++; + } + // if modified_by is not set + if (!$this->fieldnames->isString($nameSingleCode . '.modified_by')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) + . '"; + // count the static field created + $this->counter->field++; + } + // check if view has access + if ($this->accessswitch->exists($nameSingleCode) + && !$this->fieldnames->isString($nameSingleCode . '.access')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . '"; + // count the static field created + $this->counter->field++; + } + // if ordering is not set + if (!$this->fieldnames->isString($nameSingleCode . '.ordering')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // if version is not set + if (!$this->fieldnames->isString($nameSingleCode . '.version')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // check if metadata is added to this view + if ($this->metadata->isString($nameSingleCode)) + { + // metakey + if (!$this->fieldnames->isString($nameSingleCode . '.metakey')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // metadesc + if (!$this->fieldnames->isString($nameSingleCode . '.metadesc')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + } + // fix the permissions field "title" issue gh-629 + // check if the title is not already set + if (!$this->fieldnames->isString($nameSingleCode . '.title') + && $this->permission->check($view, $nameSingleCode)) + { + // set the field/tab name + $field_name = "title"; + $tab_name = "publishing"; + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // at this point we know that we must add a hidden title field + // and make sure it does not get stored to the database + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + // setup needed field values for layout + $field_array = array(); + $field_array['order_edit'] = 0; + $field_array['tab'] = 15; + $field_array['alignment'] = 1; + // make sure it gets added to view + $this->layout->set( + $nameSingleCode, $tab_name, $field_name, $field_array + ); + } + // load the dynamic fields now + if (StringHelper::check($dynamic_fields)) + { + $field_set[] = Indent::_(2) . "" . $dynamic_fields; + } + // close fieldset + $field_set[] = Indent::_(1) . "
"; + // check if metadata is added to this view + if ($this->metadata->isString($nameSingleCode)) + { + if (!$this->fieldnames->isString($nameSingleCode . '.robots') + || !$this->fieldnames->isString($nameSingleCode . '.rights') + || !$this->fieldnames->isString($nameSingleCode . '.author')) + { + $field_set[] = PHP_EOL . Indent::_(1) . ""; + $field_set[] = Indent::_(1) . "'; + $field_set[] = Indent::_(2) . '
'; + // robots + if (!$this->fieldnames->isString($nameSingleCode . '.robots')) + { + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) . ''; + $field_set[] = Indent::_(4) + . ''; + $field_set[] = Indent::_(4) + . ''; + $field_set[] = Indent::_(4) + . ''; + $field_set[] = Indent::_(4) + . ''; + $field_set[] = Indent::_(4) + . ''; + $field_set[] = Indent::_(3) . ''; + // count the static field created + $this->counter->field++; + } + // author + if (!$this->fieldnames->isString($nameSingleCode . '.author')) + { + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) . '"; + // count the static field created + $this->counter->field++; + } + // rights + if (!$this->fieldnames->isString($nameSingleCode . '.rights')) + { + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) + . '"; + // count the static field created + $this->counter->field++; + } + $field_set[] = Indent::_(2) . "
"; + $field_set[] = Indent::_(1) . ""; + } + } + + // return the set + return implode(PHP_EOL, $field_set); + } +} + diff --git a/src/05448890-e324-41a0-b6db-d804bfc241cc/code.power b/src/05448890-e324-41a0-b6db-d804bfc241cc/code.power new file mode 100644 index 0000000..fc47f64 --- /dev/null +++ b/src/05448890-e324-41a0-b6db-d804bfc241cc/code.power @@ -0,0 +1,575 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Fieldset Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The EventInterface Class. + * + * @var Event + * @since 3.2.0 + */ + protected Event $event; + + /** + * The Permission Class. + * + * @var Permission + * @since 3.2.0 + */ + protected Permission $permission; + + /** + * The FieldDynamic Class. + * + * @var FieldDynamic + * @since 3.2.0 + */ + protected FieldDynamic $fielddynamic; + + /** + * The FieldNames Class. + * + * @var FieldNames + * @since 3.2.0 + */ + protected FieldNames $fieldnames; + + /** + * The AccessSwitch Class. + * + * @var AccessSwitch + * @since 3.2.0 + */ + protected AccessSwitch $accessswitch; + + /** + * The MetaData Class. + * + * @var MetaData + * @since 3.2.0 + */ + protected MetaData $metadata; + + /** + * The Layout Class. + * + * @var Layout + * @since 3.2.0 + */ + protected Layout $layout; + + /** + * The Counter Class. + * + * @var Counter + * @since 3.2.0 + */ + protected Counter $counter; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Language $language The Fieldset Class. + * @param Event $event The EventInterface Class. + * @param Permission $permission The Permission Class. + * @param FieldDynamic $fielddynamic The FieldDynamic Class. + * @param FieldNames $fieldnames The FieldNames Class. + * @param AccessSwitch $accessswitch The AccessSwitch Class. + * @param MetaData $metadata The MetaData Class. + * @param Layout $layout The Layout Class. + * @param Counter $counter The Counter Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Placeholder $placeholder, + Language $language, Event $event, Permission $permission, + FieldDynamic $fielddynamic, FieldNames $fieldnames, + AccessSwitch $accessswitch, MetaData $metadata, + Layout $layout, Counter $counter) + { + $this->config = $config; + $this->placeholder = $placeholder; + $this->language = $language; + $this->event = $event; + $this->permission = $permission; + $this->fielddynamic = $fielddynamic; + $this->fieldnames = $fieldnames; + $this->accessswitch = $accessswitch; + $this->metadata = $metadata; + $this->layout = $layout; + $this->counter = $counter; + } + + /** + * Get a fieldset + * + * @param array $view The view data + * @param string $component The component name + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * + * @return string The fields set as a string or empty string if no field found. + * @since 3.2.0 + */ + public function get(array $view, string $component, string $nameSingleCode, + string $nameListCode): string + { + // setup the fieldset language values of this view + if (!isset($view['settings']->fields) + || !ArrayHelper::check($view['settings']->fields)) + { + return ''; + } + + // add metadata to the view + $metadata = false; + if (isset($view['metadata']) && $view['metadata']) + { + $metadata = true; + } + + // add access to the view + $access = false; + if (isset($view['access']) && $view['access']) + { + $access = true; + } + + // main lang prefix + $lang_view = $this->config->lang_prefix . '_' + . $this->placeholder->get('VIEW'); + $lang_views = $this->config->lang_prefix . '_' + . $this->placeholder->get('VIEWS'); + + $name_single = $view['settings']->name_single ?? 'Error'; + $name_list = $view['settings']->name_list ?? 'Error'; + $lang_target = $this->config->lang_target ?? 'both'; + + // load the language values + $this->language->set( + $access, + $metadata, + $lang_target, + $lang_view, + $lang_views, + $name_single, + $name_list, + $nameSingleCode, + $nameListCode + ); + + // set the read only + $read_only = false; + if ($view['settings']->type == 2) + { + $read_only = Indent::_(3) . 'readonly="true"' . PHP_EOL . Indent::_( + 3 + ) . 'disabled="true"'; + } + // start adding dynamic fields + $dynamic_fields = ''; + // set the custom table key + $dbkey = 'g'; + // for plugin event TODO change event api signatures + $placeholders = $this->placeholder->active; + $component_context = $this->config->component_context; + // Trigger Event: jcb_ce_onBeforeBuildFields + $this->event->trigger( + 'jcb_ce_onBeforeBuildFields', + array(&$component_context, &$dynamic_fields, &$read_only, + &$dbkey, &$view, &$component, &$nameSingleCode, + &$nameListCode, &$placeholders, &$lang_view, + &$lang_views) + ); + unset($placeholders); + // TODO we should add the global and local view switch if field for front end + foreach ($view['settings']->fields as $field) + { + $dynamic_fields .= $this->fielddynamic->get( + $field, $view, $view['settings']->type, $lang_view, + $nameSingleCode, $nameListCode, $this->placeholder->active, $dbkey, + true + ); + } + // for plugin event TODO change event api signatures + $placeholders = $this->placeholder->active; + // Trigger Event: jcb_ce_onAfterBuildFields + $this->event->trigger( + 'jcb_ce_onAfterBuildFields', + array(&$component_context, &$dynamic_fields, &$read_only, + &$dbkey, &$view, &$component, &$nameSingleCode, + &$nameListCode, &$placeholders, &$lang_view, + &$lang_views) + ); + unset($placeholders); + // set the default fields + $field_set = array(); + $field_set[] = '
'; + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // if id is not set + if (!$this->fieldnames->isString($nameSingleCode . '.id')) + { + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // if created is not set + if (!$this->fieldnames->isString($nameSingleCode . '.created')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // if created_by is not set + if (!$this->fieldnames->isString($nameSingleCode . '.created_by')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // if published is not set + if (!$this->fieldnames->isString($nameSingleCode . '.published')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . "'; + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // if modified is not set + if (!$this->fieldnames->isString($nameSingleCode . '.modified')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) + . ''; + // count the static field created + $this->counter->field++; + } + // if modified_by is not set + if (!$this->fieldnames->isString($nameSingleCode . '.modified_by')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) + . '"; + // count the static field created + $this->counter->field++; + } + // check if view has access + if ($this->accessswitch->exists($nameSingleCode) + && !$this->fieldnames->isString($nameSingleCode . '.access')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . '"; + // count the static field created + $this->counter->field++; + } + // if ordering is not set + if (!$this->fieldnames->isString($nameSingleCode . '.ordering')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // if version is not set + if (!$this->fieldnames->isString($nameSingleCode . '.version')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // check if metadata is added to this view + if ($this->metadata->isString($nameSingleCode)) + { + // metakey + if (!$this->fieldnames->isString($nameSingleCode . '.metakey')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + // metadesc + if (!$this->fieldnames->isString($nameSingleCode . '.metadesc')) + { + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + } + } + // fix the permissions field "title" issue gh-629 + // check if the title is not already set + if (!$this->fieldnames->isString($nameSingleCode . '.title') + && $this->permission->check($view, $nameSingleCode)) + { + // set the field/tab name + $field_name = "title"; + $tab_name = "publishing"; + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + $field_set[] = Indent::_(2) . ""; + // at this point we know that we must add a hidden title field + // and make sure it does not get stored to the database + $field_set[] = Indent::_(2) . ""; + // count the static field created + $this->counter->field++; + // setup needed field values for layout + $field_array = array(); + $field_array['order_edit'] = 0; + $field_array['tab'] = 15; + $field_array['alignment'] = 1; + // make sure it gets added to view + $this->layout->set( + $nameSingleCode, $tab_name, $field_name, $field_array + ); + } + // load the dynamic fields now + if (StringHelper::check($dynamic_fields)) + { + $field_set[] = Indent::_(2) . "" . $dynamic_fields; + } + // close fieldset + $field_set[] = Indent::_(1) . "
"; + // check if metadata is added to this view + if ($this->metadata->isString($nameSingleCode)) + { + if (!$this->fieldnames->isString($nameSingleCode . '.robots') + || !$this->fieldnames->isString($nameSingleCode . '.rights') + || !$this->fieldnames->isString($nameSingleCode . '.author')) + { + $field_set[] = PHP_EOL . Indent::_(1) . ""; + $field_set[] = Indent::_(1) . "'; + $field_set[] = Indent::_(2) . '
'; + // robots + if (!$this->fieldnames->isString($nameSingleCode . '.robots')) + { + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) . ''; + $field_set[] = Indent::_(4) + . ''; + $field_set[] = Indent::_(4) + . ''; + $field_set[] = Indent::_(4) + . ''; + $field_set[] = Indent::_(4) + . ''; + $field_set[] = Indent::_(4) + . ''; + $field_set[] = Indent::_(3) . ''; + // count the static field created + $this->counter->field++; + } + // author + if (!$this->fieldnames->isString($nameSingleCode . '.author')) + { + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) . '"; + // count the static field created + $this->counter->field++; + } + // rights + if (!$this->fieldnames->isString($nameSingleCode . '.rights')) + { + $field_set[] = Indent::_(3) . ""; + $field_set[] = Indent::_(3) + . '"; + // count the static field created + $this->counter->field++; + } + $field_set[] = Indent::_(2) . "
"; + $field_set[] = Indent::_(1) . ""; + } + } + + // return the set + return implode(PHP_EOL, $field_set); + } \ No newline at end of file diff --git a/src/05448890-e324-41a0-b6db-d804bfc241cc/settings.json b/src/05448890-e324-41a0-b6db-d804bfc241cc/settings.json new file mode 100644 index 0000000..8c5a9ef --- /dev/null +++ b/src/05448890-e324-41a0-b6db-d804bfc241cc/settings.json @@ -0,0 +1,81 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "05448890-e324-41a0-b6db-d804bfc241cc", + "implements": [ + "d44f3294-6b68-4d85-a617-15fb772b7d14" + ], + "load_selection": null, + "name": "FieldsetString", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.FieldsetString", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", + "as": "default" + }, + "use_selection2": { + "use": "4ad7020e-39ab-49ba-977b-de6084944502", + "as": "Language" + }, + "use_selection3": { + "use": "20ed72b0-fcac-4344-aee1-8a65e3bf221d", + "as": "Event" + }, + "use_selection4": { + "use": "a85451d3-a5c5-446a-90ae-0cf715a16d94", + "as": "default" + }, + "use_selection5": { + "use": "4801f8b0-4a4a-4eda-8f0e-cf77f042c35e", + "as": "default" + }, + "use_selection6": { + "use": "961a2a2e-9f95-4b5f-b1c0-62ee783f9c66", + "as": "default" + }, + "use_selection7": { + "use": "e38a5276-6664-4bc6-8002-0562fcc248f8", + "as": "default" + }, + "use_selection8": { + "use": "f052eeef-5112-4efe-98c8-8c7db69dc2d1", + "as": "default" + }, + "use_selection9": { + "use": "a0f032db-2242-41df-8e4a-5e9e6f88201d", + "as": "default" + }, + "use_selection10": { + "use": "e6d871a6-bbe7-497d-af01-68f6bb9a87f4", + "as": "default" + }, + "use_selection11": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + }, + "use_selection12": { + "use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222", + "as": "default" + }, + "use_selection13": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection14": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.FieldsetString", + "description": "Fieldset String Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/README.md b/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/README.md index be459ba..1af2f2c 100644 --- a/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/README.md +++ b/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/README.md @@ -194,7 +194,7 @@ note left of Model::getModelCustombuttons end note note right of Model::getModelLoader - Get the Model Auto Loader + Get The Model Loader Class. since: 3.2.0 return: Loader diff --git a/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/code.php b/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/code.php index c7fd1d3..fe9caea 100644 --- a/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/code.php +++ b/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/code.php @@ -330,7 +330,8 @@ class Model implements ServiceProviderInterface { return new Dynamicget( $container->get('Config'), - $container->get('Registry'), + $container->get('Compiler.Builder.Site.Dynamic.Get'), + $container->get('Compiler.Builder.Site.Main.Get'), $container->get('Customcode'), $container->get('Customcode.Gui'), $container->get('Placeholder'), @@ -350,7 +351,7 @@ class Model implements ServiceProviderInterface { return new Libraries( $container->get('Config'), - $container->get('Registry'), + $container->get('Compiler.Builder.Library.Manager'), $container->get('Library.Data') ); } @@ -413,9 +414,10 @@ class Model implements ServiceProviderInterface { return new Mysqlsettings( $container->get('Config'), - $container->get('Registry') + $container->get('Compiler.Builder.Mysql.Table.Setting') ); } + /** * Get the Sql Model * @@ -443,7 +445,7 @@ class Model implements ServiceProviderInterface public function getModelCustomalias(Container $container): Customalias { return new Customalias( - $container->get('Registry'), + $container->get('Compiler.Builder.Custom.Alias'), $container->get('Field.Name') ); } @@ -460,7 +462,7 @@ class Model implements ServiceProviderInterface { return new Ajaxadmin( $container->get('Config'), - $container->get('Registry'), + $container->get('Compiler.Builder.Site.Edit.View'), $container->get('Customcode.Dispenser') ); } @@ -498,7 +500,7 @@ class Model implements ServiceProviderInterface } /** - * Get the Model Auto Loader + * Get The Model Loader Class. * * @param Container $container The DI container. * @@ -509,7 +511,10 @@ class Model implements ServiceProviderInterface { return new Loader( $container->get('Config'), - $container->get('Registry') + $container->get('Compiler.Builder.Footable.Scripts'), + $container->get('Compiler.Builder.Google.Chart'), + $container->get('Compiler.Builder.Get.Module'), + $container->get('Compiler.Builder.Uikit.Comp') ); } @@ -586,9 +591,11 @@ class Model implements ServiceProviderInterface { return new Relations( $container->get('Config'), - $container->get('Registry'), $container->get('Language'), - $container->get('Customcode') + $container->get('Customcode'), + $container->get('Compiler.Builder.List.Join'), + $container->get('Compiler.Builder.List.Head.Override'), + $container->get('Compiler.Builder.Field.Relations') ); } @@ -604,7 +611,8 @@ class Model implements ServiceProviderInterface { return new Conditions( $container->get('Field.Type.Name'), - $container->get('Field.Name') + $container->get('Field.Name'), + $container->get('Field.Groups') ); } @@ -625,6 +633,7 @@ class Model implements ServiceProviderInterface $container->get('Customcode'), $container->get('Field'), $container->get('Field.Name'), + $container->get('Field.Groups'), $container->get('Model.Updatesql') ); } @@ -669,7 +678,7 @@ class Model implements ServiceProviderInterface { return new Customtabs( $container->get('Config'), - $container->get('Registry'), + $container->get('Compiler.Builder.Custom.Tabs'), $container->get('Language'), $container->get('Placeholder'), $container->get('Customcode') @@ -687,9 +696,10 @@ class Model implements ServiceProviderInterface public function getModelAdminviews(Container $container): Adminviews { return new Adminviews( + $container->get('Config'), $container->get('Adminview.Data'), - $container->get('Registry'), - $container->get('Config') + $container->get('Compiler.Builder.Site.Edit.View'), + $container->get('Compiler.Builder.Admin.Filter.Type') ); } @@ -802,7 +812,6 @@ class Model implements ServiceProviderInterface $container->get('Crypt'), $container->get('Table') ); - } - + } } diff --git a/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/code.power b/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/code.power index 6670e6e..1f5c094 100644 --- a/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/code.power +++ b/src/0601fee8-d51e-4af0-9ad3-b5f8700c4a45/code.power @@ -266,7 +266,8 @@ { return new Dynamicget( $container->get('Config'), - $container->get('Registry'), + $container->get('Compiler.Builder.Site.Dynamic.Get'), + $container->get('Compiler.Builder.Site.Main.Get'), $container->get('Customcode'), $container->get('Customcode.Gui'), $container->get('Placeholder'), @@ -286,7 +287,7 @@ { return new Libraries( $container->get('Config'), - $container->get('Registry'), + $container->get('Compiler.Builder.Library.Manager'), $container->get('Library.Data') ); } @@ -349,9 +350,10 @@ { return new Mysqlsettings( $container->get('Config'), - $container->get('Registry') + $container->get('Compiler.Builder.Mysql.Table.Setting') ); } + /** * Get the Sql Model * @@ -379,7 +381,7 @@ public function getModelCustomalias(Container $container): Customalias { return new Customalias( - $container->get('Registry'), + $container->get('Compiler.Builder.Custom.Alias'), $container->get('Field.Name') ); } @@ -396,7 +398,7 @@ { return new Ajaxadmin( $container->get('Config'), - $container->get('Registry'), + $container->get('Compiler.Builder.Site.Edit.View'), $container->get('Customcode.Dispenser') ); } @@ -434,7 +436,7 @@ } /** - * Get the Model Auto Loader + * Get The Model Loader Class. * * @param Container $container The DI container. * @@ -445,7 +447,10 @@ { return new Loader( $container->get('Config'), - $container->get('Registry') + $container->get('Compiler.Builder.Footable.Scripts'), + $container->get('Compiler.Builder.Google.Chart'), + $container->get('Compiler.Builder.Get.Module'), + $container->get('Compiler.Builder.Uikit.Comp') ); } @@ -522,9 +527,11 @@ { return new Relations( $container->get('Config'), - $container->get('Registry'), $container->get('Language'), - $container->get('Customcode') + $container->get('Customcode'), + $container->get('Compiler.Builder.List.Join'), + $container->get('Compiler.Builder.List.Head.Override'), + $container->get('Compiler.Builder.Field.Relations') ); } @@ -540,7 +547,8 @@ { return new Conditions( $container->get('Field.Type.Name'), - $container->get('Field.Name') + $container->get('Field.Name'), + $container->get('Field.Groups') ); } @@ -561,6 +569,7 @@ $container->get('Customcode'), $container->get('Field'), $container->get('Field.Name'), + $container->get('Field.Groups'), $container->get('Model.Updatesql') ); } @@ -605,7 +614,7 @@ { return new Customtabs( $container->get('Config'), - $container->get('Registry'), + $container->get('Compiler.Builder.Custom.Tabs'), $container->get('Language'), $container->get('Placeholder'), $container->get('Customcode') @@ -623,9 +632,10 @@ public function getModelAdminviews(Container $container): Adminviews { return new Adminviews( + $container->get('Config'), $container->get('Adminview.Data'), - $container->get('Registry'), - $container->get('Config') + $container->get('Compiler.Builder.Site.Edit.View'), + $container->get('Compiler.Builder.Admin.Filter.Type') ); } @@ -738,4 +748,4 @@ $container->get('Crypt'), $container->get('Table') ); - } + } \ No newline at end of file diff --git a/src/0b45357f-b077-4337-92f3-65c1e19d36cd/README.md b/src/0b45357f-b077-4337-92f3-65c1e19d36cd/README.md new file mode 100644 index 0000000..3876ed8 --- /dev/null +++ b/src/0b45357f-b077-4337-92f3-65c1e19d36cd/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class HiddenFields (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class HiddenFields << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/0b45357f-b077-4337-92f3-65c1e19d36cd/code.php b/src/0b45357f-b077-4337-92f3-65c1e19d36cd/code.php new file mode 100644 index 0000000..3cf84a5 --- /dev/null +++ b/src/0b45357f-b077-4337-92f3-65c1e19d36cd/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\ToString; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Hidden Fields Builder Class + * + * @since 3.2.0 + */ +final class HiddenFields extends StorageRegistry implements Storageregistryinterface +{ + /** + * To String Values + * + * @since 3.2.0 + */ + use ToString; +} + diff --git a/src/0b45357f-b077-4337-92f3-65c1e19d36cd/code.power b/src/0b45357f-b077-4337-92f3-65c1e19d36cd/code.power new file mode 100644 index 0000000..b9696bb --- /dev/null +++ b/src/0b45357f-b077-4337-92f3-65c1e19d36cd/code.power @@ -0,0 +1,6 @@ + /** + * To String Values + * + * @since 3.2.0 + */ + use ToString; \ No newline at end of file diff --git a/src/0b45357f-b077-4337-92f3-65c1e19d36cd/settings.json b/src/0b45357f-b077-4337-92f3-65c1e19d36cd/settings.json new file mode 100644 index 0000000..7190bdd --- /dev/null +++ b/src/0b45357f-b077-4337-92f3-65c1e19d36cd/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "0b45357f-b077-4337-92f3-65c1e19d36cd", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "HiddenFields", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.HiddenFields", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "7d494d91-ab60-43cd-aecf-d50e07f7f30e", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.HiddenFields", + "description": "Hidden Fields Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/0d08c583-04d5-454e-b756-48ca05e1651a/README.md b/src/0d08c583-04d5-454e-b756-48ca05e1651a/README.md index db6ae51..0070fc3 100644 --- a/src/0d08c583-04d5-454e-b756-48ca05e1651a/README.md +++ b/src/0d08c583-04d5-454e-b756-48ca05e1651a/README.md @@ -18,18 +18,16 @@ class Readme #Gold { - readmeBuilder($powers) : string - readmeModel(array $classes) : string - generateIndex(array $classes) : string - - generateDiagramBucket(array $classes) : string - defineTypeOrder() : array - sortClasses(array $classes, array $typeOrder) : void - compareNamespace(array $a, array $b) : int - compareType(array $a, array $b, ...) : int - compareName(array $a, array $b) : int - - generateNamespaceDiagram(string $current_namespace, string $diagrams) : string - - indexLinkPower(string $power) : string - - linkPowerRepo(string $power) : string - - linkPowerCode(string $power) : string - - linkPowerSettings(string $power) : string - - linkPowerGuid(string $power) : string + - indexLinkPower(array $power) : string + - linkPowerRepo(array $power) : string + - linkPowerCode(array $power) : string + - linkPowerSettings(array $power) : string + - linkPowerSPK(array $power) : string } note right of Readme::__construct @@ -65,34 +63,28 @@ note right of Readme::generateIndex return: string end note -note left of Readme::generateDiagramBucket - Generate the diagram bucket string for classes - - return: string -end note - -note right of Readme::defineTypeOrder +note left of Readme::defineTypeOrder Define the order of types for sorting purposes since: 3.2.0 return: array end note -note left of Readme::sortClasses +note right of Readme::sortClasses Sort the flattened array using a single sorting function since: 3.2.0 return: void end note -note right of Readme::compareNamespace +note left of Readme::compareNamespace Compare the namespace of two classes since: 3.2.0 return: int end note -note left of Readme::compareType +note right of Readme::compareType Compare the type of two classes since: 3.2.0 @@ -104,19 +96,13 @@ note left of Readme::compareType array $typeOrder end note -note right of Readme::compareName +note left of Readme::compareName Compare the name of two classes since: 3.2.0 return: int end note -note left of Readme::generateNamespaceDiagram - Generate a namespace diagram string - - return: string -end note - note right of Readme::indexLinkPower Build the Link to the power in this repository @@ -145,8 +131,8 @@ note left of Readme::linkPowerSettings return: string end note -note right of Readme::linkPowerGuid - Build the Link with GUID text to the power in this repository +note right of Readme::linkPowerSPK + Get the SuperPowerKey (SPK) since: 3.2.0 return: string diff --git a/src/0d08c583-04d5-454e-b756-48ca05e1651a/code.php b/src/0d08c583-04d5-454e-b756-48ca05e1651a/code.php index 66f6ea0..17446d6 100644 --- a/src/0d08c583-04d5-454e-b756-48ca05e1651a/code.php +++ b/src/0d08c583-04d5-454e-b756-48ca05e1651a/code.php @@ -123,18 +123,13 @@ class Readme $classes = []; foreach ($powers as $guid => $power) { - $power_object = $this->power->get($guid); - if (isset($power_object->parsed_class_code) && is_array($power_object->parsed_class_code)) - { - // add to the sort bucket - $classes[] = [ - 'namespace' => $power['namespace'], - 'type' => $power['type'], - 'name' => $power['name'], - 'link' => $this->indexLinkPower($power), - 'diagram' => $this->plantuml->classBasicDiagram($power, $power_object->parsed_class_code) - ]; - } + // add to the sort bucket + $classes[] = [ + 'namespace' => $power['namespace'], + 'type' => $power['type'], + 'name' => $power['name'], + 'link' => $this->indexLinkPower($power) + ]; } return $this->readmeModel($classes); @@ -152,11 +147,7 @@ class Readme { $this->sortClasses($classes, $this->defineTypeOrder()); - $result = $this->generateIndex($classes); - - $diagram_bucket = $this->generateDiagramBucket($classes); - - return $result . $diagram_bucket; + return $this->generateIndex($classes); } /** @@ -187,40 +178,6 @@ class Readme return $result; } - /** - * Generate the diagram bucket string for classes - * - * @param array $classes The sorted classes - * - * @return string The diagram bucket string - */ - private function generateDiagramBucket(array &$classes): string - { - $diagram_bucket = "\n\n# Class Diagrams\n"; - $current_namespace = null; - $diagrams = ''; - - foreach ($classes as $class) - { - if ($class['namespace'] !== $current_namespace) - { - if ($current_namespace !== null) - { - $diagram_bucket .= $this->generateNamespaceDiagram($current_namespace, $diagrams); - } - $current_namespace = $class['namespace']; - $diagrams = ''; - } - - $diagrams .= $class['diagram']; - } - - // Add the last namespace diagram - $diagram_bucket .= $this->generateNamespaceDiagram($current_namespace, $diagrams); - - return $diagram_bucket; - } - /** * Define the order of types for sorting purposes * @@ -301,7 +258,7 @@ class Readme */ private function compareType(array $a, array $b, array $typeOrder): int { - return $typeOrder[$a['type']] - $typeOrder[$b['type']]; + return $typeOrder[$a['type']] <=> $typeOrder[$b['type']]; } /** @@ -318,92 +275,79 @@ class Readme return strcmp($a['name'], $b['name']); } - /** - * Generate a namespace diagram string - * - * @param string $current_namespace The current namespace - * @param string $diagrams The diagrams for the namespace - * - * @return string The namespace diagram string - */ - private function generateNamespaceDiagram(string $current_namespace, string $diagrams): string - { - $namespace_title = str_replace('\\', ' ', $current_namespace); - $diagram_code = "\n## {$namespace_title}\n> namespace {$current_namespace}\n"; - $diagram_code .= "```uml\n@startuml\n\n" . - $this->plantuml->namespaceDiagram($current_namespace, $diagrams) . "\n\n@enduml\n```\n"; - - return $diagram_code; - } - /** * Build the Link to the power in this repository * - * @param string $power The power details. + * @param array $power The power details. * * @return string * @since 3.2.0 */ private function indexLinkPower(array &$power): string { - return '**' . $power['type'] . ' ' . $power['name'] . "** | " + $type = $power['type'] ?? 'error'; + $name = $power['name'] ?? 'error'; + return '**' . $type . ' ' . $name . "** | " . $this->linkPowerRepo($power) . ' | ' . $this->linkPowerCode($power) . ' | ' . $this->linkPowerSettings($power) . ' | ' - . $this->linkPowerGuid($power); + . $this->linkPowerSPK($power); } /** * Build the Link to the power in this repository * - * @param string $power The power details. + * @param array $power The power details. * * @return string * @since 3.2.0 */ private function linkPowerRepo(array &$power): string { - return '[Details](' . $power['path'] . ')'; + $path = $power['path'] ?? 'error'; + return '[Details](' . $path . ')'; } /** * Build the Link to the power settings in this repository * - * @param string $power The power details. + * @param array $power The power details. * * @return string * @since 3.2.0 */ private function linkPowerCode(array &$power): string { - return '[Code](' . $power['code'] . ')'; + $code = $power['code'] ?? 'error'; + return '[Code](' . $code . ')'; } /** * Build the Link to the power settings in this repository * - * @param string $power The power details. + * @param array $power The power details. * * @return string * @since 3.2.0 */ private function linkPowerSettings(array &$power): string { - return '[Settings](' . $power['settings'] . ')'; + $settings = $power['settings'] ?? 'error'; + return '[Settings](' . $settings . ')'; } /** - * Build the Link with GUID text to the power in this repository + * Get the SuperPowerKey (SPK) * - * @param string $power The power details. + * @param array $power The power details. * * @return string * @since 3.2.0 */ - private function linkPowerGuid(array &$power): string + private function linkPowerSPK(array &$power): string { - return '[' . $power['guid'] . '](' . $power['path'] . ')'; - } - + $spk = $power['spk'] ?? 'error'; + return $spk; + } } diff --git a/src/0d08c583-04d5-454e-b756-48ca05e1651a/code.power b/src/0d08c583-04d5-454e-b756-48ca05e1651a/code.power index c1006e7..06d7724 100644 --- a/src/0d08c583-04d5-454e-b756-48ca05e1651a/code.power +++ b/src/0d08c583-04d5-454e-b756-48ca05e1651a/code.power @@ -98,18 +98,13 @@ $classes = []; foreach ($powers as $guid => $power) { - $power_object = $this->power->get($guid); - if (isset($power_object->parsed_class_code) && is_array($power_object->parsed_class_code)) - { - // add to the sort bucket - $classes[] = [ - 'namespace' => $power['namespace'], - 'type' => $power['type'], - 'name' => $power['name'], - 'link' => $this->indexLinkPower($power), - 'diagram' => $this->plantuml->classBasicDiagram($power, $power_object->parsed_class_code) - ]; - } + // add to the sort bucket + $classes[] = [ + 'namespace' => $power['namespace'], + 'type' => $power['type'], + 'name' => $power['name'], + 'link' => $this->indexLinkPower($power) + ]; } return $this->readmeModel($classes); @@ -127,11 +122,7 @@ { $this->sortClasses($classes, $this->defineTypeOrder()); - $result = $this->generateIndex($classes); - - $diagram_bucket = $this->generateDiagramBucket($classes); - - return $result . $diagram_bucket; + return $this->generateIndex($classes); } /** @@ -162,40 +153,6 @@ return $result; } - /** - * Generate the diagram bucket string for classes - * - * @param array $classes The sorted classes - * - * @return string The diagram bucket string - */ - private function generateDiagramBucket(array &$classes): string - { - $diagram_bucket = "\n\n# Class Diagrams\n"; - $current_namespace = null; - $diagrams = ''; - - foreach ($classes as $class) - { - if ($class['namespace'] !== $current_namespace) - { - if ($current_namespace !== null) - { - $diagram_bucket .= $this->generateNamespaceDiagram($current_namespace, $diagrams); - } - $current_namespace = $class['namespace']; - $diagrams = ''; - } - - $diagrams .= $class['diagram']; - } - - // Add the last namespace diagram - $diagram_bucket .= $this->generateNamespaceDiagram($current_namespace, $diagrams); - - return $diagram_bucket; - } - /** * Define the order of types for sorting purposes * @@ -276,7 +233,7 @@ */ private function compareType(array $a, array $b, array $typeOrder): int { - return $typeOrder[$a['type']] - $typeOrder[$b['type']]; + return $typeOrder[$a['type']] <=> $typeOrder[$b['type']]; } /** @@ -293,89 +250,77 @@ return strcmp($a['name'], $b['name']); } - /** - * Generate a namespace diagram string - * - * @param string $current_namespace The current namespace - * @param string $diagrams The diagrams for the namespace - * - * @return string The namespace diagram string - */ - private function generateNamespaceDiagram(string $current_namespace, string $diagrams): string - { - $namespace_title = str_replace('\\', ' ', $current_namespace); - $diagram_code = "\n## {$namespace_title}\n> namespace {$current_namespace}\n"; - $diagram_code .= "```uml\n@startuml\n\n" . - $this->plantuml->namespaceDiagram($current_namespace, $diagrams) . "\n\n@enduml\n```\n"; - - return $diagram_code; - } - /** * Build the Link to the power in this repository * - * @param string $power The power details. + * @param array $power The power details. * * @return string * @since 3.2.0 */ private function indexLinkPower(array &$power): string { - return '**' . $power['type'] . ' ' . $power['name'] . "** | " + $type = $power['type'] ?? 'error'; + $name = $power['name'] ?? 'error'; + return '**' . $type . ' ' . $name . "** | " . $this->linkPowerRepo($power) . ' | ' . $this->linkPowerCode($power) . ' | ' . $this->linkPowerSettings($power) . ' | ' - . $this->linkPowerGuid($power); + . $this->linkPowerSPK($power); } /** * Build the Link to the power in this repository * - * @param string $power The power details. + * @param array $power The power details. * * @return string * @since 3.2.0 */ private function linkPowerRepo(array &$power): string { - return '[Details](' . $power['path'] . ')'; + $path = $power['path'] ?? 'error'; + return '[Details](' . $path . ')'; } /** * Build the Link to the power settings in this repository * - * @param string $power The power details. + * @param array $power The power details. * * @return string * @since 3.2.0 */ private function linkPowerCode(array &$power): string { - return '[Code](' . $power['code'] . ')'; + $code = $power['code'] ?? 'error'; + return '[Code](' . $code . ')'; } /** * Build the Link to the power settings in this repository * - * @param string $power The power details. + * @param array $power The power details. * * @return string * @since 3.2.0 */ private function linkPowerSettings(array &$power): string { - return '[Settings](' . $power['settings'] . ')'; + $settings = $power['settings'] ?? 'error'; + return '[Settings](' . $settings . ')'; } /** - * Build the Link with GUID text to the power in this repository + * Get the SuperPowerKey (SPK) * - * @param string $power The power details. + * @param array $power The power details. * * @return string * @since 3.2.0 */ - private function linkPowerGuid(array &$power): string + private function linkPowerSPK(array &$power): string { - return '[' . $power['guid'] . '](' . $power['path'] . ')'; - } + $spk = $power['spk'] ?? 'error'; + return $spk; + } \ No newline at end of file diff --git a/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/README.md b/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/README.md index a442283..0fb2e63 100644 --- a/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/README.md +++ b/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/README.md @@ -12,8 +12,11 @@ @startuml class Loader #Gold { # Config $config - # Registry $registry - + __construct(?Config $config = null, ?Registry $registry = null) + # FootableScripts $footablescripts + # GoogleChart $googlechart + # GetModule $getmodule + # UikitComp $uikitcomp + + __construct(Config $config, FootableScripts $footablescripts, ...) + set(string $key, string $content, ...) : void + uikit(string $key, string $content) : void # getFootableScripts(string $content) : bool @@ -22,9 +25,16 @@ class Loader #Gold { } note right of Loader::__construct - Constructor + Constructor. since: 3.2.0 + + arguments: + Config $config + FootableScripts $footablescripts + GoogleChart $googlechart + GetModule $getmodule + UikitComp $uikitcomp end note note right of Loader::set diff --git a/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/code.php b/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/code.php index d371c44..99e6bed 100644 --- a/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/code.php +++ b/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/code.php @@ -12,9 +12,11 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Model; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FootableScripts; +use VDM\Joomla\Componentbuilder\Compiler\Builder\GoogleChart; +use VDM\Joomla\Componentbuilder\Compiler\Builder\GetModule; +use VDM\Joomla\Componentbuilder\Compiler\Builder\UikitComp; use VDM\Joomla\Utilities\Component\Helper; @@ -26,33 +28,64 @@ use VDM\Joomla\Utilities\Component\Helper; class Loader { /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The FootableScripts Class. * - * @var Registry + * @var FootableScripts * @since 3.2.0 */ - protected Registry $registry; + protected FootableScripts $footablescripts; /** - * Constructor + * The GoogleChart Class. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. + * @var GoogleChart + * @since 3.2.0 + */ + protected GoogleChart $googlechart; + + /** + * The GetModule Class. + * + * @var GetModule + * @since 3.2.0 + */ + protected GetModule $getmodule; + + /** + * The UikitComp Class. + * + * @var UikitComp + * @since 3.2.0 + */ + protected UikitComp $uikitcomp; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param FootableScripts $footablescripts The FootableScripts Class. + * @param GoogleChart $googlechart The GoogleChart Class. + * @param GetModule $getmodule The GetModule Class. + * @param UikitComp $uikitcomp The UikitComp Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null) + public function __construct(Config $config, FootableScripts $footablescripts, + GoogleChart $googlechart, GetModule $getmodule, UikitComp $uikitcomp) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); + $this->config = $config; + $this->footablescripts = $footablescripts; + $this->googlechart = $googlechart; + $this->getmodule = $getmodule; + $this->uikitcomp = $uikitcomp; } /** @@ -71,39 +104,33 @@ class Loader $target = $target ?: $this->config->build_target; // check for footable - if (!$this->registry-> - exists('builder.footable_scripts.' . $target . '.' . $key)) + if (!$this->footablescripts->exists($target . '.' . $key)) { if ($this->getFootableScripts($content)) { - $this->registry-> - set('builder.footable_scripts.' . $target . '.' . $key, true); + $this->footablescripts->set($target . '.' . $key, true); $this->config->set('footable', true); } } // check for google chart - if (!$this->registry-> - exists('builder.google_chart.' . $target . '.' . $key)) + if (!$this->googlechart->exists($target . '.' . $key)) { if ($this->getGoogleChart($content)) { - $this->registry-> - set('builder.google_chart.' . $target . '.' . $key, true); + $this->googlechart->set($target . '.' . $key, true); $this->config->set('google_chart', true); } } // check for get module - if (!$this->registry-> - exists('builder.get_module.' . $target . '.' . $key)) + if (!$this->getmodule->exists($target . '.' . $key)) { if ($this->getGetModule($content)) { - $this->registry-> - set('builder.get_module.' . $target . '.' . $key, true); + $this->getmodule->set($target . '.' . $key, true); } } } @@ -134,10 +161,10 @@ class Loader { // set uikit to views TODO: convert this getUikitComp to a class if (($found = Helper::_('getUikitComp', - [$content, (array) $this->registry->get('builder.uikit_comp.' . $key, [])] + [$content, $this->uikitcomp->get($key, [])] )) !== false) { - $this->registry->set('builder.uikit_comp.' . $key, $found); + $this->uikitcomp->set($key, $found); } } } @@ -179,7 +206,6 @@ class Loader protected function getGoogleChart(string &$content): bool { return strpos($content, 'Chartbuilder(') !== false; - } - + } } diff --git a/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/code.power b/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/code.power index fb33092..a4c3031 100644 --- a/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/code.power +++ b/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/code.power @@ -1,31 +1,62 @@ /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The FootableScripts Class. * - * @var Registry + * @var FootableScripts * @since 3.2.0 */ - protected Registry $registry; + protected FootableScripts $footablescripts; /** - * Constructor + * The GoogleChart Class. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. + * @var GoogleChart + * @since 3.2.0 + */ + protected GoogleChart $googlechart; + + /** + * The GetModule Class. + * + * @var GetModule + * @since 3.2.0 + */ + protected GetModule $getmodule; + + /** + * The UikitComp Class. + * + * @var UikitComp + * @since 3.2.0 + */ + protected UikitComp $uikitcomp; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param FootableScripts $footablescripts The FootableScripts Class. + * @param GoogleChart $googlechart The GoogleChart Class. + * @param GetModule $getmodule The GetModule Class. + * @param UikitComp $uikitcomp The UikitComp Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null) + public function __construct(Config $config, FootableScripts $footablescripts, + GoogleChart $googlechart, GetModule $getmodule, UikitComp $uikitcomp) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); + $this->config = $config; + $this->footablescripts = $footablescripts; + $this->googlechart = $googlechart; + $this->getmodule = $getmodule; + $this->uikitcomp = $uikitcomp; } /** @@ -44,39 +75,33 @@ $target = $target ?: $this->config->build_target; // check for footable - if (!$this->registry-> - exists('builder.footable_scripts.' . $target . '.' . $key)) + if (!$this->footablescripts->exists($target . '.' . $key)) { if ($this->getFootableScripts($content)) { - $this->registry-> - set('builder.footable_scripts.' . $target . '.' . $key, true); + $this->footablescripts->set($target . '.' . $key, true); $this->config->set('footable', true); } } // check for google chart - if (!$this->registry-> - exists('builder.google_chart.' . $target . '.' . $key)) + if (!$this->googlechart->exists($target . '.' . $key)) { if ($this->getGoogleChart($content)) { - $this->registry-> - set('builder.google_chart.' . $target . '.' . $key, true); + $this->googlechart->set($target . '.' . $key, true); $this->config->set('google_chart', true); } } // check for get module - if (!$this->registry-> - exists('builder.get_module.' . $target . '.' . $key)) + if (!$this->getmodule->exists($target . '.' . $key)) { if ($this->getGetModule($content)) { - $this->registry-> - set('builder.get_module.' . $target . '.' . $key, true); + $this->getmodule->set($target . '.' . $key, true); } } } @@ -107,10 +132,10 @@ { // set uikit to views TODO: convert this getUikitComp to a class if (($found = Helper::_('getUikitComp', - [$content, (array) $this->registry->get('builder.uikit_comp.' . $key, [])] + [$content, $this->uikitcomp->get($key, [])] )) !== false) { - $this->registry->set('builder.uikit_comp.' . $key, $found); + $this->uikitcomp->set($key, $found); } } } @@ -152,4 +177,4 @@ protected function getGoogleChart(string &$content): bool { return strpos($content, 'Chartbuilder(') !== false; - } + } \ No newline at end of file diff --git a/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/settings.json b/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/settings.json index b3ce3bb..e373366 100644 --- a/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/settings.json +++ b/src/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7/settings.json @@ -11,18 +11,26 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, - "use_selection1": { "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", "as": "default" }, + "use_selection1": { + "use": "dba0776e-e582-4f73-af3e-e7ed17bc34b3", + "as": "default" + }, "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "use": "507ab90f-7d64-4697-9815-d96f5d1d1185", "as": "default" }, "use_selection3": { + "use": "c7b6f0d5-ec47-4166-915c-e78d49b4fb63", + "as": "default" + }, + "use_selection4": { + "use": "54ec57f6-2fc3-42e5-975e-1fabeacb845d", + "as": "default" + }, + "use_selection5": { "use": "640b5352-fb09-425f-a26e-cd44eda03f15", "as": "default" } diff --git a/src/0d8db719-39a6-48b4-85a6-2f97e784e588/README.md b/src/0d8db719-39a6-48b4-85a6-2f97e784e588/README.md new file mode 100644 index 0000000..895f512 --- /dev/null +++ b/src/0d8db719-39a6-48b4-85a6-2f97e784e588/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class DatabaseKeys (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class DatabaseKeys << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/0d8db719-39a6-48b4-85a6-2f97e784e588/code.php b/src/0d8db719-39a6-48b4-85a6-2f97e784e588/code.php new file mode 100644 index 0000000..8c60368 --- /dev/null +++ b/src/0d8db719-39a6-48b4-85a6-2f97e784e588/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Database Keys Builder Class + * + * @since 3.2.0 + */ +final class DatabaseKeys extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/0d8db719-39a6-48b4-85a6-2f97e784e588/code.power b/src/0d8db719-39a6-48b4-85a6-2f97e784e588/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/0d8db719-39a6-48b4-85a6-2f97e784e588/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/0d8db719-39a6-48b4-85a6-2f97e784e588/settings.json b/src/0d8db719-39a6-48b4-85a6-2f97e784e588/settings.json new file mode 100644 index 0000000..c934560 --- /dev/null +++ b/src/0d8db719-39a6-48b4-85a6-2f97e784e588/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "0d8db719-39a6-48b4-85a6-2f97e784e588", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "DatabaseKeys", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.DatabaseKeys", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.DatabaseKeys", + "description": "Database Keys Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/README.md b/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/README.md new file mode 100644 index 0000000..f38ccfa --- /dev/null +++ b/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class DoNotEscape (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class DoNotEscape << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/code.php b/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/code.php new file mode 100644 index 0000000..ea9b7c3 --- /dev/null +++ b/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Do Not Escape Builder Class + * + * @since 3.2.0 + */ +final class DoNotEscape extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/code.power b/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/settings.json b/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/settings.json new file mode 100644 index 0000000..338dfd1 --- /dev/null +++ b/src/0d9d3294-0bed-4c44-b1a1-e172f62cafb2/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "0d9d3294-0bed-4c44-b1a1-e172f62cafb2", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "DoNotEscape", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.DoNotEscape", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.DoNotEscape", + "description": "Do Not Escape Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/0f141480-afe6-41fb-996c-2a4e566a2f0d/README.md b/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/README.md new file mode 100644 index 0000000..104d2e0 --- /dev/null +++ b/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class NewPublishingFields (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class NewPublishingFields << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/code.php b/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/code.php new file mode 100644 index 0000000..31ea8c4 --- /dev/null +++ b/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\Count; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * New Publishing Fields Builder Class + * + * @since 3.2.0 + */ +final class NewPublishingFields extends StorageRegistry implements Storageregistryinterface +{ + /** + * Count Values + * + * @since 3.2.0 + */ + use Count; +} + diff --git a/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/code.power b/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/code.power new file mode 100644 index 0000000..21bfdb2 --- /dev/null +++ b/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/code.power @@ -0,0 +1,6 @@ + /** + * Count Values + * + * @since 3.2.0 + */ + use Count; \ No newline at end of file diff --git a/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/settings.json b/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/settings.json new file mode 100644 index 0000000..7c380c0 --- /dev/null +++ b/src/0f141480-afe6-41fb-996c-2a4e566a2f0d/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "0f141480-afe6-41fb-996c-2a4e566a2f0d", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "NewPublishingFields", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.NewPublishingFields", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "11572d9b-e3d5-4b29-904c-9618d8f2bfd8", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.NewPublishingFields", + "description": "New Publishing Fields Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/12df35ad-2d44-4c4c-a7d5-a3350932a520/README.md b/src/12df35ad-2d44-4c4c-a7d5-a3350932a520/README.md new file mode 100644 index 0000000..65880c6 --- /dev/null +++ b/src/12df35ad-2d44-4c4c-a7d5-a3350932a520/README.md @@ -0,0 +1,69 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Groups (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Field** +```uml +@startuml +class Groups << (F,LightGreen) >> #RoyalBlue { + # \JDatabaseDriver $db + + __construct(?\JDatabaseDriver $db = null) + + check(string $type, string $option = 'default') : bool + + types(array $groups = []) : ?array + + typesIds(array $groups = []) : ?array + + spacerIds() : ?array +} + +note right of Groups::__construct + Constructor + + since: 3.2.0 +end note + +note right of Groups::check + Field Checker + + since: 3.2.0 + return: bool +end note + +note right of Groups::types + get the field types id -> name of a group or groups + + since: 3.2.0 + return: ?array +end note + +note right of Groups::typesIds + get the field types IDs of a group or groups + + since: 3.2.0 + return: ?array +end note + +note right of Groups::spacerIds + get the spacer 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/12df35ad-2d44-4c4c-a7d5-a3350932a520/code.php b/src/12df35ad-2d44-4c4c-a7d5-a3350932a520/code.php new file mode 100644 index 0000000..76e661e --- /dev/null +++ b/src/12df35ad-2d44-4c4c-a7d5-a3350932a520/code.php @@ -0,0 +1,194 @@ + + * @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\Compiler\Field; + + +use Joomla\CMS\Factory; +use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Utilities\GetHelper; + + +/** + * Compiler Field Groups + * + * @since 3.2.0 + */ +final class Groups +{ + /** + * Field Grouping https://docs.joomla.org/Form_field + * + * @var array + * @since 3.2.0 + **/ + protected array $groups = [ + 'default' => [ + 'accesslevel', 'cachehandler', 'calendar', 'captcha', 'category', 'checkbox', 'checkboxes', 'chromestyle', + 'color', 'combo', 'componentlayout', 'contentlanguage', 'contenttype', 'databaseconnection', 'components', + 'editor', 'editors', 'email', 'file', 'file', 'filelist', 'folderlist', 'groupedlist', 'headertag', 'helpsite', 'hidden', 'imagelist', + 'integer', 'language', 'list', 'media', 'menu', 'modal_menu', 'menuitem', 'meter', 'modulelayout', 'moduleorder', 'moduleposition', + 'moduletag', 'note', 'number', 'password', 'plugins', 'predefinedlist', 'radio', 'range', 'repeatable', 'rules', + 'sessionhandler', 'spacer', 'sql', 'subform', 'tag', 'tel', 'templatestyle', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup' + ], + 'plain' => [ + 'cachehandler', 'calendar', 'checkbox', 'chromestyle', 'color', 'componentlayout', 'contenttype', 'editor', 'editors', 'captcha', + 'email', 'file', 'headertag', 'helpsite', 'hidden', 'integer', 'language', 'media', 'menu', 'modal_menu', 'menuitem', 'meter', 'modulelayout', 'templatestyle', + 'moduleorder', 'moduletag', 'number', 'password', 'range', 'rules', 'tag', 'tel', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup' + ], + 'option' => [ + 'accesslevel', 'category', 'checkboxes', 'combo', 'contentlanguage', 'databaseconnection', 'components', + 'filelist', 'folderlist', 'imagelist', 'list', 'plugins', 'predefinedlist', 'radio', 'sessionhandler', 'sql', 'groupedlist' + ], + 'text' => [ + 'calendar', 'color', 'editor', 'email', 'number', 'password', 'range', 'tel', 'text', 'textarea', 'url' + ], + 'list' => [ + 'checkbox', 'checkboxes', 'list', 'radio', 'groupedlist', 'combo' + ], + 'dynamic' => [ + 'category', 'file', 'filelist', 'folderlist', 'headertag', 'imagelist', 'integer', 'media', 'meter', 'rules', 'tag', 'timezone', 'user' + ], + 'spacer' => [ + 'note', 'spacer' + ], + 'special' => [ + 'contentlanguage', 'moduleposition', 'plugin', 'repeatable', 'subform' + ], + 'search' => [ + 'editor', 'email', 'tel', 'text', 'textarea', 'url', 'subform' + ] + ]; + + /** + * Database object to query local DB + * + * @var \JDatabaseDriver + * @since 3.2.0 + */ + protected \JDatabaseDriver $db; + + /** + * Constructor + * + * @param \JDatabaseDriver|null $db The Database Driver object. + * + * @since 3.2.0 + */ + public function __construct(?\JDatabaseDriver $db = null) + { + $this->db = $db ?: Factory::getDbo(); + } + + /** + * Field Checker + * + * @param string $type The field type + * @param string $option The field grouping + * + * @return bool if the field was found + * @since 3.2.0 + */ + public function check(string $type, string $option = 'default'): bool + { + // now check + if (isset($this->groups[$option]) && in_array($type, $this->groups[$option])) + { + return true; + } + return false; + } + + /** + * get the field types id -> name of a group or groups + * + * @param array $groups The groups + * + * @return array|null ids of the spacer field types + * @since 3.2.0 + */ + public function types(array $groups = []): ?array + { + // make sure we have a group + if (($ids = $this->typesIds($groups)) !== null) + { + // Create a new query object. + $query = $this->db->getQuery(true); + $query->select($this->db->quoteName(array('id', 'name'))); + $query->from($this->db->quoteName('#__componentbuilder_fieldtype')); + $query->where($this->db->quoteName('published') . ' = 1'); + $query->where($this->db->quoteName('id') . ' IN (' . implode(',',$ids) . ')'); + + // Reset the query using our newly populated query object. + $this->db->setQuery($query); + $this->db->execute(); + + if ($this->db->getNumRows()) + { + return $this->db->loadAssocList('id', 'name'); + } + } + + return null; + } + + /** + * get the field types IDs of a group or groups + * + * @param array $groups The groups + * + * @return array|null ids of the spacer field types + * @since 3.2.0 + */ + public function typesIds(array $groups = []): ?array + { + // make sure we have a group + if (ArrayHelper::check($groups)) + { + $merge_groups = []; + foreach ($groups as $group) + { + if (isset($this->groups[$group])) + { + $merge_groups[] = $this->groups[$group]; + } + } + + // make sure we have these types of groups + if (ArrayHelper::check($merge_groups)) + { + // get the database object to use quote + return GetHelper::vars( + 'fieldtype', + (array) array_map(function($name) { + return $this->db->quote(ucfirst($name)); + }, ArrayHelper::merge($merge_groups)), + 'name', + 'id' + ); + } + } + + return null; + } + + /** + * get the spacer IDs + * + * @return array|null ids of the spacer field types + * @since 3.2.0 + */ + public function spacerIds(): ?array + { + return $this->typesIds(['spacer']); + } +} + diff --git a/src/12df35ad-2d44-4c4c-a7d5-a3350932a520/code.power b/src/12df35ad-2d44-4c4c-a7d5-a3350932a520/code.power new file mode 100644 index 0000000..c883874 --- /dev/null +++ b/src/12df35ad-2d44-4c4c-a7d5-a3350932a520/code.power @@ -0,0 +1,166 @@ + /** + * Field Grouping https://docs.joomla.org/Form_field + * + * @var array + * @since 3.2.0 + **/ + protected array $groups = [ + 'default' => [ + 'accesslevel', 'cachehandler', 'calendar', 'captcha', 'category', 'checkbox', 'checkboxes', 'chromestyle', + 'color', 'combo', 'componentlayout', 'contentlanguage', 'contenttype', 'databaseconnection', 'components', + 'editor', 'editors', 'email', 'file', 'file', 'filelist', 'folderlist', 'groupedlist', 'headertag', 'helpsite', 'hidden', 'imagelist', + 'integer', 'language', 'list', 'media', 'menu', 'modal_menu', 'menuitem', 'meter', 'modulelayout', 'moduleorder', 'moduleposition', + 'moduletag', 'note', 'number', 'password', 'plugins', 'predefinedlist', 'radio', 'range', 'repeatable', 'rules', + 'sessionhandler', 'spacer', 'sql', 'subform', 'tag', 'tel', 'templatestyle', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup' + ], + 'plain' => [ + 'cachehandler', 'calendar', 'checkbox', 'chromestyle', 'color', 'componentlayout', 'contenttype', 'editor', 'editors', 'captcha', + 'email', 'file', 'headertag', 'helpsite', 'hidden', 'integer', 'language', 'media', 'menu', 'modal_menu', 'menuitem', 'meter', 'modulelayout', 'templatestyle', + 'moduleorder', 'moduletag', 'number', 'password', 'range', 'rules', 'tag', 'tel', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup' + ], + 'option' => [ + 'accesslevel', 'category', 'checkboxes', 'combo', 'contentlanguage', 'databaseconnection', 'components', + 'filelist', 'folderlist', 'imagelist', 'list', 'plugins', 'predefinedlist', 'radio', 'sessionhandler', 'sql', 'groupedlist' + ], + 'text' => [ + 'calendar', 'color', 'editor', 'email', 'number', 'password', 'range', 'tel', 'text', 'textarea', 'url' + ], + 'list' => [ + 'checkbox', 'checkboxes', 'list', 'radio', 'groupedlist', 'combo' + ], + 'dynamic' => [ + 'category', 'file', 'filelist', 'folderlist', 'headertag', 'imagelist', 'integer', 'media', 'meter', 'rules', 'tag', 'timezone', 'user' + ], + 'spacer' => [ + 'note', 'spacer' + ], + 'special' => [ + 'contentlanguage', 'moduleposition', 'plugin', 'repeatable', 'subform' + ], + 'search' => [ + 'editor', 'email', 'tel', 'text', 'textarea', 'url', 'subform' + ] + ]; + + /** + * Database object to query local DB + * + * @var \JDatabaseDriver + * @since 3.2.0 + */ + protected \JDatabaseDriver $db; + + /** + * Constructor + * + * @param \JDatabaseDriver|null $db The Database Driver object. + * + * @since 3.2.0 + */ + public function __construct(?\JDatabaseDriver $db = null) + { + $this->db = $db ?: Factory::getDbo(); + } + + /** + * Field Checker + * + * @param string $type The field type + * @param string $option The field grouping + * + * @return bool if the field was found + * @since 3.2.0 + */ + public function check(string $type, string $option = 'default'): bool + { + // now check + if (isset($this->groups[$option]) && in_array($type, $this->groups[$option])) + { + return true; + } + return false; + } + + /** + * get the field types id -> name of a group or groups + * + * @param array $groups The groups + * + * @return array|null ids of the spacer field types + * @since 3.2.0 + */ + public function types(array $groups = []): ?array + { + // make sure we have a group + if (($ids = $this->typesIds($groups)) !== null) + { + // Create a new query object. + $query = $this->db->getQuery(true); + $query->select($this->db->quoteName(array('id', 'name'))); + $query->from($this->db->quoteName('#__componentbuilder_fieldtype')); + $query->where($this->db->quoteName('published') . ' = 1'); + $query->where($this->db->quoteName('id') . ' IN (' . implode(',',$ids) . ')'); + + // Reset the query using our newly populated query object. + $this->db->setQuery($query); + $this->db->execute(); + + if ($this->db->getNumRows()) + { + return $this->db->loadAssocList('id', 'name'); + } + } + + return null; + } + + /** + * get the field types IDs of a group or groups + * + * @param array $groups The groups + * + * @return array|null ids of the spacer field types + * @since 3.2.0 + */ + public function typesIds(array $groups = []): ?array + { + // make sure we have a group + if (ArrayHelper::check($groups)) + { + $merge_groups = []; + foreach ($groups as $group) + { + if (isset($this->groups[$group])) + { + $merge_groups[] = $this->groups[$group]; + } + } + + // make sure we have these types of groups + if (ArrayHelper::check($merge_groups)) + { + // get the database object to use quote + return GetHelper::vars( + 'fieldtype', + (array) array_map(function($name) { + return $this->db->quote(ucfirst($name)); + }, ArrayHelper::merge($merge_groups)), + 'name', + 'id' + ); + } + } + + return null; + } + + /** + * get the spacer IDs + * + * @return array|null ids of the spacer field types + * @since 3.2.0 + */ + public function spacerIds(): ?array + { + return $this->typesIds(['spacer']); + } \ No newline at end of file diff --git a/src/12df35ad-2d44-4c4c-a7d5-a3350932a520/settings.json b/src/12df35ad-2d44-4c4c-a7d5-a3350932a520/settings.json new file mode 100644 index 0000000..8b4f26e --- /dev/null +++ b/src/12df35ad-2d44-4c4c-a7d5-a3350932a520/settings.json @@ -0,0 +1,27 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "0", + "guid": "12df35ad-2d44-4c4c-a7d5-a3350932a520", + "implements": null, + "load_selection": null, + "name": "Groups", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Field.Groups", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + }, + "use_selection1": { + "use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Field.Groups", + "description": "Compiler Field Groups\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": "use Joomla\\CMS\\Factory;", + "composer": "" +} \ No newline at end of file diff --git a/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/README.md b/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/README.md new file mode 100644 index 0000000..236ce8b --- /dev/null +++ b/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/README.md @@ -0,0 +1,59 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class SiteFieldData (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class SiteFieldData << (F,LightGreen) >> #RoyalBlue { + # Config $config + # SiteFields $sitefields + # SiteField $sitefield + # array $decode + # array $textareas + + __construct(Config $config, SiteFields $sitefields, ...) + + set(string $view, string $field, ...) : void +} + +note right of SiteFieldData::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + SiteFields $sitefields + SiteField $sitefield +end note + +note right of SiteFieldData::set + set the site field data needed + + return: void + + arguments: + string $view + string $field + string $set + string $type +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/code.php b/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/code.php new file mode 100644 index 0000000..82d1659 --- /dev/null +++ b/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/code.php @@ -0,0 +1,154 @@ + + * @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\Compiler\Creator; + + +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteFieldData as SiteField; + + +/** + * Site Field Data Creator Class + * + * @since 3.2.0 + */ +final class SiteFieldData +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The SiteFields Class. + * + * @var SiteFields + * @since 3.2.0 + */ + protected SiteFields $sitefields; + + /** + * The SiteFieldData Class. + * + * @var SiteField + * @since 3.2.0 + */ + protected SiteField $sitefield; + + /** + * The decoding options + * + * @var array + * @since 3.2.0 + */ + protected array $decode = [ + 'json', + 'base64', + 'basic_encryption', + 'whmcs_encryption', + 'medium_encryption', + 'expert_mode' + ]; + + /** + * The text areas + * + * @var array + * @since 3.2.0 + */ + protected array $textareas = [ + 'textarea', + 'editor' + ]; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param SiteFields $sitefields The SiteFields Class. + * @param SiteField $sitefield The SiteFieldData Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, SiteFields $sitefields, + SiteField $sitefield) + { + $this->config = $config; + $this->sitefields = $sitefields; + $this->sitefield = $sitefield; + } + + /** + * set the site field data needed + * + * @param string $view The single edit view code name + * @param string $field The field name + * @param string $set The decoding set this field belongs to + * @param string $type The field type + * + * @return void + * + */ + public function set(string $view, string $field, string $set, string $type): void + { + if (($site_fields = $this->sitefields->get($view . '.' . $field)) !== null) + { + foreach ($site_fields as $codeString => $site_field) + { + // get the code array + $codeArray = explode('___', (string) $codeString); + // set the code + $code = trim($codeArray[0]); + // set the path + $path = $site_field['site'] . '.' . $code . '.' . $site_field['as'] . '.' . $site_field['key']; + + // set the decoding methods + if (in_array($set, $this->decode)) + { + if ($this->sitefield->exists('decode.' . $path . '.decode')) + { + if (!$this->sitefield->inArray($set, 'decode.' . $path . '.decode')) + { + $this->sitefield->add('decode.' . $path . '.decode', $set, true); + } + } + else + { + $this->sitefield->set('decode.' . $path, [ + 'decode' => [$set], + 'type' => $type, + 'admin_view' => $view + ]); + } + } + + // set the uikit checker + if ((2 == $this->config->uikit || 1 == $this->config->uikit) + && in_array($type, $this->textareas)) + { + $this->sitefield->add('uikit.' . $path, (array) $site_field, true); + } + + // set the text area checker + if (in_array($type, $this->textareas)) + { + $this->sitefield->add('textareas.' . $path, (array) $site_field, true); + } + } + } + } +} + diff --git a/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/code.power b/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/code.power new file mode 100644 index 0000000..e017f48 --- /dev/null +++ b/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/code.power @@ -0,0 +1,126 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The SiteFields Class. + * + * @var SiteFields + * @since 3.2.0 + */ + protected SiteFields $sitefields; + + /** + * The SiteFieldData Class. + * + * @var SiteField + * @since 3.2.0 + */ + protected SiteField $sitefield; + + /** + * The decoding options + * + * @var array + * @since 3.2.0 + */ + protected array $decode = [ + 'json', + 'base64', + 'basic_encryption', + 'whmcs_encryption', + 'medium_encryption', + 'expert_mode' + ]; + + /** + * The text areas + * + * @var array + * @since 3.2.0 + */ + protected array $textareas = [ + 'textarea', + 'editor' + ]; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param SiteFields $sitefields The SiteFields Class. + * @param SiteField $sitefield The SiteFieldData Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, SiteFields $sitefields, + SiteField $sitefield) + { + $this->config = $config; + $this->sitefields = $sitefields; + $this->sitefield = $sitefield; + } + + /** + * set the site field data needed + * + * @param string $view The single edit view code name + * @param string $field The field name + * @param string $set The decoding set this field belongs to + * @param string $type The field type + * + * @return void + * + */ + public function set(string $view, string $field, string $set, string $type): void + { + if (($site_fields = $this->sitefields->get($view . '.' . $field)) !== null) + { + foreach ($site_fields as $codeString => $site_field) + { + // get the code array + $codeArray = explode('___', (string) $codeString); + // set the code + $code = trim($codeArray[0]); + // set the path + $path = $site_field['site'] . '.' . $code . '.' . $site_field['as'] . '.' . $site_field['key']; + + // set the decoding methods + if (in_array($set, $this->decode)) + { + if ($this->sitefield->exists('decode.' . $path . '.decode')) + { + if (!$this->sitefield->inArray($set, 'decode.' . $path . '.decode')) + { + $this->sitefield->add('decode.' . $path . '.decode', $set, true); + } + } + else + { + $this->sitefield->set('decode.' . $path, [ + 'decode' => [$set], + 'type' => $type, + 'admin_view' => $view + ]); + } + } + + // set the uikit checker + if ((2 == $this->config->uikit || 1 == $this->config->uikit) + && in_array($type, $this->textareas)) + { + $this->sitefield->add('uikit.' . $path, (array) $site_field, true); + } + + // set the text area checker + if (in_array($type, $this->textareas)) + { + $this->sitefield->add('textareas.' . $path, (array) $site_field, true); + } + } + } + } \ No newline at end of file diff --git a/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/settings.json b/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/settings.json new file mode 100644 index 0000000..7570e41 --- /dev/null +++ b/src/15b4addf-bf6b-4691-9c92-858c7de9c2c1/settings.json @@ -0,0 +1,31 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "15b4addf-bf6b-4691-9c92-858c7de9c2c1", + "implements": null, + "load_selection": null, + "name": "SiteFieldData", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.SiteFieldData", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe", + "as": "default" + }, + "use_selection2": { + "use": "33f5131e-4a5b-414b-95dd-d22227c2666d", + "as": "SiteField" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.SiteFieldData", + "description": "Site Field Data Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/17bf80af-3609-4f36-a520-be1a339c278b/README.md b/src/17bf80af-3609-4f36-a520-be1a339c278b/README.md new file mode 100644 index 0000000..46dc7da --- /dev/null +++ b/src/17bf80af-3609-4f36-a520-be1a339c278b/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ScriptMediaSwitch (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ScriptMediaSwitch << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/17bf80af-3609-4f36-a520-be1a339c278b/code.php b/src/17bf80af-3609-4f36-a520-be1a339c278b/code.php new file mode 100644 index 0000000..34986b3 --- /dev/null +++ b/src/17bf80af-3609-4f36-a520-be1a339c278b/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\InArray; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Script Media Switch Builder Class + * + * @since 3.2.0 + */ +final class ScriptMediaSwitch extends StorageRegistry implements Storageregistryinterface +{ + /** + * In Array + * + * @since 3.2.0 + */ + use InArray; +} + diff --git a/src/17bf80af-3609-4f36-a520-be1a339c278b/code.power b/src/17bf80af-3609-4f36-a520-be1a339c278b/code.power new file mode 100644 index 0000000..3a43b47 --- /dev/null +++ b/src/17bf80af-3609-4f36-a520-be1a339c278b/code.power @@ -0,0 +1,6 @@ + /** + * In Array + * + * @since 3.2.0 + */ + use InArray; \ No newline at end of file diff --git a/src/17bf80af-3609-4f36-a520-be1a339c278b/settings.json b/src/17bf80af-3609-4f36-a520-be1a339c278b/settings.json new file mode 100644 index 0000000..da33970 --- /dev/null +++ b/src/17bf80af-3609-4f36-a520-be1a339c278b/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "17bf80af-3609-4f36-a520-be1a339c278b", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ScriptMediaSwitch", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ScriptMediaSwitch", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "215b35ac-1b26-4838-bbcf-d1fdbbd9353f", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ScriptMediaSwitch", + "description": "Script Media Switch Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/README.md b/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/README.md new file mode 100644 index 0000000..5ed0334 --- /dev/null +++ b/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class SiteMainGet (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class SiteMainGet << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/code.php b/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/code.php new file mode 100644 index 0000000..b4cdf86 --- /dev/null +++ b/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Site Main Get Builder Class + * + * @since 3.2.0 + */ +final class SiteMainGet extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/code.power b/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/settings.json b/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/settings.json new file mode 100644 index 0000000..e79a91e --- /dev/null +++ b/src/17fa7789-a7d1-465e-b733-8c8d53f5ca1b/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "17fa7789-a7d1-465e-b733-8c8d53f5ca1b", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "SiteMainGet", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.SiteMainGet", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.SiteMainGet", + "description": "Site Main Get Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/README.md b/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/README.md new file mode 100644 index 0000000..cf3b30d --- /dev/null +++ b/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class DynamicFields (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class DynamicFields << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/code.php b/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/code.php new file mode 100644 index 0000000..c550cc1 --- /dev/null +++ b/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\ToString; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Dynamic Fields Builder Class + * + * @since 3.2.0 + */ +final class DynamicFields extends StorageRegistry implements Storageregistryinterface +{ + /** + * To String Values + * + * @since 3.2.0 + */ + use ToString; +} + diff --git a/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/code.power b/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/code.power new file mode 100644 index 0000000..b9696bb --- /dev/null +++ b/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/code.power @@ -0,0 +1,6 @@ + /** + * To String Values + * + * @since 3.2.0 + */ + use ToString; \ No newline at end of file diff --git a/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/settings.json b/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/settings.json new file mode 100644 index 0000000..afdcfd8 --- /dev/null +++ b/src/1ae9a8e8-59f7-4844-a08d-9a4dce4be076/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "1ae9a8e8-59f7-4844-a08d-9a4dce4be076", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "DynamicFields", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.DynamicFields", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "7d494d91-ab60-43cd-aecf-d50e07f7f30e", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.DynamicFields", + "description": "Dynamic Fields Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/1d0fd857-12ec-4f47-ab1c-124d85748e24/code.php b/src/1d0fd857-12ec-4f47-ab1c-124d85748e24/code.php index 02c8cdb..9d994fe 100644 --- a/src/1d0fd857-12ec-4f47-ab1c-124d85748e24/code.php +++ b/src/1d0fd857-12ec-4f47-ab1c-124d85748e24/code.php @@ -66,15 +66,25 @@ class Updateserver if (isset($update['change_log']) && StringHelper::check($update['change_log']) && isset($update['version']) && StringHelper::check($update['version'])) { - $bucket[] = '# v' . $update['version'] . PHP_EOL . PHP_EOL . $update['change_log']; + $bucket[] = [ + 'version' => $update['version'], + 'change_log' => '# v' . $update['version'] . PHP_EOL . PHP_EOL . $update['change_log'] + ]; } } - if (ArrayHelper::check($bucket)) + // Sort bucket by version, newest at the top + usort($bucket, function ($a, $b) { + return version_compare($b['version'], $a['version']); + }); + + // Extract change logs from sorted bucket + $sorted_change_logs = array_column($bucket, 'change_log'); + + if (ArrayHelper::check($sorted_change_logs)) { - $item->changelog = implode(PHP_EOL . PHP_EOL, $bucket); + $item->changelog = implode(PHP_EOL . PHP_EOL, $sorted_change_logs); } - } - + } } diff --git a/src/1d0fd857-12ec-4f47-ab1c-124d85748e24/code.power b/src/1d0fd857-12ec-4f47-ab1c-124d85748e24/code.power index f4bfbaa..6600342 100644 --- a/src/1d0fd857-12ec-4f47-ab1c-124d85748e24/code.power +++ b/src/1d0fd857-12ec-4f47-ab1c-124d85748e24/code.power @@ -40,12 +40,23 @@ if (isset($update['change_log']) && StringHelper::check($update['change_log']) && isset($update['version']) && StringHelper::check($update['version'])) { - $bucket[] = '# v' . $update['version'] . PHP_EOL . PHP_EOL . $update['change_log']; + $bucket[] = [ + 'version' => $update['version'], + 'change_log' => '# v' . $update['version'] . PHP_EOL . PHP_EOL . $update['change_log'] + ]; } } - if (ArrayHelper::check($bucket)) + // Sort bucket by version, newest at the top + usort($bucket, function ($a, $b) { + return version_compare($b['version'], $a['version']); + }); + + // Extract change logs from sorted bucket + $sorted_change_logs = array_column($bucket, 'change_log'); + + if (ArrayHelper::check($sorted_change_logs)) { - $item->changelog = implode(PHP_EOL . PHP_EOL, $bucket); + $item->changelog = implode(PHP_EOL . PHP_EOL, $sorted_change_logs); } - } + } \ No newline at end of file diff --git a/src/1d967151-7c20-4ca7-9400-65233cdcd4db/README.md b/src/1d967151-7c20-4ca7-9400-65233cdcd4db/README.md index 8e5d4c1..2c99970 100644 --- a/src/1d967151-7c20-4ca7-9400-65233cdcd4db/README.md +++ b/src/1d967151-7c20-4ca7-9400-65233cdcd4db/README.md @@ -6,7 +6,16 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -> Error adding class diagram +# class Files (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Utilities** +> extends: **BaseRegistry** +```uml +@startuml +class Files #Gold { +} + +@enduml +``` --- ``` diff --git a/src/1f086665-c007-4085-b363-3a118659ff1b/README.md b/src/1f086665-c007-4085-b363-3a118659ff1b/README.md new file mode 100644 index 0000000..8eddbb2 --- /dev/null +++ b/src/1f086665-c007-4085-b363-3a118659ff1b/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ItemsMethodEximportString (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ItemsMethodEximportString << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/1f086665-c007-4085-b363-3a118659ff1b/code.php b/src/1f086665-c007-4085-b363-3a118659ff1b/code.php new file mode 100644 index 0000000..c51672d --- /dev/null +++ b/src/1f086665-c007-4085-b363-3a118659ff1b/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Items Method Eximport String Builder Class + * + * @since 3.2.0 + */ +final class ItemsMethodEximportString extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/1f086665-c007-4085-b363-3a118659ff1b/code.power b/src/1f086665-c007-4085-b363-3a118659ff1b/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/1f086665-c007-4085-b363-3a118659ff1b/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/1f086665-c007-4085-b363-3a118659ff1b/settings.json b/src/1f086665-c007-4085-b363-3a118659ff1b/settings.json new file mode 100644 index 0000000..e07050b --- /dev/null +++ b/src/1f086665-c007-4085-b363-3a118659ff1b/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "1f086665-c007-4085-b363-3a118659ff1b", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ItemsMethodEximportString", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ItemsMethodEximportString", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ItemsMethodEximportString", + "description": "Items Method Eximport String Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/1f86db0f-e271-45df-8795-3e503ec76698/README.md b/src/1f86db0f-e271-45df-8795-3e503ec76698/README.md new file mode 100644 index 0000000..f5510cd --- /dev/null +++ b/src/1f86db0f-e271-45df-8795-3e503ec76698/README.md @@ -0,0 +1,89 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Load (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Database** +```uml +@startuml +class Load << (F,LightGreen) >> #RoyalBlue { + # Model $model + # Database $load + + __construct(Model $model, Database $load) + + value(array $keys, string $field) : mixed + + item(array $keys) : ?object + + items(array $keys) : ?array + - prefix(array $keys) : array +} + +note right of Load::__construct + Constructor + + since: 2.0.1 +end note + +note right of Load::value + Get a value from a given table +Example: $this->value( +[ +'guid' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' +], 'value_key' +); + + since: 2.0.1 + return: mixed +end note + +note right of Load::item + Get values from a given table +Example: $this->item( +[ +'guid' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' +] +); + + since: 2.0.1 + return: ?object +end note + +note right of Load::items + Get values from a given table +Example: $this->items( +[ +'guid' => [ +'operator' => 'IN', +'value' => [''xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'', ''xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx''] +] +] +); +Example: $this->items($ids, 'table_name'); + + since: 2.0.1 + return: ?array +end note + +note right of Load::prefix + Add prefix to the keys + + since: 2.0.1 + return: array +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/1f86db0f-e271-45df-8795-3e503ec76698/code.php b/src/1f86db0f-e271-45df-8795-3e503ec76698/code.php new file mode 100644 index 0000000..42f5632 --- /dev/null +++ b/src/1f86db0f-e271-45df-8795-3e503ec76698/code.php @@ -0,0 +1,158 @@ + + * @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\Power\Database; + + +use VDM\Joomla\Componentbuilder\Power\Model\Load as Model; +use VDM\Joomla\Database\Load as Database; + + +/** + * Power Database Load + * + * @since 2.0.1 + */ +final class Load +{ + /** + * Model Load + * + * @var Model + * @since 2.0.1 + */ + protected Model $model; + + /** + * Database Load + * + * @var Database + * @since 2.0.1 + */ + protected Database $load; + + /** + * Constructor + * + * @param Table $table The core table object. + * @param Model $model The model object. + * @param Database $load The database object. + * + * @since 2.0.1 + */ + public function __construct(Model $model, Database $load) + { + $this->model = $model; + $this->load = $load; + } + + /** + * Get a value from a given table + * Example: $this->value( + * [ + * 'guid' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' + * ], 'value_key' + * ); + * + * @param array $keys The item keys + * @param string $field The field key + * @param string $table The table + * + * @return mixed + * @since 2.0.1 + */ + public function value(array $keys, string $field) + { + return $this->model->value( + $this->load->value( + ["a.${field}" => $field], + ['a' => 'power'], + $this->prefix($keys) + ), + $field, + 'power' + ); + } + + /** + * Get values from a given table + * Example: $this->item( + * [ + * 'guid' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' + * ] + * ); + * + * @param array $keys The item keys + * @param string $table The table + * + * @return object|null + * @since 2.0.1 + */ + public function item(array $keys): ?object + { + return $this->model->item( + $this->load->item( + ['all' => 'a.*'], + ['a' => 'power'], + $this->prefix($keys) + ), + 'power' + ); + } + + /** + * Get values from a given table + * Example: $this->items( + * [ + * 'guid' => [ + * 'operator' => 'IN', + * 'value' => [''xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'', ''xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx''] + * ] + * ] + * ); + * Example: $this->items($ids, 'table_name'); + * + * @param array $keys The item keys + * @param string $table The table + * + * @return array|null + * @since 2.0.1 + */ + public function items(array $keys): ?array + { + return $this->model->items( + $this->load->items( + ['all' => 'a.*'], ['a' => 'power'], $this->prefix($keys) + ), + 'power' + ); + } + + /** + * Add prefix to the keys + * + * @param array $keys The query keys + * + * @return array + * @since 2.0.1 + */ + private function prefix(array &$keys): array + { + // update the key values + $bucket = []; + foreach ($keys as $k => $v) + { + $bucket['a.' . $k] = $v; + } + return $bucket; + } +} + diff --git a/src/1f86db0f-e271-45df-8795-3e503ec76698/code.power b/src/1f86db0f-e271-45df-8795-3e503ec76698/code.power new file mode 100644 index 0000000..1ea4253 --- /dev/null +++ b/src/1f86db0f-e271-45df-8795-3e503ec76698/code.power @@ -0,0 +1,131 @@ + /** + * Model Load + * + * @var Model + * @since 2.0.1 + */ + protected Model $model; + + /** + * Database Load + * + * @var Database + * @since 2.0.1 + */ + protected Database $load; + + /** + * Constructor + * + * @param Table $table The core table object. + * @param Model $model The model object. + * @param Database $load The database object. + * + * @since 2.0.1 + */ + public function __construct(Model $model, Database $load) + { + $this->model = $model; + $this->load = $load; + } + + /** + * Get a value from a given table + * Example: $this->value( + * [ + * 'guid' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' + * ], 'value_key' + * ); + * + * @param array $keys The item keys + * @param string $field The field key + * @param string $table The table + * + * @return mixed + * @since 2.0.1 + */ + public function value(array $keys, string $field) + { + return $this->model->value( + $this->load->value( + ["a.${field}" => $field], + ['a' => 'power'], + $this->prefix($keys) + ), + $field, + 'power' + ); + } + + /** + * Get values from a given table + * Example: $this->item( + * [ + * 'guid' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' + * ] + * ); + * + * @param array $keys The item keys + * @param string $table The table + * + * @return object|null + * @since 2.0.1 + */ + public function item(array $keys): ?object + { + return $this->model->item( + $this->load->item( + ['all' => 'a.*'], + ['a' => 'power'], + $this->prefix($keys) + ), + 'power' + ); + } + + /** + * Get values from a given table + * Example: $this->items( + * [ + * 'guid' => [ + * 'operator' => 'IN', + * 'value' => [''xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'', ''xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx''] + * ] + * ] + * ); + * Example: $this->items($ids, 'table_name'); + * + * @param array $keys The item keys + * @param string $table The table + * + * @return array|null + * @since 2.0.1 + */ + public function items(array $keys): ?array + { + return $this->model->items( + $this->load->items( + ['all' => 'a.*'], ['a' => 'power'], $this->prefix($keys) + ), + 'power' + ); + } + + /** + * Add prefix to the keys + * + * @param array $keys The query keys + * + * @return array + * @since 2.0.1 + */ + private function prefix(array &$keys): array + { + // update the key values + $bucket = []; + foreach ($keys as $k => $v) + { + $bucket['a.' . $k] = $v; + } + return $bucket; + } \ No newline at end of file diff --git a/src/1f86db0f-e271-45df-8795-3e503ec76698/settings.json b/src/1f86db0f-e271-45df-8795-3e503ec76698/settings.json new file mode 100644 index 0000000..7d5cc31 --- /dev/null +++ b/src/1f86db0f-e271-45df-8795-3e503ec76698/settings.json @@ -0,0 +1,27 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "1f86db0f-e271-45df-8795-3e503ec76698", + "implements": null, + "load_selection": null, + "name": "Load", + "power_version": "1.0.0", + "system_name": "JCB.Power.Database.Load", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "bb29a833-73f7-4283-9327-bc7e41f0723b", + "as": "Model" + }, + "use_selection1": { + "use": "06f8eada-d59b-441c-b287-0aea1793da5a", + "as": "Database" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Database.Load", + "description": "Power Database Load\r\n\r\n@since 2.0.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": "", + "composer": "" +} \ No newline at end of file diff --git a/src/202f748a-516b-4782-962e-ac9725c3cac4/README.md b/src/202f748a-516b-4782-962e-ac9725c3cac4/README.md new file mode 100644 index 0000000..3885f07 --- /dev/null +++ b/src/202f748a-516b-4782-962e-ac9725c3cac4/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class CustomList (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class CustomList << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/202f748a-516b-4782-962e-ac9725c3cac4/code.php b/src/202f748a-516b-4782-962e-ac9725c3cac4/code.php new file mode 100644 index 0000000..d8edc7c --- /dev/null +++ b/src/202f748a-516b-4782-962e-ac9725c3cac4/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Custom List Builder Class + * + * @since 3.2.0 + */ +final class CustomList extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/202f748a-516b-4782-962e-ac9725c3cac4/code.power b/src/202f748a-516b-4782-962e-ac9725c3cac4/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/202f748a-516b-4782-962e-ac9725c3cac4/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/202f748a-516b-4782-962e-ac9725c3cac4/settings.json b/src/202f748a-516b-4782-962e-ac9725c3cac4/settings.json new file mode 100644 index 0000000..3684a3e --- /dev/null +++ b/src/202f748a-516b-4782-962e-ac9725c3cac4/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "202f748a-516b-4782-962e-ac9725c3cac4", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "CustomList", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.CustomList", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.CustomList", + "description": "Custom List Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/README.md b/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/README.md new file mode 100644 index 0000000..738deec --- /dev/null +++ b/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/README.md @@ -0,0 +1,46 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class PermissionAction (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **MapperDouble** +```uml +@startuml +class PermissionAction << (F,LightGreen) >> #RoyalBlue { + # firstKey(string $key) : string + # secondKey(string $key) : string +} + +note right of PermissionAction::firstKey + Model the first key + + since: 3.2.0 + return: string +end note + +note right of PermissionAction::secondKey + Model the second key + + since: 3.2.0 + return: string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/code.php b/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/code.php new file mode 100644 index 0000000..71a5150 --- /dev/null +++ b/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/code.php @@ -0,0 +1,52 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Componentbuilder\Interfaces\Mapperdoubleinterface; +use VDM\Joomla\Componentbuilder\Abstraction\MapperDouble; + + +/** + * Permission Actions Builder Class + * + * @since 3.2.0 + */ +final class PermissionAction extends MapperDouble implements Mapperdoubleinterface +{ + /** + * Model the first key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function firstKey(string $key): string + { + return $key; + } + + /** + * Model the second key + * + * @param string $key The second key to model + * + * @return string + * @since 3.2.0 + */ + protected function secondKey(string $key): string + { + return $key; + } +} + diff --git a/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/code.power b/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/code.power new file mode 100644 index 0000000..2fc53e5 --- /dev/null +++ b/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/code.power @@ -0,0 +1,25 @@ + /** + * Model the first key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function firstKey(string $key): string + { + return $key; + } + + /** + * Model the second key + * + * @param string $key The second key to model + * + * @return string + * @since 3.2.0 + */ + protected function secondKey(string $key): string + { + return $key; + } \ No newline at end of file diff --git a/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/settings.json b/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/settings.json new file mode 100644 index 0000000..e62b2e4 --- /dev/null +++ b/src/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "4d4e76e9-12d9-4d19-b58c-b88974b2586a", + "guid": "2528f2bb-6ebc-4d55-9a9d-23ef58534c1a", + "implements": [ + "fbc58009-fa16-4d49-a0dd-419c3b62d42f" + ], + "load_selection": null, + "name": "PermissionAction", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.PermissionAction", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.PermissionAction", + "description": "Permission Actions Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/28cac2bb-df04-454f-b4d6-923b573eb94e/README.md b/src/28cac2bb-df04-454f-b4d6-923b573eb94e/README.md new file mode 100644 index 0000000..7215d3a --- /dev/null +++ b/src/28cac2bb-df04-454f-b4d6-923b573eb94e/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ModelWhmcsField (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ModelWhmcsField << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/28cac2bb-df04-454f-b4d6-923b573eb94e/code.php b/src/28cac2bb-df04-454f-b4d6-923b573eb94e/code.php new file mode 100644 index 0000000..43e4bc5 --- /dev/null +++ b/src/28cac2bb-df04-454f-b4d6-923b573eb94e/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Whmcs Field Model Builder Class + * + * @since 3.2.0 + */ +final class ModelWhmcsField extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/28cac2bb-df04-454f-b4d6-923b573eb94e/code.power b/src/28cac2bb-df04-454f-b4d6-923b573eb94e/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/28cac2bb-df04-454f-b4d6-923b573eb94e/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/28cac2bb-df04-454f-b4d6-923b573eb94e/settings.json b/src/28cac2bb-df04-454f-b4d6-923b573eb94e/settings.json new file mode 100644 index 0000000..f03d616 --- /dev/null +++ b/src/28cac2bb-df04-454f-b4d6-923b573eb94e/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "28cac2bb-df04-454f-b4d6-923b573eb94e", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ModelWhmcsField", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ModelWhmcsField", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ModelWhmcsField", + "description": "Whmcs Field Model Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/2ad31f74-f579-499d-b98b-c4f54fd615dd/README.md b/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/README.md deleted file mode 100644 index 3ec6565..0000000 --- a/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/README.md +++ /dev/null @@ -1,101 +0,0 @@ -``` -██████╗ ██████╗ ██╗ ██╗███████╗██████╗ -██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ -██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ -██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ -██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ -╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ -``` -# interface LoadInterface (Details) -> namespace: **VDM\Joomla\Componentbuilder\Interfaces** -```uml -@startuml -interface LoadInterface #Lavender { - + rows(array $select, array $tables, ...) : ?array - + items(array $select, array $tables, ...) : ?array - + row(array $select, array $tables, ...) : ?array - + item(array $select, array $tables, ...) : ?object - + value(array $select, array $tables, ...) : mixed -} - -note right of LoadInterface::rows - Load data rows as an array of associated arrays - - since: 3.2.0 - return: ?array - - arguments: - array $select - array $tables - ?array $where = null - ?array $order = null - ?int $limit = null -end note - -note right of LoadInterface::items - Load data rows as an array of objects - - since: 3.2.0 - return: ?array - - arguments: - array $select - array $tables - ?array $where = null - ?array $order = null - ?int $limit = null -end note - -note right of LoadInterface::row - Load data row as an associated array - - since: 3.2.0 - return: ?array - - arguments: - array $select - array $tables - ?array $where = null - ?array $order = null -end note - -note right of LoadInterface::item - Load data row as an object - - since: 3.2.0 - return: ?object - - arguments: - array $select - array $tables - ?array $where = null - ?array $order = null -end note - -note right of LoadInterface::value - Load one value from a row - - since: 3.2.0 - return: mixed - - arguments: - array $select - array $tables - ?array $where = null - ?array $order = null -end note - -@enduml -``` - ---- -``` - ██╗ ██████╗██████╗ - ██║██╔════╝██╔══██╗ - ██║██║ ██████╔╝ -██ ██║██║ ██╔══██╗ -╚█████╔╝╚██████╗██████╔╝ - ╚════╝ ╚═════╝╚═════╝ -``` -> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) - diff --git a/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/code.php b/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/code.php deleted file mode 100644 index e8c4418..0000000 --- a/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/code.php +++ /dev/null @@ -1,92 +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\Interfaces; - - -/** - * Database Load Interface - * - * @since 3.2.0 - */ -interface LoadInterface -{ - /** - * Load data rows as an array of associated arrays - * - * @param array $select Array of selection keys - * @param array $tables Array of tables to search - * @param array|null $where Array of where key=>value match exist - * @param array|null $order Array of how to order the data - * @param int|null $limit Limit the number of values returned - * - * @return array|null - * @since 3.2.0 - **/ - public function rows(array $select, array $tables, ?array $where = null, - ?array $order = null, ?int $limit = null): ?array; - - /** - * Load data rows as an array of objects - * - * @param array $select Array of selection keys - * @param array $tables Array of tables to search - * @param array|null $where Array of where key=>value match exist - * @param array|null $order Array of how to order the data - * @param int|null $limit Limit the number of values returned - * - * @return array|null - * @since 3.2.0 - **/ - public function items(array $select, array $tables, ?array $where = null, - ?array $order = null, ?int $limit = null): ?array; - - /** - * Load data row as an associated array - * - * @param array $select Array of selection keys - * @param array $tables Array of tables to search - * @param array|null $where Array of where key=>value match exist - * @param array|null $order Array of how to order the data - * - * @return array|null - * @since 3.2.0 - **/ - public function row(array $select, array $tables, ?array $where = null, ?array $order = null): ?array; - - /** - * Load data row as an object - * - * @param array $select Array of selection keys - * @param array $tables Array of tables to search - * @param array|null $where Array of where key=>value match exist - * @param array|null $order Array of how to order the data - * - * @return object|null - * @since 3.2.0 - **/ - public function item(array $select, array $tables, ?array $where = null, ?array $order = null): ?object; - - /** - * Load one value from a row - * - * @param array $select Array of selection keys - * @param array $tables Array of tables to search - * @param array|null $where Array of where key=>value match exist - * @param array|null $order Array of how to order the data - * - * @return mixed - * @since 3.2.0 - **/ - public function value(array $select, array $tables, ?array $where = null, ?array $order = null); - -} - diff --git a/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/code.power b/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/code.power deleted file mode 100644 index bee23d7..0000000 --- a/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/code.power +++ /dev/null @@ -1,68 +0,0 @@ - /** - * Load data rows as an array of associated arrays - * - * @param array $select Array of selection keys - * @param array $tables Array of tables to search - * @param array|null $where Array of where key=>value match exist - * @param array|null $order Array of how to order the data - * @param int|null $limit Limit the number of values returned - * - * @return array|null - * @since 3.2.0 - **/ - public function rows(array $select, array $tables, ?array $where = null, - ?array $order = null, ?int $limit = null): ?array; - - /** - * Load data rows as an array of objects - * - * @param array $select Array of selection keys - * @param array $tables Array of tables to search - * @param array|null $where Array of where key=>value match exist - * @param array|null $order Array of how to order the data - * @param int|null $limit Limit the number of values returned - * - * @return array|null - * @since 3.2.0 - **/ - public function items(array $select, array $tables, ?array $where = null, - ?array $order = null, ?int $limit = null): ?array; - - /** - * Load data row as an associated array - * - * @param array $select Array of selection keys - * @param array $tables Array of tables to search - * @param array|null $where Array of where key=>value match exist - * @param array|null $order Array of how to order the data - * - * @return array|null - * @since 3.2.0 - **/ - public function row(array $select, array $tables, ?array $where = null, ?array $order = null): ?array; - - /** - * Load data row as an object - * - * @param array $select Array of selection keys - * @param array $tables Array of tables to search - * @param array|null $where Array of where key=>value match exist - * @param array|null $order Array of how to order the data - * - * @return object|null - * @since 3.2.0 - **/ - public function item(array $select, array $tables, ?array $where = null, ?array $order = null): ?object; - - /** - * Load one value from a row - * - * @param array $select Array of selection keys - * @param array $tables Array of tables to search - * @param array|null $where Array of where key=>value match exist - * @param array|null $order Array of how to order the data - * - * @return mixed - * @since 3.2.0 - **/ - public function value(array $select, array $tables, ?array $where = null, ?array $order = null); diff --git a/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/README.md b/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/README.md index dc36c7c..66b9794 100644 --- a/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/README.md +++ b/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/README.md @@ -6,15 +6,16 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Mysql (Details) -> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder\Update** +# class UpdateMysql (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **MapperSingle** ```uml @startuml -class Mysql #Gold { +class UpdateMysql #Gold { # key(string $key) : string } -note right of Mysql::key +note right of UpdateMysql::key Model the key since: 3.2.0 diff --git a/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/code.php b/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/code.php index 8f56a75..03bf577 100644 --- a/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/code.php +++ b/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/code.php @@ -9,7 +9,7 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ -namespace VDM\Joomla\Componentbuilder\Compiler\Builder\Update; +namespace VDM\Joomla\Componentbuilder\Compiler\Builder; use VDM\Joomla\Componentbuilder\Interfaces\Mappersingleinterface; @@ -21,7 +21,7 @@ use VDM\Joomla\Componentbuilder\Abstraction\MapperSingle; * * @since 3.2.0 */ -class Mysql extends MapperSingle implements Mappersingleinterface +class UpdateMysql extends MapperSingle implements Mappersingleinterface { /** * Model the key diff --git a/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/settings.json b/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/settings.json index fa76f94..9346e15 100644 --- a/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/settings.json +++ b/src/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9/settings.json @@ -7,12 +7,12 @@ "78527c29-24ad-4735-ad4c-ec33a4952d9b" ], "load_selection": null, - "name": "Mysql", + "name": "UpdateMysql", "power_version": "1.0.0", - "system_name": "JCB.Compiler.Builder.Update.Mysql", + "system_name": "JCB.Compiler.Builder.UpdateMysql", "type": "class", "use_selection": null, - "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Update.Mysql", + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.UpdateMysql", "description": "Compiler Builder Update Mysql\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/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/README.md b/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/README.md index c88e841..e0ef6f8 100644 --- a/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/README.md +++ b/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/README.md @@ -12,7 +12,93 @@ @startuml class Builder #Gold { + register(Container $container) : void - + getMysql(Container $container) : Mysql + + getAccessSwitch(Container $container) : AccessSwitch + + getAccessSwitchList(Container $container) : AccessSwitchList + + getAdminFilterType(Container $container) : AdminFilterType + + getAlias(Container $container) : Alias + + getBaseSixFour(Container $container) : BaseSixFour + + getCategory(Container $container) : Category + + getCategoryCode(Container $container) : CategoryCode + + getCategoryOtherName(Container $container) : CategoryOtherName + + getCheckBox(Container $container) : CheckBox + + getComponentFields(Container $container) : ComponentFields + + getCustomAlias(Container $container) : CustomAlias + + getCustomField(Container $container) : CustomField + + getCustomFieldLinks(Container $container) : CustomFieldLinks + + getCustomList(Container $container) : CustomList + + getCustomTabs(Container $container) : CustomTabs + + getDatabaseKeys(Container $container) : DatabaseKeys + + getDatabaseTables(Container $container) : DatabaseTables + + getDatabaseUniqueGuid(Container $container) : DatabaseUniqueGuid + + getDatabaseUniqueKeys(Container $container) : DatabaseUniqueKeys + + getDoNotEscape(Container $container) : DoNotEscape + + getDynamicFields(Container $container) : DynamicFields + + getExtensionCustomFields(Container $container) : ExtensionCustomFields + + getFieldGroupControl(Container $container) : FieldGroupControl + + getFieldNames(Container $container) : FieldNames + + getFieldRelations(Container $container) : FieldRelations + + getFilter(Container $container) : Filter + + getFootableScripts(Container $container) : FootableScripts + + getGetAsLookup(Container $container) : GetAsLookup + + getGetModule(Container $container) : GetModule + + getGoogleChart(Container $container) : GoogleChart + + getHasPermissions(Container $container) : HasPermissions + + getHiddenFields(Container $container) : HiddenFields + + getHistory(Container $container) : History + + getIntegerFields(Container $container) : IntegerFields + + getItemsMethodEximportString(Container $container) : ItemsMethodEximportString + + getItemsMethodListString(Container $container) : ItemsMethodListString + + getJsonItem(Container $container) : JsonItem + + getJsonItemArray(Container $container) : JsonItemArray + + getJsonString(Container $container) : JsonString + + getLayout(Container $container) : Layout + + getLayoutData(Container $container) : LayoutData + + getLibraryManager(Container $container) : LibraryManager + + getListFieldClass(Container $container) : ListFieldClass + + getListHeadOverride(Container $container) : ListHeadOverride + + getListJoin(Container $container) : ListJoin + + getLists(Container $container) : Lists + + getMainTextField(Container $container) : MainTextField + + getMetaData(Container $container) : MetaData + + getModelBasicField(Container $container) : ModelBasicField + + getModelExpertField(Container $container) : ModelExpertField + + getModelExpertFieldInitiator(Container $container) : ModelExpertFieldInitiator + + getModelMediumField(Container $container) : ModelMediumField + + getModelWhmcsField(Container $container) : ModelWhmcsField + + getMovedPublishingFields(Container $container) : MovedPublishingFields + + getMysqlTableSetting(Container $container) : MysqlTableSetting + + getNewPublishingFields(Container $container) : NewPublishingFields + + getOrderZero(Container $container) : OrderZero + + getOtherFilter(Container $container) : OtherFilter + + getOtherGroup(Container $container) : OtherGroup + + getOtherJoin(Container $container) : OtherJoin + + getOtherOrder(Container $container) : OtherOrder + + getOtherQuery(Container $container) : OtherQuery + + getOtherWhere(Container $container) : OtherWhere + + getPermissionAction(Container $container) : PermissionAction + + getPermissionComponent(Container $container) : PermissionComponent + + getPermissionCore(Container $container) : PermissionCore + + getPermissionDashboard(Container $container) : PermissionDashboard + + getPermissionGlobalAction(Container $container) : PermissionGlobalAction + + getPermissionViews(Container $container) : PermissionViews + + getScriptMediaSwitch(Container $container) : ScriptMediaSwitch + + getScriptUserSwitch(Container $container) : ScriptUserSwitch + + getSearch(Container $container) : Search + + getSelectionTranslation(Container $container) : SelectionTranslation + + getSiteDecrypt(Container $container) : SiteDecrypt + + getSiteDynamicGet(Container $container) : SiteDynamicGet + + getSiteEditView(Container $container) : SiteEditView + + getSiteFieldData(Container $container) : SiteFieldData + + getSiteFieldDecodeFilter(Container $container) : SiteFieldDecodeFilter + + getSiteFields(Container $container) : SiteFields + + getSiteMainGet(Container $container) : SiteMainGet + + getSort(Container $container) : Sort + + getTabCounter(Container $container) : TabCounter + + getTags(Container $container) : Tags + + getTemplateData(Container $container) : TemplateData + + getTitle(Container $container) : Title + + getUikitComp(Container $container) : UikitComp + + getUpdateMysql(Container $container) : UpdateMysql } note right of Builder::register @@ -22,11 +108,613 @@ note right of Builder::register return: void end note -note right of Builder::getMysql - Get the Compiler Builder Mysql +note left of Builder::getAccessSwitch + Get The AccessSwitch Class. since: 3.2.0 - return: Mysql + return: AccessSwitch +end note + +note right of Builder::getAccessSwitchList + Get The AccessSwitchList Class. + + since: 3.2.0 + return: AccessSwitchList +end note + +note left of Builder::getAdminFilterType + Get The AdminFilterType Class. + + since: 3.2.0 + return: AdminFilterType +end note + +note right of Builder::getAlias + Get The Alias Class. + + since: 3.2.0 + return: Alias +end note + +note left of Builder::getBaseSixFour + Get The BaseSixFour Class. + + since: 3.2.0 + return: BaseSixFour +end note + +note right of Builder::getCategory + Get The Category Class. + + since: 3.2.0 + return: Category +end note + +note left of Builder::getCategoryCode + Get The CategoryCode Class. + + since: 3.2.0 + return: CategoryCode +end note + +note right of Builder::getCategoryOtherName + Get The CategoryOtherName Class. + + since: 3.2.0 + return: CategoryOtherName +end note + +note left of Builder::getCheckBox + Get The CheckBox Class. + + since: 3.2.0 + return: CheckBox +end note + +note right of Builder::getComponentFields + Get The ComponentFields Class. + + since: 3.2.0 + return: ComponentFields +end note + +note left of Builder::getCustomAlias + Get The CustomAlias Class. + + since: 3.2.0 + return: CustomAlias +end note + +note right of Builder::getCustomField + Get The CustomField Class. + + since: 3.2.0 + return: CustomField +end note + +note left of Builder::getCustomFieldLinks + Get The CustomFieldLinks Class. + + since: 3.2.0 + return: CustomFieldLinks +end note + +note right of Builder::getCustomList + Get The CustomList Class. + + since: 3.2.0 + return: CustomList +end note + +note left of Builder::getCustomTabs + Get The CustomTabs Class. + + since: 3.2.0 + return: CustomTabs +end note + +note right of Builder::getDatabaseKeys + Get The DatabaseKeys Class. + + since: 3.2.0 + return: DatabaseKeys +end note + +note left of Builder::getDatabaseTables + Get The DatabaseTables Class. + + since: 3.2.0 + return: DatabaseTables +end note + +note right of Builder::getDatabaseUniqueGuid + Get The DatabaseUniqueGuid Class. + + since: 3.2.0 + return: DatabaseUniqueGuid +end note + +note left of Builder::getDatabaseUniqueKeys + Get The DatabaseUniqueKeys Class. + + since: 3.2.0 + return: DatabaseUniqueKeys +end note + +note right of Builder::getDoNotEscape + Get The DoNotEscape Class. + + since: 3.2.0 + return: DoNotEscape +end note + +note left of Builder::getDynamicFields + Get The DynamicFields Class. + + since: 3.2.0 + return: DynamicFields +end note + +note right of Builder::getExtensionCustomFields + Get The ExtensionCustomFields Class. + + since: 3.2.0 + return: ExtensionCustomFields +end note + +note left of Builder::getFieldGroupControl + Get The FieldGroupControl Class. + + since: 3.2.0 + return: FieldGroupControl +end note + +note right of Builder::getFieldNames + Get The FieldNames Class. + + since: 3.2.0 + return: FieldNames +end note + +note left of Builder::getFieldRelations + Get The FieldRelations Class. + + since: 3.2.0 + return: FieldRelations +end note + +note right of Builder::getFilter + Get The Filter Class. + + since: 3.2.0 + return: Filter +end note + +note left of Builder::getFootableScripts + Get The FootableScripts Class. + + since: 3.2.0 + return: FootableScripts +end note + +note right of Builder::getGetAsLookup + Get The GetAsLookup Class. + + since: 3.2.0 + return: GetAsLookup +end note + +note left of Builder::getGetModule + Get The GetModule Class. + + since: 3.2.0 + return: GetModule +end note + +note right of Builder::getGoogleChart + Get The GoogleChart Class. + + since: 3.2.0 + return: GoogleChart +end note + +note left of Builder::getHasPermissions + Get The HasPermissions Class. + + since: 3.2.0 + return: HasPermissions +end note + +note right of Builder::getHiddenFields + Get The HiddenFields Class. + + since: 3.2.0 + return: HiddenFields +end note + +note left of Builder::getHistory + Get The History Class. + + since: 3.2.0 + return: History +end note + +note right of Builder::getIntegerFields + Get The IntegerFields Class. + + since: 3.2.0 + return: IntegerFields +end note + +note left of Builder::getItemsMethodEximportString + Get The ItemsMethodEximportString Class. + + since: 3.2.0 + return: ItemsMethodEximportString +end note + +note right of Builder::getItemsMethodListString + Get The ItemsMethodListString Class. + + since: 3.2.0 + return: ItemsMethodListString +end note + +note left of Builder::getJsonItem + Get The JsonItem Class. + + since: 3.2.0 + return: JsonItem +end note + +note right of Builder::getJsonItemArray + Get The JsonItemArray Class. + + since: 3.2.0 + return: JsonItemArray +end note + +note left of Builder::getJsonString + Get The JsonString Class. + + since: 3.2.0 + return: JsonString +end note + +note right of Builder::getLayout + Get The Layout Class. + + since: 3.2.0 + return: Layout +end note + +note left of Builder::getLayoutData + Get The LayoutData Class. + + since: 3.2.0 + return: LayoutData +end note + +note right of Builder::getLibraryManager + Get The LibraryManager Class. + + since: 3.2.0 + return: LibraryManager +end note + +note left of Builder::getListFieldClass + Get The ListFieldClass Class. + + since: 3.2.0 + return: ListFieldClass +end note + +note right of Builder::getListHeadOverride + Get The ListHeadOverride Class. + + since: 3.2.0 + return: ListHeadOverride +end note + +note left of Builder::getListJoin + Get The ListJoin Class. + + since: 3.2.0 + return: ListJoin +end note + +note right of Builder::getLists + Get The Lists Class. + + since: 3.2.0 + return: Lists +end note + +note left of Builder::getMainTextField + Get The MainTextField Class. + + since: 3.2.0 + return: MainTextField +end note + +note right of Builder::getMetaData + Get The MetaData Class. + + since: 3.2.0 + return: MetaData +end note + +note left of Builder::getModelBasicField + Get The ModelBasicField Class. + + since: 3.2.0 + return: ModelBasicField +end note + +note right of Builder::getModelExpertField + Get The ModelExpertField Class. + + since: 3.2.0 + return: ModelExpertField +end note + +note left of Builder::getModelExpertFieldInitiator + Get The ModelExpertFieldInitiator Class. + + since: 3.2.0 + return: ModelExpertFieldInitiator +end note + +note right of Builder::getModelMediumField + Get The ModelMediumField Class. + + since: 3.2.0 + return: ModelMediumField +end note + +note left of Builder::getModelWhmcsField + Get The ModelWhmcsField Class. + + since: 3.2.0 + return: ModelWhmcsField +end note + +note right of Builder::getMovedPublishingFields + Get The MovedPublishingFields Class. + + since: 3.2.0 + return: MovedPublishingFields +end note + +note left of Builder::getMysqlTableSetting + Get The MysqlTableSetting Class. + + since: 3.2.0 + return: MysqlTableSetting +end note + +note right of Builder::getNewPublishingFields + Get The NewPublishingFields Class. + + since: 3.2.0 + return: NewPublishingFields +end note + +note left of Builder::getOrderZero + Get The OrderZero Class. + + since: 3.2.0 + return: OrderZero +end note + +note right of Builder::getOtherFilter + Get The OtherFilter Class. + + since: 3.2.0 + return: OtherFilter +end note + +note left of Builder::getOtherGroup + Get The OtherGroup Class. + + since: 3.2.0 + return: OtherGroup +end note + +note right of Builder::getOtherJoin + Get The OtherJoin Class. + + since: 3.2.0 + return: OtherJoin +end note + +note left of Builder::getOtherOrder + Get The OtherOrder Class. + + since: 3.2.0 + return: OtherOrder +end note + +note right of Builder::getOtherQuery + Get The OtherQuery Class. + + since: 3.2.0 + return: OtherQuery +end note + +note left of Builder::getOtherWhere + Get The OtherWhere Class. + + since: 3.2.0 + return: OtherWhere +end note + +note right of Builder::getPermissionAction + Get The PermissionAction Class. + + since: 3.2.0 + return: PermissionAction +end note + +note left of Builder::getPermissionComponent + Get The PermissionComponent Class. + + since: 3.2.0 + return: PermissionComponent +end note + +note right of Builder::getPermissionCore + Get The PermissionCore Class. + + since: 3.2.0 + return: PermissionCore +end note + +note left of Builder::getPermissionDashboard + Get The PermissionDashboard Class. + + since: 3.2.0 + return: PermissionDashboard +end note + +note right of Builder::getPermissionGlobalAction + Get The PermissionGlobalAction Class. + + since: 3.2.0 + return: PermissionGlobalAction +end note + +note left of Builder::getPermissionViews + Get The PermissionViews Class. + + since: 3.2.0 + return: PermissionViews +end note + +note right of Builder::getScriptMediaSwitch + Get The ScriptMediaSwitch Class. + + since: 3.2.0 + return: ScriptMediaSwitch +end note + +note left of Builder::getScriptUserSwitch + Get The ScriptUserSwitch Class. + + since: 3.2.0 + return: ScriptUserSwitch +end note + +note right of Builder::getSearch + Get The Search Class. + + since: 3.2.0 + return: Search +end note + +note left of Builder::getSelectionTranslation + Get The SelectionTranslation Class. + + since: 3.2.0 + return: SelectionTranslation +end note + +note right of Builder::getSiteDecrypt + Get The SiteDecrypt Class. + + since: 3.2.0 + return: SiteDecrypt +end note + +note left of Builder::getSiteDynamicGet + Get The SiteDynamicGet Class. + + since: 3.2.0 + return: SiteDynamicGet +end note + +note right of Builder::getSiteEditView + Get The SiteEditView Class. + + since: 3.2.0 + return: SiteEditView +end note + +note left of Builder::getSiteFieldData + Get The SiteFieldData Class. + + since: 3.2.0 + return: SiteFieldData +end note + +note right of Builder::getSiteFieldDecodeFilter + Get The SiteFieldDecodeFilter Class. + + since: 3.2.0 + return: SiteFieldDecodeFilter +end note + +note left of Builder::getSiteFields + Get The SiteFields Class. + + since: 3.2.0 + return: SiteFields +end note + +note right of Builder::getSiteMainGet + Get The SiteMainGet Class. + + since: 3.2.0 + return: SiteMainGet +end note + +note left of Builder::getSort + Get The Sort Class. + + since: 3.2.0 + return: Sort +end note + +note right of Builder::getTabCounter + Get The TabCounter Class. + + since: 3.2.0 + return: TabCounter +end note + +note left of Builder::getTags + Get The Tags Class. + + since: 3.2.0 + return: Tags +end note + +note right of Builder::getTemplateData + Get The TemplateData Class. + + since: 3.2.0 + return: TemplateData +end note + +note left of Builder::getTitle + Get The Title Class. + + since: 3.2.0 + return: Title +end note + +note right of Builder::getUikitComp + Get The UikitComp Class. + + since: 3.2.0 + return: UikitComp +end note + +note left of Builder::getUpdateMysql + Get The UpdateMysql Class. + + since: 3.2.0 + return: UpdateMysql end note @enduml diff --git a/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.php b/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.php index c33779c..374bb34 100644 --- a/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.php +++ b/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.php @@ -14,7 +14,93 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Service; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; -use VDM\Joomla\Componentbuilder\Compiler\Builder\Update\Mysql; +use VDM\Joomla\Componentbuilder\Compiler\Builder\AccessSwitch; +use VDM\Joomla\Componentbuilder\Compiler\Builder\AccessSwitchList; +use VDM\Joomla\Componentbuilder\Compiler\Builder\AdminFilterType; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Alias; +use VDM\Joomla\Componentbuilder\Compiler\Builder\BaseSixFour; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Category; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CategoryCode; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CategoryOtherName; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CheckBox; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ComponentFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomAlias; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomFieldLinks; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomList; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomTabs; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseKeys; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseTables; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseUniqueGuid; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseUniqueKeys; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DoNotEscape; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DynamicFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ExtensionCustomFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldGroupControl; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldNames; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldRelations; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Filter; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FootableScripts; +use VDM\Joomla\Componentbuilder\Compiler\Builder\GetAsLookup; +use VDM\Joomla\Componentbuilder\Compiler\Builder\GetModule; +use VDM\Joomla\Componentbuilder\Compiler\Builder\GoogleChart; +use VDM\Joomla\Componentbuilder\Compiler\Builder\HasPermissions; +use VDM\Joomla\Componentbuilder\Compiler\Builder\HiddenFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\History; +use VDM\Joomla\Componentbuilder\Compiler\Builder\IntegerFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ItemsMethodEximportString; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ItemsMethodListString; +use VDM\Joomla\Componentbuilder\Compiler\Builder\JsonItem; +use VDM\Joomla\Componentbuilder\Compiler\Builder\JsonItemArray; +use VDM\Joomla\Componentbuilder\Compiler\Builder\JsonString; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Layout; +use VDM\Joomla\Componentbuilder\Compiler\Builder\LayoutData; +use VDM\Joomla\Componentbuilder\Compiler\Builder\LibraryManager; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ListFieldClass; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ListHeadOverride; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ListJoin; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Lists; +use VDM\Joomla\Componentbuilder\Compiler\Builder\MainTextField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\MetaData; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelBasicField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelExpertField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelExpertFieldInitiator; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelMediumField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelWhmcsField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\MovedPublishingFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\MysqlTableSetting; +use VDM\Joomla\Componentbuilder\Compiler\Builder\NewPublishingFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\OrderZero; +use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherFilter; +use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherGroup; +use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherJoin; +use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherOrder; +use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherQuery; +use VDM\Joomla\Componentbuilder\Compiler\Builder\OtherWhere; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionAction; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionComponent; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionCore; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionDashboard; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionGlobalAction; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionViews; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ScriptMediaSwitch; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ScriptUserSwitch; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Search; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SelectionTranslation; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteDecrypt; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteDynamicGet; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteEditView; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteFieldData; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteFieldDecodeFilter; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteMainGet; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Sort; +use VDM\Joomla\Componentbuilder\Compiler\Builder\TabCounter; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Tags; +use VDM\Joomla\Componentbuilder\Compiler\Builder\TemplateData; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Title; +use VDM\Joomla\Componentbuilder\Compiler\Builder\UikitComp; +use VDM\Joomla\Componentbuilder\Compiler\Builder\UpdateMysql; /** @@ -24,32 +110,1407 @@ use VDM\Joomla\Componentbuilder\Compiler\Builder\Update\Mysql; */ class Builder implements ServiceProviderInterface { - /** - * Registers the service provider with a DI container. - * - * @param Container $container The DI container. - * - * @return void - * @since 3.2.0 - */ - public function register(Container $container) - { - $container->alias(Mysql::class, 'Builder.Update.Mysql') - ->share('Builder.Update.Mysql', [$this, 'getMysql'], true); - } - - /** - * Get the Compiler Builder Mysql - * - * @param Container $container The DI container. - * - * @return Mysql - * @since 3.2.0 - */ - public function getMysql(Container $container): Mysql - { - return new Mysql(); - } + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(AccessSwitch::class, 'Compiler.Builder.Access.Switch') + ->share('Compiler.Builder.Access.Switch', [$this, 'getAccessSwitch'], true); + $container->alias(AccessSwitchList::class, 'Compiler.Builder.Access.Switch.List') + ->share('Compiler.Builder.Access.Switch.List', [$this, 'getAccessSwitchList'], true); + + $container->alias(AdminFilterType::class, 'Compiler.Builder.Admin.Filter.Type') + ->share('Compiler.Builder.Admin.Filter.Type', [$this, 'getAdminFilterType'], true); + + $container->alias(Alias::class, 'Compiler.Builder.Alias') + ->share('Compiler.Builder.Alias', [$this, 'getAlias'], true); + + $container->alias(BaseSixFour::class, 'Compiler.Builder.Base.Six.Four') + ->share('Compiler.Builder.Base.Six.Four', [$this, 'getBaseSixFour'], true); + + $container->alias(Category::class, 'Compiler.Builder.Category') + ->share('Compiler.Builder.Category', [$this, 'getCategory'], true); + + $container->alias(CategoryCode::class, 'Compiler.Builder.Category.Code') + ->share('Compiler.Builder.Category.Code', [$this, 'getCategoryCode'], true); + + $container->alias(CategoryOtherName::class, 'Compiler.Builder.Category.Other.Name') + ->share('Compiler.Builder.Category.Other.Name', [$this, 'getCategoryOtherName'], true); + + $container->alias(CheckBox::class, 'Compiler.Builder.Check.Box') + ->share('Compiler.Builder.Check.Box', [$this, 'getCheckBox'], true); + + $container->alias(ComponentFields::class, 'Compiler.Builder.Component.Fields') + ->share('Compiler.Builder.Component.Fields', [$this, 'getComponentFields'], true); + + $container->alias(CustomAlias::class, 'Compiler.Builder.Custom.Alias') + ->share('Compiler.Builder.Custom.Alias', [$this, 'getCustomAlias'], true); + + $container->alias(CustomField::class, 'Compiler.Builder.Custom.Field') + ->share('Compiler.Builder.Custom.Field', [$this, 'getCustomField'], true); + + $container->alias(CustomFieldLinks::class, 'Compiler.Builder.Custom.Field.Links') + ->share('Compiler.Builder.Custom.Field.Links', [$this, 'getCustomFieldLinks'], true); + + $container->alias(CustomList::class, 'Compiler.Builder.Custom.List') + ->share('Compiler.Builder.Custom.List', [$this, 'getCustomList'], true); + + $container->alias(CustomTabs::class, 'Compiler.Builder.Custom.Tabs') + ->share('Compiler.Builder.Custom.Tabs', [$this, 'getCustomTabs'], true); + + $container->alias(DatabaseKeys::class, 'Compiler.Builder.Database.Keys') + ->share('Compiler.Builder.Database.Keys', [$this, 'getDatabaseKeys'], true); + + $container->alias(DatabaseTables::class, 'Compiler.Builder.Database.Tables') + ->share('Compiler.Builder.Database.Tables', [$this, 'getDatabaseTables'], true); + + $container->alias(DatabaseUniqueGuid::class, 'Compiler.Builder.Database.Unique.Guid') + ->share('Compiler.Builder.Database.Unique.Guid', [$this, 'getDatabaseUniqueGuid'], true); + + $container->alias(DatabaseUniqueKeys::class, 'Compiler.Builder.Database.Unique.Keys') + ->share('Compiler.Builder.Database.Unique.Keys', [$this, 'getDatabaseUniqueKeys'], true); + + $container->alias(DoNotEscape::class, 'Compiler.Builder.Do.Not.Escape') + ->share('Compiler.Builder.Do.Not.Escape', [$this, 'getDoNotEscape'], true); + + $container->alias(DynamicFields::class, 'Compiler.Builder.Dynamic.Fields') + ->share('Compiler.Builder.Dynamic.Fields', [$this, 'getDynamicFields'], true); + + $container->alias(ExtensionCustomFields::class, 'Compiler.Builder.Extension.Custom.Fields') + ->share('Compiler.Builder.Extension.Custom.Fields', [$this, 'getExtensionCustomFields'], true); + + $container->alias(FieldGroupControl::class, 'Compiler.Builder.Field.Group.Control') + ->share('Compiler.Builder.Field.Group.Control', [$this, 'getFieldGroupControl'], true); + + $container->alias(FieldNames::class, 'Compiler.Builder.Field.Names') + ->share('Compiler.Builder.Field.Names', [$this, 'getFieldNames'], true); + + $container->alias(FieldRelations::class, 'Compiler.Builder.Field.Relations') + ->share('Compiler.Builder.Field.Relations', [$this, 'getFieldRelations'], true); + + $container->alias(Filter::class, 'Compiler.Builder.Filter') + ->share('Compiler.Builder.Filter', [$this, 'getFilter'], true); + + $container->alias(FootableScripts::class, 'Compiler.Builder.Footable.Scripts') + ->share('Compiler.Builder.Footable.Scripts', [$this, 'getFootableScripts'], true); + + $container->alias(GetAsLookup::class, 'Compiler.Builder.Get.As.Lookup') + ->share('Compiler.Builder.Get.As.Lookup', [$this, 'getGetAsLookup'], true); + + $container->alias(GetModule::class, 'Compiler.Builder.Get.Module') + ->share('Compiler.Builder.Get.Module', [$this, 'getGetModule'], true); + + $container->alias(GoogleChart::class, 'Compiler.Builder.Google.Chart') + ->share('Compiler.Builder.Google.Chart', [$this, 'getGoogleChart'], true); + + $container->alias(HasPermissions::class, 'Compiler.Builder.Has.Permissions') + ->share('Compiler.Builder.Has.Permissions', [$this, 'getHasPermissions'], true); + + $container->alias(HiddenFields::class, 'Compiler.Builder.Hidden.Fields') + ->share('Compiler.Builder.Hidden.Fields', [$this, 'getHiddenFields'], true); + + $container->alias(History::class, 'Compiler.Builder.History') + ->share('Compiler.Builder.History', [$this, 'getHistory'], true); + + $container->alias(IntegerFields::class, 'Compiler.Builder.Integer.Fields') + ->share('Compiler.Builder.Integer.Fields', [$this, 'getIntegerFields'], true); + + $container->alias(ItemsMethodEximportString::class, 'Compiler.Builder.Items.Method.Eximport.String') + ->share('Compiler.Builder.Items.Method.Eximport.String', [$this, 'getItemsMethodEximportString'], true); + + $container->alias(ItemsMethodListString::class, 'Compiler.Builder.Items.Method.List.String') + ->share('Compiler.Builder.Items.Method.List.String', [$this, 'getItemsMethodListString'], true); + + $container->alias(JsonItem::class, 'Compiler.Builder.Json.Item') + ->share('Compiler.Builder.Json.Item', [$this, 'getJsonItem'], true); + + $container->alias(JsonItemArray::class, 'Compiler.Builder.Json.Item.Array') + ->share('Compiler.Builder.Json.Item.Array', [$this, 'getJsonItemArray'], true); + + $container->alias(JsonString::class, 'Compiler.Builder.Json.String') + ->share('Compiler.Builder.Json.String', [$this, 'getJsonString'], true); + + $container->alias(Layout::class, 'Compiler.Builder.Layout') + ->share('Compiler.Builder.Layout', [$this, 'getLayout'], true); + + $container->alias(LayoutData::class, 'Compiler.Builder.Layout.Data') + ->share('Compiler.Builder.Layout.Data', [$this, 'getLayoutData'], true); + + $container->alias(LibraryManager::class, 'Compiler.Builder.Library.Manager') + ->share('Compiler.Builder.Library.Manager', [$this, 'getLibraryManager'], true); + + $container->alias(ListFieldClass::class, 'Compiler.Builder.List.Field.Class') + ->share('Compiler.Builder.List.Field.Class', [$this, 'getListFieldClass'], true); + + $container->alias(ListHeadOverride::class, 'Compiler.Builder.List.Head.Override') + ->share('Compiler.Builder.List.Head.Override', [$this, 'getListHeadOverride'], true); + + $container->alias(ListJoin::class, 'Compiler.Builder.List.Join') + ->share('Compiler.Builder.List.Join', [$this, 'getListJoin'], true); + + $container->alias(Lists::class, 'Compiler.Builder.Lists') + ->share('Compiler.Builder.Lists', [$this, 'getLists'], true); + + $container->alias(MainTextField::class, 'Compiler.Builder.Main.Text.Field') + ->share('Compiler.Builder.Main.Text.Field', [$this, 'getMainTextField'], true); + + $container->alias(MetaData::class, 'Compiler.Builder.Meta.Data') + ->share('Compiler.Builder.Meta.Data', [$this, 'getMetaData'], true); + + $container->alias(ModelBasicField::class, 'Compiler.Builder.Model.Basic.Field') + ->share('Compiler.Builder.Model.Basic.Field', [$this, 'getModelBasicField'], true); + + $container->alias(ModelExpertField::class, 'Compiler.Builder.Model.Expert.Field') + ->share('Compiler.Builder.Model.Expert.Field', [$this, 'getModelExpertField'], true); + + $container->alias(ModelExpertFieldInitiator::class, 'Compiler.Builder.Model.Expert.Field.Initiator') + ->share('Compiler.Builder.Model.Expert.Field.Initiator', [$this, 'getModelExpertFieldInitiator'], true); + + $container->alias(ModelMediumField::class, 'Compiler.Builder.Model.Medium.Field') + ->share('Compiler.Builder.Model.Medium.Field', [$this, 'getModelMediumField'], true); + + $container->alias(ModelWhmcsField::class, 'Compiler.Builder.Model.Whmcs.Field') + ->share('Compiler.Builder.Model.Whmcs.Field', [$this, 'getModelWhmcsField'], true); + + $container->alias(MovedPublishingFields::class, 'Compiler.Builder.Moved.Publishing.Fields') + ->share('Compiler.Builder.Moved.Publishing.Fields', [$this, 'getMovedPublishingFields'], true); + + $container->alias(MysqlTableSetting::class, 'Compiler.Builder.Mysql.Table.Setting') + ->share('Compiler.Builder.Mysql.Table.Setting', [$this, 'getMysqlTableSetting'], true); + + $container->alias(NewPublishingFields::class, 'Compiler.Builder.New.Publishing.Fields') + ->share('Compiler.Builder.New.Publishing.Fields', [$this, 'getNewPublishingFields'], true); + + $container->alias(OrderZero::class, 'Compiler.Builder.Order.Zero') + ->share('Compiler.Builder.Order.Zero', [$this, 'getOrderZero'], true); + + $container->alias(OtherFilter::class, 'Compiler.Builder.Other.Filter') + ->share('Compiler.Builder.Other.Filter', [$this, 'getOtherFilter'], true); + + $container->alias(OtherGroup::class, 'Compiler.Builder.Other.Group') + ->share('Compiler.Builder.Other.Group', [$this, 'getOtherGroup'], true); + + $container->alias(OtherJoin::class, 'Compiler.Builder.Other.Join') + ->share('Compiler.Builder.Other.Join', [$this, 'getOtherJoin'], true); + + $container->alias(OtherOrder::class, 'Compiler.Builder.Other.Order') + ->share('Compiler.Builder.Other.Order', [$this, 'getOtherOrder'], true); + + $container->alias(OtherQuery::class, 'Compiler.Builder.Other.Query') + ->share('Compiler.Builder.Other.Query', [$this, 'getOtherQuery'], true); + + $container->alias(OtherWhere::class, 'Compiler.Builder.Other.Where') + ->share('Compiler.Builder.Other.Where', [$this, 'getOtherWhere'], true); + + $container->alias(PermissionAction::class, 'Compiler.Builder.Permission.Action') + ->share('Compiler.Builder.Permission.Action', [$this, 'getPermissionAction'], true); + + $container->alias(PermissionComponent::class, 'Compiler.Builder.Permission.Component') + ->share('Compiler.Builder.Permission.Component', [$this, 'getPermissionComponent'], true); + + $container->alias(PermissionCore::class, 'Compiler.Builder.Permission.Core') + ->share('Compiler.Builder.Permission.Core', [$this, 'getPermissionCore'], true); + + $container->alias(PermissionDashboard::class, 'Compiler.Builder.Permission.Dashboard') + ->share('Compiler.Builder.Permission.Dashboard', [$this, 'getPermissionDashboard'], true); + + $container->alias(PermissionGlobalAction::class, 'Compiler.Builder.Permission.Global.Action') + ->share('Compiler.Builder.Permission.Global.Action', [$this, 'getPermissionGlobalAction'], true); + + $container->alias(PermissionViews::class, 'Compiler.Builder.Permission.Views') + ->share('Compiler.Builder.Permission.Views', [$this, 'getPermissionViews'], true); + + $container->alias(ScriptMediaSwitch::class, 'Compiler.Builder.Script.Media.Switch') + ->share('Compiler.Builder.Script.Media.Switch', [$this, 'getScriptMediaSwitch'], true); + + $container->alias(ScriptUserSwitch::class, 'Compiler.Builder.Script.User.Switch') + ->share('Compiler.Builder.Script.User.Switch', [$this, 'getScriptUserSwitch'], true); + + $container->alias(Search::class, 'Compiler.Builder.Search') + ->share('Compiler.Builder.Search', [$this, 'getSearch'], true); + + $container->alias(SelectionTranslation::class, 'Compiler.Builder.Selection.Translation') + ->share('Compiler.Builder.Selection.Translation', [$this, 'getSelectionTranslation'], true); + + $container->alias(SiteDecrypt::class, 'Compiler.Builder.Site.Decrypt') + ->share('Compiler.Builder.Site.Decrypt', [$this, 'getSiteDecrypt'], true); + + $container->alias(SiteDynamicGet::class, 'Compiler.Builder.Site.Dynamic.Get') + ->share('Compiler.Builder.Site.Dynamic.Get', [$this, 'getSiteDynamicGet'], true); + + $container->alias(SiteEditView::class, 'Compiler.Builder.Site.Edit.View') + ->share('Compiler.Builder.Site.Edit.View', [$this, 'getSiteEditView'], true); + + $container->alias(SiteFieldData::class, 'Compiler.Builder.Site.Field.Data') + ->share('Compiler.Builder.Site.Field.Data', [$this, 'getSiteFieldData'], true); + + $container->alias(SiteFieldDecodeFilter::class, 'Compiler.Builder.Site.Field.Decode.Filter') + ->share('Compiler.Builder.Site.Field.Decode.Filter', [$this, 'getSiteFieldDecodeFilter'], true); + + $container->alias(SiteFields::class, 'Compiler.Builder.Site.Fields') + ->share('Compiler.Builder.Site.Fields', [$this, 'getSiteFields'], true); + + $container->alias(SiteMainGet::class, 'Compiler.Builder.Site.Main.Get') + ->share('Compiler.Builder.Site.Main.Get', [$this, 'getSiteMainGet'], true); + + $container->alias(Sort::class, 'Compiler.Builder.Sort') + ->share('Compiler.Builder.Sort', [$this, 'getSort'], true); + + $container->alias(TabCounter::class, 'Compiler.Builder.Tab.Counter') + ->share('Compiler.Builder.Tab.Counter', [$this, 'getTabCounter'], true); + + $container->alias(Tags::class, 'Compiler.Builder.Tags') + ->share('Compiler.Builder.Tags', [$this, 'getTags'], true); + + $container->alias(TemplateData::class, 'Compiler.Builder.Template.Data') + ->share('Compiler.Builder.Template.Data', [$this, 'getTemplateData'], true); + + $container->alias(Title::class, 'Compiler.Builder.Title') + ->share('Compiler.Builder.Title', [$this, 'getTitle'], true); + + $container->alias(UikitComp::class, 'Compiler.Builder.Uikit.Comp') + ->share('Compiler.Builder.Uikit.Comp', [$this, 'getUikitComp'], true); + + $container->alias(UpdateMysql::class, 'Compiler.Builder.Update.Mysql') + ->share('Compiler.Builder.Update.Mysql', [$this, 'getUpdateMysql'], true); + } + + /** + * Get The AccessSwitch Class. + * + * @param Container $container The DI container. + * + * @return AccessSwitch + * @since 3.2.0 + */ + public function getAccessSwitch(Container $container): AccessSwitch + { + return new AccessSwitch(); + } + + /** + * Get The AccessSwitchList Class. + * + * @param Container $container The DI container. + * + * @return AccessSwitchList + * @since 3.2.0 + */ + public function getAccessSwitchList(Container $container): AccessSwitchList + { + return new AccessSwitchList(); + } + + /** + * Get The AdminFilterType Class. + * + * @param Container $container The DI container. + * + * @return AdminFilterType + * @since 3.2.0 + */ + public function getAdminFilterType(Container $container): AdminFilterType + { + return new AdminFilterType(); + } + + /** + * Get The Alias Class. + * + * @param Container $container The DI container. + * + * @return Alias + * @since 3.2.0 + */ + public function getAlias(Container $container): Alias + { + return new Alias(); + } + + /** + * Get The BaseSixFour Class. + * + * @param Container $container The DI container. + * + * @return BaseSixFour + * @since 3.2.0 + */ + public function getBaseSixFour(Container $container): BaseSixFour + { + return new BaseSixFour(); + } + + /** + * Get The Category Class. + * + * @param Container $container The DI container. + * + * @return Category + * @since 3.2.0 + */ + public function getCategory(Container $container): Category + { + return new Category(); + } + + /** + * Get The CategoryCode Class. + * + * @param Container $container The DI container. + * + * @return CategoryCode + * @since 3.2.0 + */ + public function getCategoryCode(Container $container): CategoryCode + { + return new CategoryCode(); + } + + /** + * Get The CategoryOtherName Class. + * + * @param Container $container The DI container. + * + * @return CategoryOtherName + * @since 3.2.0 + */ + public function getCategoryOtherName(Container $container): CategoryOtherName + { + return new CategoryOtherName(); + } + + /** + * Get The CheckBox Class. + * + * @param Container $container The DI container. + * + * @return CheckBox + * @since 3.2.0 + */ + public function getCheckBox(Container $container): CheckBox + { + return new CheckBox(); + } + + /** + * Get The ComponentFields Class. + * + * @param Container $container The DI container. + * + * @return ComponentFields + * @since 3.2.0 + */ + public function getComponentFields(Container $container): ComponentFields + { + return new ComponentFields(); + } + + /** + * Get The CustomAlias Class. + * + * @param Container $container The DI container. + * + * @return CustomAlias + * @since 3.2.0 + */ + public function getCustomAlias(Container $container): CustomAlias + { + return new CustomAlias(); + } + + /** + * Get The CustomField Class. + * + * @param Container $container The DI container. + * + * @return CustomField + * @since 3.2.0 + */ + public function getCustomField(Container $container): CustomField + { + return new CustomField(); + } + + /** + * Get The CustomFieldLinks Class. + * + * @param Container $container The DI container. + * + * @return CustomFieldLinks + * @since 3.2.0 + */ + public function getCustomFieldLinks(Container $container): CustomFieldLinks + { + return new CustomFieldLinks(); + } + + /** + * Get The CustomList Class. + * + * @param Container $container The DI container. + * + * @return CustomList + * @since 3.2.0 + */ + public function getCustomList(Container $container): CustomList + { + return new CustomList(); + } + + /** + * Get The CustomTabs Class. + * + * @param Container $container The DI container. + * + * @return CustomTabs + * @since 3.2.0 + */ + public function getCustomTabs(Container $container): CustomTabs + { + return new CustomTabs(); + } + + /** + * Get The DatabaseKeys Class. + * + * @param Container $container The DI container. + * + * @return DatabaseKeys + * @since 3.2.0 + */ + public function getDatabaseKeys(Container $container): DatabaseKeys + { + return new DatabaseKeys(); + } + + /** + * Get The DatabaseTables Class. + * + * @param Container $container The DI container. + * + * @return DatabaseTables + * @since 3.2.0 + */ + public function getDatabaseTables(Container $container): DatabaseTables + { + return new DatabaseTables(); + } + + /** + * Get The DatabaseUniqueGuid Class. + * + * @param Container $container The DI container. + * + * @return DatabaseUniqueGuid + * @since 3.2.0 + */ + public function getDatabaseUniqueGuid(Container $container): DatabaseUniqueGuid + { + return new DatabaseUniqueGuid(); + } + + /** + * Get The DatabaseUniqueKeys Class. + * + * @param Container $container The DI container. + * + * @return DatabaseUniqueKeys + * @since 3.2.0 + */ + public function getDatabaseUniqueKeys(Container $container): DatabaseUniqueKeys + { + return new DatabaseUniqueKeys(); + } + + /** + * Get The DoNotEscape Class. + * + * @param Container $container The DI container. + * + * @return DoNotEscape + * @since 3.2.0 + */ + public function getDoNotEscape(Container $container): DoNotEscape + { + return new DoNotEscape(); + } + + /** + * Get The DynamicFields Class. + * + * @param Container $container The DI container. + * + * @return DynamicFields + * @since 3.2.0 + */ + public function getDynamicFields(Container $container): DynamicFields + { + return new DynamicFields(); + } + + /** + * Get The ExtensionCustomFields Class. + * + * @param Container $container The DI container. + * + * @return ExtensionCustomFields + * @since 3.2.0 + */ + public function getExtensionCustomFields(Container $container): ExtensionCustomFields + { + return new ExtensionCustomFields(); + } + + /** + * Get The FieldGroupControl Class. + * + * @param Container $container The DI container. + * + * @return FieldGroupControl + * @since 3.2.0 + */ + public function getFieldGroupControl(Container $container): FieldGroupControl + { + return new FieldGroupControl(); + } + + /** + * Get The FieldNames Class. + * + * @param Container $container The DI container. + * + * @return FieldNames + * @since 3.2.0 + */ + public function getFieldNames(Container $container): FieldNames + { + return new FieldNames(); + } + + /** + * Get The FieldRelations Class. + * + * @param Container $container The DI container. + * + * @return FieldRelations + * @since 3.2.0 + */ + public function getFieldRelations(Container $container): FieldRelations + { + return new FieldRelations(); + } + + /** + * Get The Filter Class. + * + * @param Container $container The DI container. + * + * @return Filter + * @since 3.2.0 + */ + public function getFilter(Container $container): Filter + { + return new Filter(); + } + + /** + * Get The FootableScripts Class. + * + * @param Container $container The DI container. + * + * @return FootableScripts + * @since 3.2.0 + */ + public function getFootableScripts(Container $container): FootableScripts + { + return new FootableScripts(); + } + + /** + * Get The GetAsLookup Class. + * + * @param Container $container The DI container. + * + * @return GetAsLookup + * @since 3.2.0 + */ + public function getGetAsLookup(Container $container): GetAsLookup + { + return new GetAsLookup(); + } + + /** + * Get The GetModule Class. + * + * @param Container $container The DI container. + * + * @return GetModule + * @since 3.2.0 + */ + public function getGetModule(Container $container): GetModule + { + return new GetModule(); + } + + /** + * Get The GoogleChart Class. + * + * @param Container $container The DI container. + * + * @return GoogleChart + * @since 3.2.0 + */ + public function getGoogleChart(Container $container): GoogleChart + { + return new GoogleChart(); + } + + /** + * Get The HasPermissions Class. + * + * @param Container $container The DI container. + * + * @return HasPermissions + * @since 3.2.0 + */ + public function getHasPermissions(Container $container): HasPermissions + { + return new HasPermissions(); + } + + /** + * Get The HiddenFields Class. + * + * @param Container $container The DI container. + * + * @return HiddenFields + * @since 3.2.0 + */ + public function getHiddenFields(Container $container): HiddenFields + { + return new HiddenFields(); + } + + /** + * Get The History Class. + * + * @param Container $container The DI container. + * + * @return History + * @since 3.2.0 + */ + public function getHistory(Container $container): History + { + return new History(); + } + + /** + * Get The IntegerFields Class. + * + * @param Container $container The DI container. + * + * @return IntegerFields + * @since 3.2.0 + */ + public function getIntegerFields(Container $container): IntegerFields + { + return new IntegerFields(); + } + + /** + * Get The ItemsMethodEximportString Class. + * + * @param Container $container The DI container. + * + * @return ItemsMethodEximportString + * @since 3.2.0 + */ + public function getItemsMethodEximportString(Container $container): ItemsMethodEximportString + { + return new ItemsMethodEximportString(); + } + + /** + * Get The ItemsMethodListString Class. + * + * @param Container $container The DI container. + * + * @return ItemsMethodListString + * @since 3.2.0 + */ + public function getItemsMethodListString(Container $container): ItemsMethodListString + { + return new ItemsMethodListString(); + } + + /** + * Get The JsonItem Class. + * + * @param Container $container The DI container. + * + * @return JsonItem + * @since 3.2.0 + */ + public function getJsonItem(Container $container): JsonItem + { + return new JsonItem(); + } + + /** + * Get The JsonItemArray Class. + * + * @param Container $container The DI container. + * + * @return JsonItemArray + * @since 3.2.0 + */ + public function getJsonItemArray(Container $container): JsonItemArray + { + return new JsonItemArray(); + } + + /** + * Get The JsonString Class. + * + * @param Container $container The DI container. + * + * @return JsonString + * @since 3.2.0 + */ + public function getJsonString(Container $container): JsonString + { + return new JsonString(); + } + + /** + * Get The Layout Class. + * + * @param Container $container The DI container. + * + * @return Layout + * @since 3.2.0 + */ + public function getLayout(Container $container): Layout + { + return new Layout(); + } + + /** + * Get The LayoutData Class. + * + * @param Container $container The DI container. + * + * @return LayoutData + * @since 3.2.0 + */ + public function getLayoutData(Container $container): LayoutData + { + return new LayoutData(); + } + + /** + * Get The LibraryManager Class. + * + * @param Container $container The DI container. + * + * @return LibraryManager + * @since 3.2.0 + */ + public function getLibraryManager(Container $container): LibraryManager + { + return new LibraryManager(); + } + + /** + * Get The ListFieldClass Class. + * + * @param Container $container The DI container. + * + * @return ListFieldClass + * @since 3.2.0 + */ + public function getListFieldClass(Container $container): ListFieldClass + { + return new ListFieldClass(); + } + + /** + * Get The ListHeadOverride Class. + * + * @param Container $container The DI container. + * + * @return ListHeadOverride + * @since 3.2.0 + */ + public function getListHeadOverride(Container $container): ListHeadOverride + { + return new ListHeadOverride(); + } + + /** + * Get The ListJoin Class. + * + * @param Container $container The DI container. + * + * @return ListJoin + * @since 3.2.0 + */ + public function getListJoin(Container $container): ListJoin + { + return new ListJoin(); + } + + /** + * Get The Lists Class. + * + * @param Container $container The DI container. + * + * @return Lists + * @since 3.2.0 + */ + public function getLists(Container $container): Lists + { + return new Lists(); + } + + /** + * Get The MainTextField Class. + * + * @param Container $container The DI container. + * + * @return MainTextField + * @since 3.2.0 + */ + public function getMainTextField(Container $container): MainTextField + { + return new MainTextField(); + } + + /** + * Get The MetaData Class. + * + * @param Container $container The DI container. + * + * @return MetaData + * @since 3.2.0 + */ + public function getMetaData(Container $container): MetaData + { + return new MetaData(); + } + + /** + * Get The ModelBasicField Class. + * + * @param Container $container The DI container. + * + * @return ModelBasicField + * @since 3.2.0 + */ + public function getModelBasicField(Container $container): ModelBasicField + { + return new ModelBasicField(); + } + + /** + * Get The ModelExpertField Class. + * + * @param Container $container The DI container. + * + * @return ModelExpertField + * @since 3.2.0 + */ + public function getModelExpertField(Container $container): ModelExpertField + { + return new ModelExpertField(); + } + + /** + * Get The ModelExpertFieldInitiator Class. + * + * @param Container $container The DI container. + * + * @return ModelExpertFieldInitiator + * @since 3.2.0 + */ + public function getModelExpertFieldInitiator(Container $container): ModelExpertFieldInitiator + { + return new ModelExpertFieldInitiator(); + } + + /** + * Get The ModelMediumField Class. + * + * @param Container $container The DI container. + * + * @return ModelMediumField + * @since 3.2.0 + */ + public function getModelMediumField(Container $container): ModelMediumField + { + return new ModelMediumField(); + } + + /** + * Get The ModelWhmcsField Class. + * + * @param Container $container The DI container. + * + * @return ModelWhmcsField + * @since 3.2.0 + */ + public function getModelWhmcsField(Container $container): ModelWhmcsField + { + return new ModelWhmcsField(); + } + + /** + * Get The MovedPublishingFields Class. + * + * @param Container $container The DI container. + * + * @return MovedPublishingFields + * @since 3.2.0 + */ + public function getMovedPublishingFields(Container $container): MovedPublishingFields + { + return new MovedPublishingFields(); + } + + /** + * Get The MysqlTableSetting Class. + * + * @param Container $container The DI container. + * + * @return MysqlTableSetting + * @since 3.2.0 + */ + public function getMysqlTableSetting(Container $container): MysqlTableSetting + { + return new MysqlTableSetting(); + } + + /** + * Get The NewPublishingFields Class. + * + * @param Container $container The DI container. + * + * @return NewPublishingFields + * @since 3.2.0 + */ + public function getNewPublishingFields(Container $container): NewPublishingFields + { + return new NewPublishingFields(); + } + + /** + * Get The OrderZero Class. + * + * @param Container $container The DI container. + * + * @return OrderZero + * @since 3.2.0 + */ + public function getOrderZero(Container $container): OrderZero + { + return new OrderZero(); + } + + /** + * Get The OtherFilter Class. + * + * @param Container $container The DI container. + * + * @return OtherFilter + * @since 3.2.0 + */ + public function getOtherFilter(Container $container): OtherFilter + { + return new OtherFilter(); + } + + /** + * Get The OtherGroup Class. + * + * @param Container $container The DI container. + * + * @return OtherGroup + * @since 3.2.0 + */ + public function getOtherGroup(Container $container): OtherGroup + { + return new OtherGroup(); + } + + /** + * Get The OtherJoin Class. + * + * @param Container $container The DI container. + * + * @return OtherJoin + * @since 3.2.0 + */ + public function getOtherJoin(Container $container): OtherJoin + { + return new OtherJoin(); + } + + /** + * Get The OtherOrder Class. + * + * @param Container $container The DI container. + * + * @return OtherOrder + * @since 3.2.0 + */ + public function getOtherOrder(Container $container): OtherOrder + { + return new OtherOrder(); + } + + /** + * Get The OtherQuery Class. + * + * @param Container $container The DI container. + * + * @return OtherQuery + * @since 3.2.0 + */ + public function getOtherQuery(Container $container): OtherQuery + { + return new OtherQuery(); + } + + /** + * Get The OtherWhere Class. + * + * @param Container $container The DI container. + * + * @return OtherWhere + * @since 3.2.0 + */ + public function getOtherWhere(Container $container): OtherWhere + { + return new OtherWhere(); + } + + /** + * Get The PermissionAction Class. + * + * @param Container $container The DI container. + * + * @return PermissionAction + * @since 3.2.0 + */ + public function getPermissionAction(Container $container): PermissionAction + { + return new PermissionAction(); + } + + /** + * Get The PermissionComponent Class. + * + * @param Container $container The DI container. + * + * @return PermissionComponent + * @since 3.2.0 + */ + public function getPermissionComponent(Container $container): PermissionComponent + { + return new PermissionComponent(); + } + + /** + * Get The PermissionCore Class. + * + * @param Container $container The DI container. + * + * @return PermissionCore + * @since 3.2.0 + */ + public function getPermissionCore(Container $container): PermissionCore + { + return new PermissionCore(); + } + + /** + * Get The PermissionDashboard Class. + * + * @param Container $container The DI container. + * + * @return PermissionDashboard + * @since 3.2.0 + */ + public function getPermissionDashboard(Container $container): PermissionDashboard + { + return new PermissionDashboard(); + } + + /** + * Get The PermissionGlobalAction Class. + * + * @param Container $container The DI container. + * + * @return PermissionGlobalAction + * @since 3.2.0 + */ + public function getPermissionGlobalAction(Container $container): PermissionGlobalAction + { + return new PermissionGlobalAction(); + } + + /** + * Get The PermissionViews Class. + * + * @param Container $container The DI container. + * + * @return PermissionViews + * @since 3.2.0 + */ + public function getPermissionViews(Container $container): PermissionViews + { + return new PermissionViews(); + } + + /** + * Get The ScriptMediaSwitch Class. + * + * @param Container $container The DI container. + * + * @return ScriptMediaSwitch + * @since 3.2.0 + */ + public function getScriptMediaSwitch(Container $container): ScriptMediaSwitch + { + return new ScriptMediaSwitch(); + } + + /** + * Get The ScriptUserSwitch Class. + * + * @param Container $container The DI container. + * + * @return ScriptUserSwitch + * @since 3.2.0 + */ + public function getScriptUserSwitch(Container $container): ScriptUserSwitch + { + return new ScriptUserSwitch(); + } + + /** + * Get The Search Class. + * + * @param Container $container The DI container. + * + * @return Search + * @since 3.2.0 + */ + public function getSearch(Container $container): Search + { + return new Search(); + } + + /** + * Get The SelectionTranslation Class. + * + * @param Container $container The DI container. + * + * @return SelectionTranslation + * @since 3.2.0 + */ + public function getSelectionTranslation(Container $container): SelectionTranslation + { + return new SelectionTranslation(); + } + + /** + * Get The SiteDecrypt Class. + * + * @param Container $container The DI container. + * + * @return SiteDecrypt + * @since 3.2.0 + */ + public function getSiteDecrypt(Container $container): SiteDecrypt + { + return new SiteDecrypt(); + } + + /** + * Get The SiteDynamicGet Class. + * + * @param Container $container The DI container. + * + * @return SiteDynamicGet + * @since 3.2.0 + */ + public function getSiteDynamicGet(Container $container): SiteDynamicGet + { + return new SiteDynamicGet(); + } + + /** + * Get The SiteEditView Class. + * + * @param Container $container The DI container. + * + * @return SiteEditView + * @since 3.2.0 + */ + public function getSiteEditView(Container $container): SiteEditView + { + return new SiteEditView(); + } + + /** + * Get The SiteFieldData Class. + * + * @param Container $container The DI container. + * + * @return SiteFieldData + * @since 3.2.0 + */ + public function getSiteFieldData(Container $container): SiteFieldData + { + return new SiteFieldData(); + } + + /** + * Get The SiteFieldDecodeFilter Class. + * + * @param Container $container The DI container. + * + * @return SiteFieldDecodeFilter + * @since 3.2.0 + */ + public function getSiteFieldDecodeFilter(Container $container): SiteFieldDecodeFilter + { + return new SiteFieldDecodeFilter(); + } + + /** + * Get The SiteFields Class. + * + * @param Container $container The DI container. + * + * @return SiteFields + * @since 3.2.0 + */ + public function getSiteFields(Container $container): SiteFields + { + return new SiteFields(); + } + + /** + * Get The SiteMainGet Class. + * + * @param Container $container The DI container. + * + * @return SiteMainGet + * @since 3.2.0 + */ + public function getSiteMainGet(Container $container): SiteMainGet + { + return new SiteMainGet(); + } + + /** + * Get The Sort Class. + * + * @param Container $container The DI container. + * + * @return Sort + * @since 3.2.0 + */ + public function getSort(Container $container): Sort + { + return new Sort(); + } + + /** + * Get The TabCounter Class. + * + * @param Container $container The DI container. + * + * @return TabCounter + * @since 3.2.0 + */ + public function getTabCounter(Container $container): TabCounter + { + return new TabCounter(); + } + + /** + * Get The Tags Class. + * + * @param Container $container The DI container. + * + * @return Tags + * @since 3.2.0 + */ + public function getTags(Container $container): Tags + { + return new Tags(); + } + + /** + * Get The TemplateData Class. + * + * @param Container $container The DI container. + * + * @return TemplateData + * @since 3.2.0 + */ + public function getTemplateData(Container $container): TemplateData + { + return new TemplateData(); + } + + /** + * Get The Title Class. + * + * @param Container $container The DI container. + * + * @return Title + * @since 3.2.0 + */ + public function getTitle(Container $container): Title + { + return new Title(); + } + + /** + * Get The UikitComp Class. + * + * @param Container $container The DI container. + * + * @return UikitComp + * @since 3.2.0 + */ + public function getUikitComp(Container $container): UikitComp + { + return new UikitComp(); + } + + /** + * Get The UpdateMysql Class. + * + * @param Container $container The DI container. + * + * @return UpdateMysql + * @since 3.2.0 + */ + public function getUpdateMysql(Container $container): UpdateMysql + { + return new UpdateMysql(); + } } diff --git a/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.power b/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.power index 1973c3c..abf788c 100644 --- a/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.power +++ b/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/code.power @@ -1,26 +1,1402 @@ - /** - * Registers the service provider with a DI container. - * - * @param Container $container The DI container. - * - * @return void - * @since 3.2.0 - */ - public function register(Container $container) - { - $container->alias(Mysql::class, 'Builder.Update.Mysql') - ->share('Builder.Update.Mysql', [$this, 'getMysql'], true); - } - - /** - * Get the Compiler Builder Mysql - * - * @param Container $container The DI container. - * - * @return Mysql - * @since 3.2.0 - */ - public function getMysql(Container $container): Mysql - { - return new Mysql(); - } + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(AccessSwitch::class, 'Compiler.Builder.Access.Switch') + ->share('Compiler.Builder.Access.Switch', [$this, 'getAccessSwitch'], true); + + $container->alias(AccessSwitchList::class, 'Compiler.Builder.Access.Switch.List') + ->share('Compiler.Builder.Access.Switch.List', [$this, 'getAccessSwitchList'], true); + + $container->alias(AdminFilterType::class, 'Compiler.Builder.Admin.Filter.Type') + ->share('Compiler.Builder.Admin.Filter.Type', [$this, 'getAdminFilterType'], true); + + $container->alias(Alias::class, 'Compiler.Builder.Alias') + ->share('Compiler.Builder.Alias', [$this, 'getAlias'], true); + + $container->alias(BaseSixFour::class, 'Compiler.Builder.Base.Six.Four') + ->share('Compiler.Builder.Base.Six.Four', [$this, 'getBaseSixFour'], true); + + $container->alias(Category::class, 'Compiler.Builder.Category') + ->share('Compiler.Builder.Category', [$this, 'getCategory'], true); + + $container->alias(CategoryCode::class, 'Compiler.Builder.Category.Code') + ->share('Compiler.Builder.Category.Code', [$this, 'getCategoryCode'], true); + + $container->alias(CategoryOtherName::class, 'Compiler.Builder.Category.Other.Name') + ->share('Compiler.Builder.Category.Other.Name', [$this, 'getCategoryOtherName'], true); + + $container->alias(CheckBox::class, 'Compiler.Builder.Check.Box') + ->share('Compiler.Builder.Check.Box', [$this, 'getCheckBox'], true); + + $container->alias(ComponentFields::class, 'Compiler.Builder.Component.Fields') + ->share('Compiler.Builder.Component.Fields', [$this, 'getComponentFields'], true); + + $container->alias(CustomAlias::class, 'Compiler.Builder.Custom.Alias') + ->share('Compiler.Builder.Custom.Alias', [$this, 'getCustomAlias'], true); + + $container->alias(CustomField::class, 'Compiler.Builder.Custom.Field') + ->share('Compiler.Builder.Custom.Field', [$this, 'getCustomField'], true); + + $container->alias(CustomFieldLinks::class, 'Compiler.Builder.Custom.Field.Links') + ->share('Compiler.Builder.Custom.Field.Links', [$this, 'getCustomFieldLinks'], true); + + $container->alias(CustomList::class, 'Compiler.Builder.Custom.List') + ->share('Compiler.Builder.Custom.List', [$this, 'getCustomList'], true); + + $container->alias(CustomTabs::class, 'Compiler.Builder.Custom.Tabs') + ->share('Compiler.Builder.Custom.Tabs', [$this, 'getCustomTabs'], true); + + $container->alias(DatabaseKeys::class, 'Compiler.Builder.Database.Keys') + ->share('Compiler.Builder.Database.Keys', [$this, 'getDatabaseKeys'], true); + + $container->alias(DatabaseTables::class, 'Compiler.Builder.Database.Tables') + ->share('Compiler.Builder.Database.Tables', [$this, 'getDatabaseTables'], true); + + $container->alias(DatabaseUniqueGuid::class, 'Compiler.Builder.Database.Unique.Guid') + ->share('Compiler.Builder.Database.Unique.Guid', [$this, 'getDatabaseUniqueGuid'], true); + + $container->alias(DatabaseUniqueKeys::class, 'Compiler.Builder.Database.Unique.Keys') + ->share('Compiler.Builder.Database.Unique.Keys', [$this, 'getDatabaseUniqueKeys'], true); + + $container->alias(DoNotEscape::class, 'Compiler.Builder.Do.Not.Escape') + ->share('Compiler.Builder.Do.Not.Escape', [$this, 'getDoNotEscape'], true); + + $container->alias(DynamicFields::class, 'Compiler.Builder.Dynamic.Fields') + ->share('Compiler.Builder.Dynamic.Fields', [$this, 'getDynamicFields'], true); + + $container->alias(ExtensionCustomFields::class, 'Compiler.Builder.Extension.Custom.Fields') + ->share('Compiler.Builder.Extension.Custom.Fields', [$this, 'getExtensionCustomFields'], true); + + $container->alias(FieldGroupControl::class, 'Compiler.Builder.Field.Group.Control') + ->share('Compiler.Builder.Field.Group.Control', [$this, 'getFieldGroupControl'], true); + + $container->alias(FieldNames::class, 'Compiler.Builder.Field.Names') + ->share('Compiler.Builder.Field.Names', [$this, 'getFieldNames'], true); + + $container->alias(FieldRelations::class, 'Compiler.Builder.Field.Relations') + ->share('Compiler.Builder.Field.Relations', [$this, 'getFieldRelations'], true); + + $container->alias(Filter::class, 'Compiler.Builder.Filter') + ->share('Compiler.Builder.Filter', [$this, 'getFilter'], true); + + $container->alias(FootableScripts::class, 'Compiler.Builder.Footable.Scripts') + ->share('Compiler.Builder.Footable.Scripts', [$this, 'getFootableScripts'], true); + + $container->alias(GetAsLookup::class, 'Compiler.Builder.Get.As.Lookup') + ->share('Compiler.Builder.Get.As.Lookup', [$this, 'getGetAsLookup'], true); + + $container->alias(GetModule::class, 'Compiler.Builder.Get.Module') + ->share('Compiler.Builder.Get.Module', [$this, 'getGetModule'], true); + + $container->alias(GoogleChart::class, 'Compiler.Builder.Google.Chart') + ->share('Compiler.Builder.Google.Chart', [$this, 'getGoogleChart'], true); + + $container->alias(HasPermissions::class, 'Compiler.Builder.Has.Permissions') + ->share('Compiler.Builder.Has.Permissions', [$this, 'getHasPermissions'], true); + + $container->alias(HiddenFields::class, 'Compiler.Builder.Hidden.Fields') + ->share('Compiler.Builder.Hidden.Fields', [$this, 'getHiddenFields'], true); + + $container->alias(History::class, 'Compiler.Builder.History') + ->share('Compiler.Builder.History', [$this, 'getHistory'], true); + + $container->alias(IntegerFields::class, 'Compiler.Builder.Integer.Fields') + ->share('Compiler.Builder.Integer.Fields', [$this, 'getIntegerFields'], true); + + $container->alias(ItemsMethodEximportString::class, 'Compiler.Builder.Items.Method.Eximport.String') + ->share('Compiler.Builder.Items.Method.Eximport.String', [$this, 'getItemsMethodEximportString'], true); + + $container->alias(ItemsMethodListString::class, 'Compiler.Builder.Items.Method.List.String') + ->share('Compiler.Builder.Items.Method.List.String', [$this, 'getItemsMethodListString'], true); + + $container->alias(JsonItem::class, 'Compiler.Builder.Json.Item') + ->share('Compiler.Builder.Json.Item', [$this, 'getJsonItem'], true); + + $container->alias(JsonItemArray::class, 'Compiler.Builder.Json.Item.Array') + ->share('Compiler.Builder.Json.Item.Array', [$this, 'getJsonItemArray'], true); + + $container->alias(JsonString::class, 'Compiler.Builder.Json.String') + ->share('Compiler.Builder.Json.String', [$this, 'getJsonString'], true); + + $container->alias(Layout::class, 'Compiler.Builder.Layout') + ->share('Compiler.Builder.Layout', [$this, 'getLayout'], true); + + $container->alias(LayoutData::class, 'Compiler.Builder.Layout.Data') + ->share('Compiler.Builder.Layout.Data', [$this, 'getLayoutData'], true); + + $container->alias(LibraryManager::class, 'Compiler.Builder.Library.Manager') + ->share('Compiler.Builder.Library.Manager', [$this, 'getLibraryManager'], true); + + $container->alias(ListFieldClass::class, 'Compiler.Builder.List.Field.Class') + ->share('Compiler.Builder.List.Field.Class', [$this, 'getListFieldClass'], true); + + $container->alias(ListHeadOverride::class, 'Compiler.Builder.List.Head.Override') + ->share('Compiler.Builder.List.Head.Override', [$this, 'getListHeadOverride'], true); + + $container->alias(ListJoin::class, 'Compiler.Builder.List.Join') + ->share('Compiler.Builder.List.Join', [$this, 'getListJoin'], true); + + $container->alias(Lists::class, 'Compiler.Builder.Lists') + ->share('Compiler.Builder.Lists', [$this, 'getLists'], true); + + $container->alias(MainTextField::class, 'Compiler.Builder.Main.Text.Field') + ->share('Compiler.Builder.Main.Text.Field', [$this, 'getMainTextField'], true); + + $container->alias(MetaData::class, 'Compiler.Builder.Meta.Data') + ->share('Compiler.Builder.Meta.Data', [$this, 'getMetaData'], true); + + $container->alias(ModelBasicField::class, 'Compiler.Builder.Model.Basic.Field') + ->share('Compiler.Builder.Model.Basic.Field', [$this, 'getModelBasicField'], true); + + $container->alias(ModelExpertField::class, 'Compiler.Builder.Model.Expert.Field') + ->share('Compiler.Builder.Model.Expert.Field', [$this, 'getModelExpertField'], true); + + $container->alias(ModelExpertFieldInitiator::class, 'Compiler.Builder.Model.Expert.Field.Initiator') + ->share('Compiler.Builder.Model.Expert.Field.Initiator', [$this, 'getModelExpertFieldInitiator'], true); + + $container->alias(ModelMediumField::class, 'Compiler.Builder.Model.Medium.Field') + ->share('Compiler.Builder.Model.Medium.Field', [$this, 'getModelMediumField'], true); + + $container->alias(ModelWhmcsField::class, 'Compiler.Builder.Model.Whmcs.Field') + ->share('Compiler.Builder.Model.Whmcs.Field', [$this, 'getModelWhmcsField'], true); + + $container->alias(MovedPublishingFields::class, 'Compiler.Builder.Moved.Publishing.Fields') + ->share('Compiler.Builder.Moved.Publishing.Fields', [$this, 'getMovedPublishingFields'], true); + + $container->alias(MysqlTableSetting::class, 'Compiler.Builder.Mysql.Table.Setting') + ->share('Compiler.Builder.Mysql.Table.Setting', [$this, 'getMysqlTableSetting'], true); + + $container->alias(NewPublishingFields::class, 'Compiler.Builder.New.Publishing.Fields') + ->share('Compiler.Builder.New.Publishing.Fields', [$this, 'getNewPublishingFields'], true); + + $container->alias(OrderZero::class, 'Compiler.Builder.Order.Zero') + ->share('Compiler.Builder.Order.Zero', [$this, 'getOrderZero'], true); + + $container->alias(OtherFilter::class, 'Compiler.Builder.Other.Filter') + ->share('Compiler.Builder.Other.Filter', [$this, 'getOtherFilter'], true); + + $container->alias(OtherGroup::class, 'Compiler.Builder.Other.Group') + ->share('Compiler.Builder.Other.Group', [$this, 'getOtherGroup'], true); + + $container->alias(OtherJoin::class, 'Compiler.Builder.Other.Join') + ->share('Compiler.Builder.Other.Join', [$this, 'getOtherJoin'], true); + + $container->alias(OtherOrder::class, 'Compiler.Builder.Other.Order') + ->share('Compiler.Builder.Other.Order', [$this, 'getOtherOrder'], true); + + $container->alias(OtherQuery::class, 'Compiler.Builder.Other.Query') + ->share('Compiler.Builder.Other.Query', [$this, 'getOtherQuery'], true); + + $container->alias(OtherWhere::class, 'Compiler.Builder.Other.Where') + ->share('Compiler.Builder.Other.Where', [$this, 'getOtherWhere'], true); + + $container->alias(PermissionAction::class, 'Compiler.Builder.Permission.Action') + ->share('Compiler.Builder.Permission.Action', [$this, 'getPermissionAction'], true); + + $container->alias(PermissionComponent::class, 'Compiler.Builder.Permission.Component') + ->share('Compiler.Builder.Permission.Component', [$this, 'getPermissionComponent'], true); + + $container->alias(PermissionCore::class, 'Compiler.Builder.Permission.Core') + ->share('Compiler.Builder.Permission.Core', [$this, 'getPermissionCore'], true); + + $container->alias(PermissionDashboard::class, 'Compiler.Builder.Permission.Dashboard') + ->share('Compiler.Builder.Permission.Dashboard', [$this, 'getPermissionDashboard'], true); + + $container->alias(PermissionGlobalAction::class, 'Compiler.Builder.Permission.Global.Action') + ->share('Compiler.Builder.Permission.Global.Action', [$this, 'getPermissionGlobalAction'], true); + + $container->alias(PermissionViews::class, 'Compiler.Builder.Permission.Views') + ->share('Compiler.Builder.Permission.Views', [$this, 'getPermissionViews'], true); + + $container->alias(ScriptMediaSwitch::class, 'Compiler.Builder.Script.Media.Switch') + ->share('Compiler.Builder.Script.Media.Switch', [$this, 'getScriptMediaSwitch'], true); + + $container->alias(ScriptUserSwitch::class, 'Compiler.Builder.Script.User.Switch') + ->share('Compiler.Builder.Script.User.Switch', [$this, 'getScriptUserSwitch'], true); + + $container->alias(Search::class, 'Compiler.Builder.Search') + ->share('Compiler.Builder.Search', [$this, 'getSearch'], true); + + $container->alias(SelectionTranslation::class, 'Compiler.Builder.Selection.Translation') + ->share('Compiler.Builder.Selection.Translation', [$this, 'getSelectionTranslation'], true); + + $container->alias(SiteDecrypt::class, 'Compiler.Builder.Site.Decrypt') + ->share('Compiler.Builder.Site.Decrypt', [$this, 'getSiteDecrypt'], true); + + $container->alias(SiteDynamicGet::class, 'Compiler.Builder.Site.Dynamic.Get') + ->share('Compiler.Builder.Site.Dynamic.Get', [$this, 'getSiteDynamicGet'], true); + + $container->alias(SiteEditView::class, 'Compiler.Builder.Site.Edit.View') + ->share('Compiler.Builder.Site.Edit.View', [$this, 'getSiteEditView'], true); + + $container->alias(SiteFieldData::class, 'Compiler.Builder.Site.Field.Data') + ->share('Compiler.Builder.Site.Field.Data', [$this, 'getSiteFieldData'], true); + + $container->alias(SiteFieldDecodeFilter::class, 'Compiler.Builder.Site.Field.Decode.Filter') + ->share('Compiler.Builder.Site.Field.Decode.Filter', [$this, 'getSiteFieldDecodeFilter'], true); + + $container->alias(SiteFields::class, 'Compiler.Builder.Site.Fields') + ->share('Compiler.Builder.Site.Fields', [$this, 'getSiteFields'], true); + + $container->alias(SiteMainGet::class, 'Compiler.Builder.Site.Main.Get') + ->share('Compiler.Builder.Site.Main.Get', [$this, 'getSiteMainGet'], true); + + $container->alias(Sort::class, 'Compiler.Builder.Sort') + ->share('Compiler.Builder.Sort', [$this, 'getSort'], true); + + $container->alias(TabCounter::class, 'Compiler.Builder.Tab.Counter') + ->share('Compiler.Builder.Tab.Counter', [$this, 'getTabCounter'], true); + + $container->alias(Tags::class, 'Compiler.Builder.Tags') + ->share('Compiler.Builder.Tags', [$this, 'getTags'], true); + + $container->alias(TemplateData::class, 'Compiler.Builder.Template.Data') + ->share('Compiler.Builder.Template.Data', [$this, 'getTemplateData'], true); + + $container->alias(Title::class, 'Compiler.Builder.Title') + ->share('Compiler.Builder.Title', [$this, 'getTitle'], true); + + $container->alias(UikitComp::class, 'Compiler.Builder.Uikit.Comp') + ->share('Compiler.Builder.Uikit.Comp', [$this, 'getUikitComp'], true); + + $container->alias(UpdateMysql::class, 'Compiler.Builder.Update.Mysql') + ->share('Compiler.Builder.Update.Mysql', [$this, 'getUpdateMysql'], true); + } + + /** + * Get The AccessSwitch Class. + * + * @param Container $container The DI container. + * + * @return AccessSwitch + * @since 3.2.0 + */ + public function getAccessSwitch(Container $container): AccessSwitch + { + return new AccessSwitch(); + } + + /** + * Get The AccessSwitchList Class. + * + * @param Container $container The DI container. + * + * @return AccessSwitchList + * @since 3.2.0 + */ + public function getAccessSwitchList(Container $container): AccessSwitchList + { + return new AccessSwitchList(); + } + + /** + * Get The AdminFilterType Class. + * + * @param Container $container The DI container. + * + * @return AdminFilterType + * @since 3.2.0 + */ + public function getAdminFilterType(Container $container): AdminFilterType + { + return new AdminFilterType(); + } + + /** + * Get The Alias Class. + * + * @param Container $container The DI container. + * + * @return Alias + * @since 3.2.0 + */ + public function getAlias(Container $container): Alias + { + return new Alias(); + } + + /** + * Get The BaseSixFour Class. + * + * @param Container $container The DI container. + * + * @return BaseSixFour + * @since 3.2.0 + */ + public function getBaseSixFour(Container $container): BaseSixFour + { + return new BaseSixFour(); + } + + /** + * Get The Category Class. + * + * @param Container $container The DI container. + * + * @return Category + * @since 3.2.0 + */ + public function getCategory(Container $container): Category + { + return new Category(); + } + + /** + * Get The CategoryCode Class. + * + * @param Container $container The DI container. + * + * @return CategoryCode + * @since 3.2.0 + */ + public function getCategoryCode(Container $container): CategoryCode + { + return new CategoryCode(); + } + + /** + * Get The CategoryOtherName Class. + * + * @param Container $container The DI container. + * + * @return CategoryOtherName + * @since 3.2.0 + */ + public function getCategoryOtherName(Container $container): CategoryOtherName + { + return new CategoryOtherName(); + } + + /** + * Get The CheckBox Class. + * + * @param Container $container The DI container. + * + * @return CheckBox + * @since 3.2.0 + */ + public function getCheckBox(Container $container): CheckBox + { + return new CheckBox(); + } + + /** + * Get The ComponentFields Class. + * + * @param Container $container The DI container. + * + * @return ComponentFields + * @since 3.2.0 + */ + public function getComponentFields(Container $container): ComponentFields + { + return new ComponentFields(); + } + + /** + * Get The CustomAlias Class. + * + * @param Container $container The DI container. + * + * @return CustomAlias + * @since 3.2.0 + */ + public function getCustomAlias(Container $container): CustomAlias + { + return new CustomAlias(); + } + + /** + * Get The CustomField Class. + * + * @param Container $container The DI container. + * + * @return CustomField + * @since 3.2.0 + */ + public function getCustomField(Container $container): CustomField + { + return new CustomField(); + } + + /** + * Get The CustomFieldLinks Class. + * + * @param Container $container The DI container. + * + * @return CustomFieldLinks + * @since 3.2.0 + */ + public function getCustomFieldLinks(Container $container): CustomFieldLinks + { + return new CustomFieldLinks(); + } + + /** + * Get The CustomList Class. + * + * @param Container $container The DI container. + * + * @return CustomList + * @since 3.2.0 + */ + public function getCustomList(Container $container): CustomList + { + return new CustomList(); + } + + /** + * Get The CustomTabs Class. + * + * @param Container $container The DI container. + * + * @return CustomTabs + * @since 3.2.0 + */ + public function getCustomTabs(Container $container): CustomTabs + { + return new CustomTabs(); + } + + /** + * Get The DatabaseKeys Class. + * + * @param Container $container The DI container. + * + * @return DatabaseKeys + * @since 3.2.0 + */ + public function getDatabaseKeys(Container $container): DatabaseKeys + { + return new DatabaseKeys(); + } + + /** + * Get The DatabaseTables Class. + * + * @param Container $container The DI container. + * + * @return DatabaseTables + * @since 3.2.0 + */ + public function getDatabaseTables(Container $container): DatabaseTables + { + return new DatabaseTables(); + } + + /** + * Get The DatabaseUniqueGuid Class. + * + * @param Container $container The DI container. + * + * @return DatabaseUniqueGuid + * @since 3.2.0 + */ + public function getDatabaseUniqueGuid(Container $container): DatabaseUniqueGuid + { + return new DatabaseUniqueGuid(); + } + + /** + * Get The DatabaseUniqueKeys Class. + * + * @param Container $container The DI container. + * + * @return DatabaseUniqueKeys + * @since 3.2.0 + */ + public function getDatabaseUniqueKeys(Container $container): DatabaseUniqueKeys + { + return new DatabaseUniqueKeys(); + } + + /** + * Get The DoNotEscape Class. + * + * @param Container $container The DI container. + * + * @return DoNotEscape + * @since 3.2.0 + */ + public function getDoNotEscape(Container $container): DoNotEscape + { + return new DoNotEscape(); + } + + /** + * Get The DynamicFields Class. + * + * @param Container $container The DI container. + * + * @return DynamicFields + * @since 3.2.0 + */ + public function getDynamicFields(Container $container): DynamicFields + { + return new DynamicFields(); + } + + /** + * Get The ExtensionCustomFields Class. + * + * @param Container $container The DI container. + * + * @return ExtensionCustomFields + * @since 3.2.0 + */ + public function getExtensionCustomFields(Container $container): ExtensionCustomFields + { + return new ExtensionCustomFields(); + } + + /** + * Get The FieldGroupControl Class. + * + * @param Container $container The DI container. + * + * @return FieldGroupControl + * @since 3.2.0 + */ + public function getFieldGroupControl(Container $container): FieldGroupControl + { + return new FieldGroupControl(); + } + + /** + * Get The FieldNames Class. + * + * @param Container $container The DI container. + * + * @return FieldNames + * @since 3.2.0 + */ + public function getFieldNames(Container $container): FieldNames + { + return new FieldNames(); + } + + /** + * Get The FieldRelations Class. + * + * @param Container $container The DI container. + * + * @return FieldRelations + * @since 3.2.0 + */ + public function getFieldRelations(Container $container): FieldRelations + { + return new FieldRelations(); + } + + /** + * Get The Filter Class. + * + * @param Container $container The DI container. + * + * @return Filter + * @since 3.2.0 + */ + public function getFilter(Container $container): Filter + { + return new Filter(); + } + + /** + * Get The FootableScripts Class. + * + * @param Container $container The DI container. + * + * @return FootableScripts + * @since 3.2.0 + */ + public function getFootableScripts(Container $container): FootableScripts + { + return new FootableScripts(); + } + + /** + * Get The GetAsLookup Class. + * + * @param Container $container The DI container. + * + * @return GetAsLookup + * @since 3.2.0 + */ + public function getGetAsLookup(Container $container): GetAsLookup + { + return new GetAsLookup(); + } + + /** + * Get The GetModule Class. + * + * @param Container $container The DI container. + * + * @return GetModule + * @since 3.2.0 + */ + public function getGetModule(Container $container): GetModule + { + return new GetModule(); + } + + /** + * Get The GoogleChart Class. + * + * @param Container $container The DI container. + * + * @return GoogleChart + * @since 3.2.0 + */ + public function getGoogleChart(Container $container): GoogleChart + { + return new GoogleChart(); + } + + /** + * Get The HasPermissions Class. + * + * @param Container $container The DI container. + * + * @return HasPermissions + * @since 3.2.0 + */ + public function getHasPermissions(Container $container): HasPermissions + { + return new HasPermissions(); + } + + /** + * Get The HiddenFields Class. + * + * @param Container $container The DI container. + * + * @return HiddenFields + * @since 3.2.0 + */ + public function getHiddenFields(Container $container): HiddenFields + { + return new HiddenFields(); + } + + /** + * Get The History Class. + * + * @param Container $container The DI container. + * + * @return History + * @since 3.2.0 + */ + public function getHistory(Container $container): History + { + return new History(); + } + + /** + * Get The IntegerFields Class. + * + * @param Container $container The DI container. + * + * @return IntegerFields + * @since 3.2.0 + */ + public function getIntegerFields(Container $container): IntegerFields + { + return new IntegerFields(); + } + + /** + * Get The ItemsMethodEximportString Class. + * + * @param Container $container The DI container. + * + * @return ItemsMethodEximportString + * @since 3.2.0 + */ + public function getItemsMethodEximportString(Container $container): ItemsMethodEximportString + { + return new ItemsMethodEximportString(); + } + + /** + * Get The ItemsMethodListString Class. + * + * @param Container $container The DI container. + * + * @return ItemsMethodListString + * @since 3.2.0 + */ + public function getItemsMethodListString(Container $container): ItemsMethodListString + { + return new ItemsMethodListString(); + } + + /** + * Get The JsonItem Class. + * + * @param Container $container The DI container. + * + * @return JsonItem + * @since 3.2.0 + */ + public function getJsonItem(Container $container): JsonItem + { + return new JsonItem(); + } + + /** + * Get The JsonItemArray Class. + * + * @param Container $container The DI container. + * + * @return JsonItemArray + * @since 3.2.0 + */ + public function getJsonItemArray(Container $container): JsonItemArray + { + return new JsonItemArray(); + } + + /** + * Get The JsonString Class. + * + * @param Container $container The DI container. + * + * @return JsonString + * @since 3.2.0 + */ + public function getJsonString(Container $container): JsonString + { + return new JsonString(); + } + + /** + * Get The Layout Class. + * + * @param Container $container The DI container. + * + * @return Layout + * @since 3.2.0 + */ + public function getLayout(Container $container): Layout + { + return new Layout(); + } + + /** + * Get The LayoutData Class. + * + * @param Container $container The DI container. + * + * @return LayoutData + * @since 3.2.0 + */ + public function getLayoutData(Container $container): LayoutData + { + return new LayoutData(); + } + + /** + * Get The LibraryManager Class. + * + * @param Container $container The DI container. + * + * @return LibraryManager + * @since 3.2.0 + */ + public function getLibraryManager(Container $container): LibraryManager + { + return new LibraryManager(); + } + + /** + * Get The ListFieldClass Class. + * + * @param Container $container The DI container. + * + * @return ListFieldClass + * @since 3.2.0 + */ + public function getListFieldClass(Container $container): ListFieldClass + { + return new ListFieldClass(); + } + + /** + * Get The ListHeadOverride Class. + * + * @param Container $container The DI container. + * + * @return ListHeadOverride + * @since 3.2.0 + */ + public function getListHeadOverride(Container $container): ListHeadOverride + { + return new ListHeadOverride(); + } + + /** + * Get The ListJoin Class. + * + * @param Container $container The DI container. + * + * @return ListJoin + * @since 3.2.0 + */ + public function getListJoin(Container $container): ListJoin + { + return new ListJoin(); + } + + /** + * Get The Lists Class. + * + * @param Container $container The DI container. + * + * @return Lists + * @since 3.2.0 + */ + public function getLists(Container $container): Lists + { + return new Lists(); + } + + /** + * Get The MainTextField Class. + * + * @param Container $container The DI container. + * + * @return MainTextField + * @since 3.2.0 + */ + public function getMainTextField(Container $container): MainTextField + { + return new MainTextField(); + } + + /** + * Get The MetaData Class. + * + * @param Container $container The DI container. + * + * @return MetaData + * @since 3.2.0 + */ + public function getMetaData(Container $container): MetaData + { + return new MetaData(); + } + + /** + * Get The ModelBasicField Class. + * + * @param Container $container The DI container. + * + * @return ModelBasicField + * @since 3.2.0 + */ + public function getModelBasicField(Container $container): ModelBasicField + { + return new ModelBasicField(); + } + + /** + * Get The ModelExpertField Class. + * + * @param Container $container The DI container. + * + * @return ModelExpertField + * @since 3.2.0 + */ + public function getModelExpertField(Container $container): ModelExpertField + { + return new ModelExpertField(); + } + + /** + * Get The ModelExpertFieldInitiator Class. + * + * @param Container $container The DI container. + * + * @return ModelExpertFieldInitiator + * @since 3.2.0 + */ + public function getModelExpertFieldInitiator(Container $container): ModelExpertFieldInitiator + { + return new ModelExpertFieldInitiator(); + } + + /** + * Get The ModelMediumField Class. + * + * @param Container $container The DI container. + * + * @return ModelMediumField + * @since 3.2.0 + */ + public function getModelMediumField(Container $container): ModelMediumField + { + return new ModelMediumField(); + } + + /** + * Get The ModelWhmcsField Class. + * + * @param Container $container The DI container. + * + * @return ModelWhmcsField + * @since 3.2.0 + */ + public function getModelWhmcsField(Container $container): ModelWhmcsField + { + return new ModelWhmcsField(); + } + + /** + * Get The MovedPublishingFields Class. + * + * @param Container $container The DI container. + * + * @return MovedPublishingFields + * @since 3.2.0 + */ + public function getMovedPublishingFields(Container $container): MovedPublishingFields + { + return new MovedPublishingFields(); + } + + /** + * Get The MysqlTableSetting Class. + * + * @param Container $container The DI container. + * + * @return MysqlTableSetting + * @since 3.2.0 + */ + public function getMysqlTableSetting(Container $container): MysqlTableSetting + { + return new MysqlTableSetting(); + } + + /** + * Get The NewPublishingFields Class. + * + * @param Container $container The DI container. + * + * @return NewPublishingFields + * @since 3.2.0 + */ + public function getNewPublishingFields(Container $container): NewPublishingFields + { + return new NewPublishingFields(); + } + + /** + * Get The OrderZero Class. + * + * @param Container $container The DI container. + * + * @return OrderZero + * @since 3.2.0 + */ + public function getOrderZero(Container $container): OrderZero + { + return new OrderZero(); + } + + /** + * Get The OtherFilter Class. + * + * @param Container $container The DI container. + * + * @return OtherFilter + * @since 3.2.0 + */ + public function getOtherFilter(Container $container): OtherFilter + { + return new OtherFilter(); + } + + /** + * Get The OtherGroup Class. + * + * @param Container $container The DI container. + * + * @return OtherGroup + * @since 3.2.0 + */ + public function getOtherGroup(Container $container): OtherGroup + { + return new OtherGroup(); + } + + /** + * Get The OtherJoin Class. + * + * @param Container $container The DI container. + * + * @return OtherJoin + * @since 3.2.0 + */ + public function getOtherJoin(Container $container): OtherJoin + { + return new OtherJoin(); + } + + /** + * Get The OtherOrder Class. + * + * @param Container $container The DI container. + * + * @return OtherOrder + * @since 3.2.0 + */ + public function getOtherOrder(Container $container): OtherOrder + { + return new OtherOrder(); + } + + /** + * Get The OtherQuery Class. + * + * @param Container $container The DI container. + * + * @return OtherQuery + * @since 3.2.0 + */ + public function getOtherQuery(Container $container): OtherQuery + { + return new OtherQuery(); + } + + /** + * Get The OtherWhere Class. + * + * @param Container $container The DI container. + * + * @return OtherWhere + * @since 3.2.0 + */ + public function getOtherWhere(Container $container): OtherWhere + { + return new OtherWhere(); + } + + /** + * Get The PermissionAction Class. + * + * @param Container $container The DI container. + * + * @return PermissionAction + * @since 3.2.0 + */ + public function getPermissionAction(Container $container): PermissionAction + { + return new PermissionAction(); + } + + /** + * Get The PermissionComponent Class. + * + * @param Container $container The DI container. + * + * @return PermissionComponent + * @since 3.2.0 + */ + public function getPermissionComponent(Container $container): PermissionComponent + { + return new PermissionComponent(); + } + + /** + * Get The PermissionCore Class. + * + * @param Container $container The DI container. + * + * @return PermissionCore + * @since 3.2.0 + */ + public function getPermissionCore(Container $container): PermissionCore + { + return new PermissionCore(); + } + + /** + * Get The PermissionDashboard Class. + * + * @param Container $container The DI container. + * + * @return PermissionDashboard + * @since 3.2.0 + */ + public function getPermissionDashboard(Container $container): PermissionDashboard + { + return new PermissionDashboard(); + } + + /** + * Get The PermissionGlobalAction Class. + * + * @param Container $container The DI container. + * + * @return PermissionGlobalAction + * @since 3.2.0 + */ + public function getPermissionGlobalAction(Container $container): PermissionGlobalAction + { + return new PermissionGlobalAction(); + } + + /** + * Get The PermissionViews Class. + * + * @param Container $container The DI container. + * + * @return PermissionViews + * @since 3.2.0 + */ + public function getPermissionViews(Container $container): PermissionViews + { + return new PermissionViews(); + } + + /** + * Get The ScriptMediaSwitch Class. + * + * @param Container $container The DI container. + * + * @return ScriptMediaSwitch + * @since 3.2.0 + */ + public function getScriptMediaSwitch(Container $container): ScriptMediaSwitch + { + return new ScriptMediaSwitch(); + } + + /** + * Get The ScriptUserSwitch Class. + * + * @param Container $container The DI container. + * + * @return ScriptUserSwitch + * @since 3.2.0 + */ + public function getScriptUserSwitch(Container $container): ScriptUserSwitch + { + return new ScriptUserSwitch(); + } + + /** + * Get The Search Class. + * + * @param Container $container The DI container. + * + * @return Search + * @since 3.2.0 + */ + public function getSearch(Container $container): Search + { + return new Search(); + } + + /** + * Get The SelectionTranslation Class. + * + * @param Container $container The DI container. + * + * @return SelectionTranslation + * @since 3.2.0 + */ + public function getSelectionTranslation(Container $container): SelectionTranslation + { + return new SelectionTranslation(); + } + + /** + * Get The SiteDecrypt Class. + * + * @param Container $container The DI container. + * + * @return SiteDecrypt + * @since 3.2.0 + */ + public function getSiteDecrypt(Container $container): SiteDecrypt + { + return new SiteDecrypt(); + } + + /** + * Get The SiteDynamicGet Class. + * + * @param Container $container The DI container. + * + * @return SiteDynamicGet + * @since 3.2.0 + */ + public function getSiteDynamicGet(Container $container): SiteDynamicGet + { + return new SiteDynamicGet(); + } + + /** + * Get The SiteEditView Class. + * + * @param Container $container The DI container. + * + * @return SiteEditView + * @since 3.2.0 + */ + public function getSiteEditView(Container $container): SiteEditView + { + return new SiteEditView(); + } + + /** + * Get The SiteFieldData Class. + * + * @param Container $container The DI container. + * + * @return SiteFieldData + * @since 3.2.0 + */ + public function getSiteFieldData(Container $container): SiteFieldData + { + return new SiteFieldData(); + } + + /** + * Get The SiteFieldDecodeFilter Class. + * + * @param Container $container The DI container. + * + * @return SiteFieldDecodeFilter + * @since 3.2.0 + */ + public function getSiteFieldDecodeFilter(Container $container): SiteFieldDecodeFilter + { + return new SiteFieldDecodeFilter(); + } + + /** + * Get The SiteFields Class. + * + * @param Container $container The DI container. + * + * @return SiteFields + * @since 3.2.0 + */ + public function getSiteFields(Container $container): SiteFields + { + return new SiteFields(); + } + + /** + * Get The SiteMainGet Class. + * + * @param Container $container The DI container. + * + * @return SiteMainGet + * @since 3.2.0 + */ + public function getSiteMainGet(Container $container): SiteMainGet + { + return new SiteMainGet(); + } + + /** + * Get The Sort Class. + * + * @param Container $container The DI container. + * + * @return Sort + * @since 3.2.0 + */ + public function getSort(Container $container): Sort + { + return new Sort(); + } + + /** + * Get The TabCounter Class. + * + * @param Container $container The DI container. + * + * @return TabCounter + * @since 3.2.0 + */ + public function getTabCounter(Container $container): TabCounter + { + return new TabCounter(); + } + + /** + * Get The Tags Class. + * + * @param Container $container The DI container. + * + * @return Tags + * @since 3.2.0 + */ + public function getTags(Container $container): Tags + { + return new Tags(); + } + + /** + * Get The TemplateData Class. + * + * @param Container $container The DI container. + * + * @return TemplateData + * @since 3.2.0 + */ + public function getTemplateData(Container $container): TemplateData + { + return new TemplateData(); + } + + /** + * Get The Title Class. + * + * @param Container $container The DI container. + * + * @return Title + * @since 3.2.0 + */ + public function getTitle(Container $container): Title + { + return new Title(); + } + + /** + * Get The UikitComp Class. + * + * @param Container $container The DI container. + * + * @return UikitComp + * @since 3.2.0 + */ + public function getUikitComp(Container $container): UikitComp + { + return new UikitComp(); + } + + /** + * Get The UpdateMysql Class. + * + * @param Container $container The DI container. + * + * @return UpdateMysql + * @since 3.2.0 + */ + public function getUpdateMysql(Container $container): UpdateMysql + { + return new UpdateMysql(); + } \ No newline at end of file diff --git a/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/settings.json b/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/settings.json index 5122353..7b2b84f 100644 --- a/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/settings.json +++ b/src/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7/settings.json @@ -13,6 +13,350 @@ "type": "class", "use_selection": { "use_selection0": { + "use": "e38a5276-6664-4bc6-8002-0562fcc248f8", + "as": "default" + }, + "use_selection1": { + "use": "81212121-ad5c-43c5-b046-f2650864f690", + "as": "default" + }, + "use_selection2": { + "use": "9481caa2-6d04-4598-8320-543a93927243", + "as": "default" + }, + "use_selection3": { + "use": "fe87df7f-b65f-4778-8875-6122ab6b025f", + "as": "default" + }, + "use_selection4": { + "use": "b8b474d4-30e3-4b5a-9988-3adb3450998c", + "as": "default" + }, + "use_selection5": { + "use": "007177eb-d39d-4093-8840-07a38811c502", + "as": "default" + }, + "use_selection6": { + "use": "b24f5184-7e7c-448d-9475-ff3f998f70c3", + "as": "default" + }, + "use_selection7": { + "use": "a1e551a9-8369-48c9-a076-4e5beb65e0df", + "as": "default" + }, + "use_selection8": { + "use": "8561f1f6-96c7-4e54-8869-0132116d57ce", + "as": "default" + }, + "use_selection9": { + "use": "3230dd65-6590-4043-9bb8-bebd6d8224b2", + "as": "default" + }, + "use_selection10": { + "use": "9d74d613-5ef7-4cf1-9f12-64f0a8e19806", + "as": "default" + }, + "use_selection11": { + "use": "87d1da23-08d6-4fbf-bd0d-b746da240b8a", + "as": "default" + }, + "use_selection12": { + "use": "a4857c60-680c-4e0c-ae8f-9250a7b5e317", + "as": "default" + }, + "use_selection13": { + "use": "202f748a-516b-4782-962e-ac9725c3cac4", + "as": "default" + }, + "use_selection14": { + "use": "9551b683-67b6-4367-bb14-4b016def37e3", + "as": "default" + }, + "use_selection15": { + "use": "0d8db719-39a6-48b4-85a6-2f97e784e588", + "as": "default" + }, + "use_selection16": { + "use": "b3c36de1-9b18-4ea8-8383-6ab8f0e33996", + "as": "default" + }, + "use_selection17": { + "use": "58b7f907-4195-4ca3-886c-17877be59887", + "as": "default" + }, + "use_selection18": { + "use": "ce0899a9-6271-4fc4-800a-697c122bb112", + "as": "default" + }, + "use_selection19": { + "use": "0d9d3294-0bed-4c44-b1a1-e172f62cafb2", + "as": "default" + }, + "use_selection20": { + "use": "1ae9a8e8-59f7-4844-a08d-9a4dce4be076", + "as": "default" + }, + "use_selection86": { + "use": "e9b6b06b-f600-4f9d-984d-79c70ae7ae92", + "as": "default" + }, + "use_selection21": { + "use": "d5530adf-c809-45a9-87fc-7cecd3d972d8", + "as": "default" + }, + "use_selection22": { + "use": "961a2a2e-9f95-4b5f-b1c0-62ee783f9c66", + "as": "default" + }, + "use_selection23": { + "use": "a090a472-eb3d-4086-a6d5-4215e1b1851f", + "as": "default" + }, + "use_selection24": { + "use": "e4e65c5b-00ec-439c-96bf-3153c3a73398", + "as": "default" + }, + "use_selection25": { + "use": "dba0776e-e582-4f73-af3e-e7ed17bc34b3", + "as": "default" + }, + "use_selection26": { + "use": "8f46f85d-7921-44e9-a40e-dc4f01c5d43a", + "as": "default" + }, + "use_selection27": { + "use": "c7b6f0d5-ec47-4166-915c-e78d49b4fb63", + "as": "default" + }, + "use_selection28": { + "use": "507ab90f-7d64-4697-9815-d96f5d1d1185", + "as": "default" + }, + "use_selection29": { + "use": "e54965e7-34fd-481e-b40c-4da089afec5a", + "as": "default" + }, + "use_selection30": { + "use": "0b45357f-b077-4337-92f3-65c1e19d36cd", + "as": "default" + }, + "use_selection31": { + "use": "2cb33994-052e-42dd-adbc-3ea9f932816f", + "as": "default" + }, + "use_selection32": { + "use": "952423ba-015a-4104-89a4-030695aa4d15", + "as": "default" + }, + "use_selection33": { + "use": "1f086665-c007-4085-b363-3a118659ff1b", + "as": "default" + }, + "use_selection34": { + "use": "972c4de9-6f6f-463b-8eea-cc7cbdb96aba", + "as": "default" + }, + "use_selection35": { + "use": "45652787-9085-4c67-914f-0da25ae62646", + "as": "default" + }, + "use_selection36": { + "use": "6b386f2e-3eb1-4f60-81af-a90c8da1ffeb", + "as": "default" + }, + "use_selection37": { + "use": "bb26cf63-69a5-4c43-b2df-43284c9d907d", + "as": "default" + }, + "use_selection38": { + "use": "a90a2495-9c26-446c-867e-9ee8f42fb6af", + "as": "default" + }, + "use_selection39": { + "use": "7415fdb4-5719-40b7-b01f-05588e968b47", + "as": "default" + }, + "use_selection40": { + "use": "e696927b-e8f4-4cfc-9d25-215db4e3c7a8", + "as": "default" + }, + "use_selection41": { + "use": "c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6", + "as": "default" + }, + "use_selection42": { + "use": "7506a35c-fa32-44ab-bd41-363439b20b82", + "as": "default" + }, + "use_selection43": { + "use": "597663e1-1c02-43e8-aea5-f2161e38ac7f", + "as": "default" + }, + "use_selection44": { + "use": "4a857023-2d96-4649-9ed5-910d0329854d", + "as": "default" + }, + "use_selection45": { + "use": "c6de9da0-1a73-4c73-b355-7fe02efe4c9d", + "as": "default" + }, + "use_selection46": { + "use": "f052eeef-5112-4efe-98c8-8c7db69dc2d1", + "as": "default" + }, + "use_selection47": { + "use": "a5189bfe-6d15-4452-9fa5-e3e57f7fa791", + "as": "default" + }, + "use_selection48": { + "use": "b8a92303-8543-4d88-a83c-ece300eaba6d", + "as": "default" + }, + "use_selection49": { + "use": "3468b447-a929-4c28-84a1-f2c3a27e3127", + "as": "default" + }, + "use_selection50": { + "use": "b0b26749-5e2c-4b56-8982-48172f2531fa", + "as": "default" + }, + "use_selection51": { + "use": "28cac2bb-df04-454f-b4d6-923b573eb94e", + "as": "default" + }, + "use_selection52": { + "use": "9cdff2af-bd1b-452f-810e-d034b9720d2a", + "as": "default" + }, + "use_selection53": { + "use": "9ff6d6cd-afea-4f15-a67b-fd132d386989", + "as": "default" + }, + "use_selection54": { + "use": "0f141480-afe6-41fb-996c-2a4e566a2f0d", + "as": "default" + }, + "use_selection55": { + "use": "66b7b5f8-60d6-427a-9f8c-84c11a3d6780", + "as": "default" + }, + "use_selection56": { + "use": "9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f", + "as": "default" + }, + "use_selection57": { + "use": "bf92e1c1-3d5e-4e9d-a585-c79e1468df33", + "as": "default" + }, + "use_selection58": { + "use": "46b02edb-427e-4c26-a5cb-279828eb4433", + "as": "default" + }, + "use_selection59": { + "use": "3f83fe11-1ef6-4020-bd73-f3bb58cefe3a", + "as": "default" + }, + "use_selection60": { + "use": "74595661-236d-4aa1-99f3-358d093000be", + "as": "default" + }, + "use_selection61": { + "use": "fd885c23-88dd-440a-9b05-d02a2b2962f9", + "as": "default" + }, + "use_selection62": { + "use": "2528f2bb-6ebc-4d55-9a9d-23ef58534c1a", + "as": "default" + }, + "use_selection63": { + "use": "94f4939f-82cc-4196-802b-1346ce5c7f99", + "as": "default" + }, + "use_selection64": { + "use": "5e3d856d-8174-4131-b4e9-9328066438e1", + "as": "default" + }, + "use_selection65": { + "use": "e046b530-47fe-406f-b45a-b5eec8cbb238", + "as": "default" + }, + "use_selection66": { + "use": "a601888d-12b6-427f-94ae-95004206e24e", + "as": "default" + }, + "use_selection67": { + "use": "480d11b9-783b-45d5-bce1-b0c2fcaad08a", + "as": "default" + }, + "use_selection68": { + "use": "17bf80af-3609-4f36-a520-be1a339c278b", + "as": "default" + }, + "use_selection69": { + "use": "9042fac6-5ca5-4ebe-94fe-cf9b0718ed36", + "as": "default" + }, + "use_selection70": { + "use": "2e764839-8ec6-4726-af50-b5678e0714a4", + "as": "default" + }, + "use_selection71": { + "use": "d8e46d2c-d63e-4b92-80a2-d17638a7ae9e", + "as": "default" + }, + "use_selection72": { + "use": "c0e46033-5ade-4829-88b7-ca160d36a4d1", + "as": "default" + }, + "use_selection73": { + "use": "ec0682ee-9166-48f8-951b-9b763792c1d1", + "as": "default" + }, + "use_selection74": { + "use": "abdb7d20-a15e-42d8-bd91-7b09514df7f2", + "as": "default" + }, + "use_selection75": { + "use": "33f5131e-4a5b-414b-95dd-d22227c2666d", + "as": "default" + }, + "use_selection76": { + "use": "d393c946-4481-43fa-b737-449119dd0a63", + "as": "default" + }, + "use_selection77": { + "use": "52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe", + "as": "default" + }, + "use_selection78": { + "use": "17fa7789-a7d1-465e-b733-8c8d53f5ca1b", + "as": "default" + }, + "use_selection79": { + "use": "94e0beae-7daa-43b2-81b9-0bde390a76d8", + "as": "default" + }, + "use_selection80": { + "use": "d645881c-ae8c-4828-a217-6bad98cd3b44", + "as": "default" + }, + "use_selection81": { + "use": "8ca30d59-e56a-4cdd-bd8c-d9aad28f5903", + "as": "default" + }, + "use_selection82": { + "use": "8591f6db-dd3c-4a63-9b3f-574c0ec74ade", + "as": "default" + }, + "use_selection83": { + "use": "6a1dddb3-a955-425e-b713-8ef81f256035", + "as": "default" + }, + "use_selection84": { + "use": "54ec57f6-2fc3-42e5-975e-1fabeacb845d", + "as": "default" + }, + "use_selection85": { "use": "2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9", "as": "default" } diff --git a/src/2cb33994-052e-42dd-adbc-3ea9f932816f/README.md b/src/2cb33994-052e-42dd-adbc-3ea9f932816f/README.md new file mode 100644 index 0000000..f5272a7 --- /dev/null +++ b/src/2cb33994-052e-42dd-adbc-3ea9f932816f/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class History (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class History << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/2cb33994-052e-42dd-adbc-3ea9f932816f/code.php b/src/2cb33994-052e-42dd-adbc-3ea9f932816f/code.php new file mode 100644 index 0000000..1c4caaf --- /dev/null +++ b/src/2cb33994-052e-42dd-adbc-3ea9f932816f/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * History Builder Class + * + * @since 3.2.0 + */ +final class History extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/2cb33994-052e-42dd-adbc-3ea9f932816f/code.power b/src/2cb33994-052e-42dd-adbc-3ea9f932816f/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/2cb33994-052e-42dd-adbc-3ea9f932816f/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/2cb33994-052e-42dd-adbc-3ea9f932816f/settings.json b/src/2cb33994-052e-42dd-adbc-3ea9f932816f/settings.json new file mode 100644 index 0000000..ac12c99 --- /dev/null +++ b/src/2cb33994-052e-42dd-adbc-3ea9f932816f/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "2cb33994-052e-42dd-adbc-3ea9f932816f", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "History", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.History", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.History", + "description": "History Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/2d27c436-4d8e-4692-8382-d9e97af2231c/README.md b/src/2d27c436-4d8e-4692-8382-d9e97af2231c/README.md new file mode 100644 index 0000000..83896d3 --- /dev/null +++ b/src/2d27c436-4d8e-4692-8382-d9e97af2231c/README.md @@ -0,0 +1,50 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# interface Fieldtypeinterface (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator** +```uml +@startuml +interface Fieldtypeinterface #Lavender { + + get(string $setType, array $fieldAttributes, ...) : mixed +} + +note right of Fieldtypeinterface::get + Create a field + + since: 3.2.0 + return: mixed + + arguments: + string $setType + array $fieldAttributes + string $name + string $typeName + string $langView + string $nameSingleCode + string $nameListCode + array $placeholders + array|null $optionArray + ?array $custom = null + string $taber = '' +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/2d27c436-4d8e-4692-8382-d9e97af2231c/code.php b/src/2d27c436-4d8e-4692-8382-d9e97af2231c/code.php new file mode 100644 index 0000000..d6efe10 --- /dev/null +++ b/src/2d27c436-4d8e-4692-8382-d9e97af2231c/code.php @@ -0,0 +1,45 @@ + + * @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\Compiler\Interfaces\Creator; + + +/** + * Field (Types) Creator Interface (needed for the container) + * + * @since 3.2.0 + */ +interface Fieldtypeinterface +{ + /** + * Create a field + * + * @param string $setType The set of fields type + * @param array $fieldAttributes The field values + * @param string $name The field name + * @param string $typeName The field type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The place holder and replace values + * @param array|null $optionArray The option bucket array used to set the field options if needed. + * @param array|null $custom Used when field is from config + * @param array|null $custom Used when field is from config + * @param string $taber The tabs to add in layout + * + * @return mixed The field (two return types based of field_builder_type selected Object->xml or String) + * @since 3.2.0 + */ + public function get(string $setType, array &$fieldAttributes, string &$name, + string &$typeName, string &$langView, string &$nameSingleCode, string &$nameListCode, + array $placeholders, ?array &$optionArray, ?array $custom = null, string $taber = ''); +} + diff --git a/src/2d27c436-4d8e-4692-8382-d9e97af2231c/code.power b/src/2d27c436-4d8e-4692-8382-d9e97af2231c/code.power new file mode 100644 index 0000000..aae21e9 --- /dev/null +++ b/src/2d27c436-4d8e-4692-8382-d9e97af2231c/code.power @@ -0,0 +1,22 @@ + /** + * Create a field + * + * @param string $setType The set of fields type + * @param array $fieldAttributes The field values + * @param string $name The field name + * @param string $typeName The field type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The place holder and replace values + * @param array|null $optionArray The option bucket array used to set the field options if needed. + * @param array|null $custom Used when field is from config + * @param array|null $custom Used when field is from config + * @param string $taber The tabs to add in layout + * + * @return mixed The field (two return types based of field_builder_type selected Object->xml or String) + * @since 3.2.0 + */ + public function get(string $setType, array &$fieldAttributes, string &$name, + string &$typeName, string &$langView, string &$nameSingleCode, string &$nameListCode, + array $placeholders, ?array &$optionArray, ?array $custom = null, string $taber = ''); \ No newline at end of file diff --git a/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/settings.json b/src/2d27c436-4d8e-4692-8382-d9e97af2231c/settings.json similarity index 66% rename from src/2ad31f74-f579-499d-b98b-c4f54fd615dd/settings.json rename to src/2d27c436-4d8e-4692-8382-d9e97af2231c/settings.json index 24ebf4b..a2fcad4 100644 --- a/src/2ad31f74-f579-499d-b98b-c4f54fd615dd/settings.json +++ b/src/2d27c436-4d8e-4692-8382-d9e97af2231c/settings.json @@ -2,16 +2,16 @@ "add_head": "0", "add_licensing_template": "2", "extends": "0", - "guid": "2ad31f74-f579-499d-b98b-c4f54fd615dd", + "guid": "2d27c436-4d8e-4692-8382-d9e97af2231c", "implements": null, "load_selection": null, - "name": "LoadInterface", + "name": "Fieldtypeinterface", "power_version": "1.0.0", - "system_name": "JCB.Interfaces.LoadInterface", + "system_name": "JCB.Compiler.Interfaces.Creator.Fieldtypeinterface", "type": "interface", "use_selection": null, - "namespace": "VDM\\Joomla\\Componentbuilder.Interfaces.LoadInterface", - "description": "Database Load Interface\r\n\r\n@since 3.2.0", + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Interfaces.Creator.Fieldtypeinterface", + "description": "Field (Types) Creator Interface (needed for the container)\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/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/code.php b/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/code.php deleted file mode 100644 index 51b5ceb..0000000 --- a/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/code.php +++ /dev/null @@ -1,90 +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\Interfaces; - - -/** - * The Core JCB Table Interface - */ -interface Tableinterface -{ - /** - * Get any value from a item/field/column of an area/view/table - * Example: $this->get('table_name', 'field_name', 'value_key'); - * Get an item/field/column of an area/view/table - * Example: $this->get('table_name', 'field_name'); - * Get all items/fields/columns of an area/view/table - * Example: $this->get('table_name'); - * Get all areas/views/tables with all their item/field/column details - * Example: $this->get(); - * - * @param string $table The table - * @param string|null $field The field - * @param string|null $key The value key - * - * @return mixed - * @since 3.2.0 - */ - public function get(string $table, ?string $field = null, ?string $key = null); - - /** - * Get title field from an area/view/table - * - * @param string|null $table The area - * - * @return ?array - * @since 3.2.0 - */ - public function title(string $table): ?array; - - /** - * Get title field name - * - * @param string|null $table The area - * - * @return string - * @since 3.2.0 - */ - public function titleName(string $table): string; - - /** - * Get all tables - * - * @return array - * @since 3.2.0 - */ - public function tables(): array; - - /** - * Check if a table (and field) exist - * - * @param string|null $table The area - * @param string|null $field The area - * - * @return bool - * @since 3.2.0 - */ - public function exist(string $table, ?string $field = null): bool; - - /** - * Get all fields of an area/view/table - * - * @param string $table The area - * @param bool $default Add the default fields - * - * @return array|null On success an array of fields - * @since 3.2.0 - */ - public function fields(string $table, bool $default = false): ?array; - -} - diff --git a/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/code.power b/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/code.power deleted file mode 100644 index a85f73a..0000000 --- a/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/code.power +++ /dev/null @@ -1,68 +0,0 @@ - /** - * Get any value from a item/field/column of an area/view/table - * Example: $this->get('table_name', 'field_name', 'value_key'); - * Get an item/field/column of an area/view/table - * Example: $this->get('table_name', 'field_name'); - * Get all items/fields/columns of an area/view/table - * Example: $this->get('table_name'); - * Get all areas/views/tables with all their item/field/column details - * Example: $this->get(); - * - * @param string $table The table - * @param string|null $field The field - * @param string|null $key The value key - * - * @return mixed - * @since 3.2.0 - */ - public function get(string $table, ?string $field = null, ?string $key = null); - - /** - * Get title field from an area/view/table - * - * @param string|null $table The area - * - * @return ?array - * @since 3.2.0 - */ - public function title(string $table): ?array; - - /** - * Get title field name - * - * @param string|null $table The area - * - * @return string - * @since 3.2.0 - */ - public function titleName(string $table): string; - - /** - * Get all tables - * - * @return array - * @since 3.2.0 - */ - public function tables(): array; - - /** - * Check if a table (and field) exist - * - * @param string|null $table The area - * @param string|null $field The area - * - * @return bool - * @since 3.2.0 - */ - public function exist(string $table, ?string $field = null): bool; - - /** - * Get all fields of an area/view/table - * - * @param string $table The area - * @param bool $default Add the default fields - * - * @return array|null On success an array of fields - * @since 3.2.0 - */ - public function fields(string $table, bool $default = false): ?array; diff --git a/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/README.md b/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/README.md index 4da94b6..9b38d83 100644 --- a/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/README.md +++ b/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/README.md @@ -13,6 +13,7 @@ class Adminview #Gold { + register(Container $container) : void + getAdminviewData(Container $container) : AdminviewData + + getAdminviewPermission(Container $container) : Permission } note right of Adminview::register @@ -28,6 +29,13 @@ note right of Adminview::getAdminviewData since: 3.2.0 return: AdminviewData end note + +note right of Adminview::getAdminviewPermission + Get the Compiler Adminview Permission + + since: 3.2.0 + return: Permission +end note @enduml ``` diff --git a/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.php b/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.php index ed265b2..5fb5dc3 100644 --- a/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.php +++ b/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.php @@ -15,6 +15,7 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Service; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use VDM\Joomla\Componentbuilder\Compiler\Adminview\Data as AdminviewData; +use VDM\Joomla\Componentbuilder\Compiler\Adminview\Permission; /** @@ -36,6 +37,9 @@ class Adminview implements ServiceProviderInterface { $container->alias(AdminviewData::class, 'Adminview.Data') ->share('Adminview.Data', [$this, 'getAdminviewData'], true); + + $container->alias(Permission::class, 'Adminview.Permission') + ->share('Adminview.Permission', [$this, 'getAdminviewPermission'], true); } /** @@ -50,7 +54,6 @@ class Adminview implements ServiceProviderInterface { return new AdminviewData( $container->get('Config'), - $container->get('Registry'), $container->get('Event'), $container->get('Placeholder'), $container->get('Customcode.Dispenser'), @@ -70,9 +73,24 @@ class Adminview implements ServiceProviderInterface $container->get('Model.Ajaxadmin'), $container->get('Model.Customalias'), $container->get('Model.Sql'), - $container->get('Model.Mysqlsettings') + $container->get('Model.Mysqlsettings'), + $container->get('Compiler.Builder.Site.Edit.View') ); } - + + /** + * Get the Compiler Adminview Permission + * + * @param Container $container The DI container. + * + * @return Permission + * @since 3.2.0 + */ + public function getAdminviewPermission(Container $container): Permission + { + return new Permission( + $container->get('Compiler.Builder.Has.Permissions') + ); + } } diff --git a/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.power b/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.power index 55dd436..63990fb 100644 --- a/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.power +++ b/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/code.power @@ -10,6 +10,9 @@ { $container->alias(AdminviewData::class, 'Adminview.Data') ->share('Adminview.Data', [$this, 'getAdminviewData'], true); + + $container->alias(Permission::class, 'Adminview.Permission') + ->share('Adminview.Permission', [$this, 'getAdminviewPermission'], true); } /** @@ -24,7 +27,6 @@ { return new AdminviewData( $container->get('Config'), - $container->get('Registry'), $container->get('Event'), $container->get('Placeholder'), $container->get('Customcode.Dispenser'), @@ -44,6 +46,22 @@ $container->get('Model.Ajaxadmin'), $container->get('Model.Customalias'), $container->get('Model.Sql'), - $container->get('Model.Mysqlsettings') + $container->get('Model.Mysqlsettings'), + $container->get('Compiler.Builder.Site.Edit.View') ); } + + /** + * Get the Compiler Adminview Permission + * + * @param Container $container The DI container. + * + * @return Permission + * @since 3.2.0 + */ + public function getAdminviewPermission(Container $container): Permission + { + return new Permission( + $container->get('Compiler.Builder.Has.Permissions') + ); + } \ No newline at end of file diff --git a/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/settings.json b/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/settings.json index 05041a1..0f43fd4 100644 --- a/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/settings.json +++ b/src/2dd1289a-4000-43cc-8c62-77ff32de56bf/settings.json @@ -15,6 +15,10 @@ "use_selection0": { "use": "cef2815b-f72b-402a-b769-f028f676692d", "as": "AdminviewData" + }, + "use_selection1": { + "use": "a85451d3-a5c5-446a-90ae-0cf715a16d94", + "as": "default" } }, "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Service.Adminview", diff --git a/src/2e764839-8ec6-4726-af50-b5678e0714a4/README.md b/src/2e764839-8ec6-4726-af50-b5678e0714a4/README.md new file mode 100644 index 0000000..9e08cdb --- /dev/null +++ b/src/2e764839-8ec6-4726-af50-b5678e0714a4/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Search (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class Search << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/2e764839-8ec6-4726-af50-b5678e0714a4/code.php b/src/2e764839-8ec6-4726-af50-b5678e0714a4/code.php new file mode 100644 index 0000000..9faeab9 --- /dev/null +++ b/src/2e764839-8ec6-4726-af50-b5678e0714a4/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Search Builder Class + * + * @since 3.2.0 + */ +final class Search extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/2e764839-8ec6-4726-af50-b5678e0714a4/code.power b/src/2e764839-8ec6-4726-af50-b5678e0714a4/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/2e764839-8ec6-4726-af50-b5678e0714a4/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/2e764839-8ec6-4726-af50-b5678e0714a4/settings.json b/src/2e764839-8ec6-4726-af50-b5678e0714a4/settings.json new file mode 100644 index 0000000..0c3f067 --- /dev/null +++ b/src/2e764839-8ec6-4726-af50-b5678e0714a4/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "2e764839-8ec6-4726-af50-b5678e0714a4", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "Search", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.Search", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Search", + "description": "Search Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/3230dd65-6590-4043-9bb8-bebd6d8224b2/README.md b/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/README.md new file mode 100644 index 0000000..000198c --- /dev/null +++ b/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ComponentFields (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ComponentFields << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/code.php b/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/code.php new file mode 100644 index 0000000..8a490db --- /dev/null +++ b/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\VarExport; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Component Fields Builder Class + * + * @since 3.2.0 + */ +final class ComponentFields extends StorageRegistry implements Storageregistryinterface +{ + /** + * Var Export Values + * + * @since 3.2.0 + */ + use VarExport; +} + diff --git a/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/code.power b/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/code.power new file mode 100644 index 0000000..b8e98ba --- /dev/null +++ b/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/code.power @@ -0,0 +1,6 @@ + /** + * Var Export Values + * + * @since 3.2.0 + */ + use VarExport; \ No newline at end of file diff --git a/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/settings.json b/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/settings.json new file mode 100644 index 0000000..fc4c5f8 --- /dev/null +++ b/src/3230dd65-6590-4043-9bb8-bebd6d8224b2/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "3230dd65-6590-4043-9bb8-bebd6d8224b2", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ComponentFields", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ComponentFields", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "52a1d14f-304a-431c-8fa4-411179942db5", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ComponentFields", + "description": "Component Fields Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/324566de-0f7d-4b6e-9caf-8424d55013ae/README.md b/src/324566de-0f7d-4b6e-9caf-8424d55013ae/README.md index 98921c5..62dbfcf 100644 --- a/src/324566de-0f7d-4b6e-9caf-8424d55013ae/README.md +++ b/src/324566de-0f7d-4b6e-9caf-8424d55013ae/README.md @@ -29,6 +29,7 @@ class Structure #Gold { - setDynamicFolders() : void - setSuperPowerDetails() : void - setSuperPowerFiles(object $power, string $bom) : void + - loadExistingSuperPower(string $repository) : void } note right of Structure::__construct @@ -49,7 +50,7 @@ note right of Structure::__construct ?CMSApplication $app = null end note -note right of Structure::build +note left of Structure::build Build the Powers files, folders since: 3.2.0 @@ -69,7 +70,7 @@ note right of Structure::createFile string $key end note -note right of Structure::setHtaccess +note left of Structure::setHtaccess Set the .htaccess for this power path since: 3.2.0 @@ -83,7 +84,7 @@ note right of Structure::setDynamicFolders return: void end note -note right of Structure::setSuperPowerDetails +note left of Structure::setSuperPowerDetails Set the super powers details structure since: 3.2.0 @@ -96,6 +97,13 @@ note right of Structure::setSuperPowerFiles since: 3.2.0 return: void end note + +note left of Structure::loadExistingSuperPower + Set the super power file paths + + since: 3.2.0 + return: void +end note @enduml ``` diff --git a/src/324566de-0f7d-4b6e-9caf-8424d55013ae/code.php b/src/324566de-0f7d-4b6e-9caf-8424d55013ae/code.php index 5549fd9..6178083 100644 --- a/src/324566de-0f7d-4b6e-9caf-8424d55013ae/code.php +++ b/src/324566de-0f7d-4b6e-9caf-8424d55013ae/code.php @@ -28,6 +28,8 @@ use VDM\Joomla\Componentbuilder\Compiler\Utilities\Files; use VDM\Joomla\Utilities\ObjectHelper; use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Utilities\JsonHelper; +use VDM\Joomla\Utilities\FileHelper; use VDM\Joomla\Componentbuilder\Compiler\Utilities\Placefix; @@ -372,6 +374,9 @@ class Structure { foreach ($this->power->superpowers as $path => $powers) { + // get existing files + $this->loadExistingSuperPower($path); + // create the path if it does not exist $this->folder->create($path, false); @@ -424,6 +429,22 @@ class Structure } } } - + + /** + * Set the super power file paths + * + * @param string $repository The super power repository + * + * @return void + * @since 3.2.0 + */ + private function loadExistingSuperPower(string $repository) + { + if (($content = FileHelper::getContent($repository . '/super-powers.json', null)) !== null && + JsonHelper::check($content)) + { + $this->power->old_superpowers[$repository] = json_decode($content, true); + } + } } diff --git a/src/324566de-0f7d-4b6e-9caf-8424d55013ae/code.power b/src/324566de-0f7d-4b6e-9caf-8424d55013ae/code.power index 0de4b12..8ba0390 100644 --- a/src/324566de-0f7d-4b6e-9caf-8424d55013ae/code.power +++ b/src/324566de-0f7d-4b6e-9caf-8424d55013ae/code.power @@ -332,6 +332,9 @@ { foreach ($this->power->superpowers as $path => $powers) { + // get existing files + $this->loadExistingSuperPower($path); + // create the path if it does not exist $this->folder->create($path, false); @@ -384,3 +387,20 @@ } } } + + /** + * Set the super power file paths + * + * @param string $repository The super power repository + * + * @return void + * @since 3.2.0 + */ + private function loadExistingSuperPower(string $repository) + { + if (($content = FileHelper::getContent($repository . '/super-powers.json', null)) !== null && + JsonHelper::check($content)) + { + $this->power->old_superpowers[$repository] = json_decode($content, true); + } + } \ No newline at end of file diff --git a/src/324566de-0f7d-4b6e-9caf-8424d55013ae/settings.json b/src/324566de-0f7d-4b6e-9caf-8424d55013ae/settings.json index 8712bb1..7af7d81 100644 --- a/src/324566de-0f7d-4b6e-9caf-8424d55013ae/settings.json +++ b/src/324566de-0f7d-4b6e-9caf-8424d55013ae/settings.json @@ -63,6 +63,14 @@ "as": "default" }, "use_selection13": { + "use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18", + "as": "default" + }, + "use_selection14": { + "use": "a223b31e-ea1d-4cdf-92ae-5f9becffaff0", + "as": "default" + }, + "use_selection15": { "use": "500f3a7f-c16d-4dd4-81b2-2df6776b5388", "as": "default" } diff --git a/src/33f5131e-4a5b-414b-95dd-d22227c2666d/README.md b/src/33f5131e-4a5b-414b-95dd-d22227c2666d/README.md new file mode 100644 index 0000000..1638fd5 --- /dev/null +++ b/src/33f5131e-4a5b-414b-95dd-d22227c2666d/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class SiteFieldData (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class SiteFieldData << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/33f5131e-4a5b-414b-95dd-d22227c2666d/code.php b/src/33f5131e-4a5b-414b-95dd-d22227c2666d/code.php new file mode 100644 index 0000000..ebf3f30 --- /dev/null +++ b/src/33f5131e-4a5b-414b-95dd-d22227c2666d/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\InArray; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Site Field Data Builder Class + * + * @since 3.2.0 + */ +final class SiteFieldData extends StorageRegistry implements Storageregistryinterface +{ + /** + * In Array + * + * @since 3.2.0 + */ + use InArray; +} + diff --git a/src/33f5131e-4a5b-414b-95dd-d22227c2666d/code.power b/src/33f5131e-4a5b-414b-95dd-d22227c2666d/code.power new file mode 100644 index 0000000..3a43b47 --- /dev/null +++ b/src/33f5131e-4a5b-414b-95dd-d22227c2666d/code.power @@ -0,0 +1,6 @@ + /** + * In Array + * + * @since 3.2.0 + */ + use InArray; \ No newline at end of file diff --git a/src/33f5131e-4a5b-414b-95dd-d22227c2666d/settings.json b/src/33f5131e-4a5b-414b-95dd-d22227c2666d/settings.json new file mode 100644 index 0000000..a39a9a2 --- /dev/null +++ b/src/33f5131e-4a5b-414b-95dd-d22227c2666d/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "33f5131e-4a5b-414b-95dd-d22227c2666d", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "SiteFieldData", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.SiteFieldData", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "215b35ac-1b26-4838-bbcf-d1fdbbd9353f", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.SiteFieldData", + "description": "Site Field Data Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/3468b447-a929-4c28-84a1-f2c3a27e3127/README.md b/src/3468b447-a929-4c28-84a1-f2c3a27e3127/README.md new file mode 100644 index 0000000..4aeba25 --- /dev/null +++ b/src/3468b447-a929-4c28-84a1-f2c3a27e3127/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ModelExpertFieldInitiator (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ModelExpertFieldInitiator << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/3468b447-a929-4c28-84a1-f2c3a27e3127/code.php b/src/3468b447-a929-4c28-84a1-f2c3a27e3127/code.php new file mode 100644 index 0000000..be2c9a4 --- /dev/null +++ b/src/3468b447-a929-4c28-84a1-f2c3a27e3127/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Expert Field Initiator Model Builder Class + * + * @since 3.2.0 + */ +final class ModelExpertFieldInitiator extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/3468b447-a929-4c28-84a1-f2c3a27e3127/code.power b/src/3468b447-a929-4c28-84a1-f2c3a27e3127/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/3468b447-a929-4c28-84a1-f2c3a27e3127/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/3468b447-a929-4c28-84a1-f2c3a27e3127/settings.json b/src/3468b447-a929-4c28-84a1-f2c3a27e3127/settings.json new file mode 100644 index 0000000..625a446 --- /dev/null +++ b/src/3468b447-a929-4c28-84a1-f2c3a27e3127/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "3468b447-a929-4c28-84a1-f2c3a27e3127", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ModelExpertFieldInitiator", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ModelExpertFieldInitiator", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ModelExpertFieldInitiator", + "description": "Expert Field Initiator Model Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/README.md b/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/README.md index 2ea6ccf..9099651 100644 --- a/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/README.md +++ b/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/README.md @@ -12,13 +12,13 @@ @startuml class Mysqlsettings #Gold { # Config $config - # Registry $registry - + __construct(?Config $config = null, ?Registry $registry = null) + # MysqlTableSetting $mysqltablesetting + + __construct(Config $config, MysqlTableSetting $mysqltablesetting) + set(object $item) : void } note right of Mysqlsettings::__construct - Constructor + Constructor. since: 3.2.0 end note diff --git a/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/code.php b/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/code.php index a094986..f626ffd 100644 --- a/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/code.php +++ b/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/code.php @@ -12,9 +12,8 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Model; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\MysqlTableSetting; use VDM\Joomla\Utilities\StringHelper; @@ -26,33 +25,33 @@ use VDM\Joomla\Utilities\StringHelper; class Mysqlsettings { /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * Compiler Registry + * The MysqlTableSetting Class. * - * @var Registry + * @var MysqlTableSetting * @since 3.2.0 */ - protected Registry $registry; + protected MysqlTableSetting $mysqltablesetting; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config. - * @param Registry|null $registry The compiler registry. + * @param Config $config The Config Class. + * @param MysqlTableSetting $mysqltablesetting The MysqlTableSetting Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null) + public function __construct(Config $config, MysqlTableSetting $mysqltablesetting) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); + $this->config = $config; + $this->mysqltablesetting = $mysqltablesetting; } /** @@ -65,23 +64,19 @@ class Mysqlsettings */ public function set(object &$item) { - foreach ( - $this->config->mysql_table_keys as $mysql_table_key => $mysql_table_val - ) + foreach ($this->config->mysql_table_keys as $mysql_table_key => $mysql_table_val) { if (isset($item->{'mysql_table_' . $mysql_table_key}) - && StringHelper::check( - $item->{'mysql_table_' . $mysql_table_key} - ) + && StringHelper::check($item->{'mysql_table_' . $mysql_table_key}) && !is_numeric($item->{'mysql_table_' . $mysql_table_key})) { - $this->registry->set('builder.mysql_table_setting.' . $item->name_single_code . '.' . + $this->mysqltablesetting->set($item->name_single_code . '.' . $mysql_table_key, $item->{'mysql_table_' . $mysql_table_key} ); } else { - $this->registry->set('builder.mysql_table_setting.' . $item->name_single_code . '.' . + $this->mysqltablesetting->set($item->name_single_code . '.' . $mysql_table_key, $mysql_table_val['default'] ); } @@ -89,7 +84,6 @@ class Mysqlsettings // remove the table values since we moved to another object unset($item->{'mysql_table_' . $mysql_table_key}); } - } - + } } diff --git a/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/code.power b/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/code.power index 6218757..74488a5 100644 --- a/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/code.power +++ b/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/code.power @@ -1,31 +1,31 @@ /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * Compiler Registry + * The MysqlTableSetting Class. * - * @var Registry + * @var MysqlTableSetting * @since 3.2.0 */ - protected Registry $registry; + protected MysqlTableSetting $mysqltablesetting; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config. - * @param Registry|null $registry The compiler registry. + * @param Config $config The Config Class. + * @param MysqlTableSetting $mysqltablesetting The MysqlTableSetting Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null) + public function __construct(Config $config, MysqlTableSetting $mysqltablesetting) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); + $this->config = $config; + $this->mysqltablesetting = $mysqltablesetting; } /** @@ -38,23 +38,19 @@ */ public function set(object &$item) { - foreach ( - $this->config->mysql_table_keys as $mysql_table_key => $mysql_table_val - ) + foreach ($this->config->mysql_table_keys as $mysql_table_key => $mysql_table_val) { if (isset($item->{'mysql_table_' . $mysql_table_key}) - && StringHelper::check( - $item->{'mysql_table_' . $mysql_table_key} - ) + && StringHelper::check($item->{'mysql_table_' . $mysql_table_key}) && !is_numeric($item->{'mysql_table_' . $mysql_table_key})) { - $this->registry->set('builder.mysql_table_setting.' . $item->name_single_code . '.' . + $this->mysqltablesetting->set($item->name_single_code . '.' . $mysql_table_key, $item->{'mysql_table_' . $mysql_table_key} ); } else { - $this->registry->set('builder.mysql_table_setting.' . $item->name_single_code . '.' . + $this->mysqltablesetting->set($item->name_single_code . '.' . $mysql_table_key, $mysql_table_val['default'] ); } @@ -62,4 +58,4 @@ // remove the table values since we moved to another object unset($item->{'mysql_table_' . $mysql_table_key}); } - } + } \ No newline at end of file diff --git a/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/settings.json b/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/settings.json index 6e0f398..4632eab 100644 --- a/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/settings.json +++ b/src/35191b0c-f7f3-44d6-8ec1-c816b997bd4e/settings.json @@ -10,16 +10,12 @@ "system_name": "JCB.Compiler.Model.Mysqlsettings", "type": "class", "use_selection": { - "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, "use_selection1": { "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", "as": "default" }, "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "use": "9ff6d6cd-afea-4f15-a67b-fd132d386989", "as": "default" }, "use_selection3": { diff --git a/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/README.md b/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/README.md new file mode 100644 index 0000000..a9a4b3b --- /dev/null +++ b/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/README.md @@ -0,0 +1,99 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ServiceProvider (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Generator** +```uml +@startuml +class ServiceProvider << (F,LightGreen) >> #RoyalBlue { + # string $version + # array $registerlines + # array $getfunctions + + getCode() : ?string + + setVersion(string $version) : void + + setRegisterLine(string $className, string $functionName, ...) : void + + setGetFunction(string $className, string $functionName, ...) : void + # getAlias(string $className, string $alias) : string + # getShare(string $functionName, string $alias) : string + # getDependencies(string $className, ?array $dependencies = null) : string +} + +note right of ServiceProvider::getCode + Get the generated class code + + since: 3.2.0 + return: ?string +end note + +note right of ServiceProvider::setVersion + Set the class since version + + since: 3.2.0 + return: void +end note + +note right of ServiceProvider::setRegisterLine + Set the class alias and share code for the service provider register. + + since: 3.2.0 + return: void + + arguments: + string $className + string $functionName + string $alias +end note + +note right of ServiceProvider::setGetFunction + Set the class get function for the service provider. + + since: 3.2.0 + return: void + + arguments: + string $className + string $functionName + string $description + ?array $dependencies = null +end note + +note right of ServiceProvider::getAlias + Generates the class alias for the service provider. + + since: 3.2.0 + return: string +end note + +note right of ServiceProvider::getShare + Generates the class share for the service provider. + + since: 3.2.0 + return: string +end note + +note right of ServiceProvider::getDependencies + Generates the class dependencies. + + since: 3.2.0 + return: string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/code.php b/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/code.php new file mode 100644 index 0000000..7173c0b --- /dev/null +++ b/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/code.php @@ -0,0 +1,203 @@ + + * @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\Power\Generator; + + +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; + + +/** + * Power code Generator for the Service Provider of JCB + * + * @since 3.2.0 + */ +final class ServiceProvider +{ + /** + * The version + * + * @var string + * @since 3.2.0 + **/ + protected string $version; + + /** + * The register lines + * + * @var array + * @since 3.2.0 + **/ + protected array $registerlines = []; + + /** + * The get functions + * + * @var array + * @since 3.2.0 + **/ + protected array $getfunctions = []; + + /** + * Get the generated class code + * + * @return string|null + * @since 3.2.0 + */ + public function getCode(): ?string + { + if ($this->registerlines === []) + { + return null; + } + + $code = []; + + $code[] = Indent::_(1) . "/**"; + $code[] = Indent::_(1) . " * Registers the service provider with a DI container."; + $code[] = Indent::_(1) . " *"; + $code[] = Indent::_(1) . " * @param Container \$container The DI container."; + $code[] = Indent::_(1) . " *"; + $code[] = Indent::_(1) . " * @return void"; + $code[] = Indent::_(1) . " * @since {$this->version}"; + $code[] = Indent::_(1) . " */"; + $code[] = Indent::_(1) . "public function register(Container \$container)"; + $code[] = Indent::_(1) . "{"; + $code[] = implode(PHP_EOL . PHP_EOL, $this->registerlines); + $code[] = Indent::_(1) . "}"; + $code[] = PHP_EOL . implode(PHP_EOL . PHP_EOL, $this->getfunctions); + + $this->registerlines = []; + $this->getfunctions = []; + + return implode(PHP_EOL, $code); + } + + /** + * Set the class since version + * + * @param string $version The variable version format. + * + * @return void + * @since 3.2.0 + */ + public function setVersion(string $version): void + { + $this->version = $version; + } + + /** + * Set the class alias and share code for the service provider register. + * + * @param string $className The variable name in lowerCamelCase format. + * @param string $functionName The function name in lowerCamelCase format. + * @param string $alias The variable alias format. + * + * @return void + * @since 3.2.0 + */ + public function setRegisterLine(string $className, string $functionName, string $alias): void + { + $this->registerlines[] = implode(PHP_EOL , [ + $this->getAlias($className, $alias), + $this->getShare($functionName, $alias) + ]); + } + + /** + * Set the class get function for the service provider. + * + * @param string $className The variable name in lowerCamelCase format. + * @param string $functionName The function name in lowerCamelCase format. + * @param string $description The function description. + * @param array|null $dependencies The class dependencies aliases. + * + * @return void + * @since 3.2.0 + */ + public function setGetFunction(string $className, string $functionName, + string $description, ?array $dependencies = null): void + { + $this->getfunctions[] = implode(PHP_EOL , [ + Indent::_(1) . "/**", + Indent::_(1) . " * $description", + Indent::_(1) . " *", + Indent::_(1) . " * @param Container \$container The DI container.", + Indent::_(1) . " *", + Indent::_(1) . " * @return $className", + Indent::_(1) . " * @since {$this->version}", + Indent::_(1) . " */", + Indent::_(1) . "public function $functionName(Container \$container): $className", + Indent::_(1) . "{", + $this->getDependencies($className, $dependencies), + Indent::_(1) . "}" + ]); + } + + /** + * Generates the class alias for the service provider. + * + * @param string $className The variable name in lowerCamelCase format. + * @param string $alias The variable alias format. + * + * @return string Generated class alias code. + * @since 3.2.0 + */ + protected function getAlias(string $className, string $alias): string + { + return Indent::_(2) . "\$container->alias({$className}::class, '{$alias}')"; + } + + /** + * Generates the class share for the service provider. + * + * @param string $functionName The function name in lowerCamelCase format. + * @param string $alias The variable alias format. + * + * @return string Generated class share code. + * @since 3.2.0 + */ + protected function getShare(string $functionName, string $alias): string + { + return Indent::_(3) . "->share('$alias', [\$this, '$functionName'], true);"; + } + + /** + * Generates the class dependencies. + * + * @param string $className The variable name in lowerCamelCase format. + * @param array|null $dependencies The class dependencies aliases. + * + * @return string Generated class and its dependencies code if found. + * @since 3.2.0 + */ + protected function getDependencies(string $className, ?array $dependencies = null): string + { + $bucket = []; + if (!empty($dependencies)) + { + $bucket[] = Indent::_(2) . "return new $className("; + $bucket[] = Indent::_(3) . "\$container->get('" + . implode( + "')," . PHP_EOL . Indent::_(3) . "\$container->get('" + , $dependencies + ) . "')"; + $bucket[] = Indent::_(2) . ");"; + } + else + { + $bucket[] = Indent::_(2) . "return new $className();"; + } + + return implode(PHP_EOL , $bucket); + } +} + diff --git a/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/code.power b/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/code.power new file mode 100644 index 0000000..9a3a91d --- /dev/null +++ b/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/code.power @@ -0,0 +1,177 @@ + /** + * The version + * + * @var string + * @since 3.2.0 + **/ + protected string $version; + + /** + * The register lines + * + * @var array + * @since 3.2.0 + **/ + protected array $registerlines = []; + + /** + * The get functions + * + * @var array + * @since 3.2.0 + **/ + protected array $getfunctions = []; + + /** + * Get the generated class code + * + * @return string|null + * @since 3.2.0 + */ + public function getCode(): ?string + { + if ($this->registerlines === []) + { + return null; + } + + $code = []; + + $code[] = Indent::_(1) . "/**"; + $code[] = Indent::_(1) . " * Registers the service provider with a DI container."; + $code[] = Indent::_(1) . " *"; + $code[] = Indent::_(1) . " * @param Container \$container The DI container."; + $code[] = Indent::_(1) . " *"; + $code[] = Indent::_(1) . " * @return void"; + $code[] = Indent::_(1) . " * @since {$this->version}"; + $code[] = Indent::_(1) . " */"; + $code[] = Indent::_(1) . "public function register(Container \$container)"; + $code[] = Indent::_(1) . "{"; + $code[] = implode(PHP_EOL . PHP_EOL, $this->registerlines); + $code[] = Indent::_(1) . "}"; + $code[] = PHP_EOL . implode(PHP_EOL . PHP_EOL, $this->getfunctions); + + $this->registerlines = []; + $this->getfunctions = []; + + return implode(PHP_EOL, $code); + } + + /** + * Set the class since version + * + * @param string $version The variable version format. + * + * @return void + * @since 3.2.0 + */ + public function setVersion(string $version): void + { + $this->version = $version; + } + + /** + * Set the class alias and share code for the service provider register. + * + * @param string $className The variable name in lowerCamelCase format. + * @param string $functionName The function name in lowerCamelCase format. + * @param string $alias The variable alias format. + * + * @return void + * @since 3.2.0 + */ + public function setRegisterLine(string $className, string $functionName, string $alias): void + { + $this->registerlines[] = implode(PHP_EOL , [ + $this->getAlias($className, $alias), + $this->getShare($functionName, $alias) + ]); + } + + /** + * Set the class get function for the service provider. + * + * @param string $className The variable name in lowerCamelCase format. + * @param string $functionName The function name in lowerCamelCase format. + * @param string $description The function description. + * @param array|null $dependencies The class dependencies aliases. + * + * @return void + * @since 3.2.0 + */ + public function setGetFunction(string $className, string $functionName, + string $description, ?array $dependencies = null): void + { + $this->getfunctions[] = implode(PHP_EOL , [ + Indent::_(1) . "/**", + Indent::_(1) . " * $description", + Indent::_(1) . " *", + Indent::_(1) . " * @param Container \$container The DI container.", + Indent::_(1) . " *", + Indent::_(1) . " * @return $className", + Indent::_(1) . " * @since {$this->version}", + Indent::_(1) . " */", + Indent::_(1) . "public function $functionName(Container \$container): $className", + Indent::_(1) . "{", + $this->getDependencies($className, $dependencies), + Indent::_(1) . "}" + ]); + } + + /** + * Generates the class alias for the service provider. + * + * @param string $className The variable name in lowerCamelCase format. + * @param string $alias The variable alias format. + * + * @return string Generated class alias code. + * @since 3.2.0 + */ + protected function getAlias(string $className, string $alias): string + { + return Indent::_(2) . "\$container->alias({$className}::class, '{$alias}')"; + } + + /** + * Generates the class share for the service provider. + * + * @param string $functionName The function name in lowerCamelCase format. + * @param string $alias The variable alias format. + * + * @return string Generated class share code. + * @since 3.2.0 + */ + protected function getShare(string $functionName, string $alias): string + { + return Indent::_(3) . "->share('$alias', [\$this, '$functionName'], true);"; + } + + /** + * Generates the class dependencies. + * + * @param string $className The variable name in lowerCamelCase format. + * @param array|null $dependencies The class dependencies aliases. + * + * @return string Generated class and its dependencies code if found. + * @since 3.2.0 + */ + protected function getDependencies(string $className, ?array $dependencies = null): string + { + $bucket = []; + if (!empty($dependencies)) + { + $bucket[] = Indent::_(2) . "return new $className("; + $bucket[] = Indent::_(3) . "\$container->get('" + . implode( + "')," . PHP_EOL . Indent::_(3) . "\$container->get('" + , $dependencies + ) . "')"; + $bucket[] = Indent::_(2) . ");"; + } + else + { + $bucket[] = Indent::_(2) . "return new $className();"; + } + + return implode(PHP_EOL , $bucket); + } \ No newline at end of file diff --git a/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/settings.json b/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/settings.json new file mode 100644 index 0000000..bb8678d --- /dev/null +++ b/src/369ae3f5-90db-43b9-aba9-ce5c83311c4e/settings.json @@ -0,0 +1,23 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "369ae3f5-90db-43b9-aba9-ce5c83311c4e", + "implements": null, + "load_selection": null, + "name": "ServiceProvider", + "power_version": "1.0.0", + "system_name": "JCB.Power.Generator.ServiceProvider", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Generator.ServiceProvider", + "description": "Power code Generator for the Service Provider of JCB\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": "" +} \ No newline at end of file diff --git a/src/380bb7a3-cdcc-4336-a699-5070cbf521a5/README.md b/src/380bb7a3-cdcc-4336-a699-5070cbf521a5/README.md index adfca08..1b6a68d 100644 --- a/src/380bb7a3-cdcc-4336-a699-5070cbf521a5/README.md +++ b/src/380bb7a3-cdcc-4336-a699-5070cbf521a5/README.md @@ -10,7 +10,7 @@ > namespace: **VDM\Joomla\Componentbuilder\Power\Database** ```uml @startuml -class Insert << (F,LightGreen) >> #Green { +class Insert << (F,LightGreen) >> #RoyalBlue { # Model $model # Database $database + __construct(Model $model, Database $database) diff --git a/src/380bb7a3-cdcc-4336-a699-5070cbf521a5/code.php b/src/380bb7a3-cdcc-4336-a699-5070cbf521a5/code.php index e0b0edb..e01e5e0 100644 --- a/src/380bb7a3-cdcc-4336-a699-5070cbf521a5/code.php +++ b/src/380bb7a3-cdcc-4336-a699-5070cbf521a5/code.php @@ -12,8 +12,8 @@ namespace VDM\Joomla\Componentbuilder\Power\Database; -use VDM\Joomla\Componentbuilder\Power\Model as Model; -use VDM\Joomla\Componentbuilder\Database\Insert as Database; +use VDM\Joomla\Componentbuilder\Power\Model\Upsert as Model; +use VDM\Joomla\Database\Insert as Database; /** diff --git a/src/39ea8150-f124-4e47-909d-641bf1c96d5e/README.md b/src/39ea8150-f124-4e47-909d-641bf1c96d5e/README.md index 8770b78..5ec11a1 100644 --- a/src/39ea8150-f124-4e47-909d-641bf1c96d5e/README.md +++ b/src/39ea8150-f124-4e47-909d-641bf1c96d5e/README.md @@ -12,21 +12,23 @@ @startuml class Data #Gold { # Config $config - # Registry $registry - # Aliasdata $alias - + __construct(?Config $config = null, ?Registry $registry = null, ...) + # LayoutData $layoutdata + # TemplateData $templatedata + # Aliasdata $aliasdata + + __construct(Config $config, LayoutData $layoutdata, ...) + set(string $content, string $view, ...) : bool } note right of Data::__construct - Constructor + Constructor. since: 3.2.0 arguments: - ?Config $config = null - ?Registry $registry = null - ?Aliasdata $alias = null + Config $config + LayoutData $layoutdata + TemplateData $templatedata + Aliasdata $aliasdata end note note right of Data::set diff --git a/src/39ea8150-f124-4e47-909d-641bf1c96d5e/code.php b/src/39ea8150-f124-4e47-909d-641bf1c96d5e/code.php index 0cd5ab5..f0cca17 100644 --- a/src/39ea8150-f124-4e47-909d-641bf1c96d5e/code.php +++ b/src/39ea8150-f124-4e47-909d-641bf1c96d5e/code.php @@ -12,9 +12,9 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Templatelayout; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\LayoutData; +use VDM\Joomla\Componentbuilder\Compiler\Builder\TemplateData; use VDM\Joomla\Componentbuilder\Compiler\Alias\Data as Aliasdata; use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\GetHelper; @@ -28,44 +28,53 @@ use VDM\Joomla\Utilities\GetHelper; class Data { /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The LayoutData Class. * - * @var Registry + * @var LayoutData * @since 3.2.0 */ - protected Registry $registry; + protected LayoutData $layoutdata; /** - * Compiler Alias Data + * The TemplateData Class. * - * @var AliasData + * @var TemplateData * @since 3.2.0 */ - protected Aliasdata $alias; + protected TemplateData $templatedata; /** - * Constructor + * The Data Class. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param Aliasdata|null $alias The compiler alias data object. + * @var Aliasdata + * @since 3.2.0 + */ + protected Aliasdata $aliasdata; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param LayoutData $layoutdata The LayoutData Class. + * @param TemplateData $templatedata The TemplateData Class. + * @param Aliasdata $aliasdata The AliasData Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, - ?Aliasdata $alias = null) + public function __construct(Config $config, LayoutData $layoutdata, TemplateData $templatedata, Aliasdata $aliasdata) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->alias = $alias ?: Compiler::_('Alias.Data'); + $this->config = $config; + $this->layoutdata = $layoutdata; + $this->templatedata = $templatedata; + $this->aliasdata = $aliasdata; } /** @@ -119,17 +128,17 @@ class Data { foreach ($templates as $template) { - if (!$this->registry-> - get('builder.template_data.' . $this->config->build_target . '.' . $view . '.' . $template, null)) + if (!$this->templatedata-> + exists($this->config->build_target . '.' . $view . '.' . $template)) { - $data = $this->alias->get( + $data = $this->aliasdata->get( $template, 'template', $view ); if (ArrayHelper::check($data)) { // load it to the template data array - $this->registry-> - set('builder.template_data.' . $this->config->build_target . '.' . $view . '.' . $template, $data); + $this->templatedata-> + set($this->config->build_target . '.' . $view . '.' . $template, $data); // call self to get child data $again[] = ['content' => $data['html'], 'view' => $view]; $again[] = ['content' => $data['php_view'], 'view' => $view]; @@ -137,8 +146,8 @@ class Data } // check if we have the template set (and nothing yet found) - if (!$found && $this->registry-> - get('builder.template_data.' . $this->config->build_target . '.' . $view . '.' . $template, null)) + if (!$found && $this->templatedata-> + exists($this->config->build_target . '.' . $view . '.' . $template, null)) { // something was found $found = true; @@ -186,20 +195,18 @@ class Data foreach ($layouts as $layout) { - if (!$this->registry-> - get('builder.layout_data.' . $this->config->build_target . '.' . $layout, null)) + if (!$this->layoutdata->exists($this->config->build_target . '.' . $layout)) { - $data = $this->alias->get($layout, 'layout', $view); + $data = $this->aliasdata->get($layout, 'layout', $view); if (ArrayHelper::check($data)) { // load it to the layout data array - $this->registry-> - set('builder.layout_data.' . $this->config->build_target . '.' . $layout, $data); + $this->layoutdata-> + set($this->config->build_target . '.' . $layout, $data); // check if other target is set if ($this->config->lang_target === 'both' && $_target) { - $this->registry-> - set('builder.layout_data.' . $_target . '.' . $layout, $data); + $this->layoutdata->set($_target . '.' . $layout, $data); } // call self to get child data $again[] = ['content' => $data['html'], 'view' => $view]; @@ -208,8 +215,7 @@ class Data } // check if we have the layout set (and nothing yet found) - if (!$found && $this->registry-> - get('builder.layout_data.' . $this->config->build_target . '.' . $layout, null)) + if (!$found && $this->layoutdata->exists($this->config->build_target . '.' . $layout)) { // something was found $found = true; @@ -230,7 +236,6 @@ class Data // return the proof that something was found return $found; - } - + } } diff --git a/src/39ea8150-f124-4e47-909d-641bf1c96d5e/code.power b/src/39ea8150-f124-4e47-909d-641bf1c96d5e/code.power index 178f75f..281a9d7 100644 --- a/src/39ea8150-f124-4e47-909d-641bf1c96d5e/code.power +++ b/src/39ea8150-f124-4e47-909d-641bf1c96d5e/code.power @@ -1,42 +1,51 @@ /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The LayoutData Class. * - * @var Registry + * @var LayoutData * @since 3.2.0 */ - protected Registry $registry; + protected LayoutData $layoutdata; /** - * Compiler Alias Data + * The TemplateData Class. * - * @var AliasData + * @var TemplateData * @since 3.2.0 */ - protected Aliasdata $alias; + protected TemplateData $templatedata; /** - * Constructor + * The Data Class. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param Aliasdata|null $alias The compiler alias data object. + * @var Aliasdata + * @since 3.2.0 + */ + protected Aliasdata $aliasdata; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param LayoutData $layoutdata The LayoutData Class. + * @param TemplateData $templatedata The TemplateData Class. + * @param Aliasdata $aliasdata The AliasData Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, - ?Aliasdata $alias = null) + public function __construct(Config $config, LayoutData $layoutdata, TemplateData $templatedata, Aliasdata $aliasdata) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->alias = $alias ?: Compiler::_('Alias.Data'); + $this->config = $config; + $this->layoutdata = $layoutdata; + $this->templatedata = $templatedata; + $this->aliasdata = $aliasdata; } /** @@ -90,17 +99,17 @@ { foreach ($templates as $template) { - if (!$this->registry-> - get('builder.template_data.' . $this->config->build_target . '.' . $view . '.' . $template, null)) + if (!$this->templatedata-> + exists($this->config->build_target . '.' . $view . '.' . $template)) { - $data = $this->alias->get( + $data = $this->aliasdata->get( $template, 'template', $view ); if (ArrayHelper::check($data)) { // load it to the template data array - $this->registry-> - set('builder.template_data.' . $this->config->build_target . '.' . $view . '.' . $template, $data); + $this->templatedata-> + set($this->config->build_target . '.' . $view . '.' . $template, $data); // call self to get child data $again[] = ['content' => $data['html'], 'view' => $view]; $again[] = ['content' => $data['php_view'], 'view' => $view]; @@ -108,8 +117,8 @@ } // check if we have the template set (and nothing yet found) - if (!$found && $this->registry-> - get('builder.template_data.' . $this->config->build_target . '.' . $view . '.' . $template, null)) + if (!$found && $this->templatedata-> + exists($this->config->build_target . '.' . $view . '.' . $template, null)) { // something was found $found = true; @@ -157,20 +166,18 @@ foreach ($layouts as $layout) { - if (!$this->registry-> - get('builder.layout_data.' . $this->config->build_target . '.' . $layout, null)) + if (!$this->layoutdata->exists($this->config->build_target . '.' . $layout)) { - $data = $this->alias->get($layout, 'layout', $view); + $data = $this->aliasdata->get($layout, 'layout', $view); if (ArrayHelper::check($data)) { // load it to the layout data array - $this->registry-> - set('builder.layout_data.' . $this->config->build_target . '.' . $layout, $data); + $this->layoutdata-> + set($this->config->build_target . '.' . $layout, $data); // check if other target is set if ($this->config->lang_target === 'both' && $_target) { - $this->registry-> - set('builder.layout_data.' . $_target . '.' . $layout, $data); + $this->layoutdata->set($_target . '.' . $layout, $data); } // call self to get child data $again[] = ['content' => $data['html'], 'view' => $view]; @@ -179,8 +186,7 @@ } // check if we have the layout set (and nothing yet found) - if (!$found && $this->registry-> - get('builder.layout_data.' . $this->config->build_target . '.' . $layout, null)) + if (!$found && $this->layoutdata->exists($this->config->build_target . '.' . $layout)) { // something was found $found = true; @@ -201,4 +207,4 @@ // return the proof that something was found return $found; - } + } \ No newline at end of file diff --git a/src/39ea8150-f124-4e47-909d-641bf1c96d5e/settings.json b/src/39ea8150-f124-4e47-909d-641bf1c96d5e/settings.json index 040a8b6..5535cc8 100644 --- a/src/39ea8150-f124-4e47-909d-641bf1c96d5e/settings.json +++ b/src/39ea8150-f124-4e47-909d-641bf1c96d5e/settings.json @@ -11,15 +11,15 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, - "use_selection1": { "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", "as": "default" }, + "use_selection1": { + "use": "7415fdb4-5719-40b7-b01f-05588e968b47", + "as": "default" + }, "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "use": "8591f6db-dd3c-4a63-9b3f-574c0ec74ade", "as": "default" }, "use_selection3": { diff --git a/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/README.md b/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/README.md index 32d890b..a000dbe 100644 --- a/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/README.md +++ b/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/README.md @@ -10,7 +10,7 @@ > namespace: **VDM\Joomla\Componentbuilder\Power** ```uml @startuml -class Super << (F,LightGreen) >> #Green { +class Super << (F,LightGreen) >> #RoyalBlue { # Grep $grep # Insert $insert # Update $update diff --git a/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/code.php b/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/code.php index 5834222..58cf874 100644 --- a/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/code.php +++ b/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/code.php @@ -12,9 +12,9 @@ namespace VDM\Joomla\Componentbuilder\Power; +use VDM\Joomla\Componentbuilder\Power\Grep; use VDM\Joomla\Componentbuilder\Power\Database\Insert; use VDM\Joomla\Componentbuilder\Power\Database\Update; -use VDM\Joomla\Componentbuilder\Power\Grep; use VDM\Joomla\Utilities\GuidHelper; diff --git a/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/settings.json b/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/settings.json index af10922..6020cb9 100644 --- a/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/settings.json +++ b/src/3ab0eba9-f37b-4b37-aec1-2e78067f2aff/settings.json @@ -10,6 +10,10 @@ "system_name": "JCB.Power.Super", "type": "final class", "use_selection": { + "use_selection2": { + "use": "6784dd52-0909-451a-a872-9a942a023c68", + "as": "default" + }, "use_selection0": { "use": "380bb7a3-cdcc-4336-a699-5070cbf521a5", "as": "default" @@ -18,10 +22,6 @@ "use": "e543c123-b1d9-4a0b-83b2-a9d371da5ff3", "as": "default" }, - "use_selection2": { - "use": "6784dd52-0909-451a-a872-9a942a023c68", - "as": "default" - }, "use_selection3": { "use": "9c513baf-b279-43fd-ae29-a585c8cbc4f0", "as": "default" diff --git a/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/README.md b/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/README.md new file mode 100644 index 0000000..0053869 --- /dev/null +++ b/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class OtherOrder (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class OtherOrder << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/code.php b/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/code.php new file mode 100644 index 0000000..e7599c6 --- /dev/null +++ b/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Other Order Builder Class + * + * @since 3.2.0 + */ +final class OtherOrder extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/code.power b/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/settings.json b/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/settings.json new file mode 100644 index 0000000..0b00ab1 --- /dev/null +++ b/src/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "3f83fe11-1ef6-4020-bd73-f3bb58cefe3a", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "OtherOrder", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.OtherOrder", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.OtherOrder", + "description": "Other Order Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/44d039b9-d293-481b-b560-23a6e7a63962/README.md b/src/44d039b9-d293-481b-b560-23a6e7a63962/README.md new file mode 100644 index 0000000..9526bb0 --- /dev/null +++ b/src/44d039b9-d293-481b-b560-23a6e7a63962/README.md @@ -0,0 +1,77 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FieldString (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class FieldString << (F,LightGreen) >> #RoyalBlue { + # Config $config + # Language $language + # Field $field + # Groups $groups + # Name $name + # TypeName $typename + # Attributes $attributes + # CustomFieldTypeFile $customfieldtypefile + # Counter $counter + + __construct(Config $config, Language $language, ...) + + get(string $setType, array $fieldAttributes, ...) : string +} + +note right of FieldString::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + Language $language + Field $field + Groups $groups + Name $name + TypeName $typename + Attributes $attributes + CustomFieldTypeFile $customfieldtypefile + Counter $counter +end note + +note right of FieldString::get + Create a field using string manipulation + + since: 3.2.0 + return: string + + arguments: + string $setType + array $fieldAttributes + string $name + string $typeName + string $langView + string $nameSingleCode + string $nameListCode + array $placeholders + array|null $optionArray + ?array $custom = null + string $taber = '' +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/44d039b9-d293-481b-b560-23a6e7a63962/code.php b/src/44d039b9-d293-481b-b560-23a6e7a63962/code.php new file mode 100644 index 0000000..ff8ec42 --- /dev/null +++ b/src/44d039b9-d293-481b-b560-23a6e7a63962/code.php @@ -0,0 +1,1167 @@ + + * @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\Compiler\Creator; + + +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Language; +use VDM\Joomla\Componentbuilder\Compiler\Field; +use VDM\Joomla\Componentbuilder\Compiler\Field\Groups; +use VDM\Joomla\Componentbuilder\Compiler\Field\Name; +use VDM\Joomla\Componentbuilder\Compiler\Field\TypeName; +use VDM\Joomla\Componentbuilder\Compiler\Field\Attributes; +use VDM\Joomla\Componentbuilder\Compiler\Creator\CustomFieldTypeFile; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Counter; +use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Utilities\ObjectHelper; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Utilities\String\FieldHelper; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator\Fieldtypeinterface; + + +/** + * Field String Creator Class + * + * @since 3.2.0 + */ +final class FieldString implements Fieldtypeinterface +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The Field Class. + * + * @var Field + * @since 3.2.0 + */ + protected Field $field; + + /** + * The Groups Class. + * + * @var Groups + * @since 3.2.0 + */ + protected Groups $groups; + + /** + * The Name Class. + * + * @var Name + * @since 3.2.0 + */ + protected Name $name; + + /** + * The TypeName Class. + * + * @var TypeName + * @since 3.2.0 + */ + protected TypeName $typename; + + /** + * The Attributes Class. + * + * @var Attributes + * @since 3.2.0 + */ + protected Attributes $attributes; + + /** + * The CustomFieldTypeFile Class. + * + * @var CustomFieldTypeFile + * @since 3.2.0 + */ + protected CustomFieldTypeFile $customfieldtypefile; + + /** + * The Counter Class. + * + * @var Counter + * @since 3.2.0 + */ + protected Counter $counter; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Language $language The Language Class. + * @param Field $field The Field Class. + * @param Groups $groups The Groups Class. + * @param Name $name The Name Class. + * @param TypeName $typename The TypeName Class. + * @param Attributes $attributes The Attributes Class. + * @param CustomFieldTypeFile $customfieldtypefile The CustomFieldTypeFile Class. + * @param Counter $counter The Counter Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Language $language, Field $field, + Groups $groups, Name $name, TypeName $typename, + Attributes $attributes, + CustomFieldTypeFile $customfieldtypefile, + Counter $counter) + { + $this->config = $config; + $this->language = $language; + $this->field = $field; + $this->groups = $groups; + $this->name = $name; + $this->typename = $typename; + $this->attributes = $attributes; + $this->customfieldtypefile = $customfieldtypefile; + $this->counter = $counter; + } + + /** + * Create a field using string manipulation + * + * @param string $setType The set of fields type + * @param array $fieldAttributes The field values + * @param string $name The field name + * @param string $typeName The field type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The place holder and replace values + * @param array|null $optionArray The option bucket array used to set the field options if needed. + * @param array|null $custom Used when field is from config + * @param string $taber The tabs to add in layout + * + * @return string The field in a string + * @since 3.2.0 + */ + public function get(string $setType, array &$fieldAttributes, string &$name, + string &$typeName, string &$langView, string &$nameSingleCode, string &$nameListCode, + array $placeholders, ?array &$optionArray, ?array $custom = null, string $taber = ''): string + { + // count the dynamic fields created + $this->counter->field++; + + // build field set using string manipulation + $field = ''; + if ($setType === 'option') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(1) . $taber . Indent::_(1) + . ""; + $field .= PHP_EOL . Indent::_(1) . $taber . Indent::_(1) + . " $value) + { + if ($property != 'option') + { + $field .= PHP_EOL . Indent::_(2) . $taber . Indent::_(1) + . $property . '="' . $value . '"'; + } + elseif ($property === 'option') + { + $optionSet = ''; + if (strtolower($typeName) === 'groupedlist' + && strpos( + (string) $value, ',' + ) !== false + && strpos((string) $value, '@@') !== false) + { + // reset the group temp arrays + $groups_ = array(); + $grouped_ = array('group' => array(), + 'option' => array()); + $order_ = array(); + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '@@') !== false) + { + // set the group label + $valueKeyArray = explode('@@', $option); + if (count((array) $valueKeyArray) == 2) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[0], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[0] + ); + // now add group label + $groups_[$valueKeyArray[1]] = PHP_EOL + . Indent::_(1) . $taber . Indent::_(2) + . ''; + // set order + $order_['group' . $valueKeyArray[1]] + = $valueKeyArray[1]; + } + } + elseif (strpos($option, '|') !== false) + { + // has other value then text + $valueKeyArray = explode('|', $option); + if (count((array) $valueKeyArray) == 3) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['group'][$valueKeyArray[2]][] + = PHP_EOL . Indent::_(1) . $taber + . Indent::_(3) . ''; + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['group' . $valueKeyArray[2]] + = $valueKeyArray[2]; + } + else + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['option'][$valueKeyArray[0]] + = PHP_EOL . Indent::_(1) . $taber + . Indent::_(2) . ''; + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['option' . $valueKeyArray[0]] + = $valueKeyArray[0]; + } + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $grouped_['option'][$option] = PHP_EOL + . Indent::_(1) . $taber . Indent::_(2) + . ''; + $optionArray[$option] = $langValue; + // set order + $order_['option' . $option] = $option; + } + } + // now build the groups + foreach ($order_ as $pointer_ => $_id) + { + // load the default key + $key_ = 'group'; + if (strpos($pointer_, 'option') !== false) + { + // load the option field + $key_ = 'option'; + } + // check if this is a group loader + if ('group' === $key_ && isset($groups_[$_id]) + && isset($grouped_[$key_][$_id]) + && ArrayHelper::check( + $grouped_[$key_][$_id] + )) + { + // set group label + $optionSet .= $groups_[$_id]; + foreach ($grouped_[$key_][$_id] as $option_) + { + $optionSet .= $option_; + } + unset($groups_[$_id]); + unset($grouped_[$key_][$_id]); + // close the group + $optionSet .= PHP_EOL . Indent::_(1) . $taber + . Indent::_(2) . ''; + } + elseif (isset($grouped_[$key_][$_id]) + && StringHelper::check( + $grouped_[$key_][$_id] + )) + { + $optionSet .= $grouped_[$key_][$_id]; + } + } + } + elseif (strpos((string) $value, ',') !== false) + { + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', $option); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $t + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(1) + . $taber . Indent::_(2) . ''; + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) + . $taber . Indent::_(1) . ''; + $optionArray[$option] = $langValue; + } + } + } + else + { + // one option + if (strpos((string) $value, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', (string) $value); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set($this->config->lang_target, $langValue, $t); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) . $taber + . Indent::_(1) . ''; + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $value, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $value + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) + . $taber . Indent::_(1) . ''; + $optionArray[$value] = $langValue; + } + } + } + } + // if options were found + if (StringHelper::check($optionSet)) + { + $field .= '>'; + $field .= PHP_EOL . Indent::_(3) . $taber . ""; + $field .= $optionSet; + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + } + // if no options found and must have a list of options + elseif ($this->groups->check($typeName, 'list')) + { + $optionArray = null; + $field .= PHP_EOL . Indent::_(2) . $taber . "/>"; + $field .= PHP_EOL . Indent::_(2) . $taber . "" + . PHP_EOL; + } + else + { + $optionArray = null; + $field .= PHP_EOL . Indent::_(2) . $taber . "/>"; + } + } + elseif ($setType === 'plain') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + $field .= PHP_EOL . Indent::_(2) . $taber . " $value) + { + if ($property != 'option') + { + $field .= PHP_EOL . Indent::_(2) . $taber . Indent::_(1) + . $property . '="' . $value . '"'; + } + } + $field .= PHP_EOL . Indent::_(2) . $taber . "/>"; + } + elseif ($setType === 'spacer') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(2) . ""; + $field .= PHP_EOL . Indent::_(2) . " $value) + { + if ($property != 'option') + { + $field .= " " . $property . '="' . $value . '"'; + } + } + $field .= " />"; + } + elseif ($setType === 'special') + { + // set the repeatable field + if ($typeName === 'repeatable') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(2) . ""; + $field .= PHP_EOL . Indent::_(2) . " $value) + { + if ($property != 'fields') + { + $field .= PHP_EOL . Indent::_(3) . $property . '="' + . $value . '"'; + } + } + $field .= ">"; + $field .= PHP_EOL . Indent::_(3) . ''; + $field .= PHP_EOL . Indent::_(4) + . '"; + $field .= PHP_EOL . Indent::_(3) . ""; + $field .= PHP_EOL . Indent::_(2) . ""; + } + // set the subform fields (it is a repeatable without the modal) + elseif ($typeName === 'subform') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + $field .= PHP_EOL . Indent::_(2) . $taber . " $value) + { + if ($property != 'fields') + { + $field .= PHP_EOL . Indent::_(3) . $taber . $property + . '="' . $value . '"'; + } + } + $field .= ">"; + $field .= PHP_EOL . Indent::_(3) . $taber + . '"; + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + } + } + elseif ($setType === 'custom') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + $field .= PHP_EOL . Indent::_(2) . $taber . " $value) + { + if ($property != 'option') + { + $field .= PHP_EOL . Indent::_(2) . $taber . Indent::_(1) + . $property . '="' . $value . '"'; + } + elseif ($property === 'option') + { + $optionSet = ''; + if (strtolower($typeName) === 'groupedlist' + && strpos( + (string) $value, ',' + ) !== false + && strpos((string) $value, '@@') !== false) + { + // reset the group temp arrays + $groups_ = array(); + $grouped_ = array('group' => array(), + 'option' => array()); + $order_ = array(); + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '@@') !== false) + { + // set the group label + $valueKeyArray = explode('@@', $option); + if (count((array) $valueKeyArray) == 2) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[0], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[0] + ); + // now add group label + $groups_[$valueKeyArray[1]] = PHP_EOL + . Indent::_(1) . $taber . Indent::_(2) + . ''; + // set order + $order_['group' . $valueKeyArray[1]] + = $valueKeyArray[1]; + } + } + elseif (strpos($option, '|') !== false) + { + // has other value then text + $valueKeyArray = explode('|', $option); + if (count((array) $valueKeyArray) == 3) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['group'][$valueKeyArray[2]][] + = PHP_EOL . Indent::_(1) . $taber + . Indent::_(3) . ''; + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['group' . $valueKeyArray[2]] + = $valueKeyArray[2]; + } + else + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['option'][$valueKeyArray[0]] + = PHP_EOL . Indent::_(1) . $taber + . Indent::_(2) . ''; + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['option' . $valueKeyArray[0]] + = $valueKeyArray[0]; + } + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $grouped_['option'][$option] = PHP_EOL + . Indent::_(1) . $taber . Indent::_(2) + . ''; + $optionArray[$option] = $langValue; + // set order + $order_['option' . $option] = $option; + } + } + // now build the groups + foreach ($order_ as $pointer_ => $_id) + { + // load the default key + $key_ = 'group'; + if (strpos($pointer_, 'option') !== false) + { + // load the option field + $key_ = 'option'; + } + // check if this is a group loader + if ('group' === $key_ && isset($groups_[$_id]) + && isset($grouped_[$key_][$_id]) + && ArrayHelper::check( + $grouped_[$key_][$_id] + )) + { + // set group label + $optionSet .= $groups_[$_id]; + foreach ($grouped_[$key_][$_id] as $option_) + { + $optionSet .= $option_; + } + unset($groups_[$_id]); + unset($grouped_[$key_][$_id]); + // close the group + $optionSet .= PHP_EOL . Indent::_(1) . $taber + . Indent::_(2) . ''; + } + elseif (isset($grouped_[$key_][$_id]) + && StringHelper::check( + $grouped_[$key_][$_id] + )) + { + $optionSet .= $grouped_[$key_][$_id]; + } + } + } + elseif (strpos((string) $value, ',') !== false) + { + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', $option); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $t + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(1) + . $taber . Indent::_(2) . ''; + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) + . $taber . Indent::_(1) . ''; + $optionArray[$option] = $langValue; + } + } + } + else + { + // one option + if (strpos((string) $value, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', (string) $value); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set($this->config->lang_target, $langValue, $t); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) . $taber + . Indent::_(1) . ''; + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $value, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $value + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) + . $taber . Indent::_(1) . ''; + $optionArray[$value] = $langValue; + } + } + } + } + // if options were found + if (StringHelper::check($optionSet)) + { + $field .= '>'; + $field .= PHP_EOL . Indent::_(3) . $taber . ""; + $field .= $optionSet; + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + } + // if no options found and must have a list of options + elseif ($this->groups->check($typeName, 'list')) + { + $optionArray = null; + $field .= PHP_EOL . Indent::_(2) . $taber . "/>"; + $field .= PHP_EOL . Indent::_(2) . $taber . "" + . PHP_EOL; + } + else + { + $optionArray = null; + $field .= PHP_EOL . Indent::_(2) . $taber . "/>"; + } + // incase the field is in the config and has not been set + if ('config' === $nameSingleCode && 'configs' === $nameListCode + || (strpos($nameSingleCode, 'P|uG!n') !== false + || strpos( + $nameSingleCode, 'M0dU|3' + ) !== false)) + { + // set lang (just incase) + $listLangName = $langView . '_' + . StringHelper::safe($name, 'U'); + // set the custom array + $data = array('type' => $typeName, 'code' => $name, + 'lang' => $listLangName, 'custom' => $custom); + // set the custom field file + $this->customfieldtypefile->set( + $data, $nameListCode, $nameSingleCode + ); + } + } + + // return field + return $field; + } +} + diff --git a/src/44d039b9-d293-481b-b560-23a6e7a63962/code.power b/src/44d039b9-d293-481b-b560-23a6e7a63962/code.power new file mode 100644 index 0000000..230ebe4 --- /dev/null +++ b/src/44d039b9-d293-481b-b560-23a6e7a63962/code.power @@ -0,0 +1,1126 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The Field Class. + * + * @var Field + * @since 3.2.0 + */ + protected Field $field; + + /** + * The Groups Class. + * + * @var Groups + * @since 3.2.0 + */ + protected Groups $groups; + + /** + * The Name Class. + * + * @var Name + * @since 3.2.0 + */ + protected Name $name; + + /** + * The TypeName Class. + * + * @var TypeName + * @since 3.2.0 + */ + protected TypeName $typename; + + /** + * The Attributes Class. + * + * @var Attributes + * @since 3.2.0 + */ + protected Attributes $attributes; + + /** + * The CustomFieldTypeFile Class. + * + * @var CustomFieldTypeFile + * @since 3.2.0 + */ + protected CustomFieldTypeFile $customfieldtypefile; + + /** + * The Counter Class. + * + * @var Counter + * @since 3.2.0 + */ + protected Counter $counter; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Language $language The Language Class. + * @param Field $field The Field Class. + * @param Groups $groups The Groups Class. + * @param Name $name The Name Class. + * @param TypeName $typename The TypeName Class. + * @param Attributes $attributes The Attributes Class. + * @param CustomFieldTypeFile $customfieldtypefile The CustomFieldTypeFile Class. + * @param Counter $counter The Counter Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Language $language, Field $field, + Groups $groups, Name $name, TypeName $typename, + Attributes $attributes, + CustomFieldTypeFile $customfieldtypefile, + Counter $counter) + { + $this->config = $config; + $this->language = $language; + $this->field = $field; + $this->groups = $groups; + $this->name = $name; + $this->typename = $typename; + $this->attributes = $attributes; + $this->customfieldtypefile = $customfieldtypefile; + $this->counter = $counter; + } + + /** + * Create a field using string manipulation + * + * @param string $setType The set of fields type + * @param array $fieldAttributes The field values + * @param string $name The field name + * @param string $typeName The field type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The place holder and replace values + * @param array|null $optionArray The option bucket array used to set the field options if needed. + * @param array|null $custom Used when field is from config + * @param string $taber The tabs to add in layout + * + * @return string The field in a string + * @since 3.2.0 + */ + public function get(string $setType, array &$fieldAttributes, string &$name, + string &$typeName, string &$langView, string &$nameSingleCode, string &$nameListCode, + array $placeholders, ?array &$optionArray, ?array $custom = null, string $taber = ''): string + { + // count the dynamic fields created + $this->counter->field++; + + // build field set using string manipulation + $field = ''; + if ($setType === 'option') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(1) . $taber . Indent::_(1) + . ""; + $field .= PHP_EOL . Indent::_(1) . $taber . Indent::_(1) + . " $value) + { + if ($property != 'option') + { + $field .= PHP_EOL . Indent::_(2) . $taber . Indent::_(1) + . $property . '="' . $value . '"'; + } + elseif ($property === 'option') + { + $optionSet = ''; + if (strtolower($typeName) === 'groupedlist' + && strpos( + (string) $value, ',' + ) !== false + && strpos((string) $value, '@@') !== false) + { + // reset the group temp arrays + $groups_ = array(); + $grouped_ = array('group' => array(), + 'option' => array()); + $order_ = array(); + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '@@') !== false) + { + // set the group label + $valueKeyArray = explode('@@', $option); + if (count((array) $valueKeyArray) == 2) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[0], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[0] + ); + // now add group label + $groups_[$valueKeyArray[1]] = PHP_EOL + . Indent::_(1) . $taber . Indent::_(2) + . ''; + // set order + $order_['group' . $valueKeyArray[1]] + = $valueKeyArray[1]; + } + } + elseif (strpos($option, '|') !== false) + { + // has other value then text + $valueKeyArray = explode('|', $option); + if (count((array) $valueKeyArray) == 3) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['group'][$valueKeyArray[2]][] + = PHP_EOL . Indent::_(1) . $taber + . Indent::_(3) . ''; + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['group' . $valueKeyArray[2]] + = $valueKeyArray[2]; + } + else + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['option'][$valueKeyArray[0]] + = PHP_EOL . Indent::_(1) . $taber + . Indent::_(2) . ''; + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['option' . $valueKeyArray[0]] + = $valueKeyArray[0]; + } + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $grouped_['option'][$option] = PHP_EOL + . Indent::_(1) . $taber . Indent::_(2) + . ''; + $optionArray[$option] = $langValue; + // set order + $order_['option' . $option] = $option; + } + } + // now build the groups + foreach ($order_ as $pointer_ => $_id) + { + // load the default key + $key_ = 'group'; + if (strpos($pointer_, 'option') !== false) + { + // load the option field + $key_ = 'option'; + } + // check if this is a group loader + if ('group' === $key_ && isset($groups_[$_id]) + && isset($grouped_[$key_][$_id]) + && ArrayHelper::check( + $grouped_[$key_][$_id] + )) + { + // set group label + $optionSet .= $groups_[$_id]; + foreach ($grouped_[$key_][$_id] as $option_) + { + $optionSet .= $option_; + } + unset($groups_[$_id]); + unset($grouped_[$key_][$_id]); + // close the group + $optionSet .= PHP_EOL . Indent::_(1) . $taber + . Indent::_(2) . ''; + } + elseif (isset($grouped_[$key_][$_id]) + && StringHelper::check( + $grouped_[$key_][$_id] + )) + { + $optionSet .= $grouped_[$key_][$_id]; + } + } + } + elseif (strpos((string) $value, ',') !== false) + { + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', $option); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $t + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(1) + . $taber . Indent::_(2) . ''; + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) + . $taber . Indent::_(1) . ''; + $optionArray[$option] = $langValue; + } + } + } + else + { + // one option + if (strpos((string) $value, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', (string) $value); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set($this->config->lang_target, $langValue, $t); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) . $taber + . Indent::_(1) . ''; + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $value, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $value + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) + . $taber . Indent::_(1) . ''; + $optionArray[$value] = $langValue; + } + } + } + } + // if options were found + if (StringHelper::check($optionSet)) + { + $field .= '>'; + $field .= PHP_EOL . Indent::_(3) . $taber . ""; + $field .= $optionSet; + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + } + // if no options found and must have a list of options + elseif ($this->groups->check($typeName, 'list')) + { + $optionArray = null; + $field .= PHP_EOL . Indent::_(2) . $taber . "/>"; + $field .= PHP_EOL . Indent::_(2) . $taber . "" + . PHP_EOL; + } + else + { + $optionArray = null; + $field .= PHP_EOL . Indent::_(2) . $taber . "/>"; + } + } + elseif ($setType === 'plain') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + $field .= PHP_EOL . Indent::_(2) . $taber . " $value) + { + if ($property != 'option') + { + $field .= PHP_EOL . Indent::_(2) . $taber . Indent::_(1) + . $property . '="' . $value . '"'; + } + } + $field .= PHP_EOL . Indent::_(2) . $taber . "/>"; + } + elseif ($setType === 'spacer') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(2) . ""; + $field .= PHP_EOL . Indent::_(2) . " $value) + { + if ($property != 'option') + { + $field .= " " . $property . '="' . $value . '"'; + } + } + $field .= " />"; + } + elseif ($setType === 'special') + { + // set the repeatable field + if ($typeName === 'repeatable') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(2) . ""; + $field .= PHP_EOL . Indent::_(2) . " $value) + { + if ($property != 'fields') + { + $field .= PHP_EOL . Indent::_(3) . $property . '="' + . $value . '"'; + } + } + $field .= ">"; + $field .= PHP_EOL . Indent::_(3) . ''; + $field .= PHP_EOL . Indent::_(4) + . '"; + $field .= PHP_EOL . Indent::_(3) . ""; + $field .= PHP_EOL . Indent::_(2) . ""; + } + // set the subform fields (it is a repeatable without the modal) + elseif ($typeName === 'subform') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + $field .= PHP_EOL . Indent::_(2) . $taber . " $value) + { + if ($property != 'fields') + { + $field .= PHP_EOL . Indent::_(3) . $taber . $property + . '="' . $value . '"'; + } + } + $field .= ">"; + $field .= PHP_EOL . Indent::_(3) . $taber + . '"; + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + } + } + elseif ($setType === 'custom') + { + // now add to the field set + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + $field .= PHP_EOL . Indent::_(2) . $taber . " $value) + { + if ($property != 'option') + { + $field .= PHP_EOL . Indent::_(2) . $taber . Indent::_(1) + . $property . '="' . $value . '"'; + } + elseif ($property === 'option') + { + $optionSet = ''; + if (strtolower($typeName) === 'groupedlist' + && strpos( + (string) $value, ',' + ) !== false + && strpos((string) $value, '@@') !== false) + { + // reset the group temp arrays + $groups_ = array(); + $grouped_ = array('group' => array(), + 'option' => array()); + $order_ = array(); + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '@@') !== false) + { + // set the group label + $valueKeyArray = explode('@@', $option); + if (count((array) $valueKeyArray) == 2) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[0], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[0] + ); + // now add group label + $groups_[$valueKeyArray[1]] = PHP_EOL + . Indent::_(1) . $taber . Indent::_(2) + . ''; + // set order + $order_['group' . $valueKeyArray[1]] + = $valueKeyArray[1]; + } + } + elseif (strpos($option, '|') !== false) + { + // has other value then text + $valueKeyArray = explode('|', $option); + if (count((array) $valueKeyArray) == 3) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['group'][$valueKeyArray[2]][] + = PHP_EOL . Indent::_(1) . $taber + . Indent::_(3) . ''; + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['group' . $valueKeyArray[2]] + = $valueKeyArray[2]; + } + else + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['option'][$valueKeyArray[0]] + = PHP_EOL . Indent::_(1) . $taber + . Indent::_(2) . ''; + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['option' . $valueKeyArray[0]] + = $valueKeyArray[0]; + } + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $grouped_['option'][$option] = PHP_EOL + . Indent::_(1) . $taber . Indent::_(2) + . ''; + $optionArray[$option] = $langValue; + // set order + $order_['option' . $option] = $option; + } + } + // now build the groups + foreach ($order_ as $pointer_ => $_id) + { + // load the default key + $key_ = 'group'; + if (strpos($pointer_, 'option') !== false) + { + // load the option field + $key_ = 'option'; + } + // check if this is a group loader + if ('group' === $key_ && isset($groups_[$_id]) + && isset($grouped_[$key_][$_id]) + && ArrayHelper::check( + $grouped_[$key_][$_id] + )) + { + // set group label + $optionSet .= $groups_[$_id]; + foreach ($grouped_[$key_][$_id] as $option_) + { + $optionSet .= $option_; + } + unset($groups_[$_id]); + unset($grouped_[$key_][$_id]); + // close the group + $optionSet .= PHP_EOL . Indent::_(1) . $taber + . Indent::_(2) . ''; + } + elseif (isset($grouped_[$key_][$_id]) + && StringHelper::check( + $grouped_[$key_][$_id] + )) + { + $optionSet .= $grouped_[$key_][$_id]; + } + } + } + elseif (strpos((string) $value, ',') !== false) + { + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', $option); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $t + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(1) + . $taber . Indent::_(2) . ''; + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) + . $taber . Indent::_(1) . ''; + $optionArray[$option] = $langValue; + } + } + } + else + { + // one option + if (strpos((string) $value, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', (string) $value); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set($this->config->lang_target, $langValue, $t); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) . $taber + . Indent::_(1) . ''; + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $value, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $value + ); + // now add to option set + $optionSet .= PHP_EOL . Indent::_(2) + . $taber . Indent::_(1) . ''; + $optionArray[$value] = $langValue; + } + } + } + } + // if options were found + if (StringHelper::check($optionSet)) + { + $field .= '>'; + $field .= PHP_EOL . Indent::_(3) . $taber . ""; + $field .= $optionSet; + $field .= PHP_EOL . Indent::_(2) . $taber . ""; + } + // if no options found and must have a list of options + elseif ($this->groups->check($typeName, 'list')) + { + $optionArray = null; + $field .= PHP_EOL . Indent::_(2) . $taber . "/>"; + $field .= PHP_EOL . Indent::_(2) . $taber . "" + . PHP_EOL; + } + else + { + $optionArray = null; + $field .= PHP_EOL . Indent::_(2) . $taber . "/>"; + } + // incase the field is in the config and has not been set + if ('config' === $nameSingleCode && 'configs' === $nameListCode + || (strpos($nameSingleCode, 'P|uG!n') !== false + || strpos( + $nameSingleCode, 'M0dU|3' + ) !== false)) + { + // set lang (just incase) + $listLangName = $langView . '_' + . StringHelper::safe($name, 'U'); + // set the custom array + $data = array('type' => $typeName, 'code' => $name, + 'lang' => $listLangName, 'custom' => $custom); + // set the custom field file + $this->customfieldtypefile->set( + $data, $nameListCode, $nameSingleCode + ); + } + } + + // return field + return $field; + } \ No newline at end of file diff --git a/src/44d039b9-d293-481b-b560-23a6e7a63962/settings.json b/src/44d039b9-d293-481b-b560-23a6e7a63962/settings.json new file mode 100644 index 0000000..fc8f612 --- /dev/null +++ b/src/44d039b9-d293-481b-b560-23a6e7a63962/settings.json @@ -0,0 +1,81 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "44d039b9-d293-481b-b560-23a6e7a63962", + "implements": [ + "2d27c436-4d8e-4692-8382-d9e97af2231c" + ], + "load_selection": null, + "name": "FieldString", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.FieldString", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "8eee7df5-2775-41a9-9372-c46c5939a252", + "as": "default" + }, + "use_selection2": { + "use": "d7ba2d5d-10b6-470d-978d-9f91ea65ee75", + "as": "default" + }, + "use_selection3": { + "use": "12df35ad-2d44-4c4c-a7d5-a3350932a520", + "as": "default" + }, + "use_selection4": { + "use": "9387215f-a965-4421-acf3-5e8f9d11382f", + "as": "default" + }, + "use_selection5": { + "use": "eb33420d-359d-44a5-852e-613aef1feaae", + "as": "default" + }, + "use_selection6": { + "use": "7f515c18-d019-4d2d-9852-b2dc970985b3", + "as": "default" + }, + "use_selection7": { + "use": "6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96", + "as": "default" + }, + "use_selection8": { + "use": "e6d871a6-bbe7-497d-af01-68f6bb9a87f4", + "as": "default" + }, + "use_selection9": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + }, + "use_selection10": { + "use": "91004529-94a9-4590-b842-e7c6b624ecf5", + "as": "default" + }, + "use_selection11": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection12": { + "use": "9ef0eb24-aae4-4f5a-99af-d724db44808f", + "as": "default" + }, + "use_selection13": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + }, + "use_selection14": { + "use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.FieldString", + "description": "Field String Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/45652787-9085-4c67-914f-0da25ae62646/README.md b/src/45652787-9085-4c67-914f-0da25ae62646/README.md new file mode 100644 index 0000000..90b792d --- /dev/null +++ b/src/45652787-9085-4c67-914f-0da25ae62646/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class JsonItem (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class JsonItem << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/45652787-9085-4c67-914f-0da25ae62646/code.php b/src/45652787-9085-4c67-914f-0da25ae62646/code.php new file mode 100644 index 0000000..1836425 --- /dev/null +++ b/src/45652787-9085-4c67-914f-0da25ae62646/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Json Item Builder Class + * + * @since 3.2.0 + */ +final class JsonItem extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/45652787-9085-4c67-914f-0da25ae62646/code.power b/src/45652787-9085-4c67-914f-0da25ae62646/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/45652787-9085-4c67-914f-0da25ae62646/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/45652787-9085-4c67-914f-0da25ae62646/settings.json b/src/45652787-9085-4c67-914f-0da25ae62646/settings.json new file mode 100644 index 0000000..f0b539c --- /dev/null +++ b/src/45652787-9085-4c67-914f-0da25ae62646/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "45652787-9085-4c67-914f-0da25ae62646", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "JsonItem", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.JsonItem", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.JsonItem", + "description": "Json Item Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/46b02edb-427e-4c26-a5cb-279828eb4433/README.md b/src/46b02edb-427e-4c26-a5cb-279828eb4433/README.md new file mode 100644 index 0000000..155b816 --- /dev/null +++ b/src/46b02edb-427e-4c26-a5cb-279828eb4433/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class OtherJoin (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class OtherJoin << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/46b02edb-427e-4c26-a5cb-279828eb4433/code.php b/src/46b02edb-427e-4c26-a5cb-279828eb4433/code.php new file mode 100644 index 0000000..2cf93d1 --- /dev/null +++ b/src/46b02edb-427e-4c26-a5cb-279828eb4433/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Other Join Builder Class + * + * @since 3.2.0 + */ +final class OtherJoin extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/46b02edb-427e-4c26-a5cb-279828eb4433/code.power b/src/46b02edb-427e-4c26-a5cb-279828eb4433/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/46b02edb-427e-4c26-a5cb-279828eb4433/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/46b02edb-427e-4c26-a5cb-279828eb4433/settings.json b/src/46b02edb-427e-4c26-a5cb-279828eb4433/settings.json new file mode 100644 index 0000000..8826962 --- /dev/null +++ b/src/46b02edb-427e-4c26-a5cb-279828eb4433/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "46b02edb-427e-4c26-a5cb-279828eb4433", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "OtherJoin", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.OtherJoin", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.OtherJoin", + "description": "Other Join Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/README.md b/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/README.md new file mode 100644 index 0000000..1649b23 --- /dev/null +++ b/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/README.md @@ -0,0 +1,73 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FieldDynamic (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class FieldDynamic << (F,LightGreen) >> #RoyalBlue { + # Name $name + # TypeName $typename + # Attributes $attributes + # Groups $groups + # FieldNames $fieldnames + # Field $field + # Builders $builders + # Layout $layout + + __construct(Name $name, TypeName $typename, ...) + + get(array $field, array $view, ...) : mixed +} + +note right of FieldDynamic::__construct + Constructor. + + since: 3.2.0 + + arguments: + Name $name + TypeName $typename + Attributes $attributes + Groups $groups + FieldNames $fieldnames + Field $field + Builders $builders + Layout $layout +end note + +note right of FieldDynamic::get + Get the Dynamic field and build all it needs + + since: 3.2.0 + return: mixed + + arguments: + array $field + array $view + int $viewType + string $langView + string $nameSingleCode + string $nameListCode + array $placeholders + string $dbkey + bool $build +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/code.php b/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/code.php new file mode 100644 index 0000000..5e18e05 --- /dev/null +++ b/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/code.php @@ -0,0 +1,302 @@ + + * @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\Compiler\Creator; + + +use VDM\Joomla\Componentbuilder\Compiler\Field\Name; +use VDM\Joomla\Componentbuilder\Compiler\Field\TypeName; +use VDM\Joomla\Componentbuilder\Compiler\Field\Attributes; +use VDM\Joomla\Componentbuilder\Compiler\Field\Groups; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldNames; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator\Fieldtypeinterface as Field; +use VDM\Joomla\Componentbuilder\Compiler\Creator\Builders; +use VDM\Joomla\Componentbuilder\Compiler\Creator\Layout; +use VDM\Joomla\Utilities\ObjectHelper; +use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator\Fielddynamicinterface; + + +/** + * Dynamic Field Creator Class + * + * @since 3.2.0 + */ +final class FieldDynamic implements Fielddynamicinterface +{ + /** + * The Name Class. + * + * @var Name + * @since 3.2.0 + */ + protected Name $name; + + /** + * The TypeName Class. + * + * @var TypeName + * @since 3.2.0 + */ + protected TypeName $typename; + + /** + * The Attributes Class. + * + * @var Attributes + * @since 3.2.0 + */ + protected Attributes $attributes; + + /** + * The Groups Class. + * + * @var Groups + * @since 3.2.0 + */ + protected Groups $groups; + + /** + * The FieldNames Class. + * + * @var FieldNames + * @since 3.2.0 + */ + protected FieldNames $fieldnames; + + /** + * The Fieldtypeinterface Class. + * + * @var Field + * @since 3.2.0 + */ + protected Field $field; + + /** + * The Builders Class. + * + * @var Builders + * @since 3.2.0 + */ + protected Builders $builders; + + /** + * The Layout Class. + * + * @var Layout + * @since 3.2.0 + */ + protected Layout $layout; + + /** + * Constructor. + * + * @param Name $name The Name Class. + * @param TypeName $typename The TypeName Class. + * @param Attributes $attributes The Attributes Class. + * @param Groups $groups The Groups Class. + * @param FieldNames $fieldnames The FieldNames Class. + * @param Field $field The Fieldtypeinterface Class. + * @param Builders $builders The Builders Class. + * @param Layout $layout The Layout Class. + * + * @since 3.2.0 + */ + public function __construct(Name $name, TypeName $typename, + Attributes $attributes, Groups $groups, FieldNames $fieldnames, + Field $field, Builders $builders, Layout $layout) + { + $this->name = $name; + $this->typename = $typename; + $this->attributes = $attributes; + $this->groups = $groups; + $this->fieldnames = $fieldnames; + $this->field = $field; + $this->builders = $builders; + $this->layout = $layout; + } + + /** + * Get the Dynamic field and build all it needs + * + * @param array $field The field data + * @param array $view The view data + * @param int $viewType The view type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The placeholder and replace values + * @param string $dbkey The custom table key + * @param boolean $build The switch to set the build option + * + * @return mixed The complete field + * @since 3.2.0 + */ + public function get(array &$field, array &$view, int &$viewType, string &$langView, string &$nameSingleCode, + string &$nameListCode, array &$placeholders, string &$dbkey, bool $build) + { + // set default return + $dynamicField = null; + + // make sure we have settings + if (isset($field['settings']) + && ObjectHelper::check($field['settings'])) + { + // reset some values + $name = $this->name->get($field, $nameListCode); + $typeName = $this->typename->get($field); + $multiple = false; + $langLabel = ''; + $fieldSet = ''; + // set field attributes + $fieldAttributes = $this->attributes->set( + $field, $viewType, $name, $typeName, $multiple, $langLabel, + $langView, $nameListCode, $nameSingleCode, $placeholders + ); + // check if values were set + if (ArrayHelper::check($fieldAttributes)) + { + // set the array of field names + $this->fieldnames->set( + $nameSingleCode . '.' . $fieldAttributes['name'], $fieldAttributes['name'] + ); + + // set options as null + $optionArray = null; + + if ($this->groups->check($typeName, 'option')) + { + // set options array + $optionArray = array(); + + // now add to the field set + $dynamicField = $this->field->get( + 'option', $fieldAttributes, $name, $typeName, $langView, + $nameSingleCode, $nameListCode, $placeholders, + $optionArray + ); + + if ($build) + { + // set builders + $this->builders->set( + $langLabel, $langView, $nameSingleCode, + $nameListCode, $name, $view, $field, $typeName, + $multiple, null, $optionArray + ); + } + } + elseif ($this->groups->check($typeName, 'spacer')) + { + if ($build) + { + // make sure spacers gets loaded to layout + $tabName = ''; + if (isset($view['settings']->tabs) + && isset($view['settings']->tabs[(int) $field['tab']])) + { + $tabName + = $view['settings']->tabs[(int) $field['tab']]; + } + elseif ((int) $field['tab'] == 15) + { + // set to publishing tab + $tabName = 'publishing'; + } + + $this->layout->set( + $nameSingleCode, $tabName, $name, $field + ); + } + + // now add to the field set + $dynamicField = $this->field->get( + 'spacer', $fieldAttributes, $name, $typeName, $langView, + $nameSingleCode, $nameListCode, $placeholders, + $optionArray + ); + } + elseif ($this->groups->check($typeName, 'special')) + { + // set the repeatable field or subform field + if ($typeName === 'repeatable' || $typeName === 'subform') + { + if ($build) + { + // set builders + $this->builders->set( + $langLabel, $langView, $nameSingleCode, + $nameListCode, $name, $view, $field, + $typeName, $multiple, null + ); + } + + // now add to the field set + $dynamicField = $this->field->get( + 'special', $fieldAttributes, $name, $typeName, + $langView, $nameSingleCode, $nameListCode, + $placeholders, $optionArray + ); + } + } + elseif (isset($fieldAttributes['custom']) + && ArrayHelper::check($fieldAttributes['custom'])) + { + // set the custom array + $custom = $fieldAttributes['custom']; + unset($fieldAttributes['custom']); + // set db key + $custom['db'] = $dbkey; + // increment the db key + $dbkey++; + if ($build) + { + // set builders + $this->builders->set( + $langLabel, $langView, $nameSingleCode, + $nameListCode, $name, $view, $field, $typeName, + $multiple, $custom + ); + } + + // now add to the field set + $dynamicField = $this->field->get( + 'custom', $fieldAttributes, $name, $typeName, $langView, + $nameSingleCode, $nameListCode, $placeholders, + $optionArray, $custom + ); + } + else + { + if ($build) + { + // set builders + $this->builders->set( + $langLabel, $langView, $nameSingleCode, + $nameListCode, $name, $view, $field, $typeName, + $multiple + ); + } + + // now add to the field set + $dynamicField = $this->field->get( + 'plain', $fieldAttributes, $name, $typeName, $langView, + $nameSingleCode, $nameListCode, $placeholders, + $optionArray + ); + } + } + } + + return $dynamicField; + } +} + diff --git a/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/code.power b/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/code.power new file mode 100644 index 0000000..202dc61 --- /dev/null +++ b/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/code.power @@ -0,0 +1,266 @@ + /** + * The Name Class. + * + * @var Name + * @since 3.2.0 + */ + protected Name $name; + + /** + * The TypeName Class. + * + * @var TypeName + * @since 3.2.0 + */ + protected TypeName $typename; + + /** + * The Attributes Class. + * + * @var Attributes + * @since 3.2.0 + */ + protected Attributes $attributes; + + /** + * The Groups Class. + * + * @var Groups + * @since 3.2.0 + */ + protected Groups $groups; + + /** + * The FieldNames Class. + * + * @var FieldNames + * @since 3.2.0 + */ + protected FieldNames $fieldnames; + + /** + * The Fieldtypeinterface Class. + * + * @var Field + * @since 3.2.0 + */ + protected Field $field; + + /** + * The Builders Class. + * + * @var Builders + * @since 3.2.0 + */ + protected Builders $builders; + + /** + * The Layout Class. + * + * @var Layout + * @since 3.2.0 + */ + protected Layout $layout; + + /** + * Constructor. + * + * @param Name $name The Name Class. + * @param TypeName $typename The TypeName Class. + * @param Attributes $attributes The Attributes Class. + * @param Groups $groups The Groups Class. + * @param FieldNames $fieldnames The FieldNames Class. + * @param Field $field The Fieldtypeinterface Class. + * @param Builders $builders The Builders Class. + * @param Layout $layout The Layout Class. + * + * @since 3.2.0 + */ + public function __construct(Name $name, TypeName $typename, + Attributes $attributes, Groups $groups, FieldNames $fieldnames, + Field $field, Builders $builders, Layout $layout) + { + $this->name = $name; + $this->typename = $typename; + $this->attributes = $attributes; + $this->groups = $groups; + $this->fieldnames = $fieldnames; + $this->field = $field; + $this->builders = $builders; + $this->layout = $layout; + } + + /** + * Get the Dynamic field and build all it needs + * + * @param array $field The field data + * @param array $view The view data + * @param int $viewType The view type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The placeholder and replace values + * @param string $dbkey The custom table key + * @param boolean $build The switch to set the build option + * + * @return mixed The complete field + * @since 3.2.0 + */ + public function get(array &$field, array &$view, int &$viewType, string &$langView, string &$nameSingleCode, + string &$nameListCode, array &$placeholders, string &$dbkey, bool $build) + { + // set default return + $dynamicField = null; + + // make sure we have settings + if (isset($field['settings']) + && ObjectHelper::check($field['settings'])) + { + // reset some values + $name = $this->name->get($field, $nameListCode); + $typeName = $this->typename->get($field); + $multiple = false; + $langLabel = ''; + $fieldSet = ''; + // set field attributes + $fieldAttributes = $this->attributes->set( + $field, $viewType, $name, $typeName, $multiple, $langLabel, + $langView, $nameListCode, $nameSingleCode, $placeholders + ); + // check if values were set + if (ArrayHelper::check($fieldAttributes)) + { + // set the array of field names + $this->fieldnames->set( + $nameSingleCode . '.' . $fieldAttributes['name'], $fieldAttributes['name'] + ); + + // set options as null + $optionArray = null; + + if ($this->groups->check($typeName, 'option')) + { + // set options array + $optionArray = array(); + + // now add to the field set + $dynamicField = $this->field->get( + 'option', $fieldAttributes, $name, $typeName, $langView, + $nameSingleCode, $nameListCode, $placeholders, + $optionArray + ); + + if ($build) + { + // set builders + $this->builders->set( + $langLabel, $langView, $nameSingleCode, + $nameListCode, $name, $view, $field, $typeName, + $multiple, null, $optionArray + ); + } + } + elseif ($this->groups->check($typeName, 'spacer')) + { + if ($build) + { + // make sure spacers gets loaded to layout + $tabName = ''; + if (isset($view['settings']->tabs) + && isset($view['settings']->tabs[(int) $field['tab']])) + { + $tabName + = $view['settings']->tabs[(int) $field['tab']]; + } + elseif ((int) $field['tab'] == 15) + { + // set to publishing tab + $tabName = 'publishing'; + } + + $this->layout->set( + $nameSingleCode, $tabName, $name, $field + ); + } + + // now add to the field set + $dynamicField = $this->field->get( + 'spacer', $fieldAttributes, $name, $typeName, $langView, + $nameSingleCode, $nameListCode, $placeholders, + $optionArray + ); + } + elseif ($this->groups->check($typeName, 'special')) + { + // set the repeatable field or subform field + if ($typeName === 'repeatable' || $typeName === 'subform') + { + if ($build) + { + // set builders + $this->builders->set( + $langLabel, $langView, $nameSingleCode, + $nameListCode, $name, $view, $field, + $typeName, $multiple, null + ); + } + + // now add to the field set + $dynamicField = $this->field->get( + 'special', $fieldAttributes, $name, $typeName, + $langView, $nameSingleCode, $nameListCode, + $placeholders, $optionArray + ); + } + } + elseif (isset($fieldAttributes['custom']) + && ArrayHelper::check($fieldAttributes['custom'])) + { + // set the custom array + $custom = $fieldAttributes['custom']; + unset($fieldAttributes['custom']); + // set db key + $custom['db'] = $dbkey; + // increment the db key + $dbkey++; + if ($build) + { + // set builders + $this->builders->set( + $langLabel, $langView, $nameSingleCode, + $nameListCode, $name, $view, $field, $typeName, + $multiple, $custom + ); + } + + // now add to the field set + $dynamicField = $this->field->get( + 'custom', $fieldAttributes, $name, $typeName, $langView, + $nameSingleCode, $nameListCode, $placeholders, + $optionArray, $custom + ); + } + else + { + if ($build) + { + // set builders + $this->builders->set( + $langLabel, $langView, $nameSingleCode, + $nameListCode, $name, $view, $field, $typeName, + $multiple + ); + } + + // now add to the field set + $dynamicField = $this->field->get( + 'plain', $fieldAttributes, $name, $typeName, $langView, + $nameSingleCode, $nameListCode, $placeholders, + $optionArray + ); + } + } + } + + return $dynamicField; + } \ No newline at end of file diff --git a/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/settings.json b/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/settings.json new file mode 100644 index 0000000..1d087bc --- /dev/null +++ b/src/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e/settings.json @@ -0,0 +1,61 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "4801f8b0-4a4a-4eda-8f0e-cf77f042c35e", + "implements": [ + "c902743e-8c6e-4a50-a4a3-8c955ef2960f" + ], + "load_selection": null, + "name": "FieldDynamic", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.FieldDynamic", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "9387215f-a965-4421-acf3-5e8f9d11382f", + "as": "default" + }, + "use_selection1": { + "use": "eb33420d-359d-44a5-852e-613aef1feaae", + "as": "default" + }, + "use_selection2": { + "use": "7f515c18-d019-4d2d-9852-b2dc970985b3", + "as": "default" + }, + "use_selection3": { + "use": "12df35ad-2d44-4c4c-a7d5-a3350932a520", + "as": "default" + }, + "use_selection4": { + "use": "961a2a2e-9f95-4b5f-b1c0-62ee783f9c66", + "as": "default" + }, + "use_selection5": { + "use": "2d27c436-4d8e-4692-8382-d9e97af2231c", + "as": "Field" + }, + "use_selection6": { + "use": "55278140-80d5-4168-8241-d64515c4b35e", + "as": "default" + }, + "use_selection7": { + "use": "a0f032db-2242-41df-8e4a-5e9e6f88201d", + "as": "default" + }, + "use_selection8": { + "use": "91004529-94a9-4590-b842-e7c6b624ecf5", + "as": "default" + }, + "use_selection9": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.FieldDynamic", + "description": "Dynamic Field Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/4815e1c7-a433-443d-a112-d1e03d7df84b/README.md b/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/README.md similarity index 65% rename from src/4815e1c7-a433-443d-a112-d1e03d7df84b/README.md rename to src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/README.md index 13af4bc..9268ddb 100644 --- a/src/4815e1c7-a433-443d-a112-d1e03d7df84b/README.md +++ b/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/README.md @@ -6,43 +6,36 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Database (Details) -> namespace: **VDM\Joomla\Componentbuilder\Compiler\Service** +# final class PermissionViews (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **MapperDouble** ```uml @startuml -class Database #Gold { - + register(Container $container) : void - + getLoad(Container $container) : Load - + getInsert(Container $container) : Insert - + getUpdate(Container $container) : Update +class PermissionViews << (F,LightGreen) >> #RoyalBlue { + + build() : string + # firstKey(string $key) : string + # secondKey(string $key) : string } -note right of Database::register - Registers the service provider with a DI container. +note right of PermissionViews::build + Get the build view content since: 3.2.0 - return: void + return: string end note -note right of Database::getLoad - Get the Core Load Database +note right of PermissionViews::firstKey + Model the first key since: 3.2.0 - return: Load + return: string end note -note right of Database::getInsert - Get the Core Insert Database +note right of PermissionViews::secondKey + Model the second key since: 3.2.0 - return: Insert -end note - -note right of Database::getUpdate - Get the Core Update Database - - since: 3.2.0 - return: Update + return: string end note @enduml diff --git a/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/code.php b/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/code.php new file mode 100644 index 0000000..abc074d --- /dev/null +++ b/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/code.php @@ -0,0 +1,88 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; +use VDM\Joomla\Componentbuilder\Interfaces\Mapperdoubleinterface; +use VDM\Joomla\Componentbuilder\Abstraction\MapperDouble; + + +/** + * Permission Views Builder Class + * + * @since 3.2.0 + */ +final class PermissionViews extends MapperDouble implements Mapperdoubleinterface +{ + /** + * Get the build view content + * + * @return string + * @since 3.2.0 + */ + public function build(): string + { + if ($this->isActive()) + { + $bucket = []; + foreach ($this->active as $views_code_name => $actions) + { + $bucket[] = Indent::_(1) . '
'; + + foreach ($actions as $action) + { + $bucket[] = Indent::_(2) . ''; + } + + $bucket[] = Indent::_(1) . "
"; + } + + // reset memory + $this->active = []; + + return PHP_EOL . implode(PHP_EOL, $bucket); + } + + return ''; + } + + /** + * Model the first key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function firstKey(string $key): string + { + return $key; + } + + /** + * Model the second key + * + * @param string $key The second key to model + * + * @return string + * @since 3.2.0 + */ + protected function secondKey(string $key): string + { + return $key; + } +} + diff --git a/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/code.power b/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/code.power new file mode 100644 index 0000000..3aac5b4 --- /dev/null +++ b/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/code.power @@ -0,0 +1,60 @@ + /** + * Get the build view content + * + * @return string + * @since 3.2.0 + */ + public function build(): string + { + if ($this->isActive()) + { + $bucket = []; + foreach ($this->active as $views_code_name => $actions) + { + $bucket[] = Indent::_(1) . '
'; + + foreach ($actions as $action) + { + $bucket[] = Indent::_(2) . ''; + } + + $bucket[] = Indent::_(1) . "
"; + } + + // reset memory + $this->active = []; + + return PHP_EOL . implode(PHP_EOL, $bucket); + } + + return ''; + } + + /** + * Model the first key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function firstKey(string $key): string + { + return $key; + } + + /** + * Model the second key + * + * @param string $key The second key to model + * + * @return string + * @since 3.2.0 + */ + protected function secondKey(string $key): string + { + return $key; + } \ No newline at end of file diff --git a/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/settings.json b/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/settings.json new file mode 100644 index 0000000..8997210 --- /dev/null +++ b/src/480d11b9-783b-45d5-bce1-b0c2fcaad08a/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "4d4e76e9-12d9-4d19-b58c-b88974b2586a", + "guid": "480d11b9-783b-45d5-bce1-b0c2fcaad08a", + "implements": [ + "fbc58009-fa16-4d49-a0dd-419c3b62d42f" + ], + "load_selection": null, + "name": "PermissionViews", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.PermissionViews", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.PermissionViews", + "description": "Permission Views Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/4815e1c7-a433-443d-a112-d1e03d7df84b/code.php b/src/4815e1c7-a433-443d-a112-d1e03d7df84b/code.php deleted file mode 100644 index c0dcc20..0000000 --- a/src/4815e1c7-a433-443d-a112-d1e03d7df84b/code.php +++ /dev/null @@ -1,88 +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\Compiler\Service; - - -use Joomla\DI\Container; -use Joomla\DI\ServiceProviderInterface; -use VDM\Joomla\Componentbuilder\Database\Load; -use VDM\Joomla\Componentbuilder\Database\Insert; -use VDM\Joomla\Componentbuilder\Database\Update; - - -/** - * Database Service Provider - * - * @since 3.2.0 - */ -class Database implements ServiceProviderInterface -{ - /** - * Registers the service provider with a DI container. - * - * @param Container $container The DI container. - * - * @return void - * @since 3.2.0 - */ - public function register(Container $container) - { - $container->alias(Load::class, 'Load') - ->share('Load', [$this, 'getLoad'], true); - - $container->alias(Insert::class, 'Insert') - ->share('Insert', [$this, 'getInsert'], true); - - $container->alias(Update::class, 'Update') - ->share('Update', [$this, 'getUpdate'], true); - } - - /** - * Get the Core Load Database - * - * @param Container $container The DI container. - * - * @return Load - * @since 3.2.0 - */ - public function getLoad(Container $container): Load - { - return new Load(); - } - - /** - * Get the Core Insert Database - * - * @param Container $container The DI container. - * - * @return Insert - * @since 3.2.0 - */ - public function getInsert(Container $container): Insert - { - return new Insert(); - } - - /** - * Get the Core Update Database - * - * @param Container $container The DI container. - * - * @return Update - * @since 3.2.0 - */ - public function getUpdate(Container $container): Update - { - return new Update(); - } -} - diff --git a/src/4815e1c7-a433-443d-a112-d1e03d7df84b/code.power b/src/4815e1c7-a433-443d-a112-d1e03d7df84b/code.power deleted file mode 100644 index 1ca19e7..0000000 --- a/src/4815e1c7-a433-443d-a112-d1e03d7df84b/code.power +++ /dev/null @@ -1,58 +0,0 @@ - /** - * Registers the service provider with a DI container. - * - * @param Container $container The DI container. - * - * @return void - * @since 3.2.0 - */ - public function register(Container $container) - { - $container->alias(Load::class, 'Load') - ->share('Load', [$this, 'getLoad'], true); - - $container->alias(Insert::class, 'Insert') - ->share('Insert', [$this, 'getInsert'], true); - - $container->alias(Update::class, 'Update') - ->share('Update', [$this, 'getUpdate'], true); - } - - /** - * Get the Core Load Database - * - * @param Container $container The DI container. - * - * @return Load - * @since 3.2.0 - */ - public function getLoad(Container $container): Load - { - return new Load(); - } - - /** - * Get the Core Insert Database - * - * @param Container $container The DI container. - * - * @return Insert - * @since 3.2.0 - */ - public function getInsert(Container $container): Insert - { - return new Insert(); - } - - /** - * Get the Core Update Database - * - * @param Container $container The DI container. - * - * @return Update - * @since 3.2.0 - */ - public function getUpdate(Container $container): Update - { - return new Update(); - } \ No newline at end of file diff --git a/src/4a857023-2d96-4649-9ed5-910d0329854d/README.md b/src/4a857023-2d96-4649-9ed5-910d0329854d/README.md new file mode 100644 index 0000000..68c49c2 --- /dev/null +++ b/src/4a857023-2d96-4649-9ed5-910d0329854d/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Lists (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class Lists << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/4a857023-2d96-4649-9ed5-910d0329854d/code.php b/src/4a857023-2d96-4649-9ed5-910d0329854d/code.php new file mode 100644 index 0000000..e9e9dc8 --- /dev/null +++ b/src/4a857023-2d96-4649-9ed5-910d0329854d/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Lists Builder Class + * + * @since 3.2.0 + */ +final class Lists extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/4a857023-2d96-4649-9ed5-910d0329854d/code.power b/src/4a857023-2d96-4649-9ed5-910d0329854d/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/4a857023-2d96-4649-9ed5-910d0329854d/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/4a857023-2d96-4649-9ed5-910d0329854d/settings.json b/src/4a857023-2d96-4649-9ed5-910d0329854d/settings.json new file mode 100644 index 0000000..e9d1986 --- /dev/null +++ b/src/4a857023-2d96-4649-9ed5-910d0329854d/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "4a857023-2d96-4649-9ed5-910d0329854d", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "Lists", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.Lists", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Lists", + "description": "Lists Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/4ad7020e-39ab-49ba-977b-de6084944502/README.md b/src/4ad7020e-39ab-49ba-977b-de6084944502/README.md new file mode 100644 index 0000000..69cd1e5 --- /dev/null +++ b/src/4ad7020e-39ab-49ba-977b-de6084944502/README.md @@ -0,0 +1,65 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# class Fieldset (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Language** +```uml +@startuml +class Fieldset #Gold { + # Language $language + # MetaData $metadata + # AccessSwitch $accessswitch + # AccessSwitchList $accessswitchlist + + __construct(Language $language, MetaData $metadata, ...) + + set(bool $access, bool $metadata, ...) : void +} + +note right of Fieldset::__construct + Constructor. + + since: 3.2.0 + + arguments: + Language $language + MetaData $metadata + AccessSwitch $accessswitch + AccessSwitchList $accessswitchlist +end note + +note right of Fieldset::set + Set the fieldset language + + since: 3.2.0 + return: void + + arguments: + bool $access + bool $metadata + string $langTarget + string $langView + string $langViews + string $nameSingle + string $nameList + string $nameSingleCode + string $nameListCode +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/4ad7020e-39ab-49ba-977b-de6084944502/code.php b/src/4ad7020e-39ab-49ba-977b-de6084944502/code.php new file mode 100644 index 0000000..883d75e --- /dev/null +++ b/src/4ad7020e-39ab-49ba-977b-de6084944502/code.php @@ -0,0 +1,264 @@ + + * @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\Compiler\Language; + + +use VDM\Joomla\Componentbuilder\Compiler\Language; +use VDM\Joomla\Componentbuilder\Compiler\Builder\MetaData; +use VDM\Joomla\Componentbuilder\Compiler\Builder\AccessSwitch; +use VDM\Joomla\Componentbuilder\Compiler\Builder\AccessSwitchList; + + +/** + * Compiler Language Fieldset + * + * @since 3.2.0 + */ +class Fieldset +{ + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The MetaData Class. + * + * @var MetaData + * @since 3.2.0 + */ + protected MetaData $metadata; + + /** + * The AccessSwitch Class. + * + * @var AccessSwitch + * @since 3.2.0 + */ + protected AccessSwitch $accessswitch; + + /** + * The AccessSwitchList Class. + * + * @var AccessSwitchList + * @since 3.2.0 + */ + protected AccessSwitchList $accessswitchlist; + + /** + * Constructor. + * + * @param Language $language The Language Class. + * @param MetaData $metadata The MetaData Class. + * @param AccessSwitch $accessswitch The AccessSwitch Class. + * @param AccessSwitchList $accessswitchlist The AccessSwitchList Class. + * + * @since 3.2.0 + */ + public function __construct(Language $language, MetaData $metadata, + AccessSwitch $accessswitch, + AccessSwitchList $accessswitchlist) + { + $this->language = $language; + $this->metadata = $metadata; + $this->accessswitch = $accessswitch; + $this->accessswitchlist = $accessswitchlist; + } + + /** + * Set the fieldset language + * + * @param bool $access The access switch + * @param bool $metadata The metadata switch + * @param string $langTarget The language target + * @param string $langView The single language view name + * @param string $langViews The list language view name + * @param string $nameSingle The single view name + * @param string $nameList The list view name + * @param string $nameSingleCode The single view code name + * @param string $nameListCode The list view code name + * + * @return void + * @since 3.2.0 + */ + public function set(bool $access, bool $metadata, string $langTarget, string $langView, string $langViews, + string $nameSingle, string $nameList, string $nameSingleCode, string $nameListCode): void + { + // add metadata to the view + if ($metadata) + { + $this->metadata->set($nameSingleCode, $nameListCode); + } + + // add access to the view + if ($access) + { + $this->accessswitch->set($nameSingleCode, true); + $this->accessswitchlist->set($nameListCode, true); + } + + // set default lang + $this->language->set( + $langTarget, $langView, $nameSingle + ); + $this->language->set( + $langTarget, $langViews, $nameList + ); + // set global item strings + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_ARCHIVED', + "%s " . $nameList . " archived." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_ARCHIVED_1', + "%s " . $nameSingle . " archived." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_CHECKED_IN_0', + "No " . $nameSingle + . " successfully checked in." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_CHECKED_IN_1', + "%d " . $nameSingle + . " successfully checked in." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_CHECKED_IN_MORE', + "%d " . $nameList + . " successfully checked in." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_DELETED', + "%s " . $nameList . " deleted." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_DELETED_1', + "%s " . $nameSingle . " deleted." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_FEATURED', + "%s " . $nameList . " featured." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_FEATURED_1', + "%s " . $nameSingle . " featured." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_PUBLISHED', + "%s " . $nameList . " published." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_PUBLISHED_1', + "%s " . $nameSingle . " published." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_TRASHED', + "%s " . $nameList . " trashed." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_TRASHED_1', + "%s " . $nameSingle . " trashed." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_UNFEATURED', + "%s " . $nameList . " unfeatured." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_UNFEATURED_1', + "%s " . $nameSingle . " unfeatured." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_UNPUBLISHED', + "%s " . $nameList . " unpublished." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_UNPUBLISHED_1', + "%s " . $nameSingle . " unpublished." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_FAILED_PUBLISHING', + "%s " . $nameList . " failed publishing." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_FAILED_PUBLISHING_1', + "%s " . $nameSingle . " failed publishing." + ); + $this->language->set( + $langTarget, $langViews . '_BATCH_OPTIONS', + "Batch process the selected " . $nameList + ); + $this->language->set( + $langTarget, $langViews . '_BATCH_TIP', + "All changes will be applied to all selected " + . $nameList + ); + // set some basic defaults + $this->language->set( + $langTarget, $langView . '_ERROR_UNIQUE_ALIAS', + "Another " . $nameSingle + . " has the same alias." + ); + $this->language->set( + $langTarget, $langView . '_CREATED_DATE_LABEL', "Created Date" + ); + $this->language->set( + $langTarget, $langView . '_CREATED_DATE_DESC', + "The date this " . $nameSingle + . " was created." + ); + $this->language->set( + $langTarget, $langView . '_MODIFIED_DATE_LABEL', "Modified Date" + ); + $this->language->set( + $langTarget, $langView . '_MODIFIED_DATE_DESC', + "The date this " . $nameSingle + . " was modified." + ); + $this->language->set( + $langTarget, $langView . '_CREATED_BY_LABEL', "Created By" + ); + $this->language->set( + $langTarget, $langView . '_CREATED_BY_DESC', + "The user that created this " . $nameSingle + . "." + ); + $this->language->set( + $langTarget, $langView . '_MODIFIED_BY_LABEL', "Modified By" + ); + $this->language->set( + $langTarget, $langView . '_MODIFIED_BY_DESC', + "The last user that modified this " + . $nameSingle . "." + ); + $this->language->set( + $langTarget, $langView . '_ORDERING_LABEL', "Ordering" + ); + $this->language->set( + $langTarget, $langView . '_VERSION_LABEL', "Version" + ); + $this->language->set( + $langTarget, $langView . '_VERSION_DESC', + "A count of the number of times this " + . $nameSingle . " has been revised." + ); + $this->language->set( + $langTarget, $langView . '_SAVE_WARNING', + "Alias already existed so a number was added at the end. You can re-edit the " + . $nameSingle . " to customise the alias." + ); + } +} + diff --git a/src/4ad7020e-39ab-49ba-977b-de6084944502/code.power b/src/4ad7020e-39ab-49ba-977b-de6084944502/code.power new file mode 100644 index 0000000..c7df909 --- /dev/null +++ b/src/4ad7020e-39ab-49ba-977b-de6084944502/code.power @@ -0,0 +1,235 @@ + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The MetaData Class. + * + * @var MetaData + * @since 3.2.0 + */ + protected MetaData $metadata; + + /** + * The AccessSwitch Class. + * + * @var AccessSwitch + * @since 3.2.0 + */ + protected AccessSwitch $accessswitch; + + /** + * The AccessSwitchList Class. + * + * @var AccessSwitchList + * @since 3.2.0 + */ + protected AccessSwitchList $accessswitchlist; + + /** + * Constructor. + * + * @param Language $language The Language Class. + * @param MetaData $metadata The MetaData Class. + * @param AccessSwitch $accessswitch The AccessSwitch Class. + * @param AccessSwitchList $accessswitchlist The AccessSwitchList Class. + * + * @since 3.2.0 + */ + public function __construct(Language $language, MetaData $metadata, + AccessSwitch $accessswitch, + AccessSwitchList $accessswitchlist) + { + $this->language = $language; + $this->metadata = $metadata; + $this->accessswitch = $accessswitch; + $this->accessswitchlist = $accessswitchlist; + } + + /** + * Set the fieldset language + * + * @param bool $access The access switch + * @param bool $metadata The metadata switch + * @param string $langTarget The language target + * @param string $langView The single language view name + * @param string $langViews The list language view name + * @param string $nameSingle The single view name + * @param string $nameList The list view name + * @param string $nameSingleCode The single view code name + * @param string $nameListCode The list view code name + * + * @return void + * @since 3.2.0 + */ + public function set(bool $access, bool $metadata, string $langTarget, string $langView, string $langViews, + string $nameSingle, string $nameList, string $nameSingleCode, string $nameListCode): void + { + // add metadata to the view + if ($metadata) + { + $this->metadata->set($nameSingleCode, $nameListCode); + } + + // add access to the view + if ($access) + { + $this->accessswitch->set($nameSingleCode, true); + $this->accessswitchlist->set($nameListCode, true); + } + + // set default lang + $this->language->set( + $langTarget, $langView, $nameSingle + ); + $this->language->set( + $langTarget, $langViews, $nameList + ); + // set global item strings + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_ARCHIVED', + "%s " . $nameList . " archived." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_ARCHIVED_1', + "%s " . $nameSingle . " archived." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_CHECKED_IN_0', + "No " . $nameSingle + . " successfully checked in." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_CHECKED_IN_1', + "%d " . $nameSingle + . " successfully checked in." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_CHECKED_IN_MORE', + "%d " . $nameList + . " successfully checked in." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_DELETED', + "%s " . $nameList . " deleted." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_DELETED_1', + "%s " . $nameSingle . " deleted." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_FEATURED', + "%s " . $nameList . " featured." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_FEATURED_1', + "%s " . $nameSingle . " featured." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_PUBLISHED', + "%s " . $nameList . " published." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_PUBLISHED_1', + "%s " . $nameSingle . " published." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_TRASHED', + "%s " . $nameList . " trashed." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_TRASHED_1', + "%s " . $nameSingle . " trashed." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_UNFEATURED', + "%s " . $nameList . " unfeatured." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_UNFEATURED_1', + "%s " . $nameSingle . " unfeatured." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_UNPUBLISHED', + "%s " . $nameList . " unpublished." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_UNPUBLISHED_1', + "%s " . $nameSingle . " unpublished." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_FAILED_PUBLISHING', + "%s " . $nameList . " failed publishing." + ); + $this->language->set( + $langTarget, $langViews . '_N_ITEMS_FAILED_PUBLISHING_1', + "%s " . $nameSingle . " failed publishing." + ); + $this->language->set( + $langTarget, $langViews . '_BATCH_OPTIONS', + "Batch process the selected " . $nameList + ); + $this->language->set( + $langTarget, $langViews . '_BATCH_TIP', + "All changes will be applied to all selected " + . $nameList + ); + // set some basic defaults + $this->language->set( + $langTarget, $langView . '_ERROR_UNIQUE_ALIAS', + "Another " . $nameSingle + . " has the same alias." + ); + $this->language->set( + $langTarget, $langView . '_CREATED_DATE_LABEL', "Created Date" + ); + $this->language->set( + $langTarget, $langView . '_CREATED_DATE_DESC', + "The date this " . $nameSingle + . " was created." + ); + $this->language->set( + $langTarget, $langView . '_MODIFIED_DATE_LABEL', "Modified Date" + ); + $this->language->set( + $langTarget, $langView . '_MODIFIED_DATE_DESC', + "The date this " . $nameSingle + . " was modified." + ); + $this->language->set( + $langTarget, $langView . '_CREATED_BY_LABEL', "Created By" + ); + $this->language->set( + $langTarget, $langView . '_CREATED_BY_DESC', + "The user that created this " . $nameSingle + . "." + ); + $this->language->set( + $langTarget, $langView . '_MODIFIED_BY_LABEL', "Modified By" + ); + $this->language->set( + $langTarget, $langView . '_MODIFIED_BY_DESC', + "The last user that modified this " + . $nameSingle . "." + ); + $this->language->set( + $langTarget, $langView . '_ORDERING_LABEL', "Ordering" + ); + $this->language->set( + $langTarget, $langView . '_VERSION_LABEL', "Version" + ); + $this->language->set( + $langTarget, $langView . '_VERSION_DESC', + "A count of the number of times this " + . $nameSingle . " has been revised." + ); + $this->language->set( + $langTarget, $langView . '_SAVE_WARNING', + "Alias already existed so a number was added at the end. You can re-edit the " + . $nameSingle . " to customise the alias." + ); + } \ No newline at end of file diff --git a/src/4ad7020e-39ab-49ba-977b-de6084944502/settings.json b/src/4ad7020e-39ab-49ba-977b-de6084944502/settings.json new file mode 100644 index 0000000..e68e1f5 --- /dev/null +++ b/src/4ad7020e-39ab-49ba-977b-de6084944502/settings.json @@ -0,0 +1,35 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "4ad7020e-39ab-49ba-977b-de6084944502", + "implements": null, + "load_selection": null, + "name": "Fieldset", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Language.Fieldset", + "type": "class", + "use_selection": { + "use_selection0": { + "use": "8eee7df5-2775-41a9-9372-c46c5939a252", + "as": "default" + }, + "use_selection1": { + "use": "f052eeef-5112-4efe-98c8-8c7db69dc2d1", + "as": "default" + }, + "use_selection2": { + "use": "e38a5276-6664-4bc6-8002-0562fcc248f8", + "as": "default" + }, + "use_selection3": { + "use": "81212121-ad5c-43c5-b046-f2650864f690", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Language.Fieldset", + "description": "Compiler Language Fieldset\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": "" +} \ No newline at end of file diff --git a/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/README.md b/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/README.md index 07f88cd..5236b5b 100644 --- a/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/README.md +++ b/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/README.md @@ -13,21 +13,21 @@ class Ajaxadmin #Gold { # array $guiMapper # Config $config - # Registry $registry + # SiteEditView $siteeditview # Dispenser $dispenser - + __construct(?Config $config = null, ?Registry $registry = null, ...) + + __construct(Config $config, SiteEditView $siteeditview, ...) + set(object $item, string $table = 'admin_view') : void } note right of Ajaxadmin::__construct - Constructor + Constructor. since: 3.2.0 arguments: - ?Config $config = null - ?Registry $registry = null - ?Dispenser $dispenser = null + Config $config + SiteEditView $siteeditview + Dispenser $dispenser end note note right of Ajaxadmin::set diff --git a/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/code.php b/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/code.php index 473e832..295a752 100644 --- a/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/code.php +++ b/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/code.php @@ -12,9 +12,8 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Model; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteEditView; use VDM\Joomla\Componentbuilder\Compiler\Customcode\Dispenser; use VDM\Joomla\Utilities\JsonHelper; use VDM\Joomla\Utilities\ArrayHelper; @@ -42,43 +41,43 @@ class Ajaxadmin ]; /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The SiteEditView Class. * - * @var Registry + * @var SiteEditView * @since 3.2.0 */ - protected Registry $registry; + protected SiteEditView $siteeditview; /** - * Compiler Customcode Dispenser + * The Dispenser Class. * - * @var Dispenser + * @var Dispenser * @since 3.2.0 */ protected Dispenser $dispenser; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param Dispenser|null $dispenser The compiler customcode dispenser + * @param Config $config The Config Class. + * @param SiteEditView $siteeditview The SiteEditView Class. + * @param Dispenser $dispenser The Dispenser Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, ?Dispenser $dispenser = null) + public function __construct(Config $config, SiteEditView $siteeditview, Dispenser $dispenser) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->dispenser = $dispenser ?: Compiler::_('Customcode.Dispenser'); + $this->config = $config; + $this->siteeditview = $siteeditview; + $this->dispenser = $dispenser; } /** @@ -104,7 +103,7 @@ class Ajaxadmin $add_ajax_site = false; - if ($this->registry->get('builder.site_edit_view.' . $item->id, false)) + if ($this->siteeditview->exists($item->id)) { // we should add this site ajax to front ajax $add_ajax_site = true; @@ -168,7 +167,6 @@ class Ajaxadmin unset($item->php_ajaxmethod); } } - } - + } } diff --git a/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/code.power b/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/code.power index 7e6aa9e..0e7bade 100644 --- a/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/code.power +++ b/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/code.power @@ -12,43 +12,43 @@ ]; /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The SiteEditView Class. * - * @var Registry + * @var SiteEditView * @since 3.2.0 */ - protected Registry $registry; + protected SiteEditView $siteeditview; /** - * Compiler Customcode Dispenser + * The Dispenser Class. * - * @var Dispenser + * @var Dispenser * @since 3.2.0 */ protected Dispenser $dispenser; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param Dispenser|null $dispenser The compiler customcode dispenser + * @param Config $config The Config Class. + * @param SiteEditView $siteeditview The SiteEditView Class. + * @param Dispenser $dispenser The Dispenser Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, ?Dispenser $dispenser = null) + public function __construct(Config $config, SiteEditView $siteeditview, Dispenser $dispenser) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->dispenser = $dispenser ?: Compiler::_('Customcode.Dispenser'); + $this->config = $config; + $this->siteeditview = $siteeditview; + $this->dispenser = $dispenser; } /** @@ -74,7 +74,7 @@ $add_ajax_site = false; - if ($this->registry->get('builder.site_edit_view.' . $item->id, false)) + if ($this->siteeditview->exists($item->id)) { // we should add this site ajax to front ajax $add_ajax_site = true; @@ -138,4 +138,4 @@ unset($item->php_ajaxmethod); } } - } + } \ No newline at end of file diff --git a/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/settings.json b/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/settings.json index ba9b2be..ba0ba2e 100644 --- a/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/settings.json +++ b/src/4f575bd6-de97-41f8-80d6-259c8a6dd9ad/settings.json @@ -11,30 +11,26 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, - "use_selection1": { "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", "as": "default" }, - "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "use_selection1": { + "use": "abdb7d20-a15e-42d8-bd91-7b09514df7f2", "as": "default" }, - "use_selection3": { + "use_selection2": { "use": "f1dc6430-fb54-452e-aa53-ce32ae93db88", "as": "default" }, - "use_selection4": { + "use_selection3": { "use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18", "as": "default" }, - "use_selection5": { + "use_selection4": { "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", "as": "default" }, - "use_selection6": { + "use_selection5": { "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", "as": "default" } diff --git a/src/50302fce-62b4-48ae-a692-9cc4595ce74c/README.md b/src/50302fce-62b4-48ae-a692-9cc4595ce74c/README.md new file mode 100644 index 0000000..bd18172 --- /dev/null +++ b/src/50302fce-62b4-48ae-a692-9cc4595ce74c/README.md @@ -0,0 +1,140 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Search (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Generator** +```uml +@startuml +class Search << (F,LightGreen) >> #RoyalBlue { + # Database $database + # Parser $parser + # Bucket $bucket + + __construct(Database $database, Parser $parser, ...) + + power(string $guid) : ?object + + alias(string $guid, string $className) : string + + validInject(string $guid) : bool + + name(string $guid, string $as = 'default') : ?string + + description(string $guid) : ?string + + serviceProviders(string $guid) : ?array + + dependencies(string $guid) : ?array + - getAliasFromServiceProvider(string $guid, string $className) : ?string + - getAliasFromRegisterMethod(string $content, string $className) : ?string + - getAliasFromPower(string $guid) : ?string + - getAliasFromNamespace(string $input) : string + - getServiceProviderDependencyName(string $serviceProvider, string $dependency) : ?string +} + +note right of Search::__construct + Constructor. + + since: 3.2.0 + + arguments: + Database $database + Parser $parser + Bucket $bucket +end note + +note left of Search::power + Get the power object + + since: 3.2.0 + return: ?object +end note + +note right of Search::alias + Get the power alias to use in container calls + + since: 3.2.0 + return: string +end note + +note left of Search::validInject + Check if a power class is valid to inject into another class + + since: 3.2.0 + return: bool +end note + +note right of Search::name + Get the power class name + + since: 3.2.0 + return: ?string +end note + +note left of Search::description + Get the power class description + + since: 3.2.0 + return: ?string +end note + +note right of Search::serviceProviders + Get all service providers where this power is linked + + since: 3.2.0 + return: ?array +end note + +note left of Search::dependencies + Get all the power dependencies + + since: 3.2.0 + return: ?array +end note + +note right of Search::getAliasFromServiceProvider + Retrieves the alias form linked service provider. + + since: 3.2.0 + return: ?string +end note + +note left of Search::getAliasFromRegisterMethod + Retrieves the alias for a given class from a provided string. + + since: 3.2.0 + return: ?string +end note + +note right of Search::getAliasFromPower + Retrieves the alias form linked service provider. + + since: 3.2.0 + return: ?string +end note + +note left of Search::getAliasFromNamespace + Converts the namespace of a power into an class alias + + since: 3.2.0 + return: string +end note + +note right of Search::getServiceProviderDependencyName + Get dependency name linked to service provider + + since: 3.2.0 + return: ?string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/50302fce-62b4-48ae-a692-9cc4595ce74c/code.php b/src/50302fce-62b4-48ae-a692-9cc4595ce74c/code.php new file mode 100644 index 0000000..25cb6c8 --- /dev/null +++ b/src/50302fce-62b4-48ae-a692-9cc4595ce74c/code.php @@ -0,0 +1,496 @@ + + * @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\Power\Generator; + + +use VDM\Joomla\Componentbuilder\Power\Database\Load as Database; +use VDM\Joomla\Componentbuilder\Compiler\Power\Parser; +use VDM\Joomla\Componentbuilder\Power\Generator\Bucket; +use VDM\Joomla\Utilities\String\ClassfunctionHelper; + + +/** + * Power code Generator Search of JCB + * + * @since 3.2.0 + */ +final class Search +{ + /** + * The Database Class + * + * @var Database + * @since 3.2.0 + **/ + protected Database $database; + + /** + * The Code Parser Class + * + * @var Parser + * @since 3.2.0 + **/ + protected Parser $parser; + + /** + * The found powers + * + * @var Bucket + * @since 3.2.0 + **/ + protected Bucket $bucket; + + /** + * Constructor. + * + * @param Database $database The Database object. + * @param Parser $parser The parser object. + * @param Bucket $bucket The bucket object. + * + * @since 3.2.0 + */ + public function __construct(Database $database, Parser $parser, Bucket $bucket) + { + $this->database = $database; + $this->parser = $parser; + $this->bucket = $bucket; + } + + /** + * Get the power object + * + * @param string $guid The global unique id of the power + * + * @return object|null + * @since 3.2.0 + */ + public function power(string $guid): ?object + { + if (($power = $this->bucket->get("power.{$guid}")) === null) + { + if (($power = $this->database->item(['guid' => $guid])) === null) + { + return null; + } + + $this->bucket->set("power.{$guid}", $power); + } + + return $power; + } + + /** + * Get the power alias to use in container calls + * + * @param string $guid The global unique id of the power + * @param string $className The current class name + * + * @return string + * @since 3.2.0 + */ + public function alias(string $guid, string $className): string + { + if (($alias = $this->bucket->get("alias.{$guid}")) !== null) + { + return $alias; + } + + // load the service providers where its already linked + if (($service_providers = $this->serviceProviders($guid)) !== null) + { + foreach ($service_providers as $service_provider) + { + $dependency_name = $this->getServiceProviderDependencyName($service_provider, $guid) ?? $className; + + if (($alias = $this->getAliasFromServiceProvider($service_provider, $dependency_name)) === null) + { + continue; + } + + break; + } + } + + if (empty($alias)) + { + // build it based on the class name and namespace of this power + $alias = $this->getAliasFromPower($guid); + } + + // finally we set the alias for later use + $alias = $alias ?? "Set.Me.$className"; + $alias = trim($alias); + $this->bucket->set("alias.{$guid}", $alias); + + return $alias; + } + + /** + * Check if a power class is valid to inject into another class + * + * @param string $guid The global unique id of the power + * + * @return bool True if class can (should) be injected + * @since 3.2.0 + */ + public function validInject(string $guid): bool + { + if (($valid_inject = $this->bucket->get("valid_inject.{$guid}")) !== null) + { + return $valid_inject; + } + + if (($power = $this->power($guid)) === null) + { + return false; + } + + // Types: [class, abstract class, final class, interface, trait] + // Allowed: [class, final class, interface] + if ($power->type === 'class' || $power->type === 'final class' || $power->type === 'interface') + { + $this->bucket->set("valid_inject.{$guid}", true); + + return true; + } + + $this->bucket->set("valid_inject.{$guid}", false); + + return false; + } + + /** + * Get the power class name + * + * @param string $guid The global unique id of the power + * @param string $as The use AS value + * + * @return string|null + * @since 3.2.0 + */ + public function name(string $guid, string $as = 'default'): ?string + { + if ($as !== 'default') + { + return $as; + } + + if (($name = $this->bucket->get("name.{$guid}")) !== null) + { + return $name; + } + + if (($power = $this->power($guid)) === null) + { + return null; + } + + if (strpos($power->name, '[') !== false) + { + $name = 'DynamicClassName'; + } + else + { + $name = ClassfunctionHelper::safe($power->name); + } + + $name = trim($name); + $this->bucket->set("name.{$guid}", $name); + + return $name; + } + + /** + * Get the power class description + * + * @param string $guid The global unique id of the power + * + * @return string|null + * @since 3.2.0 + */ + public function description(string $guid): ?string + { + if (($description = $this->bucket->get("description.{$guid}")) !== null) + { + return $description; + } + + if (($power = $this->power($guid)) === null) + { + return null; + } + + if (strpos($power->name, '[') !== false) + { + $description = 'The Dynamic {$power->name} Name'; + } + else + { + $description = "The {$power->name} Class."; + } + + $this->bucket->set("description.{$guid}", $description); + + return $description; + } + + /** + * Get all service providers where this power is linked + * + * @param string $guid The global unique id of the power + * + * @return array|null + * @since 3.2.0 + */ + public function serviceProviders(string $guid): ?array + { + if (($service_providers = $this->bucket->get("service_providers.{$guid}")) === null) + { + if (($powers = $this->database->items([ + 'use_selection' => [ + 'operator' => 'LIKE', + 'value' => "'%{$guid}%'", + 'quote' => false + ], + 'implements_custom' => [ + 'operator' => 'LIKE', + 'value' => "'%ServiceProviderInterface%'", + 'quote' => false + ] + ])) === null) + { + return null; + } + + $service_providers = []; + foreach ($powers as $power) + { + $this->bucket->set("power.{$power->guid}", $power); + $service_providers[] = $power->guid; + } + + $this->bucket->set("service_providers.{$guid}", $service_providers); + } + + return $service_providers; + } + + /** + * Get all the power dependencies + * + * @param string $guid The global unique id of the power + * + * @return array|null + * @since 3.2.0 + */ + public function dependencies(string $guid): ?array + { + if (($dependencies = $this->bucket->get("dependencies.{$guid}")) !== null) + { + return $dependencies; + } + + if (($power = $this->power($guid)) === null) + { + return null; + } + + if (empty($power->use_selection) || !is_object($power->use_selection)) + { + return null; + } + + $dependencies = []; + foreach ($power->use_selection as $use_selection) + { + if (!$this->validInject($use_selection->use)) + { + continue; + } + + if (($name = $this->name($use_selection->use, $use_selection->as)) === null) + { + continue; + } + + $dependencies[] = $this->alias($use_selection->use, $name); + } + + if ($dependencies === []) + { + return null; + } + + $this->bucket->set("dependencies.{$guid}", $dependencies); + + return $dependencies; + } + + /** + * Retrieves the alias form linked service provider. + * + * @param string $guid The global unique id of the power + * @param string $className The current class name + * + * @return string|null Returns the alias if found, otherwise returns null. + * @since 3.2.0 + */ + private function getAliasFromServiceProvider(string $guid, string $className): ?string + { + if (($power = $this->power($guid)) === null || empty($power->main_class_code)) + { + return null; + } + + $code = $this->parser->code($power->main_class_code); + + if (empty($code['methods'])) + { + return null; + } + + $method = null; + + foreach ($code['methods'] as $_method) + { + if ($_method['name'] === 'register' && strlen($_method['body']) > 5) + { + $method = $_method['body']; + break; + } + } + + if (empty($method)) + { + return null; + } + + return $this->getAliasFromRegisterMethod($method, $className); + } + + /** + * Retrieves the alias for a given class from a provided string. + * + * @param string $content The string to search. + * @param string $className The name of the class whose alias is to be retrieved. + * + * @return string|null Returns the alias if found, otherwise returns null. + * @since 3.2.0 + */ + private function getAliasFromRegisterMethod(string $content, string $className): ?string + { + + // Escaping any special characters in the class name to use in regex + $escapedClassName = preg_quote($className, '/'); + + // Regular expression to match the pattern where class name and its alias are specified + $pattern = "/\\\$container->alias\s*\(\s*{$escapedClassName}::class\s*,\s*['\"](.*?)['\"]\s*\)\s*->/s"; + + if (preg_match($pattern, $content, $matches)) + { + return $matches[1]; + } + + return null; + } + + /** + * Retrieves the alias form linked service provider. + * + * @param string $guid The global unique id of the power + * + * @return string|null Returns the alias if found, otherwise returns null. + * @since 3.2.0 + */ + private function getAliasFromPower(string $guid): ?string + { + if (($power = $this->power($guid)) === null || empty($power->namespace)) + { + return null; + } + + return $this->getAliasFromNamespace($power->namespace); + } + + /** + * Converts the namespace of a power into an class alias + * + * @param string $input The namespaced string to process. + * + * @return string The modified string. + * @since 3.2.0 + */ + private function getAliasFromNamespace(string $input): string + { + // 1. Split on backslash to get the components of the namespace path. + $parts = explode('\\', $input); + + // 2. Consider only the last part after the final backslash for further processing. + $lastSegment = end($parts); + + // 3. Get the part after the first dot. + $target = (strpos($lastSegment, '.') !== false) + ? substr($lastSegment, strpos($lastSegment, '.') + 1) + : $lastSegment; + + // 4. Split on dots. + $dotParts = explode('.', $target); + + // 5. Modify segments with camel case words. + $modifiedDotParts = array_map(function ($part) { + return preg_replace('/(?<=[a-z])(?=[A-Z])/', '.', $part); + }, $dotParts); + + // 6. Implode the array with dots and return. + return implode('.', $modifiedDotParts); + } + + /** + * Get dependency name linked to service provider + * + * @param string $serviceProvider The global unique id of the (service provider) power + * @param string $dependency The global unique id of the (dependency) power + * + * @return string|null + * @since 3.2.0 + */ + private function getServiceProviderDependencyName(string $serviceProvider, string $dependency): ?string + { + if (($power = $this->power($serviceProvider)) === null) + { + return null; + } + + if (empty($power->use_selection) || !is_object($power->use_selection)) + { + return null; + } + + foreach ($power->use_selection as $use_selection) + { + if ($use_selection->use !== $dependency) + { + continue; + } + + if (($name = $this->name($use_selection->use, $use_selection->as)) === null) + { + continue; + } + + return $name; + } + + return null; + } +} + diff --git a/src/50302fce-62b4-48ae-a692-9cc4595ce74c/code.power b/src/50302fce-62b4-48ae-a692-9cc4595ce74c/code.power new file mode 100644 index 0000000..edab118 --- /dev/null +++ b/src/50302fce-62b4-48ae-a692-9cc4595ce74c/code.power @@ -0,0 +1,467 @@ + /** + * The Database Class + * + * @var Database + * @since 3.2.0 + **/ + protected Database $database; + + /** + * The Code Parser Class + * + * @var Parser + * @since 3.2.0 + **/ + protected Parser $parser; + + /** + * The found powers + * + * @var Bucket + * @since 3.2.0 + **/ + protected Bucket $bucket; + + /** + * Constructor. + * + * @param Database $database The Database object. + * @param Parser $parser The parser object. + * @param Bucket $bucket The bucket object. + * + * @since 3.2.0 + */ + public function __construct(Database $database, Parser $parser, Bucket $bucket) + { + $this->database = $database; + $this->parser = $parser; + $this->bucket = $bucket; + } + + /** + * Get the power object + * + * @param string $guid The global unique id of the power + * + * @return object|null + * @since 3.2.0 + */ + public function power(string $guid): ?object + { + if (($power = $this->bucket->get("power.{$guid}")) === null) + { + if (($power = $this->database->item(['guid' => $guid])) === null) + { + return null; + } + + $this->bucket->set("power.{$guid}", $power); + } + + return $power; + } + + /** + * Get the power alias to use in container calls + * + * @param string $guid The global unique id of the power + * @param string $className The current class name + * + * @return string + * @since 3.2.0 + */ + public function alias(string $guid, string $className): string + { + if (($alias = $this->bucket->get("alias.{$guid}")) !== null) + { + return $alias; + } + + // load the service providers where its already linked + if (($service_providers = $this->serviceProviders($guid)) !== null) + { + foreach ($service_providers as $service_provider) + { + $dependency_name = $this->getServiceProviderDependencyName($service_provider, $guid) ?? $className; + + if (($alias = $this->getAliasFromServiceProvider($service_provider, $dependency_name)) === null) + { + continue; + } + + break; + } + } + + if (empty($alias)) + { + // build it based on the class name and namespace of this power + $alias = $this->getAliasFromPower($guid); + } + + // finally we set the alias for later use + $alias = $alias ?? "Set.Me.$className"; + $alias = trim($alias); + $this->bucket->set("alias.{$guid}", $alias); + + return $alias; + } + + /** + * Check if a power class is valid to inject into another class + * + * @param string $guid The global unique id of the power + * + * @return bool True if class can (should) be injected + * @since 3.2.0 + */ + public function validInject(string $guid): bool + { + if (($valid_inject = $this->bucket->get("valid_inject.{$guid}")) !== null) + { + return $valid_inject; + } + + if (($power = $this->power($guid)) === null) + { + return false; + } + + // Types: [class, abstract class, final class, interface, trait] + // Allowed: [class, final class, interface] + if ($power->type === 'class' || $power->type === 'final class' || $power->type === 'interface') + { + $this->bucket->set("valid_inject.{$guid}", true); + + return true; + } + + $this->bucket->set("valid_inject.{$guid}", false); + + return false; + } + + /** + * Get the power class name + * + * @param string $guid The global unique id of the power + * @param string $as The use AS value + * + * @return string|null + * @since 3.2.0 + */ + public function name(string $guid, string $as = 'default'): ?string + { + if ($as !== 'default') + { + return $as; + } + + if (($name = $this->bucket->get("name.{$guid}")) !== null) + { + return $name; + } + + if (($power = $this->power($guid)) === null) + { + return null; + } + + if (strpos($power->name, '[') !== false) + { + $name = 'DynamicClassName'; + } + else + { + $name = ClassfunctionHelper::safe($power->name); + } + + $name = trim($name); + $this->bucket->set("name.{$guid}", $name); + + return $name; + } + + /** + * Get the power class description + * + * @param string $guid The global unique id of the power + * + * @return string|null + * @since 3.2.0 + */ + public function description(string $guid): ?string + { + if (($description = $this->bucket->get("description.{$guid}")) !== null) + { + return $description; + } + + if (($power = $this->power($guid)) === null) + { + return null; + } + + if (strpos($power->name, '[') !== false) + { + $description = 'The Dynamic {$power->name} Name'; + } + else + { + $description = "The {$power->name} Class."; + } + + $this->bucket->set("description.{$guid}", $description); + + return $description; + } + + /** + * Get all service providers where this power is linked + * + * @param string $guid The global unique id of the power + * + * @return array|null + * @since 3.2.0 + */ + public function serviceProviders(string $guid): ?array + { + if (($service_providers = $this->bucket->get("service_providers.{$guid}")) === null) + { + if (($powers = $this->database->items([ + 'use_selection' => [ + 'operator' => 'LIKE', + 'value' => "'%{$guid}%'", + 'quote' => false + ], + 'implements_custom' => [ + 'operator' => 'LIKE', + 'value' => "'%ServiceProviderInterface%'", + 'quote' => false + ] + ])) === null) + { + return null; + } + + $service_providers = []; + foreach ($powers as $power) + { + $this->bucket->set("power.{$power->guid}", $power); + $service_providers[] = $power->guid; + } + + $this->bucket->set("service_providers.{$guid}", $service_providers); + } + + return $service_providers; + } + + /** + * Get all the power dependencies + * + * @param string $guid The global unique id of the power + * + * @return array|null + * @since 3.2.0 + */ + public function dependencies(string $guid): ?array + { + if (($dependencies = $this->bucket->get("dependencies.{$guid}")) !== null) + { + return $dependencies; + } + + if (($power = $this->power($guid)) === null) + { + return null; + } + + if (empty($power->use_selection) || !is_object($power->use_selection)) + { + return null; + } + + $dependencies = []; + foreach ($power->use_selection as $use_selection) + { + if (!$this->validInject($use_selection->use)) + { + continue; + } + + if (($name = $this->name($use_selection->use, $use_selection->as)) === null) + { + continue; + } + + $dependencies[] = $this->alias($use_selection->use, $name); + } + + if ($dependencies === []) + { + return null; + } + + $this->bucket->set("dependencies.{$guid}", $dependencies); + + return $dependencies; + } + + /** + * Retrieves the alias form linked service provider. + * + * @param string $guid The global unique id of the power + * @param string $className The current class name + * + * @return string|null Returns the alias if found, otherwise returns null. + * @since 3.2.0 + */ + private function getAliasFromServiceProvider(string $guid, string $className): ?string + { + if (($power = $this->power($guid)) === null || empty($power->main_class_code)) + { + return null; + } + + $code = $this->parser->code($power->main_class_code); + + if (empty($code['methods'])) + { + return null; + } + + $method = null; + + foreach ($code['methods'] as $_method) + { + if ($_method['name'] === 'register' && strlen($_method['body']) > 5) + { + $method = $_method['body']; + break; + } + } + + if (empty($method)) + { + return null; + } + + return $this->getAliasFromRegisterMethod($method, $className); + } + + /** + * Retrieves the alias for a given class from a provided string. + * + * @param string $content The string to search. + * @param string $className The name of the class whose alias is to be retrieved. + * + * @return string|null Returns the alias if found, otherwise returns null. + * @since 3.2.0 + */ + private function getAliasFromRegisterMethod(string $content, string $className): ?string + { + + // Escaping any special characters in the class name to use in regex + $escapedClassName = preg_quote($className, '/'); + + // Regular expression to match the pattern where class name and its alias are specified + $pattern = "/\\\$container->alias\s*\(\s*{$escapedClassName}::class\s*,\s*['\"](.*?)['\"]\s*\)\s*->/s"; + + if (preg_match($pattern, $content, $matches)) + { + return $matches[1]; + } + + return null; + } + + /** + * Retrieves the alias form linked service provider. + * + * @param string $guid The global unique id of the power + * + * @return string|null Returns the alias if found, otherwise returns null. + * @since 3.2.0 + */ + private function getAliasFromPower(string $guid): ?string + { + if (($power = $this->power($guid)) === null || empty($power->namespace)) + { + return null; + } + + return $this->getAliasFromNamespace($power->namespace); + } + + /** + * Converts the namespace of a power into an class alias + * + * @param string $input The namespaced string to process. + * + * @return string The modified string. + * @since 3.2.0 + */ + private function getAliasFromNamespace(string $input): string + { + // 1. Split on backslash to get the components of the namespace path. + $parts = explode('\\', $input); + + // 2. Consider only the last part after the final backslash for further processing. + $lastSegment = end($parts); + + // 3. Get the part after the first dot. + $target = (strpos($lastSegment, '.') !== false) + ? substr($lastSegment, strpos($lastSegment, '.') + 1) + : $lastSegment; + + // 4. Split on dots. + $dotParts = explode('.', $target); + + // 5. Modify segments with camel case words. + $modifiedDotParts = array_map(function ($part) { + return preg_replace('/(?<=[a-z])(?=[A-Z])/', '.', $part); + }, $dotParts); + + // 6. Implode the array with dots and return. + return implode('.', $modifiedDotParts); + } + + /** + * Get dependency name linked to service provider + * + * @param string $serviceProvider The global unique id of the (service provider) power + * @param string $dependency The global unique id of the (dependency) power + * + * @return string|null + * @since 3.2.0 + */ + private function getServiceProviderDependencyName(string $serviceProvider, string $dependency): ?string + { + if (($power = $this->power($serviceProvider)) === null) + { + return null; + } + + if (empty($power->use_selection) || !is_object($power->use_selection)) + { + return null; + } + + foreach ($power->use_selection as $use_selection) + { + if ($use_selection->use !== $dependency) + { + continue; + } + + if (($name = $this->name($use_selection->use, $use_selection->as)) === null) + { + continue; + } + + return $name; + } + + return null; + } \ No newline at end of file diff --git a/src/50302fce-62b4-48ae-a692-9cc4595ce74c/settings.json b/src/50302fce-62b4-48ae-a692-9cc4595ce74c/settings.json new file mode 100644 index 0000000..992eb9c --- /dev/null +++ b/src/50302fce-62b4-48ae-a692-9cc4595ce74c/settings.json @@ -0,0 +1,35 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "50302fce-62b4-48ae-a692-9cc4595ce74c", + "implements": null, + "load_selection": null, + "name": "Search", + "power_version": "1.0.0", + "system_name": "JCB.Power.Generator.Search", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "1f86db0f-e271-45df-8795-3e503ec76698", + "as": "Database" + }, + "use_selection1": { + "use": "95d0e03f-24fd-4412-bc2e-f0899fcc3205", + "as": "default" + }, + "use_selection2": { + "use": "5d4278f0-7db2-498f-872a-c974bd8ce334", + "as": "default" + }, + "use_selection3": { + "use": "30c5b4c2-f75f-4d15-869a-f8bfedd87358", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Generator.Search", + "description": "Power code Generator Search of JCB\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": "" +} \ No newline at end of file diff --git a/src/505801ac-d3e2-44c6-a300-9a57a96170c6/README.md b/src/505801ac-d3e2-44c6-a300-9a57a96170c6/README.md new file mode 100644 index 0000000..3c4cca9 --- /dev/null +++ b/src/505801ac-d3e2-44c6-a300-9a57a96170c6/README.md @@ -0,0 +1,46 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Generator (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power** +```uml +@startuml +class Generator << (F,LightGreen) >> #RoyalBlue { + # ClassInjector $classinjector + # ServiceProvider $serviceprovider + + __construct(ClassInjector $classinjector, ServiceProvider $serviceprovider) + + get(array $power) : ?string +} + +note right of Generator::__construct + Constructor. + + since: 3.2.0 +end note + +note right of Generator::get + Get the class code. + + since: 3.2.0 + return: ?string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/505801ac-d3e2-44c6-a300-9a57a96170c6/code.php b/src/505801ac-d3e2-44c6-a300-9a57a96170c6/code.php new file mode 100644 index 0000000..8259e19 --- /dev/null +++ b/src/505801ac-d3e2-44c6-a300-9a57a96170c6/code.php @@ -0,0 +1,85 @@ + + * @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\Power; + + +use VDM\Joomla\Componentbuilder\Power\Generator\ClassInjectorBuilder as ClassInjector; +use VDM\Joomla\Componentbuilder\Power\Generator\ServiceProviderBuilder as ServiceProvider; + + +/** + * Power code Generator of JCB + * + * @since 3.2.0 + */ +final class Generator +{ + /** + * The ClassInjectorBuilder Class. + * + * @var ClassInjector + * @since 3.2.0 + */ + protected ClassInjector $classinjector; + + /** + * The ServiceProviderBuilder Class. + * + * @var ServiceProvider + * @since 3.2.0 + */ + protected ServiceProvider $serviceprovider; + + /** + * Constructor. + * + * @param ClassInjector $classinjector The ClassInjectorBuilder Class. + * @param ServiceProvider $serviceprovider The ServiceProviderBuilder Class. + * + * @since 3.2.0 + */ + public function __construct(ClassInjector $classinjector, ServiceProvider $serviceprovider) + { + $this->classinjector = $classinjector; + $this->serviceprovider = $serviceprovider; + } + + /** + * Get the class code. + * + * @param array $power The power being saved + * + * @return string|null + * @since 3.2.0 + */ + public function get(array $power): ?string + { + // create dependency injection (when the main_class_code is empty) + if (empty($power['main_class_code']) && !empty($power['use_selection']) && is_array($power['use_selection'])) + { + if (strpos($power['implements_custom'], 'ServiceProviderInterface') !== false) + { + if (($code = $this->serviceprovider->getCode($power)) !== null) + { + return $code; + } + } + elseif (($code = $this->classinjector->getCode($power)) !== null) + { + return $code; + } + } + + return null; + } +} + diff --git a/src/505801ac-d3e2-44c6-a300-9a57a96170c6/code.power b/src/505801ac-d3e2-44c6-a300-9a57a96170c6/code.power new file mode 100644 index 0000000..c95fec2 --- /dev/null +++ b/src/505801ac-d3e2-44c6-a300-9a57a96170c6/code.power @@ -0,0 +1,58 @@ + /** + * The ClassInjectorBuilder Class. + * + * @var ClassInjector + * @since 3.2.0 + */ + protected ClassInjector $classinjector; + + /** + * The ServiceProviderBuilder Class. + * + * @var ServiceProvider + * @since 3.2.0 + */ + protected ServiceProvider $serviceprovider; + + /** + * Constructor. + * + * @param ClassInjector $classinjector The ClassInjectorBuilder Class. + * @param ServiceProvider $serviceprovider The ServiceProviderBuilder Class. + * + * @since 3.2.0 + */ + public function __construct(ClassInjector $classinjector, ServiceProvider $serviceprovider) + { + $this->classinjector = $classinjector; + $this->serviceprovider = $serviceprovider; + } + + /** + * Get the class code. + * + * @param array $power The power being saved + * + * @return string|null + * @since 3.2.0 + */ + public function get(array $power): ?string + { + // create dependency injection (when the main_class_code is empty) + if (empty($power['main_class_code']) && !empty($power['use_selection']) && is_array($power['use_selection'])) + { + if (strpos($power['implements_custom'], 'ServiceProviderInterface') !== false) + { + if (($code = $this->serviceprovider->getCode($power)) !== null) + { + return $code; + } + } + elseif (($code = $this->classinjector->getCode($power)) !== null) + { + return $code; + } + } + + return null; + } \ No newline at end of file diff --git a/src/505801ac-d3e2-44c6-a300-9a57a96170c6/settings.json b/src/505801ac-d3e2-44c6-a300-9a57a96170c6/settings.json new file mode 100644 index 0000000..9c02a42 --- /dev/null +++ b/src/505801ac-d3e2-44c6-a300-9a57a96170c6/settings.json @@ -0,0 +1,27 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "505801ac-d3e2-44c6-a300-9a57a96170c6", + "implements": null, + "load_selection": null, + "name": "Generator", + "power_version": "1.0.0", + "system_name": "JCB.Power.Generator", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7", + "as": "ClassInjector" + }, + "use_selection1": { + "use": "8a2a3ee5-6ce2-4604-91e2-01f770228960", + "as": "ServiceProvider" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Generator", + "description": "Power code Generator of JCB\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": "" +} \ No newline at end of file diff --git a/src/507ab90f-7d64-4697-9815-d96f5d1d1185/README.md b/src/507ab90f-7d64-4697-9815-d96f5d1d1185/README.md new file mode 100644 index 0000000..9e6cd6f --- /dev/null +++ b/src/507ab90f-7d64-4697-9815-d96f5d1d1185/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class GoogleChart (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class GoogleChart << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/507ab90f-7d64-4697-9815-d96f5d1d1185/code.php b/src/507ab90f-7d64-4697-9815-d96f5d1d1185/code.php new file mode 100644 index 0000000..9e1263f --- /dev/null +++ b/src/507ab90f-7d64-4697-9815-d96f5d1d1185/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Google Chart Builder Class + * + * @since 3.2.0 + */ +final class GoogleChart extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/507ab90f-7d64-4697-9815-d96f5d1d1185/code.power b/src/507ab90f-7d64-4697-9815-d96f5d1d1185/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/507ab90f-7d64-4697-9815-d96f5d1d1185/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/507ab90f-7d64-4697-9815-d96f5d1d1185/settings.json b/src/507ab90f-7d64-4697-9815-d96f5d1d1185/settings.json new file mode 100644 index 0000000..056685f --- /dev/null +++ b/src/507ab90f-7d64-4697-9815-d96f5d1d1185/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "507ab90f-7d64-4697-9815-d96f5d1d1185", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "GoogleChart", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.GoogleChart", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.GoogleChart", + "description": "Google Chart Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/caf33c5d-858c-4f9a-894f-ab302ec5445a/README.md b/src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/README.md similarity index 75% rename from src/caf33c5d-858c-4f9a-894f-ab302ec5445a/README.md rename to src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/README.md index eeb3a5f..b0c10fe 100644 --- a/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/README.md +++ b/src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/README.md @@ -6,27 +6,27 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# interface FactoryInterface (Details) -> namespace: **VDM\Joomla\Componentbuilder\Interfaces** +# class Gitea (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Service** ```uml @startuml -interface FactoryInterface #Lavender { - + {static} _(string $key) : Mixed - + {static} getContainer() : Container +class Gitea #Gold { + + register(Container $container) : void + + getContents(Container $container) : Contents } -note right of FactoryInterface::_ - Get any class from the container +note right of Gitea::register + Registers the service provider with a DI container. since: 3.2.0 - return: Mixed + return: void end note -note right of FactoryInterface::getContainer - Get the global container +note right of Gitea::getContents + Get the Contents class since: 3.2.0 - return: Container + return: Contents end note @enduml diff --git a/src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/code.php b/src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/code.php new file mode 100644 index 0000000..7459e6c --- /dev/null +++ b/src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/code.php @@ -0,0 +1,58 @@ + + * @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\Power\Service; + + +use Joomla\DI\Container; +use Joomla\DI\ServiceProviderInterface; +use VDM\Joomla\Gitea\Repository\Contents; + + +/** + * Power Gitea Service Provider + * + * @since 3.2.0 + */ +class Gitea implements ServiceProviderInterface +{ + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(Contents::class, 'Gitea.Repository.Contents') + ->share('Gitea.Repository.Contents', [$this, 'getContents'], true); + } + + /** + * Get the Contents class + * + * @param Container $container The DI container. + * + * @return Contents + * @since 3.2.0 + */ + public function getContents(Container $container): Contents + { + return new Contents( + $container->get('Gitea.Utilities.Http'), + $container->get('Gitea.Dynamic.Uri'), + $container->get('Gitea.Utilities.Response') + ); + } +} + diff --git a/src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/code.power b/src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/code.power new file mode 100644 index 0000000..da9c3cd --- /dev/null +++ b/src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/code.power @@ -0,0 +1,30 @@ + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(Contents::class, 'Gitea.Repository.Contents') + ->share('Gitea.Repository.Contents', [$this, 'getContents'], true); + } + + /** + * Get the Contents class + * + * @param Container $container The DI container. + * + * @return Contents + * @since 3.2.0 + */ + public function getContents(Container $container): Contents + { + return new Contents( + $container->get('Gitea.Utilities.Http'), + $container->get('Gitea.Dynamic.Uri'), + $container->get('Gitea.Utilities.Response') + ); + } \ No newline at end of file diff --git a/src/4815e1c7-a433-443d-a112-d1e03d7df84b/settings.json b/src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/settings.json similarity index 60% rename from src/4815e1c7-a433-443d-a112-d1e03d7df84b/settings.json rename to src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/settings.json index a3ec8af..7ca6a4f 100644 --- a/src/4815e1c7-a433-443d-a112-d1e03d7df84b/settings.json +++ b/src/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae/settings.json @@ -2,31 +2,23 @@ "add_head": "1", "add_licensing_template": "2", "extends": "0", - "guid": "4815e1c7-a433-443d-a112-d1e03d7df84b", + "guid": "510dc0f6-da3f-4a78-b43d-3a03e2cb5fae", "implements": [ "-1" ], "load_selection": null, - "name": "Database", + "name": "Gitea", "power_version": "1.0.0", - "system_name": "JCB.Compiler.Service.Database", + "system_name": "JCB.Power.Service.Gitea", "type": "class", "use_selection": { "use_selection0": { - "use": "06f8eada-d59b-441c-b287-0aea1793da5a", - "as": "default" - }, - "use_selection1": { - "use": "524eb8f6-38d4-47dc-92ad-98b94e099ac0", - "as": "default" - }, - "use_selection2": { - "use": "cce56585-58b0-4f72-a92c-e2635ea52d83", + "use": "8d1baef6-fcad-49a9-848f-428009cdb989", "as": "default" } }, - "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Service.Database", - "description": "Database Service Provider\r\n\r\n@since 3.2.0", + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Service.Gitea", + "description": "Power Gitea Service Provider\r\n\r\n@since 3.2.0", "implements_custom": "ServiceProviderInterface", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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\\DI\\Container;\r\nuse Joomla\\DI\\ServiceProviderInterface;", diff --git a/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/README.md b/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/README.md index bd9b852..e97a23f 100644 --- a/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/README.md +++ b/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/README.md @@ -21,6 +21,7 @@ class Utilities #Gold { + getDynamicpath(Container $container) : Dynamicpath + getPathfix(Container $container) : Pathfix + getStructure(Container $container) : Structure + + getXml(Container $container) : Xml } note right of Utilities::register @@ -92,6 +93,13 @@ note left of Utilities::getStructure since: 3.2.0 return: Structure end note + +note right of Utilities::getXml + Get the Compiler Xml Helper + + since: 3.2.0 + return: Xml +end note @enduml ``` diff --git a/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/code.php b/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/code.php index 169c447..f572ff5 100644 --- a/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/code.php +++ b/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/code.php @@ -24,6 +24,7 @@ use VDM\Joomla\Componentbuilder\Utilities\Constantpaths; use VDM\Joomla\Componentbuilder\Compiler\Utilities\Dynamicpath; use VDM\Joomla\Componentbuilder\Compiler\Utilities\Pathfix; use VDM\Joomla\Componentbuilder\Compiler\Utilities\Structure; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Xml; /** @@ -69,6 +70,9 @@ class Utilities implements ServiceProviderInterface $container->alias(Structure::class, 'Utilities.Structure') ->share('Utilities.Structure', [$this, 'getStructure'], true); + + $container->alias(Xml::class, 'Utilities.Xml') + ->share('Utilities.Xml', [$this, 'getXml'], true); } /** @@ -206,6 +210,20 @@ class Utilities implements ServiceProviderInterface $container->get('Utilities.Files') ); } - + + /** + * Get the Compiler Xml Helper + * + * @param Container $container The DI container. + * + * @return Xml + * @since 3.2.0 + */ + public function getXml(Container $container): Xml + { + return new Xml( + $container->get('Config') + ); + } } diff --git a/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/code.power b/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/code.power index c0a7c93..69c3815 100644 --- a/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/code.power +++ b/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/code.power @@ -34,6 +34,9 @@ $container->alias(Structure::class, 'Utilities.Structure') ->share('Utilities.Structure', [$this, 'getStructure'], true); + + $container->alias(Xml::class, 'Utilities.Xml') + ->share('Utilities.Xml', [$this, 'getXml'], true); } /** @@ -171,3 +174,18 @@ $container->get('Utilities.Files') ); } + + /** + * Get the Compiler Xml Helper + * + * @param Container $container The DI container. + * + * @return Xml + * @since 3.2.0 + */ + public function getXml(Container $container): Xml + { + return new Xml( + $container->get('Config') + ); + } \ No newline at end of file diff --git a/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/settings.json b/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/settings.json index a516117..dadd0fb 100644 --- a/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/settings.json +++ b/src/516f93b8-5fff-41c6-aeaf-2d93180a12cc/settings.json @@ -51,6 +51,10 @@ "use_selection9": { "use": "1efdded5-d6c8-452c-8f37-0374483a7b3f", "as": "default" + }, + "use_selection10": { + "use": "f6ba34a2-0cd7-4dc1-ab67-75e962a5045b", + "as": "default" } }, "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Service.Utilities", diff --git a/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/README.md b/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/README.md new file mode 100644 index 0000000..0d2a420 --- /dev/null +++ b/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class SiteFields (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class SiteFields << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/code.php b/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/code.php new file mode 100644 index 0000000..a0cd2b9 --- /dev/null +++ b/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Site Fields Builder Class + * + * @since 3.2.0 + */ +final class SiteFields extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/code.power b/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/settings.json b/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/settings.json new file mode 100644 index 0000000..e72da05 --- /dev/null +++ b/src/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "SiteFields", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.SiteFields", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.SiteFields", + "description": "Site Fields Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/54ec57f6-2fc3-42e5-975e-1fabeacb845d/README.md b/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/README.md new file mode 100644 index 0000000..0def3e2 --- /dev/null +++ b/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class UikitComp (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class UikitComp << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/code.php b/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/code.php new file mode 100644 index 0000000..85686d1 --- /dev/null +++ b/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Uikit Comp Builder Class + * + * @since 3.2.0 + */ +final class UikitComp extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/code.power b/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/settings.json b/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/settings.json new file mode 100644 index 0000000..40aaa11 --- /dev/null +++ b/src/54ec57f6-2fc3-42e5-975e-1fabeacb845d/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "54ec57f6-2fc3-42e5-975e-1fabeacb845d", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "UikitComp", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.UikitComp", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.UikitComp", + "description": "Uikit Comp Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/55278140-80d5-4168-8241-d64515c4b35e/README.md b/src/55278140-80d5-4168-8241-d64515c4b35e/README.md new file mode 100644 index 0000000..1be5f52 --- /dev/null +++ b/src/55278140-80d5-4168-8241-d64515c4b35e/README.md @@ -0,0 +1,153 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Builders (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class Builders << (F,LightGreen) >> #RoyalBlue { + # Config $config + # Language $language + # Placeholder $placeholder + # Layout $layout + # SiteFieldData $sitefielddata + # Tags $tags + # DatabaseTables $databasetables + # DatabaseUniqueKeys $databaseuniquekeys + # DatabaseKeys $databasekeys + # DatabaseUniqueGuid $databaseuniqueguid + # ListJoin $listjoin + # History $history + # Alias $alias + # Title $title + # CategoryOtherName $categoryothername + # Lists $lists + # CustomList $customlist + # FieldRelations $fieldrelations + # HiddenFields $hiddenfields + # IntegerFields $integerfields + # DynamicFields $dynamicfields + # MainTextField $maintextfield + # CustomField $customfield + # CustomFieldLinks $customfieldlinks + # ScriptUserSwitch $scriptuserswitch + # ScriptMediaSwitch $scriptmediaswitch + # Category $category + # CategoryCode $categorycode + # CheckBox $checkbox + # JsonString $jsonstring + # BaseSixFour $basesixfour + # ModelBasicField $modelbasicfield + # ModelWhmcsField $modelwhmcsfield + # ModelMediumField $modelmediumfield + # ModelExpertFieldInitiator $modelexpertfieldinitiator + # ModelExpertField $modelexpertfield + # JsonItem $jsonitem + # ItemsMethodListString $itemsmethodliststring + # JsonItemArray $jsonitemarray + # ItemsMethodEximportString $itemsmethodeximportstring + # SelectionTranslation $selectiontranslation + # AdminFilterType $adminfiltertype + # Sort $sort + # Search $search + # Filter $filter + # ComponentFields $componentfields + # CMSApplication $app + + __construct(Config $config, Language $language, ...) + + set(string $langLabel, string $langView, ...) : void +} + +note right of Builders::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + Language $language + Placeholder $placeholder + Layout $layout + SiteFieldData $sitefielddata + Tags $tags + DatabaseTables $databasetables + DatabaseUniqueKeys $databaseuniquekeys + DatabaseKeys $databasekeys + DatabaseUniqueGuid $databaseuniqueguid + ListJoin $listjoin + History $history + Alias $alias + Title $title + CategoryOtherName $categoryothername + Lists $lists + CustomList $customlist + FieldRelations $fieldrelations + HiddenFields $hiddenfields + IntegerFields $integerfields + DynamicFields $dynamicfields + MainTextField $maintextfield + CustomField $customfield + CustomFieldLinks $customfieldlinks + ScriptUserSwitch $scriptuserswitch + ScriptMediaSwitch $scriptmediaswitch + Category $category + CategoryCode $categorycode + CheckBox $checkbox + JsonString $jsonstring + BaseSixFour $basesixfour + ModelBasicField $modelbasicfield + ModelWhmcsField $modelwhmcsfield + ModelMediumField $modelmediumfield + ModelExpertFieldInitiator $modelexpertfieldinitiator + ModelExpertField $modelexpertfield + JsonItem $jsonitem + ItemsMethodListString $itemsmethodliststring + JsonItemArray $jsonitemarray + ItemsMethodEximportString $itemsmethodeximportstring + SelectionTranslation $selectiontranslation + AdminFilterType $adminfiltertype + Sort $sort + Search $search + Filter $filter + ComponentFields $componentfields + ?CMSApplication $app = null +end note + +note right of Builders::set + set Builders + + since: 3.2.0 + return: void + + arguments: + string $langLabel + string $langView + string $nameSingleCode + string $nameListCode + string $name + array $view + array $field + string $typeName + bool $multiple + ?array $custom = null + ?array $options = null +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/55278140-80d5-4168-8241-d64515c4b35e/code.php b/src/55278140-80d5-4168-8241-d64515c4b35e/code.php new file mode 100644 index 0000000..0169217 --- /dev/null +++ b/src/55278140-80d5-4168-8241-d64515c4b35e/code.php @@ -0,0 +1,1290 @@ + + * @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\Compiler\Creator; + + +use Joomla\CMS\Factory; +use Joomla\CMS\Language\Text; +use Joomla\CMS\Application\CMSApplication; +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Language; +use VDM\Joomla\Componentbuilder\Compiler\Placeholder; +use VDM\Joomla\Componentbuilder\Compiler\Creator\Layout; +use VDM\Joomla\Componentbuilder\Compiler\Creator\SiteFieldData; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Tags; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseTables; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseUniqueKeys; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseKeys; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DatabaseUniqueGuid; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ListJoin; +use VDM\Joomla\Componentbuilder\Compiler\Builder\History; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Alias; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Title; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CategoryOtherName; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Lists; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomList; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldRelations; +use VDM\Joomla\Componentbuilder\Compiler\Builder\HiddenFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\IntegerFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DynamicFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\MainTextField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomFieldLinks; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ScriptUserSwitch; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ScriptMediaSwitch; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Category; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CategoryCode; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CheckBox; +use VDM\Joomla\Componentbuilder\Compiler\Builder\JsonString; +use VDM\Joomla\Componentbuilder\Compiler\Builder\BaseSixFour; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelBasicField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelWhmcsField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelMediumField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelExpertFieldInitiator; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ModelExpertField; +use VDM\Joomla\Componentbuilder\Compiler\Builder\JsonItem; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ItemsMethodListString; +use VDM\Joomla\Componentbuilder\Compiler\Builder\JsonItemArray; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ItemsMethodEximportString; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SelectionTranslation; +use VDM\Joomla\Componentbuilder\Compiler\Builder\AdminFilterType; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Sort; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Search; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Filter; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ComponentFields; +use VDM\Joomla\Utilities\String\FieldHelper; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Utilities\GetHelper; +use VDM\Joomla\Utilities\ArrayHelper; + + +/** + * Compiler Creator Builders + * + * @since 3.2.0 + */ +final class Builders +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Layout Class. + * + * @var Layout + * @since 3.2.0 + */ + protected Layout $layout; + + /** + * The SiteFieldData Class. + * + * @var SiteFieldData + * @since 3.2.0 + */ + protected SiteFieldData $sitefielddata; + + /** + * The Tags Class. + * + * @var Tags + * @since 3.2.0 + */ + protected Tags $tags; + + /** + * The DatabaseTables Class. + * + * @var DatabaseTables + * @since 3.2.0 + */ + protected DatabaseTables $databasetables; + + /** + * The DatabaseUniqueKeys Class. + * + * @var DatabaseUniqueKeys + * @since 3.2.0 + */ + protected DatabaseUniqueKeys $databaseuniquekeys; + + /** + * The DatabaseKeys Class. + * + * @var DatabaseKeys + * @since 3.2.0 + */ + protected DatabaseKeys $databasekeys; + + /** + * The DatabaseUniqueGuid Class. + * + * @var DatabaseUniqueGuid + * @since 3.2.0 + */ + protected DatabaseUniqueGuid $databaseuniqueguid; + + /** + * The ListJoin Class. + * + * @var ListJoin + * @since 3.2.0 + */ + protected ListJoin $listjoin; + + /** + * The History Class. + * + * @var History + * @since 3.2.0 + */ + protected History $history; + + /** + * The Alias Class. + * + * @var Alias + * @since 3.2.0 + */ + protected Alias $alias; + + /** + * The Title Class. + * + * @var Title + * @since 3.2.0 + */ + protected Title $title; + + /** + * The CategoryOtherName Class. + * + * @var CategoryOtherName + * @since 3.2.0 + */ + protected CategoryOtherName $categoryothername; + + /** + * The Lists Class. + * + * @var Lists + * @since 3.2.0 + */ + protected Lists $lists; + + /** + * The CustomList Class. + * + * @var CustomList + * @since 3.2.0 + */ + protected CustomList $customlist; + + /** + * The FieldRelations Class. + * + * @var FieldRelations + * @since 3.2.0 + */ + protected FieldRelations $fieldrelations; + + /** + * The HiddenFields Class. + * + * @var HiddenFields + * @since 3.2.0 + */ + protected HiddenFields $hiddenfields; + + /** + * The IntegerFields Class. + * + * @var IntegerFields + * @since 3.2.0 + */ + protected IntegerFields $integerfields; + + /** + * The DynamicFields Class. + * + * @var DynamicFields + * @since 3.2.0 + */ + protected DynamicFields $dynamicfields; + + /** + * The MainTextField Class. + * + * @var MainTextField + * @since 3.2.0 + */ + protected MainTextField $maintextfield; + + /** + * The CustomField Class. + * + * @var CustomField + * @since 3.2.0 + */ + protected CustomField $customfield; + + /** + * The CustomFieldLinks Class. + * + * @var CustomFieldLinks + * @since 3.2.0 + */ + protected CustomFieldLinks $customfieldlinks; + + /** + * The ScriptUserSwitch Class. + * + * @var ScriptUserSwitch + * @since 3.2.0 + */ + protected ScriptUserSwitch $scriptuserswitch; + + /** + * The ScriptMediaSwitch Class. + * + * @var ScriptMediaSwitch + * @since 3.2.0 + */ + protected ScriptMediaSwitch $scriptmediaswitch; + + /** + * The Category Class. + * + * @var Category + * @since 3.2.0 + */ + protected Category $category; + + /** + * The CategoryCode Class. + * + * @var CategoryCode + * @since 3.2.0 + */ + protected CategoryCode $categorycode; + + /** + * The CheckBox Class. + * + * @var CheckBox + * @since 3.2.0 + */ + protected CheckBox $checkbox; + + /** + * The JsonString Class. + * + * @var JsonString + * @since 3.2.0 + */ + protected JsonString $jsonstring; + + /** + * The BaseSixFour Class. + * + * @var BaseSixFour + * @since 3.2.0 + */ + protected BaseSixFour $basesixfour; + + /** + * The ModelBasicField Class. + * + * @var ModelBasicField + * @since 3.2.0 + */ + protected ModelBasicField $modelbasicfield; + + /** + * The ModelWhmcsField Class. + * + * @var ModelWhmcsField + * @since 3.2.0 + */ + protected ModelWhmcsField $modelwhmcsfield; + + /** + * The ModelMediumField Class. + * + * @var ModelMediumField + * @since 3.2.0 + */ + protected ModelMediumField $modelmediumfield; + + /** + * The ModelExpertFieldInitiator Class. + * + * @var ModelExpertFieldInitiator + * @since 3.2.0 + */ + protected ModelExpertFieldInitiator $modelexpertfieldinitiator; + + /** + * The ModelExpertField Class. + * + * @var ModelExpertField + * @since 3.2.0 + */ + protected ModelExpertField $modelexpertfield; + + /** + * The JsonItem Class. + * + * @var JsonItem + * @since 3.2.0 + */ + protected JsonItem $jsonitem; + + /** + * The ItemsMethodListString Class. + * + * @var ItemsMethodListString + * @since 3.2.0 + */ + protected ItemsMethodListString $itemsmethodliststring; + + /** + * The JsonItemArray Class. + * + * @var JsonItemArray + * @since 3.2.0 + */ + protected JsonItemArray $jsonitemarray; + + /** + * The ItemsMethodEximportString Class. + * + * @var ItemsMethodEximportString + * @since 3.2.0 + */ + protected ItemsMethodEximportString $itemsmethodeximportstring; + + /** + * The SelectionTranslation Class. + * + * @var SelectionTranslation + * @since 3.2.0 + */ + protected SelectionTranslation $selectiontranslation; + + /** + * The AdminFilterType Class. + * + * @var AdminFilterType + * @since 3.2.0 + */ + protected AdminFilterType $adminfiltertype; + + /** + * The Sort Class. + * + * @var Sort + * @since 3.2.0 + */ + protected Sort $sort; + + /** + * The Search Class. + * + * @var Search + * @since 3.2.0 + */ + protected Search $search; + + /** + * The Filter Class. + * + * @var Filter + * @since 3.2.0 + */ + protected Filter $filter; + + /** + * The ComponentFields Class. + * + * @var ComponentFields + * @since 3.2.0 + */ + protected ComponentFields $componentfields; + + /** + * Application object. + * + * @var CMSApplication + * @since 3.2.0 + **/ + protected CMSApplication $app; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Language $language The Language Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Layout $layout The Layout Class. + * @param SiteFieldData $sitefielddata The SiteFieldData Class. + * @param Tags $tags The Tags Class. + * @param DatabaseTables $databasetables The DatabaseTables Class. + * @param DatabaseUniqueKeys $databaseuniquekeys The DatabaseUniqueKeys Class. + * @param DatabaseKeys $databasekeys The DatabaseKeys Class. + * @param DatabaseUniqueGuid $databaseuniqueguid The DatabaseUniqueGuid Class. + * @param ListJoin $listjoin The ListJoin Class. + * @param History $history The History Class. + * @param Alias $alias The Alias Class. + * @param Title $title The Title Class. + * @param CategoryOtherName $categoryothername The CategoryOtherName Class. + * @param Lists $lists The Lists Class. + * @param CustomList $customlist The CustomList Class. + * @param FieldRelations $fieldrelations The FieldRelations Class. + * @param HiddenFields $hiddenfields The HiddenFields Class. + * @param IntegerFields $integerfields The IntegerFields Class. + * @param DynamicFields $dynamicfields The DynamicFields Class. + * @param MainTextField $maintextfield The MainTextField Class. + * @param CustomField $customfield The CustomField Class. + * @param CustomFieldLinks $customfieldlinks The CustomFieldLinks Class. + * @param ScriptUserSwitch $scriptuserswitch The ScriptUserSwitch Class. + * @param ScriptMediaSwitch $scriptmediaswitch The ScriptMediaSwitch Class. + * @param Category $category The Category Class. + * @param CategoryCode $categorycode The CategoryCode Class. + * @param CheckBox $checkbox The CheckBox Class. + * @param JsonString $jsonstring The JsonString Class. + * @param BaseSixFour $basesixfour The BaseSixFour Class. + * @param ModelBasicField $modelbasicfield The ModelBasicField Class. + * @param ModelWhmcsField $modelwhmcsfield The ModelWhmcsField Class. + * @param ModelMediumField $modelmediumfield The ModelMediumField Class. + * @param ModelExpertFieldInitiator $modelexpertfieldinitiator The ModelExpertFieldInitiator Class. + * @param ModelExpertField $modelexpertfield The ModelExpertField Class. + * @param JsonItem $jsonitem The JsonItem Class. + * @param ItemsMethodListString $itemsmethodliststring The ItemsMethodListString Class. + * @param JsonItemArray $jsonitemarray The JsonItemArray Class. + * @param ItemsMethodEximportString $itemsmethodeximportstring The ItemsMethodEximportString Class. + * @param SelectionTranslation $selectiontranslation The SelectionTranslation Class. + * @param AdminFilterType $adminfiltertype The AdminFilterType Class. + * @param Sort $sort The Sort Class. + * @param Search $search The Search Class. + * @param Filter $filter The Filter Class. + * @param ComponentFields $componentfields The ComponentFields Class. + * @param CMSApplication|null $app The app object. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Language $language, + Placeholder $placeholder, Layout $layout, + SiteFieldData $sitefielddata, Tags $tags, + DatabaseTables $databasetables, + DatabaseUniqueKeys $databaseuniquekeys, + DatabaseKeys $databasekeys, + DatabaseUniqueGuid $databaseuniqueguid, + ListJoin $listjoin, History $history, Alias $alias, + Title $title, CategoryOtherName $categoryothername, + Lists $lists, CustomList $customlist, + FieldRelations $fieldrelations, + HiddenFields $hiddenfields, IntegerFields $integerfields, + DynamicFields $dynamicfields, + MainTextField $maintextfield, CustomField $customfield, + CustomFieldLinks $customfieldlinks, + ScriptUserSwitch $scriptuserswitch, + ScriptMediaSwitch $scriptmediaswitch, Category $category, + CategoryCode $categorycode, CheckBox $checkbox, + JsonString $jsonstring, BaseSixFour $basesixfour, + ModelBasicField $modelbasicfield, + ModelWhmcsField $modelwhmcsfield, + ModelMediumField $modelmediumfield, + ModelExpertFieldInitiator $modelexpertfieldinitiator, + ModelExpertField $modelexpertfield, JsonItem $jsonitem, + ItemsMethodListString $itemsmethodliststring, + JsonItemArray $jsonitemarray, + ItemsMethodEximportString $itemsmethodeximportstring, + SelectionTranslation $selectiontranslation, + AdminFilterType $adminfiltertype, Sort $sort, + Search $search, Filter $filter, + ComponentFields $componentfields, ?CMSApplication $app = null) + { + $this->config = $config; + $this->language = $language; + $this->placeholder = $placeholder; + $this->layout = $layout; + $this->sitefielddata = $sitefielddata; + $this->tags = $tags; + $this->databasetables = $databasetables; + $this->databaseuniquekeys = $databaseuniquekeys; + $this->databasekeys = $databasekeys; + $this->databaseuniqueguid = $databaseuniqueguid; + $this->listjoin = $listjoin; + $this->history = $history; + $this->alias = $alias; + $this->title = $title; + $this->categoryothername = $categoryothername; + $this->lists = $lists; + $this->customlist = $customlist; + $this->fieldrelations = $fieldrelations; + $this->hiddenfields = $hiddenfields; + $this->integerfields = $integerfields; + $this->dynamicfields = $dynamicfields; + $this->maintextfield = $maintextfield; + $this->customfield = $customfield; + $this->customfieldlinks = $customfieldlinks; + $this->scriptuserswitch = $scriptuserswitch; + $this->scriptmediaswitch = $scriptmediaswitch; + $this->category = $category; + $this->categorycode = $categorycode; + $this->checkbox = $checkbox; + $this->jsonstring = $jsonstring; + $this->basesixfour = $basesixfour; + $this->modelbasicfield = $modelbasicfield; + $this->modelwhmcsfield = $modelwhmcsfield; + $this->modelmediumfield = $modelmediumfield; + $this->modelexpertfieldinitiator = $modelexpertfieldinitiator; + $this->modelexpertfield = $modelexpertfield; + $this->jsonitem = $jsonitem; + $this->itemsmethodliststring = $itemsmethodliststring; + $this->jsonitemarray = $jsonitemarray; + $this->itemsmethodeximportstring = $itemsmethodeximportstring; + $this->selectiontranslation = $selectiontranslation; + $this->adminfiltertype = $adminfiltertype; + $this->sort = $sort; + $this->search = $search; + $this->filter = $filter; + $this->componentfields = $componentfields; + $this->app = $app ?: Factory::getApplication(); + } + + /** + * set Builders + * + * @param string $langLabel The language string for field label + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param string $name The field name + * @param array $view The view data + * @param array $field The field data + * @param string $typeName The field type + * @param bool $multiple The switch to set multiple selection option + * @param array|null $custom The custom field switch + * @param array|null $options The options switch + * + * @return void + * @since 3.2.0 + */ + public function set(string $langLabel, string $langView, string $nameSingleCode, + string $nameListCode, string $name, array $view, array $field, + string $typeName, bool $multiple, ?array $custom = null, + ?array $options = null): void + { + // check if this is a tag field + if ($typeName === 'tag') + { + // set tags for this view but don't load to DB + $this->tags->set($nameSingleCode, true); + } + // dbSwitch + $dbSwitch = true; + if (isset($field['list']) && $field['list'] == 2) + { + // do not add this field to the database + $dbSwitch = false; + } + elseif (isset($field['settings']->datatype)) + { + // insure default not none if number type + $numberKeys = array('INT', 'TINYINT', 'BIGINT', 'FLOAT', 'DECIMAL', + 'DOUBLE'); + // don't use these as index or uniqe keys + $textKeys = array('TEXT', 'TINYTEXT', 'MEDIUMTEXT', 'LONGTEXT', + 'BLOB', 'TINYBLOB', 'MEDIUMBLOB', 'LONGBLOB'); + // build the query values + $this->databasetables->set($nameSingleCode . '.' . $name . '.type', + $field['settings']->datatype); + // check if this is a number + if (in_array($field['settings']->datatype, $numberKeys)) + { + if ($field['settings']->datadefault === 'Other') + { + // setup the checking + $number_check = $field['settings']->datadefault_other; + // Decimals in SQL needs some help + if ('DECIMAL' === $field['settings']->datatype + && !is_numeric($number_check)) + { + $number_check = str_replace( + ',', '.', (string) $field['settings']->datadefault_other + ); + } + // check if we have a valid number value + if (!is_numeric($number_check)) + { + $field['settings']->datadefault_other = '0'; + } + } + elseif (!is_numeric($field['settings']->datadefault)) + { + $field['settings']->datadefault = '0'; + } + } + // check if this is not text + if (!in_array($field['settings']->datatype, $textKeys)) + { + $this->databasetables->set($nameSingleCode . '.' . $name . '.lenght', + $field['settings']->datalenght); + $this->databasetables->set($nameSingleCode . '.' . $name . '.lenght_other', + $field['settings']->datalenght_other); + $this->databasetables->set($nameSingleCode . '.' . $name . '.default', + $field['settings']->datadefault); + $this->databasetables->set($nameSingleCode . '.' . $name . '.other', + $field['settings']->datadefault_other); + } + // fall back unto EMPTY for text + else + { + $this->databasetables->set($nameSingleCode . '.' . $name . '.default', + 'EMPTY'); + } + // to identify the field + $this->databasetables->set($nameSingleCode . '.' . $name . '.ID', + $field['settings']->id); + $this->databasetables->set($nameSingleCode . '.' . $name . '.null_switch', + $field['settings']->null_switch); + // set index types + $_guid = true; + if ($field['settings']->indexes == 1 + && !in_array( + $field['settings']->datatype, $textKeys + )) + { + // build unique keys of this view for db + $this->databaseuniquekeys->add($nameSingleCode, $name, true); + // prevent guid from being added twice + if ('guid' === $name) + { + $_guid = false; + } + } + elseif (($field['settings']->indexes == 2 + || (isset($field['alias']) + && $field['alias']) + || (isset($field['title']) && $field['title']) + || $typeName === 'category') + && !in_array($field['settings']->datatype, $textKeys)) + { + // build keys of this view for db + $this->databasekeys->add($nameSingleCode, $name, true); + } + // special treatment for GUID + if ('guid' === $name && $_guid) + { + $this->databaseuniqueguid->set($nameSingleCode, true); + } + } + // set list switch + $listSwitch = (isset($field['list']) + && ($field['list'] == 1 + || $field['list'] == 3 + || $field['list'] == 4)); + // set list join + $listJoin + = $this->listjoin->exists($nameListCode . '.' . (int) $field['field']); + // add history to this view + if (isset($view['history']) && $view['history']) + { + $this->history->set($nameSingleCode, true); + } + // set Alias (only one title per view) + if ($dbSwitch && isset($field['alias']) && $field['alias'] + && !$this->alias->get($nameSingleCode)) + { + $this->alias->set($nameSingleCode, $name); + } + // set Titles (only one title per view) + if ($dbSwitch && isset($field['title']) && $field['title'] + && !$this->title->get($nameSingleCode)) + { + $this->title->set($nameSingleCode, $name); + } + // category name fix + if ($typeName === 'category') + { + $tempName = $this->categoryothername-> + get($nameListCode . '.name', $nameListCode . ' categories'); + // set lang + $listLangName = $langView . '_' + . FieldHelper::safe($tempName, true); + // set field name + $listFieldName = StringHelper::safe($tempName, 'W'); + // add to lang array + $this->language->set( + $this->config->lang_target, $listLangName, $listFieldName + ); + } + else + { + // if label was set use instead + if (StringHelper::check($langLabel)) + { + $listLangName = $langLabel; + // get field label from the lang label + if ($this->language->exist($this->config->lang_target, $langLabel)) + { + $listFieldName + = $this->language->get($this->config->lang_target, $langLabel); + } + else + { + // get it from the field xml string + $listFieldName = (string) $this->placeholder->update_( + GetHelper::between( + $field['settings']->xml, 'label="', + '"' + ) + ); + } + // make sure there is no html in the list field name + $listFieldName = strip_tags($listFieldName); + } + else + { + // set lang (just in case) + $listLangName = $langView . '_' + . FieldHelper::safe($name, true); + // set field name + $listFieldName = StringHelper::safe($name, 'W'); + // add to lang array + $this->language->set( + $this->config->lang_target, $listLangName, $listFieldName + ); + } + } + // build the list values + if (($listSwitch || $listJoin) && $typeName != 'repeatable' + && $typeName != 'subform') + { + // load to list builder + if ($listSwitch) + { + // append values + $this->lists->add($nameListCode, [ + 'id' => (int) $field['field'], + 'type' => $typeName, + 'code' => $name, + 'lang' => $listLangName, + 'title' => (isset($field['title']) && $field['title']) + ? true : false, + 'alias' => (isset($field['alias']) && $field['alias']) + ? true : false, + 'link' => (isset($field['link']) && $field['link']) + ? true : false, + 'sort' => (isset($field['sort']) && $field['sort']) + ? true : false, + 'custom' => $custom, + 'multiple' => $multiple, + 'options' => $options, + 'target' => (int) $field['list'] + ], true); + } + // build custom builder list + if ($listSwitch || $listJoin) + { + $this->customlist->set($nameSingleCode . '.' . $name, true); + } + } + // load the list join builder + if ($listJoin) + { + $this->listjoin->set($nameListCode . '.' . (int) $field['field'], [ + 'type' => $typeName, + 'code' => $name, + 'lang' => $listLangName, + 'title' => (isset($field['title']) && $field['title']) ? true + : false, + 'alias' => (isset($field['alias']) && $field['alias']) ? true + : false, + 'link' => (isset($field['link']) && $field['link']) ? true + : false, + 'sort' => (isset($field['sort']) && $field['sort']) ? true + : false, + 'custom' => $custom, + 'multiple' => $multiple, + 'options' => $options + ]); + } + // update the field relations + if (($field_relations = + $this->fieldrelations->get($nameListCode . '.' . (int) $field['field'])) !== null) + { + $field_relations = (array) $field_relations; + foreach ($field_relations as $area => &$field_values) + { + $field_values['type'] = $typeName; + $field_values['code'] = $name; + $field_values['custom'] = $custom; + } + $this->fieldrelations->set($nameListCode . '.' . (int) $field['field'], $field_relations); + } + // set the hidden field of this view + if ($dbSwitch && $typeName === 'hidden') + { + $this->hiddenfields->add($nameSingleCode, ',"' . $name . '"', true); + } + // set all int fields of this view + if ($dbSwitch && isset($field['settings']->datatype) + && ($field['settings']->datatype === 'INT' + || $field['settings']->datatype === 'TINYINT' + || $field['settings']->datatype === 'BIGINT')) + { + $this->integerfields->add($nameSingleCode, ',"' . $name . '"', true); + } + // Get the default fields + $default_fields = $this->config->default_fields; + // set all dynamic field of this view + if ($dbSwitch && $typeName != 'category' && $typeName != 'repeatable' + && $typeName != 'subform' && !in_array($name, $default_fields)) + { + $this->dynamicfields->add($nameSingleCode, '"' . $name . '":"' . $name . '"', true); + } + // TODO we may need to add a switch instead (since now it uses the first editor field) + // set the main(biggest) text field of this view + if ($dbSwitch && $typeName === 'editor') + { + if (!$this->maintextfield->exists($nameSingleCode)) + { + $this->maintextfield->set($nameSingleCode, $name); + } + } + // set the custom builder + if (ArrayHelper::check($custom) + && $typeName != 'category' + && $typeName != 'repeatable' + && $typeName != 'subform') + { + $this->customfield->add($nameListCode, [ + 'type' => $typeName, + 'code' => $name, + 'lang' => $listLangName, + 'custom' => $custom, + 'method' => $field['settings']->store + ], true); + + // only load this if table is set + if (isset($custom['table']) + && StringHelper::check( + $custom['table'] + )) + { + // set the custom fields needed in content type data + $this->customfieldlinks->add( + $nameSingleCode, + ',{"sourceColumn": "' . $name . '","targetTable": "' . $custom['table'] + . '","targetColumn": "' . $custom['id'] . '","displayColumn": "' . $custom['text'] . '"}', + true + ); + } + // build script switch for user + if ($custom['extends'] === 'user') + { + $this->scriptuserswitch->set($typeName, $typeName); + } + } + if ($typeName === 'media') + { + $this->scriptmediaswitch->set($typeName, $typeName); + } + // setup category for this view + if ($dbSwitch && $typeName === 'category') + { + $otherViews = $this->categoryothername-> + get($nameListCode . '.views', $nameListCode); + $otherView = $this->categoryothername-> + get($nameListCode . '.view', $nameSingleCode); + // get the xml extension name + $_extension = $this->placeholder->update_( + GetHelper::between( + $field['settings']->xml, 'extension="', '"' + ) + ); + // if they left out the extension for some reason + if (!StringHelper::check($_extension)) + { + $_extension = 'com_' . $this->config->component_code_name . '.' + . $otherView; + } + // check the context (does our target match) + if (strpos((string) $_extension, '.') !== false) + { + $target_view = trim(explode('.', (string) $_extension)[1]); + // from my understanding the target extension view and the otherView must align + // so I will here check that it does, and if not raise an error message to fix this + if ($target_view !== $otherView) + { + $target_extension = trim(explode('.', (string) $_extension)[0]); + $correction = $target_extension . '.' . $otherView; + $this->app->enqueueMessage( + Text::sprintf( + '

Category targeting view mismatch

+

The + category field in (%s) admin view has a mismatching target view. +
To correct the mismatch, the extension value %s in the + field must be changed to %s + for + best category integration with Joomla. +
Please watch + this tutorial before proceeding!!!, + code fix

', + $field['field'], $nameSingleCode, $_extension, + $field['field'], $correction + ), 'Error' + ); + } + } + // load the category builder - TODO must move all to single view + $this->category->set($nameListCode, [ + 'code' => $name, + 'name' => $listLangName, + 'extension' => $_extension, + 'filter' => $field['filter'] + ]); + // also set code name for title alias fix + $this->categorycode->set($nameSingleCode, [ + 'code' => $name, + 'views' => $otherViews, + 'view' => $otherView + ]); + } + // setup checkbox for this view + if ($dbSwitch && ($typeName === 'checkbox' || + (ArrayHelper::check($custom) && isset($custom['extends']) && $custom['extends'] === 'checkboxes'))) + { + $this->checkbox->add($nameSingleCode, $name, true); + } + // setup checkboxes and other json items for this view + // if we have advance field modeling and the field is not being set in the DB + // this could mean that field is modeled manually (so we add it) + if (($dbSwitch || $field['settings']->store == 6) + && (($typeName === 'subform' || $typeName === 'checkboxes' + || $multiple + || $field['settings']->store != 0) + && $typeName != 'tag')) + { + $subformJsonSwitch = true; + switch ($field['settings']->store) + { + case 1: + // JSON_STRING_ENCODE + $this->jsonstring->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'json', $typeName + ); + // add open close method to field data + $field['store'] = 'json'; + break; + case 2: + // BASE_SIXTY_FOUR + $this->basesixfour->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'base64', $typeName + ); + // add open close method to field data + $field['store'] = 'base64'; + break; + case 3: + // BASIC_ENCRYPTION_LOCALKEY + $this->modelbasicfield->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'basic_encryption', $typeName + ); + // add open close method to field data + $field['store'] = 'basic_encryption'; + break; + case 4: + // WHMCS_ENCRYPTION_VDMKEY (DUE REMOVAL) + $this->modelwhmcsfield->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'whmcs_encryption', $typeName + ); + // add open close method to field data + $field['store'] = 'whmcs_encryption'; + break; + case 5: + // MEDIUM_ENCRYPTION_LOCALFILE + $this->modelmediumfield->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'medium_encryption', $typeName + ); + // add open close method to field data + $field['store'] = 'medium_encryption'; + break; + case 6: + // EXPERT_MODE + if (isset($field['settings']->model_field)) + { + if (isset($field['settings']->initiator_save_key)) + { + $this->modelexpertfieldinitiator->set( + $nameSingleCode . '.save.' . $field['settings']->initiator_save_key + , $field['settings']->initiator_save + ); + } + if (isset($field['settings']->initiator_get_key)) + { + $this->modelexpertfieldinitiator->set( + $nameSingleCode . '.get.' . $field['settings']->initiator_get_key + , $field['settings']->initiator_get + ); + } + $this->modelexpertfield->set( + $nameSingleCode . '.' . $name, $field['settings']->model_field + ); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'expert_mode', $typeName + ); + } + break; + default: + // JSON_ARRAY_ENCODE + $this->jsonitem->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'json', $typeName + ); + // no londer add the json again (already added) + $subformJsonSwitch = false; + // add open close method to field data + $field['store'] = 'json'; + break; + } + // just a heads-up for usergroups set to multiple + if ($typeName === 'usergroup') + { + $this->sitefielddata->set( + $nameSingleCode, $name, 'json', $typeName + ); + } + + // load the model list display fix + if (($listSwitch || $listJoin) + && (($typeName != 'repeatable' && $typeName != 'subform') || $field['settings']->store == 6)) + { + $this->itemsmethodliststring->add($nameSingleCode, [ + 'name' => $name, + 'type' => $typeName, + 'translation' => (bool) ArrayHelper::check($options), + 'custom' => $custom, + 'method' => $field['settings']->store + ], true); + } + + // subform housekeeping (only if not advance modeling) + if ('subform' === $typeName && $field['settings']->store != 6) + { + // the values must revert to array + $this->jsonitemarray->add($nameSingleCode, $name, true); + // should the json builder still be added + if ($subformJsonSwitch) + { + // and insure the if is converted to json + $this->jsonitem->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'json', $typeName + ); + } + } + } + // build the data for the export & import methods $typeName === 'repeatable' || + if ($dbSwitch && (($typeName === 'checkboxes' || $multiple || $field['settings']->store != 0) + && !ArrayHelper::check($options))) + { + $this->itemsmethodeximportstring->add($nameSingleCode, [ + 'name' => $name, + 'type' => $typeName, + 'translation' => false, + 'custom' => $custom, + 'method' => $field['settings']->store + ], true); + } + // check if field should be added to uikit + $this->sitefielddata->set($nameSingleCode, $name, 'uikit', $typeName); + // load the selection translation fix + if (ArrayHelper::check($options) && ($listSwitch || $listJoin) + && $typeName != 'repeatable' && $typeName != 'subform') + { + $this->selectiontranslation->set($nameListCode . '.' . $name, $options); + } + // main lang filter prefix + $lang_filter_ = $this->config->lang_prefix . '_FILTER_'; + // build the sort values + if ($dbSwitch && (isset($field['sort']) && $field['sort'] == 1) + && ($listSwitch || $listJoin) + && (!$multiple && $typeName != 'checkbox' && $typeName != 'checkboxes' + && $typeName != 'repeatable' && $typeName != 'subform')) + { + // add the language only for new filter option + $filter_name_asc_lang = ''; + $filter_name_desc_lang = ''; + if ($this->adminfiltertype->get($nameListCode, 1) == 2) + { + // set the language strings for ascending + $filter_name_asc = $listFieldName . ' ascending'; + $filter_name_asc_lang = $lang_filter_ + . StringHelper::safe( + $filter_name_asc, 'U' + ); + // and to translation + $this->language->set( + $this->config->lang_target, $filter_name_asc_lang, $filter_name_asc + ); + // set the language strings for descending + $filter_name_desc = $listFieldName . ' descending'; + $filter_name_desc_lang = $lang_filter_ + . StringHelper::safe( + $filter_name_desc, 'U' + ); + // and to translation + $this->language->set( + $this->config->lang_target, $filter_name_desc_lang, $filter_name_desc + ); + } + $this->sort->add($nameListCode, [ + 'type' => $typeName, + 'code' => $name, + 'lang' => $listLangName, + 'lang_asc' => $filter_name_asc_lang, + 'lang_desc' => $filter_name_desc_lang, + 'custom' => $custom, + 'options' => $options + ], true); + } + // build the search values + if ($dbSwitch && isset($field['search']) && $field['search'] == 1) + { + $_list = (isset($field['list'])) ? $field['list'] : 0; + $this->search->add($nameListCode, [ + 'type' => $typeName, + 'code' => $name, + 'custom' => $custom, + 'list' => $_list + ], true); + } + // build the filter values + if ($dbSwitch && (isset($field['filter']) && $field['filter'] >= 1) + && ($listSwitch || $listJoin) + && (!$multiple && $typeName != 'checkbox' + && $typeName != 'checkboxes' + && $typeName != 'repeatable' + && $typeName != 'subform')) + { + // this pains me... but to avoid collusion + $filter_type_code = StringHelper::safe( + $nameListCode . 'filter' . $name + ); + $filter_type_code = preg_replace('/_+/', '', (string) $filter_type_code); + $filter_function_name = StringHelper::safe( + $name, 'F' + ); + // add the language only for new filter option + $filter_name_select_lang = ''; + if ($this->adminfiltertype->get($nameListCode, 1) == 2) + { + // set the language strings for selection + $filter_name_select = 'Select ' . $listFieldName; + $filter_name_select_lang = $lang_filter_ + . StringHelper::safe( + $filter_name_select, 'U' + ); + // and to translation + $this->language->set( + $this->config->lang_target, $filter_name_select_lang, $filter_name_select + ); + } + + // add the filter details + $this->filter->add($nameListCode, [ + 'id' => (int) $field['field'], + 'type' => $typeName, + 'multi' => $field['filter'], + 'code' => $name, + 'label' => $langLabel, + 'lang' => $listLangName, + 'lang_select' => $filter_name_select_lang, + 'database' => $nameSingleCode, + 'function' => $filter_function_name, + 'custom' => $custom, + 'options' => $options, + 'filter_type' => $filter_type_code + ], true); + } + + // build the layout + $tabName = ''; + if (isset($view['settings']->tabs) + && isset($view['settings']->tabs[(int) $field['tab']])) + { + $tabName = $view['settings']->tabs[(int) $field['tab']]; + } + elseif ((int) $field['tab'] == 15) + { + // set to publishing tab + $tabName = 'publishing'; + } + $this->layout->set($nameSingleCode, $tabName, $name, $field); + + // load all fields that are in the database + if ($dbSwitch) + { + // load array of view, field, and [encryption, type, tab] + $title_ = $this->title->get($nameSingleCode); + $this->componentfields->set($nameSingleCode . '.' . $name, + [ + 'name' => $name, + 'label' => $langLabel, + 'type' => $typeName, + 'title' => (is_string($title_) && $name === $title_) ? true : false, + 'list' => $nameListCode, + 'store' => (isset($field['store'])) ? $field['store'] : null, + 'tab_name' => $tabName + ] + ); + } + } +} + diff --git a/src/55278140-80d5-4168-8241-d64515c4b35e/code.power b/src/55278140-80d5-4168-8241-d64515c4b35e/code.power new file mode 100644 index 0000000..fd89f7a --- /dev/null +++ b/src/55278140-80d5-4168-8241-d64515c4b35e/code.power @@ -0,0 +1,1212 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Layout Class. + * + * @var Layout + * @since 3.2.0 + */ + protected Layout $layout; + + /** + * The SiteFieldData Class. + * + * @var SiteFieldData + * @since 3.2.0 + */ + protected SiteFieldData $sitefielddata; + + /** + * The Tags Class. + * + * @var Tags + * @since 3.2.0 + */ + protected Tags $tags; + + /** + * The DatabaseTables Class. + * + * @var DatabaseTables + * @since 3.2.0 + */ + protected DatabaseTables $databasetables; + + /** + * The DatabaseUniqueKeys Class. + * + * @var DatabaseUniqueKeys + * @since 3.2.0 + */ + protected DatabaseUniqueKeys $databaseuniquekeys; + + /** + * The DatabaseKeys Class. + * + * @var DatabaseKeys + * @since 3.2.0 + */ + protected DatabaseKeys $databasekeys; + + /** + * The DatabaseUniqueGuid Class. + * + * @var DatabaseUniqueGuid + * @since 3.2.0 + */ + protected DatabaseUniqueGuid $databaseuniqueguid; + + /** + * The ListJoin Class. + * + * @var ListJoin + * @since 3.2.0 + */ + protected ListJoin $listjoin; + + /** + * The History Class. + * + * @var History + * @since 3.2.0 + */ + protected History $history; + + /** + * The Alias Class. + * + * @var Alias + * @since 3.2.0 + */ + protected Alias $alias; + + /** + * The Title Class. + * + * @var Title + * @since 3.2.0 + */ + protected Title $title; + + /** + * The CategoryOtherName Class. + * + * @var CategoryOtherName + * @since 3.2.0 + */ + protected CategoryOtherName $categoryothername; + + /** + * The Lists Class. + * + * @var Lists + * @since 3.2.0 + */ + protected Lists $lists; + + /** + * The CustomList Class. + * + * @var CustomList + * @since 3.2.0 + */ + protected CustomList $customlist; + + /** + * The FieldRelations Class. + * + * @var FieldRelations + * @since 3.2.0 + */ + protected FieldRelations $fieldrelations; + + /** + * The HiddenFields Class. + * + * @var HiddenFields + * @since 3.2.0 + */ + protected HiddenFields $hiddenfields; + + /** + * The IntegerFields Class. + * + * @var IntegerFields + * @since 3.2.0 + */ + protected IntegerFields $integerfields; + + /** + * The DynamicFields Class. + * + * @var DynamicFields + * @since 3.2.0 + */ + protected DynamicFields $dynamicfields; + + /** + * The MainTextField Class. + * + * @var MainTextField + * @since 3.2.0 + */ + protected MainTextField $maintextfield; + + /** + * The CustomField Class. + * + * @var CustomField + * @since 3.2.0 + */ + protected CustomField $customfield; + + /** + * The CustomFieldLinks Class. + * + * @var CustomFieldLinks + * @since 3.2.0 + */ + protected CustomFieldLinks $customfieldlinks; + + /** + * The ScriptUserSwitch Class. + * + * @var ScriptUserSwitch + * @since 3.2.0 + */ + protected ScriptUserSwitch $scriptuserswitch; + + /** + * The ScriptMediaSwitch Class. + * + * @var ScriptMediaSwitch + * @since 3.2.0 + */ + protected ScriptMediaSwitch $scriptmediaswitch; + + /** + * The Category Class. + * + * @var Category + * @since 3.2.0 + */ + protected Category $category; + + /** + * The CategoryCode Class. + * + * @var CategoryCode + * @since 3.2.0 + */ + protected CategoryCode $categorycode; + + /** + * The CheckBox Class. + * + * @var CheckBox + * @since 3.2.0 + */ + protected CheckBox $checkbox; + + /** + * The JsonString Class. + * + * @var JsonString + * @since 3.2.0 + */ + protected JsonString $jsonstring; + + /** + * The BaseSixFour Class. + * + * @var BaseSixFour + * @since 3.2.0 + */ + protected BaseSixFour $basesixfour; + + /** + * The ModelBasicField Class. + * + * @var ModelBasicField + * @since 3.2.0 + */ + protected ModelBasicField $modelbasicfield; + + /** + * The ModelWhmcsField Class. + * + * @var ModelWhmcsField + * @since 3.2.0 + */ + protected ModelWhmcsField $modelwhmcsfield; + + /** + * The ModelMediumField Class. + * + * @var ModelMediumField + * @since 3.2.0 + */ + protected ModelMediumField $modelmediumfield; + + /** + * The ModelExpertFieldInitiator Class. + * + * @var ModelExpertFieldInitiator + * @since 3.2.0 + */ + protected ModelExpertFieldInitiator $modelexpertfieldinitiator; + + /** + * The ModelExpertField Class. + * + * @var ModelExpertField + * @since 3.2.0 + */ + protected ModelExpertField $modelexpertfield; + + /** + * The JsonItem Class. + * + * @var JsonItem + * @since 3.2.0 + */ + protected JsonItem $jsonitem; + + /** + * The ItemsMethodListString Class. + * + * @var ItemsMethodListString + * @since 3.2.0 + */ + protected ItemsMethodListString $itemsmethodliststring; + + /** + * The JsonItemArray Class. + * + * @var JsonItemArray + * @since 3.2.0 + */ + protected JsonItemArray $jsonitemarray; + + /** + * The ItemsMethodEximportString Class. + * + * @var ItemsMethodEximportString + * @since 3.2.0 + */ + protected ItemsMethodEximportString $itemsmethodeximportstring; + + /** + * The SelectionTranslation Class. + * + * @var SelectionTranslation + * @since 3.2.0 + */ + protected SelectionTranslation $selectiontranslation; + + /** + * The AdminFilterType Class. + * + * @var AdminFilterType + * @since 3.2.0 + */ + protected AdminFilterType $adminfiltertype; + + /** + * The Sort Class. + * + * @var Sort + * @since 3.2.0 + */ + protected Sort $sort; + + /** + * The Search Class. + * + * @var Search + * @since 3.2.0 + */ + protected Search $search; + + /** + * The Filter Class. + * + * @var Filter + * @since 3.2.0 + */ + protected Filter $filter; + + /** + * The ComponentFields Class. + * + * @var ComponentFields + * @since 3.2.0 + */ + protected ComponentFields $componentfields; + + /** + * Application object. + * + * @var CMSApplication + * @since 3.2.0 + **/ + protected CMSApplication $app; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Language $language The Language Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Layout $layout The Layout Class. + * @param SiteFieldData $sitefielddata The SiteFieldData Class. + * @param Tags $tags The Tags Class. + * @param DatabaseTables $databasetables The DatabaseTables Class. + * @param DatabaseUniqueKeys $databaseuniquekeys The DatabaseUniqueKeys Class. + * @param DatabaseKeys $databasekeys The DatabaseKeys Class. + * @param DatabaseUniqueGuid $databaseuniqueguid The DatabaseUniqueGuid Class. + * @param ListJoin $listjoin The ListJoin Class. + * @param History $history The History Class. + * @param Alias $alias The Alias Class. + * @param Title $title The Title Class. + * @param CategoryOtherName $categoryothername The CategoryOtherName Class. + * @param Lists $lists The Lists Class. + * @param CustomList $customlist The CustomList Class. + * @param FieldRelations $fieldrelations The FieldRelations Class. + * @param HiddenFields $hiddenfields The HiddenFields Class. + * @param IntegerFields $integerfields The IntegerFields Class. + * @param DynamicFields $dynamicfields The DynamicFields Class. + * @param MainTextField $maintextfield The MainTextField Class. + * @param CustomField $customfield The CustomField Class. + * @param CustomFieldLinks $customfieldlinks The CustomFieldLinks Class. + * @param ScriptUserSwitch $scriptuserswitch The ScriptUserSwitch Class. + * @param ScriptMediaSwitch $scriptmediaswitch The ScriptMediaSwitch Class. + * @param Category $category The Category Class. + * @param CategoryCode $categorycode The CategoryCode Class. + * @param CheckBox $checkbox The CheckBox Class. + * @param JsonString $jsonstring The JsonString Class. + * @param BaseSixFour $basesixfour The BaseSixFour Class. + * @param ModelBasicField $modelbasicfield The ModelBasicField Class. + * @param ModelWhmcsField $modelwhmcsfield The ModelWhmcsField Class. + * @param ModelMediumField $modelmediumfield The ModelMediumField Class. + * @param ModelExpertFieldInitiator $modelexpertfieldinitiator The ModelExpertFieldInitiator Class. + * @param ModelExpertField $modelexpertfield The ModelExpertField Class. + * @param JsonItem $jsonitem The JsonItem Class. + * @param ItemsMethodListString $itemsmethodliststring The ItemsMethodListString Class. + * @param JsonItemArray $jsonitemarray The JsonItemArray Class. + * @param ItemsMethodEximportString $itemsmethodeximportstring The ItemsMethodEximportString Class. + * @param SelectionTranslation $selectiontranslation The SelectionTranslation Class. + * @param AdminFilterType $adminfiltertype The AdminFilterType Class. + * @param Sort $sort The Sort Class. + * @param Search $search The Search Class. + * @param Filter $filter The Filter Class. + * @param ComponentFields $componentfields The ComponentFields Class. + * @param CMSApplication|null $app The app object. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Language $language, + Placeholder $placeholder, Layout $layout, + SiteFieldData $sitefielddata, Tags $tags, + DatabaseTables $databasetables, + DatabaseUniqueKeys $databaseuniquekeys, + DatabaseKeys $databasekeys, + DatabaseUniqueGuid $databaseuniqueguid, + ListJoin $listjoin, History $history, Alias $alias, + Title $title, CategoryOtherName $categoryothername, + Lists $lists, CustomList $customlist, + FieldRelations $fieldrelations, + HiddenFields $hiddenfields, IntegerFields $integerfields, + DynamicFields $dynamicfields, + MainTextField $maintextfield, CustomField $customfield, + CustomFieldLinks $customfieldlinks, + ScriptUserSwitch $scriptuserswitch, + ScriptMediaSwitch $scriptmediaswitch, Category $category, + CategoryCode $categorycode, CheckBox $checkbox, + JsonString $jsonstring, BaseSixFour $basesixfour, + ModelBasicField $modelbasicfield, + ModelWhmcsField $modelwhmcsfield, + ModelMediumField $modelmediumfield, + ModelExpertFieldInitiator $modelexpertfieldinitiator, + ModelExpertField $modelexpertfield, JsonItem $jsonitem, + ItemsMethodListString $itemsmethodliststring, + JsonItemArray $jsonitemarray, + ItemsMethodEximportString $itemsmethodeximportstring, + SelectionTranslation $selectiontranslation, + AdminFilterType $adminfiltertype, Sort $sort, + Search $search, Filter $filter, + ComponentFields $componentfields, ?CMSApplication $app = null) + { + $this->config = $config; + $this->language = $language; + $this->placeholder = $placeholder; + $this->layout = $layout; + $this->sitefielddata = $sitefielddata; + $this->tags = $tags; + $this->databasetables = $databasetables; + $this->databaseuniquekeys = $databaseuniquekeys; + $this->databasekeys = $databasekeys; + $this->databaseuniqueguid = $databaseuniqueguid; + $this->listjoin = $listjoin; + $this->history = $history; + $this->alias = $alias; + $this->title = $title; + $this->categoryothername = $categoryothername; + $this->lists = $lists; + $this->customlist = $customlist; + $this->fieldrelations = $fieldrelations; + $this->hiddenfields = $hiddenfields; + $this->integerfields = $integerfields; + $this->dynamicfields = $dynamicfields; + $this->maintextfield = $maintextfield; + $this->customfield = $customfield; + $this->customfieldlinks = $customfieldlinks; + $this->scriptuserswitch = $scriptuserswitch; + $this->scriptmediaswitch = $scriptmediaswitch; + $this->category = $category; + $this->categorycode = $categorycode; + $this->checkbox = $checkbox; + $this->jsonstring = $jsonstring; + $this->basesixfour = $basesixfour; + $this->modelbasicfield = $modelbasicfield; + $this->modelwhmcsfield = $modelwhmcsfield; + $this->modelmediumfield = $modelmediumfield; + $this->modelexpertfieldinitiator = $modelexpertfieldinitiator; + $this->modelexpertfield = $modelexpertfield; + $this->jsonitem = $jsonitem; + $this->itemsmethodliststring = $itemsmethodliststring; + $this->jsonitemarray = $jsonitemarray; + $this->itemsmethodeximportstring = $itemsmethodeximportstring; + $this->selectiontranslation = $selectiontranslation; + $this->adminfiltertype = $adminfiltertype; + $this->sort = $sort; + $this->search = $search; + $this->filter = $filter; + $this->componentfields = $componentfields; + $this->app = $app ?: Factory::getApplication(); + } + + /** + * set Builders + * + * @param string $langLabel The language string for field label + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param string $name The field name + * @param array $view The view data + * @param array $field The field data + * @param string $typeName The field type + * @param bool $multiple The switch to set multiple selection option + * @param array|null $custom The custom field switch + * @param array|null $options The options switch + * + * @return void + * @since 3.2.0 + */ + public function set(string $langLabel, string $langView, string $nameSingleCode, + string $nameListCode, string $name, array $view, array $field, + string $typeName, bool $multiple, ?array $custom = null, + ?array $options = null): void + { + // check if this is a tag field + if ($typeName === 'tag') + { + // set tags for this view but don't load to DB + $this->tags->set($nameSingleCode, true); + } + // dbSwitch + $dbSwitch = true; + if (isset($field['list']) && $field['list'] == 2) + { + // do not add this field to the database + $dbSwitch = false; + } + elseif (isset($field['settings']->datatype)) + { + // insure default not none if number type + $numberKeys = array('INT', 'TINYINT', 'BIGINT', 'FLOAT', 'DECIMAL', + 'DOUBLE'); + // don't use these as index or uniqe keys + $textKeys = array('TEXT', 'TINYTEXT', 'MEDIUMTEXT', 'LONGTEXT', + 'BLOB', 'TINYBLOB', 'MEDIUMBLOB', 'LONGBLOB'); + // build the query values + $this->databasetables->set($nameSingleCode . '.' . $name . '.type', + $field['settings']->datatype); + // check if this is a number + if (in_array($field['settings']->datatype, $numberKeys)) + { + if ($field['settings']->datadefault === 'Other') + { + // setup the checking + $number_check = $field['settings']->datadefault_other; + // Decimals in SQL needs some help + if ('DECIMAL' === $field['settings']->datatype + && !is_numeric($number_check)) + { + $number_check = str_replace( + ',', '.', (string) $field['settings']->datadefault_other + ); + } + // check if we have a valid number value + if (!is_numeric($number_check)) + { + $field['settings']->datadefault_other = '0'; + } + } + elseif (!is_numeric($field['settings']->datadefault)) + { + $field['settings']->datadefault = '0'; + } + } + // check if this is not text + if (!in_array($field['settings']->datatype, $textKeys)) + { + $this->databasetables->set($nameSingleCode . '.' . $name . '.lenght', + $field['settings']->datalenght); + $this->databasetables->set($nameSingleCode . '.' . $name . '.lenght_other', + $field['settings']->datalenght_other); + $this->databasetables->set($nameSingleCode . '.' . $name . '.default', + $field['settings']->datadefault); + $this->databasetables->set($nameSingleCode . '.' . $name . '.other', + $field['settings']->datadefault_other); + } + // fall back unto EMPTY for text + else + { + $this->databasetables->set($nameSingleCode . '.' . $name . '.default', + 'EMPTY'); + } + // to identify the field + $this->databasetables->set($nameSingleCode . '.' . $name . '.ID', + $field['settings']->id); + $this->databasetables->set($nameSingleCode . '.' . $name . '.null_switch', + $field['settings']->null_switch); + // set index types + $_guid = true; + if ($field['settings']->indexes == 1 + && !in_array( + $field['settings']->datatype, $textKeys + )) + { + // build unique keys of this view for db + $this->databaseuniquekeys->add($nameSingleCode, $name, true); + // prevent guid from being added twice + if ('guid' === $name) + { + $_guid = false; + } + } + elseif (($field['settings']->indexes == 2 + || (isset($field['alias']) + && $field['alias']) + || (isset($field['title']) && $field['title']) + || $typeName === 'category') + && !in_array($field['settings']->datatype, $textKeys)) + { + // build keys of this view for db + $this->databasekeys->add($nameSingleCode, $name, true); + } + // special treatment for GUID + if ('guid' === $name && $_guid) + { + $this->databaseuniqueguid->set($nameSingleCode, true); + } + } + // set list switch + $listSwitch = (isset($field['list']) + && ($field['list'] == 1 + || $field['list'] == 3 + || $field['list'] == 4)); + // set list join + $listJoin + = $this->listjoin->exists($nameListCode . '.' . (int) $field['field']); + // add history to this view + if (isset($view['history']) && $view['history']) + { + $this->history->set($nameSingleCode, true); + } + // set Alias (only one title per view) + if ($dbSwitch && isset($field['alias']) && $field['alias'] + && !$this->alias->get($nameSingleCode)) + { + $this->alias->set($nameSingleCode, $name); + } + // set Titles (only one title per view) + if ($dbSwitch && isset($field['title']) && $field['title'] + && !$this->title->get($nameSingleCode)) + { + $this->title->set($nameSingleCode, $name); + } + // category name fix + if ($typeName === 'category') + { + $tempName = $this->categoryothername-> + get($nameListCode . '.name', $nameListCode . ' categories'); + // set lang + $listLangName = $langView . '_' + . FieldHelper::safe($tempName, true); + // set field name + $listFieldName = StringHelper::safe($tempName, 'W'); + // add to lang array + $this->language->set( + $this->config->lang_target, $listLangName, $listFieldName + ); + } + else + { + // if label was set use instead + if (StringHelper::check($langLabel)) + { + $listLangName = $langLabel; + // get field label from the lang label + if ($this->language->exist($this->config->lang_target, $langLabel)) + { + $listFieldName + = $this->language->get($this->config->lang_target, $langLabel); + } + else + { + // get it from the field xml string + $listFieldName = (string) $this->placeholder->update_( + GetHelper::between( + $field['settings']->xml, 'label="', + '"' + ) + ); + } + // make sure there is no html in the list field name + $listFieldName = strip_tags($listFieldName); + } + else + { + // set lang (just in case) + $listLangName = $langView . '_' + . FieldHelper::safe($name, true); + // set field name + $listFieldName = StringHelper::safe($name, 'W'); + // add to lang array + $this->language->set( + $this->config->lang_target, $listLangName, $listFieldName + ); + } + } + // build the list values + if (($listSwitch || $listJoin) && $typeName != 'repeatable' + && $typeName != 'subform') + { + // load to list builder + if ($listSwitch) + { + // append values + $this->lists->add($nameListCode, [ + 'id' => (int) $field['field'], + 'type' => $typeName, + 'code' => $name, + 'lang' => $listLangName, + 'title' => (isset($field['title']) && $field['title']) + ? true : false, + 'alias' => (isset($field['alias']) && $field['alias']) + ? true : false, + 'link' => (isset($field['link']) && $field['link']) + ? true : false, + 'sort' => (isset($field['sort']) && $field['sort']) + ? true : false, + 'custom' => $custom, + 'multiple' => $multiple, + 'options' => $options, + 'target' => (int) $field['list'] + ], true); + } + // build custom builder list + if ($listSwitch || $listJoin) + { + $this->customlist->set($nameSingleCode . '.' . $name, true); + } + } + // load the list join builder + if ($listJoin) + { + $this->listjoin->set($nameListCode . '.' . (int) $field['field'], [ + 'type' => $typeName, + 'code' => $name, + 'lang' => $listLangName, + 'title' => (isset($field['title']) && $field['title']) ? true + : false, + 'alias' => (isset($field['alias']) && $field['alias']) ? true + : false, + 'link' => (isset($field['link']) && $field['link']) ? true + : false, + 'sort' => (isset($field['sort']) && $field['sort']) ? true + : false, + 'custom' => $custom, + 'multiple' => $multiple, + 'options' => $options + ]); + } + // update the field relations + if (($field_relations = + $this->fieldrelations->get($nameListCode . '.' . (int) $field['field'])) !== null) + { + $field_relations = (array) $field_relations; + foreach ($field_relations as $area => &$field_values) + { + $field_values['type'] = $typeName; + $field_values['code'] = $name; + $field_values['custom'] = $custom; + } + $this->fieldrelations->set($nameListCode . '.' . (int) $field['field'], $field_relations); + } + // set the hidden field of this view + if ($dbSwitch && $typeName === 'hidden') + { + $this->hiddenfields->add($nameSingleCode, ',"' . $name . '"', true); + } + // set all int fields of this view + if ($dbSwitch && isset($field['settings']->datatype) + && ($field['settings']->datatype === 'INT' + || $field['settings']->datatype === 'TINYINT' + || $field['settings']->datatype === 'BIGINT')) + { + $this->integerfields->add($nameSingleCode, ',"' . $name . '"', true); + } + // Get the default fields + $default_fields = $this->config->default_fields; + // set all dynamic field of this view + if ($dbSwitch && $typeName != 'category' && $typeName != 'repeatable' + && $typeName != 'subform' && !in_array($name, $default_fields)) + { + $this->dynamicfields->add($nameSingleCode, '"' . $name . '":"' . $name . '"', true); + } + // TODO we may need to add a switch instead (since now it uses the first editor field) + // set the main(biggest) text field of this view + if ($dbSwitch && $typeName === 'editor') + { + if (!$this->maintextfield->exists($nameSingleCode)) + { + $this->maintextfield->set($nameSingleCode, $name); + } + } + // set the custom builder + if (ArrayHelper::check($custom) + && $typeName != 'category' + && $typeName != 'repeatable' + && $typeName != 'subform') + { + $this->customfield->add($nameListCode, [ + 'type' => $typeName, + 'code' => $name, + 'lang' => $listLangName, + 'custom' => $custom, + 'method' => $field['settings']->store + ], true); + + // only load this if table is set + if (isset($custom['table']) + && StringHelper::check( + $custom['table'] + )) + { + // set the custom fields needed in content type data + $this->customfieldlinks->add( + $nameSingleCode, + ',{"sourceColumn": "' . $name . '","targetTable": "' . $custom['table'] + . '","targetColumn": "' . $custom['id'] . '","displayColumn": "' . $custom['text'] . '"}', + true + ); + } + // build script switch for user + if ($custom['extends'] === 'user') + { + $this->scriptuserswitch->set($typeName, $typeName); + } + } + if ($typeName === 'media') + { + $this->scriptmediaswitch->set($typeName, $typeName); + } + // setup category for this view + if ($dbSwitch && $typeName === 'category') + { + $otherViews = $this->categoryothername-> + get($nameListCode . '.views', $nameListCode); + $otherView = $this->categoryothername-> + get($nameListCode . '.view', $nameSingleCode); + // get the xml extension name + $_extension = $this->placeholder->update_( + GetHelper::between( + $field['settings']->xml, 'extension="', '"' + ) + ); + // if they left out the extension for some reason + if (!StringHelper::check($_extension)) + { + $_extension = 'com_' . $this->config->component_code_name . '.' + . $otherView; + } + // check the context (does our target match) + if (strpos((string) $_extension, '.') !== false) + { + $target_view = trim(explode('.', (string) $_extension)[1]); + // from my understanding the target extension view and the otherView must align + // so I will here check that it does, and if not raise an error message to fix this + if ($target_view !== $otherView) + { + $target_extension = trim(explode('.', (string) $_extension)[0]); + $correction = $target_extension . '.' . $otherView; + $this->app->enqueueMessage( + Text::sprintf( + '

Category targeting view mismatch

+

The + category field in (%s) admin view has a mismatching target view. +
To correct the mismatch, the extension value %s in the + field must be changed to %s + for + best category integration with Joomla. +
Please watch + this tutorial before proceeding!!!, + code fix

', + $field['field'], $nameSingleCode, $_extension, + $field['field'], $correction + ), 'Error' + ); + } + } + // load the category builder - TODO must move all to single view + $this->category->set($nameListCode, [ + 'code' => $name, + 'name' => $listLangName, + 'extension' => $_extension, + 'filter' => $field['filter'] + ]); + // also set code name for title alias fix + $this->categorycode->set($nameSingleCode, [ + 'code' => $name, + 'views' => $otherViews, + 'view' => $otherView + ]); + } + // setup checkbox for this view + if ($dbSwitch && ($typeName === 'checkbox' || + (ArrayHelper::check($custom) && isset($custom['extends']) && $custom['extends'] === 'checkboxes'))) + { + $this->checkbox->add($nameSingleCode, $name, true); + } + // setup checkboxes and other json items for this view + // if we have advance field modeling and the field is not being set in the DB + // this could mean that field is modeled manually (so we add it) + if (($dbSwitch || $field['settings']->store == 6) + && (($typeName === 'subform' || $typeName === 'checkboxes' + || $multiple + || $field['settings']->store != 0) + && $typeName != 'tag')) + { + $subformJsonSwitch = true; + switch ($field['settings']->store) + { + case 1: + // JSON_STRING_ENCODE + $this->jsonstring->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'json', $typeName + ); + // add open close method to field data + $field['store'] = 'json'; + break; + case 2: + // BASE_SIXTY_FOUR + $this->basesixfour->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'base64', $typeName + ); + // add open close method to field data + $field['store'] = 'base64'; + break; + case 3: + // BASIC_ENCRYPTION_LOCALKEY + $this->modelbasicfield->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'basic_encryption', $typeName + ); + // add open close method to field data + $field['store'] = 'basic_encryption'; + break; + case 4: + // WHMCS_ENCRYPTION_VDMKEY (DUE REMOVAL) + $this->modelwhmcsfield->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'whmcs_encryption', $typeName + ); + // add open close method to field data + $field['store'] = 'whmcs_encryption'; + break; + case 5: + // MEDIUM_ENCRYPTION_LOCALFILE + $this->modelmediumfield->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'medium_encryption', $typeName + ); + // add open close method to field data + $field['store'] = 'medium_encryption'; + break; + case 6: + // EXPERT_MODE + if (isset($field['settings']->model_field)) + { + if (isset($field['settings']->initiator_save_key)) + { + $this->modelexpertfieldinitiator->set( + $nameSingleCode . '.save.' . $field['settings']->initiator_save_key + , $field['settings']->initiator_save + ); + } + if (isset($field['settings']->initiator_get_key)) + { + $this->modelexpertfieldinitiator->set( + $nameSingleCode . '.get.' . $field['settings']->initiator_get_key + , $field['settings']->initiator_get + ); + } + $this->modelexpertfield->set( + $nameSingleCode . '.' . $name, $field['settings']->model_field + ); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'expert_mode', $typeName + ); + } + break; + default: + // JSON_ARRAY_ENCODE + $this->jsonitem->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'json', $typeName + ); + // no londer add the json again (already added) + $subformJsonSwitch = false; + // add open close method to field data + $field['store'] = 'json'; + break; + } + // just a heads-up for usergroups set to multiple + if ($typeName === 'usergroup') + { + $this->sitefielddata->set( + $nameSingleCode, $name, 'json', $typeName + ); + } + + // load the model list display fix + if (($listSwitch || $listJoin) + && (($typeName != 'repeatable' && $typeName != 'subform') || $field['settings']->store == 6)) + { + $this->itemsmethodliststring->add($nameSingleCode, [ + 'name' => $name, + 'type' => $typeName, + 'translation' => (bool) ArrayHelper::check($options), + 'custom' => $custom, + 'method' => $field['settings']->store + ], true); + } + + // subform housekeeping (only if not advance modeling) + if ('subform' === $typeName && $field['settings']->store != 6) + { + // the values must revert to array + $this->jsonitemarray->add($nameSingleCode, $name, true); + // should the json builder still be added + if ($subformJsonSwitch) + { + // and insure the if is converted to json + $this->jsonitem->add($nameSingleCode, $name, true); + // Site settings of each field if needed + $this->sitefielddata->set( + $nameSingleCode, $name, 'json', $typeName + ); + } + } + } + // build the data for the export & import methods $typeName === 'repeatable' || + if ($dbSwitch && (($typeName === 'checkboxes' || $multiple || $field['settings']->store != 0) + && !ArrayHelper::check($options))) + { + $this->itemsmethodeximportstring->add($nameSingleCode, [ + 'name' => $name, + 'type' => $typeName, + 'translation' => false, + 'custom' => $custom, + 'method' => $field['settings']->store + ], true); + } + // check if field should be added to uikit + $this->sitefielddata->set($nameSingleCode, $name, 'uikit', $typeName); + // load the selection translation fix + if (ArrayHelper::check($options) && ($listSwitch || $listJoin) + && $typeName != 'repeatable' && $typeName != 'subform') + { + $this->selectiontranslation->set($nameListCode . '.' . $name, $options); + } + // main lang filter prefix + $lang_filter_ = $this->config->lang_prefix . '_FILTER_'; + // build the sort values + if ($dbSwitch && (isset($field['sort']) && $field['sort'] == 1) + && ($listSwitch || $listJoin) + && (!$multiple && $typeName != 'checkbox' && $typeName != 'checkboxes' + && $typeName != 'repeatable' && $typeName != 'subform')) + { + // add the language only for new filter option + $filter_name_asc_lang = ''; + $filter_name_desc_lang = ''; + if ($this->adminfiltertype->get($nameListCode, 1) == 2) + { + // set the language strings for ascending + $filter_name_asc = $listFieldName . ' ascending'; + $filter_name_asc_lang = $lang_filter_ + . StringHelper::safe( + $filter_name_asc, 'U' + ); + // and to translation + $this->language->set( + $this->config->lang_target, $filter_name_asc_lang, $filter_name_asc + ); + // set the language strings for descending + $filter_name_desc = $listFieldName . ' descending'; + $filter_name_desc_lang = $lang_filter_ + . StringHelper::safe( + $filter_name_desc, 'U' + ); + // and to translation + $this->language->set( + $this->config->lang_target, $filter_name_desc_lang, $filter_name_desc + ); + } + $this->sort->add($nameListCode, [ + 'type' => $typeName, + 'code' => $name, + 'lang' => $listLangName, + 'lang_asc' => $filter_name_asc_lang, + 'lang_desc' => $filter_name_desc_lang, + 'custom' => $custom, + 'options' => $options + ], true); + } + // build the search values + if ($dbSwitch && isset($field['search']) && $field['search'] == 1) + { + $_list = (isset($field['list'])) ? $field['list'] : 0; + $this->search->add($nameListCode, [ + 'type' => $typeName, + 'code' => $name, + 'custom' => $custom, + 'list' => $_list + ], true); + } + // build the filter values + if ($dbSwitch && (isset($field['filter']) && $field['filter'] >= 1) + && ($listSwitch || $listJoin) + && (!$multiple && $typeName != 'checkbox' + && $typeName != 'checkboxes' + && $typeName != 'repeatable' + && $typeName != 'subform')) + { + // this pains me... but to avoid collusion + $filter_type_code = StringHelper::safe( + $nameListCode . 'filter' . $name + ); + $filter_type_code = preg_replace('/_+/', '', (string) $filter_type_code); + $filter_function_name = StringHelper::safe( + $name, 'F' + ); + // add the language only for new filter option + $filter_name_select_lang = ''; + if ($this->adminfiltertype->get($nameListCode, 1) == 2) + { + // set the language strings for selection + $filter_name_select = 'Select ' . $listFieldName; + $filter_name_select_lang = $lang_filter_ + . StringHelper::safe( + $filter_name_select, 'U' + ); + // and to translation + $this->language->set( + $this->config->lang_target, $filter_name_select_lang, $filter_name_select + ); + } + + // add the filter details + $this->filter->add($nameListCode, [ + 'id' => (int) $field['field'], + 'type' => $typeName, + 'multi' => $field['filter'], + 'code' => $name, + 'label' => $langLabel, + 'lang' => $listLangName, + 'lang_select' => $filter_name_select_lang, + 'database' => $nameSingleCode, + 'function' => $filter_function_name, + 'custom' => $custom, + 'options' => $options, + 'filter_type' => $filter_type_code + ], true); + } + + // build the layout + $tabName = ''; + if (isset($view['settings']->tabs) + && isset($view['settings']->tabs[(int) $field['tab']])) + { + $tabName = $view['settings']->tabs[(int) $field['tab']]; + } + elseif ((int) $field['tab'] == 15) + { + // set to publishing tab + $tabName = 'publishing'; + } + $this->layout->set($nameSingleCode, $tabName, $name, $field); + + // load all fields that are in the database + if ($dbSwitch) + { + // load array of view, field, and [encryption, type, tab] + $title_ = $this->title->get($nameSingleCode); + $this->componentfields->set($nameSingleCode . '.' . $name, + [ + 'name' => $name, + 'label' => $langLabel, + 'type' => $typeName, + 'title' => (is_string($title_) && $name === $title_) ? true : false, + 'list' => $nameListCode, + 'store' => (isset($field['store'])) ? $field['store'] : null, + 'tab_name' => $tabName + ] + ); + } + } \ No newline at end of file diff --git a/src/55278140-80d5-4168-8241-d64515c4b35e/settings.json b/src/55278140-80d5-4168-8241-d64515c4b35e/settings.json new file mode 100644 index 0000000..95a7373 --- /dev/null +++ b/src/55278140-80d5-4168-8241-d64515c4b35e/settings.json @@ -0,0 +1,219 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "0", + "guid": "55278140-80d5-4168-8241-d64515c4b35e", + "implements": null, + "load_selection": null, + "name": "Builders", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.Builders", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "8eee7df5-2775-41a9-9372-c46c5939a252", + "as": "default" + }, + "use_selection2": { + "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", + "as": "default" + }, + "use_selection3": { + "use": "a0f032db-2242-41df-8e4a-5e9e6f88201d", + "as": "default" + }, + "use_selection4": { + "use": "15b4addf-bf6b-4691-9c92-858c7de9c2c1", + "as": "default" + }, + "use_selection5": { + "use": "8ca30d59-e56a-4cdd-bd8c-d9aad28f5903", + "as": "default" + }, + "use_selection6": { + "use": "b3c36de1-9b18-4ea8-8383-6ab8f0e33996", + "as": "default" + }, + "use_selection7": { + "use": "ce0899a9-6271-4fc4-800a-697c122bb112", + "as": "default" + }, + "use_selection8": { + "use": "0d8db719-39a6-48b4-85a6-2f97e784e588", + "as": "default" + }, + "use_selection9": { + "use": "58b7f907-4195-4ca3-886c-17877be59887", + "as": "default" + }, + "use_selection10": { + "use": "597663e1-1c02-43e8-aea5-f2161e38ac7f", + "as": "default" + }, + "use_selection11": { + "use": "2cb33994-052e-42dd-adbc-3ea9f932816f", + "as": "default" + }, + "use_selection12": { + "use": "fe87df7f-b65f-4778-8875-6122ab6b025f", + "as": "default" + }, + "use_selection13": { + "use": "6a1dddb3-a955-425e-b713-8ef81f256035", + "as": "default" + }, + "use_selection14": { + "use": "a1e551a9-8369-48c9-a076-4e5beb65e0df", + "as": "default" + }, + "use_selection15": { + "use": "4a857023-2d96-4649-9ed5-910d0329854d", + "as": "default" + }, + "use_selection16": { + "use": "202f748a-516b-4782-962e-ac9725c3cac4", + "as": "default" + }, + "use_selection17": { + "use": "a090a472-eb3d-4086-a6d5-4215e1b1851f", + "as": "default" + }, + "use_selection18": { + "use": "0b45357f-b077-4337-92f3-65c1e19d36cd", + "as": "default" + }, + "use_selection19": { + "use": "952423ba-015a-4104-89a4-030695aa4d15", + "as": "default" + }, + "use_selection20": { + "use": "1ae9a8e8-59f7-4844-a08d-9a4dce4be076", + "as": "default" + }, + "use_selection21": { + "use": "c6de9da0-1a73-4c73-b355-7fe02efe4c9d", + "as": "default" + }, + "use_selection22": { + "use": "87d1da23-08d6-4fbf-bd0d-b746da240b8a", + "as": "default" + }, + "use_selection23": { + "use": "a4857c60-680c-4e0c-ae8f-9250a7b5e317", + "as": "default" + }, + "use_selection24": { + "use": "9042fac6-5ca5-4ebe-94fe-cf9b0718ed36", + "as": "default" + }, + "use_selection25": { + "use": "17bf80af-3609-4f36-a520-be1a339c278b", + "as": "default" + }, + "use_selection26": { + "use": "007177eb-d39d-4093-8840-07a38811c502", + "as": "default" + }, + "use_selection27": { + "use": "b24f5184-7e7c-448d-9475-ff3f998f70c3", + "as": "default" + }, + "use_selection28": { + "use": "8561f1f6-96c7-4e54-8869-0132116d57ce", + "as": "default" + }, + "use_selection29": { + "use": "bb26cf63-69a5-4c43-b2df-43284c9d907d", + "as": "default" + }, + "use_selection30": { + "use": "b8b474d4-30e3-4b5a-9988-3adb3450998c", + "as": "default" + }, + "use_selection31": { + "use": "a5189bfe-6d15-4452-9fa5-e3e57f7fa791", + "as": "default" + }, + "use_selection32": { + "use": "28cac2bb-df04-454f-b4d6-923b573eb94e", + "as": "default" + }, + "use_selection33": { + "use": "b0b26749-5e2c-4b56-8982-48172f2531fa", + "as": "default" + }, + "use_selection34": { + "use": "3468b447-a929-4c28-84a1-f2c3a27e3127", + "as": "default" + }, + "use_selection35": { + "use": "b8a92303-8543-4d88-a83c-ece300eaba6d", + "as": "default" + }, + "use_selection36": { + "use": "45652787-9085-4c67-914f-0da25ae62646", + "as": "default" + }, + "use_selection37": { + "use": "972c4de9-6f6f-463b-8eea-cc7cbdb96aba", + "as": "default" + }, + "use_selection38": { + "use": "6b386f2e-3eb1-4f60-81af-a90c8da1ffeb", + "as": "default" + }, + "use_selection39": { + "use": "1f086665-c007-4085-b363-3a118659ff1b", + "as": "default" + }, + "use_selection40": { + "use": "d8e46d2c-d63e-4b92-80a2-d17638a7ae9e", + "as": "default" + }, + "use_selection41": { + "use": "9481caa2-6d04-4598-8320-543a93927243", + "as": "default" + }, + "use_selection42": { + "use": "94e0beae-7daa-43b2-81b9-0bde390a76d8", + "as": "default" + }, + "use_selection43": { + "use": "2e764839-8ec6-4726-af50-b5678e0714a4", + "as": "default" + }, + "use_selection44": { + "use": "e4e65c5b-00ec-439c-96bf-3153c3a73398", + "as": "default" + }, + "use_selection45": { + "use": "3230dd65-6590-4043-9bb8-bebd6d8224b2", + "as": "default" + }, + "use_selection46": { + "use": "9ef0eb24-aae4-4f5a-99af-d724db44808f", + "as": "default" + }, + "use_selection47": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection48": { + "use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc", + "as": "default" + }, + "use_selection49": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.Builders", + "description": "Compiler Creator Builders\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": "use Joomla\\CMS\\Factory;\r\nuse Joomla\\CMS\\Language\\Text;\r\nuse Joomla\\CMS\\Application\\CMSApplication;", + "composer": "" +} \ No newline at end of file diff --git a/src/55e61314-ba10-4e2b-92dd-b44adebabce9/README.md b/src/55e61314-ba10-4e2b-92dd-b44adebabce9/README.md index 884f94b..082b084 100644 --- a/src/55e61314-ba10-4e2b-92dd-b44adebabce9/README.md +++ b/src/55e61314-ba10-4e2b-92dd-b44adebabce9/README.md @@ -13,7 +13,8 @@ class Conditions #Gold { # TypeName $typeName # FieldName $fieldName - + __construct(?TypeName $typeName = null, ?FieldName $fieldName = null) + # FieldGroups $fieldGroups + + __construct(?TypeName $typeName = null, ?FieldName $fieldName = null, ...) + set(object $item) : void } @@ -21,6 +22,11 @@ note right of Conditions::__construct Constructor since: 3.2.0 + + arguments: + ?TypeName $typeName = null + ?FieldName $fieldName = null + ?FieldGroups $fieldGroups = null end note note right of Conditions::set diff --git a/src/55e61314-ba10-4e2b-92dd-b44adebabce9/code.php b/src/55e61314-ba10-4e2b-92dd-b44adebabce9/code.php index 94111db..e3e59d0 100644 --- a/src/55e61314-ba10-4e2b-92dd-b44adebabce9/code.php +++ b/src/55e61314-ba10-4e2b-92dd-b44adebabce9/code.php @@ -15,7 +15,7 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Model; use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Field\TypeName; use VDM\Joomla\Componentbuilder\Compiler\Field\Name as FieldName; -use VDM\Joomla\Componentbuilder\Compiler\Utilities\FieldHelper; +use VDM\Joomla\Componentbuilder\Compiler\Field\Groups as FieldGroups; use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\GetHelper; use VDM\Joomla\Utilities\StringHelper; @@ -45,18 +45,28 @@ class Conditions */ protected FieldName $fieldName; + /** + * Compiler Field Groups + * + * @var FieldGroups + * @since 3.2.0 + */ + protected FieldGroups $fieldGroups; + /** * Constructor * - * @param TypeName|null $typeName The compiler type name object. - * @param FieldName|null $fieldName The compiler field name object. + * @param TypeName|null $typeName The compiler type name object. + * @param FieldName|null $fieldName The compiler field name object. + * @param FieldGroups|null $fieldGroups The compiler field groups object. * * @since 3.2.0 */ - public function __construct(?TypeName $typeName = null, ?FieldName $fieldName = null) + public function __construct(?TypeName $typeName = null, ?FieldName $fieldName = null, ?FieldGroups $fieldGroups = null) { $this->typeName = $typeName ?: Compiler::_('Field.Type.Name'); $this->fieldName = $fieldName ?: Compiler::_('Field.Name'); + $this->fieldGroups = $fieldGroups ?: Compiler::_('Field.Groups'); } /** @@ -143,7 +153,7 @@ class Conditions $conditionValue['match_xml'] = $fieldValue['settings']->xml; // if custom field load field being extended - if (!FieldHelper::check($type)) + if (!$this->fieldGroups->check($type)) { $conditionValue['match_extends'] = GetHelper::between( $fieldValue['settings']->xml, @@ -167,7 +177,6 @@ class Conditions } unset($item->addconditions); - } - + } } diff --git a/src/55e61314-ba10-4e2b-92dd-b44adebabce9/code.power b/src/55e61314-ba10-4e2b-92dd-b44adebabce9/code.power index 0cdfae3..56edd1f 100644 --- a/src/55e61314-ba10-4e2b-92dd-b44adebabce9/code.power +++ b/src/55e61314-ba10-4e2b-92dd-b44adebabce9/code.power @@ -14,18 +14,28 @@ */ protected FieldName $fieldName; + /** + * Compiler Field Groups + * + * @var FieldGroups + * @since 3.2.0 + */ + protected FieldGroups $fieldGroups; + /** * Constructor * - * @param TypeName|null $typeName The compiler type name object. - * @param FieldName|null $fieldName The compiler field name object. + * @param TypeName|null $typeName The compiler type name object. + * @param FieldName|null $fieldName The compiler field name object. + * @param FieldGroups|null $fieldGroups The compiler field groups object. * * @since 3.2.0 */ - public function __construct(?TypeName $typeName = null, ?FieldName $fieldName = null) + public function __construct(?TypeName $typeName = null, ?FieldName $fieldName = null, ?FieldGroups $fieldGroups = null) { $this->typeName = $typeName ?: Compiler::_('Field.Type.Name'); $this->fieldName = $fieldName ?: Compiler::_('Field.Name'); + $this->fieldGroups = $fieldGroups ?: Compiler::_('Field.Groups'); } /** @@ -112,7 +122,7 @@ $conditionValue['match_xml'] = $fieldValue['settings']->xml; // if custom field load field being extended - if (!FieldHelper::check($type)) + if (!$this->fieldGroups->check($type)) { $conditionValue['match_extends'] = GetHelper::between( $fieldValue['settings']->xml, @@ -136,4 +146,4 @@ } unset($item->addconditions); - } + } \ No newline at end of file diff --git a/src/55e61314-ba10-4e2b-92dd-b44adebabce9/settings.json b/src/55e61314-ba10-4e2b-92dd-b44adebabce9/settings.json index bd05fb6..9cb2af6 100644 --- a/src/55e61314-ba10-4e2b-92dd-b44adebabce9/settings.json +++ b/src/55e61314-ba10-4e2b-92dd-b44adebabce9/settings.json @@ -23,8 +23,8 @@ "as": "FieldName" }, "use_selection3": { - "use": "7a5fd3f3-199e-43ba-a8e8-f473d6c030ec", - "as": "default" + "use": "12df35ad-2d44-4c4c-a7d5-a3350932a520", + "as": "FieldGroups" }, "use_selection4": { "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", diff --git a/src/58b7f907-4195-4ca3-886c-17877be59887/README.md b/src/58b7f907-4195-4ca3-886c-17877be59887/README.md new file mode 100644 index 0000000..3202067 --- /dev/null +++ b/src/58b7f907-4195-4ca3-886c-17877be59887/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class DatabaseUniqueGuid (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class DatabaseUniqueGuid << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/58b7f907-4195-4ca3-886c-17877be59887/code.php b/src/58b7f907-4195-4ca3-886c-17877be59887/code.php new file mode 100644 index 0000000..8ef7233 --- /dev/null +++ b/src/58b7f907-4195-4ca3-886c-17877be59887/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Database Unique Guid Builder Class + * + * @since 3.2.0 + */ +final class DatabaseUniqueGuid extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/58b7f907-4195-4ca3-886c-17877be59887/code.power b/src/58b7f907-4195-4ca3-886c-17877be59887/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/58b7f907-4195-4ca3-886c-17877be59887/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/58b7f907-4195-4ca3-886c-17877be59887/settings.json b/src/58b7f907-4195-4ca3-886c-17877be59887/settings.json new file mode 100644 index 0000000..43cd8d5 --- /dev/null +++ b/src/58b7f907-4195-4ca3-886c-17877be59887/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "58b7f907-4195-4ca3-886c-17877be59887", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "DatabaseUniqueGuid", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.DatabaseUniqueGuid", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.DatabaseUniqueGuid", + "description": "Database Unique Guid Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/597663e1-1c02-43e8-aea5-f2161e38ac7f/README.md b/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/README.md new file mode 100644 index 0000000..51b2bca --- /dev/null +++ b/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ListJoin (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ListJoin << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/code.php b/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/code.php new file mode 100644 index 0000000..d7149a6 --- /dev/null +++ b/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * List Join Builder Class + * + * @since 3.2.0 + */ +final class ListJoin extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/code.power b/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/settings.json b/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/settings.json new file mode 100644 index 0000000..d61b997 --- /dev/null +++ b/src/597663e1-1c02-43e8-aea5-f2161e38ac7f/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "597663e1-1c02-43e8-aea5-f2161e38ac7f", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ListJoin", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ListJoin", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ListJoin", + "description": "List Join Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/59895f37-50c8-4af3-9dad-230e18841953/README.md b/src/59895f37-50c8-4af3-9dad-230e18841953/README.md index 0604dee..496db1a 100644 --- a/src/59895f37-50c8-4af3-9dad-230e18841953/README.md +++ b/src/59895f37-50c8-4af3-9dad-230e18841953/README.md @@ -12,21 +12,21 @@ @startuml class Libraries #Gold { # Config $config - # Registry $registry + # LibraryManager $librarymanager # Library $library - + __construct(?Config $config = null, ?Registry $registry = null, ...) + + __construct(Config $config, LibraryManager $librarymanager, ...) + set(string $key, object $item, ...) : void } note right of Libraries::__construct - Constructor + Constructor. since: 3.2.0 arguments: - ?Config $config = null - ?Registry $registry = null - ?Library $library = null + Config $config + LibraryManager $librarymanager + Library $library end note note right of Libraries::set diff --git a/src/59895f37-50c8-4af3-9dad-230e18841953/code.php b/src/59895f37-50c8-4af3-9dad-230e18841953/code.php index e2023df..f39b75f 100644 --- a/src/59895f37-50c8-4af3-9dad-230e18841953/code.php +++ b/src/59895f37-50c8-4af3-9dad-230e18841953/code.php @@ -14,7 +14,7 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Model; use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\LibraryManager; use VDM\Joomla\Componentbuilder\Compiler\Library\Data as Library; use VDM\Joomla\Utilities\JsonHelper; use VDM\Joomla\Utilities\ArrayHelper; @@ -28,7 +28,7 @@ use VDM\Joomla\Utilities\ArrayHelper; class Libraries { /** - * Compiler Config + * The Config Class. * * @var Config * @since 3.2.0 @@ -36,35 +36,35 @@ class Libraries protected Config $config; /** - * Compiler Registry + * The LibraryManager Class. * - * @var Registry + * @var LibraryManager * @since 3.2.0 */ - protected Registry $registry; + protected LibraryManager $librarymanager; /** - * Compiler Library Data + * The Data Class. * - * @var Library + * @var Library * @since 3.2.0 */ protected Library $library; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config. - * @param Registry|null $registry The compiler registry. - * @param Library|null $library The compiler library data object. + * @param Config $config The Config Class. + * @param LibraryManager $librarymanager The LibraryManager Class. + * @param Library $library The Data Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, ?Library $library = null) + public function __construct(Config $config, LibraryManager $librarymanager, Library $library) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->library = $library ?: Compiler::_('Library.Data'); + $this->config = $config; + $this->librarymanager = $librarymanager; + $this->library = $library; } /** @@ -93,21 +93,18 @@ class Libraries { foreach ($item->libraries as $library) { - if (!$this->registry->exists('builder.library_manager.' . - $target . '.' . $key . '.' . (int) $library) && $this->library->get((int) $library)) + if (!$this->librarymanager->exists($target . '.' . $key . '.' . (int) $library) + && $this->library->get((int) $library)) { - $this->registry->set('builder.library_manager.' . - $target . '.' . $key . '.' . (int) $library, true); + $this->librarymanager->set($target . '.' . $key . '.' . (int) $library, true); } } } elseif (is_numeric($item->libraries) - && !$this->registry->exists('builder.library_manager.' . - $target . '.' . $key . '.' . (int) $item->libraries) + && !$this->librarymanager->exists($target . '.' . $key . '.' . (int) $item->libraries) && $this->library->get((int) $item->libraries)) { - $this->registry->set('builder.library_manager.' . - $target . '.' . $key . '.' . (int) $item->libraries, true); + $this->librarymanager->set($target . '.' . $key . '.' . (int) $item->libraries, true); } } diff --git a/src/59895f37-50c8-4af3-9dad-230e18841953/code.power b/src/59895f37-50c8-4af3-9dad-230e18841953/code.power index 88adc06..28f9e41 100644 --- a/src/59895f37-50c8-4af3-9dad-230e18841953/code.power +++ b/src/59895f37-50c8-4af3-9dad-230e18841953/code.power @@ -1,5 +1,5 @@ /** - * Compiler Config + * The Config Class. * * @var Config * @since 3.2.0 @@ -7,35 +7,35 @@ protected Config $config; /** - * Compiler Registry + * The LibraryManager Class. * - * @var Registry + * @var LibraryManager * @since 3.2.0 */ - protected Registry $registry; + protected LibraryManager $librarymanager; /** - * Compiler Library Data + * The Data Class. * - * @var Library + * @var Library * @since 3.2.0 */ protected Library $library; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config. - * @param Registry|null $registry The compiler registry. - * @param Library|null $library The compiler library data object. + * @param Config $config The Config Class. + * @param LibraryManager $librarymanager The LibraryManager Class. + * @param Library $library The Data Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, ?Library $library = null) + public function __construct(Config $config, LibraryManager $librarymanager, Library $library) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->library = $library ?: Compiler::_('Library.Data'); + $this->config = $config; + $this->librarymanager = $librarymanager; + $this->library = $library; } /** @@ -64,20 +64,17 @@ { foreach ($item->libraries as $library) { - if (!$this->registry->exists('builder.library_manager.' . - $target . '.' . $key . '.' . (int) $library) && $this->library->get((int) $library)) + if (!$this->librarymanager->exists($target . '.' . $key . '.' . (int) $library) + && $this->library->get((int) $library)) { - $this->registry->set('builder.library_manager.' . - $target . '.' . $key . '.' . (int) $library, true); + $this->librarymanager->set($target . '.' . $key . '.' . (int) $library, true); } } } elseif (is_numeric($item->libraries) - && !$this->registry->exists('builder.library_manager.' . - $target . '.' . $key . '.' . (int) $item->libraries) + && !$this->librarymanager->exists($target . '.' . $key . '.' . (int) $item->libraries) && $this->library->get((int) $item->libraries)) { - $this->registry->set('builder.library_manager.' . - $target . '.' . $key . '.' . (int) $item->libraries, true); + $this->librarymanager->set($target . '.' . $key . '.' . (int) $item->libraries, true); } } diff --git a/src/59895f37-50c8-4af3-9dad-230e18841953/settings.json b/src/59895f37-50c8-4af3-9dad-230e18841953/settings.json index 65c8231..c32664d 100644 --- a/src/59895f37-50c8-4af3-9dad-230e18841953/settings.json +++ b/src/59895f37-50c8-4af3-9dad-230e18841953/settings.json @@ -19,7 +19,7 @@ "as": "default" }, "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "use": "e696927b-e8f4-4cfc-9d25-215db4e3c7a8", "as": "default" }, "use_selection3": { diff --git a/src/5b021139-dad0-4e9b-882a-2b4d807795af/README.md b/src/5b021139-dad0-4e9b-882a-2b4d807795af/README.md index 422c2ff..e8275d6 100644 --- a/src/5b021139-dad0-4e9b-882a-2b4d807795af/README.md +++ b/src/5b021139-dad0-4e9b-882a-2b4d807795af/README.md @@ -13,21 +13,23 @@ class Selection #Gold { # array $name # Config $config - # Registry $registry + # GetAsLookup $getaslookup + # SiteFields $sitefields # \JDatabaseDriver $db - + __construct(?Config $config = null, ?Registry $registry = null, ...) + + __construct(Config $config, GetAsLookup $getaslookup, ...) + get(string $methodKey, string $viewCode, ...) : ?array # name(int $id) : string } note right of Selection::__construct - Constructor + Constructor. since: 3.2.0 arguments: - ?Config $config = null - ?Registry $registry = null + Config $config + GetAsLookup $getaslookup + SiteFields $sitefields ?\JDatabaseDriver $db = null end note diff --git a/src/5b021139-dad0-4e9b-882a-2b4d807795af/code.php b/src/5b021139-dad0-4e9b-882a-2b4d807795af/code.php index 695095a..f2153ec 100644 --- a/src/5b021139-dad0-4e9b-882a-2b4d807795af/code.php +++ b/src/5b021139-dad0-4e9b-882a-2b4d807795af/code.php @@ -13,9 +13,9 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Dynamicget; use Joomla\CMS\Factory; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\GetAsLookup; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteFields; use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\GetHelper; @@ -39,20 +39,28 @@ class Selection protected array $name; /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The GetAsLookup Class. * - * @var Registry + * @var GetAsLookup * @since 3.2.0 */ - protected Registry $registry; + protected GetAsLookup $getaslookup; + + /** + * The SiteFields Class. + * + * @var SiteFields + * @since 3.2.0 + */ + protected SiteFields $sitefields; /** * Database object to query local DB @@ -63,19 +71,21 @@ class Selection protected \JDatabaseDriver $db; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param \JDatabaseDriver|null $db The database object. + * @param Config $config The Config Class. + * @param GetAsLookup $getaslookup The GetAsLookup Class. + * @param SiteFields $sitefields The SiteFields Class. + * @param \JDatabaseDriver|null $db The database object. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, + public function __construct(Config $config, GetAsLookup $getaslookup, SiteFields $sitefields, ?\JDatabaseDriver $db = null) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); + $this->config = $config; + $this->getaslookup = $getaslookup; + $this->sitefields = $sitefields; $this->db = $db ?: Factory::getDbo(); } @@ -172,7 +182,7 @@ class Selection $key = trim($lineArray[1]); // only add the view (we must adapt this) - if ($this->registry->exists('builder.get_as_lookup.' . $methodKey . '.' . $get) + if ($this->getaslookup->exists($methodKey . '.' . $get) && 'a' != $as && is_numeric($rowType) && 1 == $rowType && 'view' === $type @@ -188,8 +198,7 @@ class Selection $gets[] = $this->db->quote($get); if (StringHelper::check($key)) { - $this->registry-> - set('builder.get_as_lookup.' . $methodKey . '.' . $get, $key); + $this->getaslookup->set($methodKey . '.' . $get, $key); } else { @@ -197,8 +206,7 @@ class Selection $as . '.', '', $get ); - $this->registry-> - set('builder.get_as_lookup.' . $methodKey . '.' . $get, $key); + $this->getaslookup->set($methodKey . '.' . $get, $key); } // set the keys @@ -212,9 +220,9 @@ class Selection // prep the field name $field = str_replace($as . '.', '', $get); // load to the site fields memory bucket - $this->registry-> - set('builder.site_fields.' . $view . '.' . $field . '.' . $methodKey . '___' . $as, - ['site' => $viewCode, 'get' => $get, 'as' => $as, 'key' => $key]); + $this->sitefields->set($view . '.' . $field . '.' . $methodKey . '___' . $as, + ['site' => $viewCode, 'get' => $get, 'as' => $as, 'key' => $key] + ); } } } @@ -275,7 +283,6 @@ class Selection } return $this->name[$id] ?? 'error'; - } - + } } diff --git a/src/5b021139-dad0-4e9b-882a-2b4d807795af/code.power b/src/5b021139-dad0-4e9b-882a-2b4d807795af/code.power index d9e3d84..8bc3574 100644 --- a/src/5b021139-dad0-4e9b-882a-2b4d807795af/code.power +++ b/src/5b021139-dad0-4e9b-882a-2b4d807795af/code.power @@ -7,20 +7,28 @@ protected array $name; /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The GetAsLookup Class. * - * @var Registry + * @var GetAsLookup * @since 3.2.0 */ - protected Registry $registry; + protected GetAsLookup $getaslookup; + + /** + * The SiteFields Class. + * + * @var SiteFields + * @since 3.2.0 + */ + protected SiteFields $sitefields; /** * Database object to query local DB @@ -31,19 +39,21 @@ protected \JDatabaseDriver $db; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param \JDatabaseDriver|null $db The database object. + * @param Config $config The Config Class. + * @param GetAsLookup $getaslookup The GetAsLookup Class. + * @param SiteFields $sitefields The SiteFields Class. + * @param \JDatabaseDriver|null $db The database object. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, + public function __construct(Config $config, GetAsLookup $getaslookup, SiteFields $sitefields, ?\JDatabaseDriver $db = null) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); + $this->config = $config; + $this->getaslookup = $getaslookup; + $this->sitefields = $sitefields; $this->db = $db ?: Factory::getDbo(); } @@ -140,7 +150,7 @@ $key = trim($lineArray[1]); // only add the view (we must adapt this) - if ($this->registry->exists('builder.get_as_lookup.' . $methodKey . '.' . $get) + if ($this->getaslookup->exists($methodKey . '.' . $get) && 'a' != $as && is_numeric($rowType) && 1 == $rowType && 'view' === $type @@ -156,8 +166,7 @@ $gets[] = $this->db->quote($get); if (StringHelper::check($key)) { - $this->registry-> - set('builder.get_as_lookup.' . $methodKey . '.' . $get, $key); + $this->getaslookup->set($methodKey . '.' . $get, $key); } else { @@ -165,8 +174,7 @@ $as . '.', '', $get ); - $this->registry-> - set('builder.get_as_lookup.' . $methodKey . '.' . $get, $key); + $this->getaslookup->set($methodKey . '.' . $get, $key); } // set the keys @@ -180,9 +188,9 @@ // prep the field name $field = str_replace($as . '.', '', $get); // load to the site fields memory bucket - $this->registry-> - set('builder.site_fields.' . $view . '.' . $field . '.' . $methodKey . '___' . $as, - ['site' => $viewCode, 'get' => $get, 'as' => $as, 'key' => $key]); + $this->sitefields->set($view . '.' . $field . '.' . $methodKey . '___' . $as, + ['site' => $viewCode, 'get' => $get, 'as' => $as, 'key' => $key] + ); } } } @@ -243,4 +251,4 @@ } return $this->name[$id] ?? 'error'; - } + } \ No newline at end of file diff --git a/src/5b021139-dad0-4e9b-882a-2b4d807795af/settings.json b/src/5b021139-dad0-4e9b-882a-2b4d807795af/settings.json index bac03b7..72f9155 100644 --- a/src/5b021139-dad0-4e9b-882a-2b4d807795af/settings.json +++ b/src/5b021139-dad0-4e9b-882a-2b4d807795af/settings.json @@ -11,15 +11,15 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, - "use_selection1": { "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", "as": "default" }, + "use_selection1": { + "use": "8f46f85d-7921-44e9-a40e-dc4f01c5d43a", + "as": "default" + }, "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "use": "52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe", "as": "default" }, "use_selection3": { diff --git a/src/5d4278f0-7db2-498f-872a-c974bd8ce334/README.md b/src/5d4278f0-7db2-498f-872a-c974bd8ce334/README.md new file mode 100644 index 0000000..f168d94 --- /dev/null +++ b/src/5d4278f0-7db2-498f-872a-c974bd8ce334/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Bucket (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Generator** +> extends: **StorageRegistry** +```uml +@startuml +class Bucket << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/5d4278f0-7db2-498f-872a-c974bd8ce334/code.php b/src/5d4278f0-7db2-498f-872a-c974bd8ce334/code.php new file mode 100644 index 0000000..de3a43e --- /dev/null +++ b/src/5d4278f0-7db2-498f-872a-c974bd8ce334/code.php @@ -0,0 +1,27 @@ + + * @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\Power\Generator; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Power Bucket + * + * @since 3.2.0 + */ +final class Bucket extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/5d4278f0-7db2-498f-872a-c974bd8ce334/code.power b/src/5d4278f0-7db2-498f-872a-c974bd8ce334/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/5d4278f0-7db2-498f-872a-c974bd8ce334/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/settings.json b/src/5d4278f0-7db2-498f-872a-c974bd8ce334/settings.json similarity index 57% rename from src/caf33c5d-858c-4f9a-894f-ab302ec5445a/settings.json rename to src/5d4278f0-7db2-498f-872a-c974bd8ce334/settings.json index d1a52a8..78a97df 100644 --- a/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/settings.json +++ b/src/5d4278f0-7db2-498f-872a-c974bd8ce334/settings.json @@ -1,18 +1,20 @@ { - "add_head": "1", + "add_head": "0", "add_licensing_template": "2", - "extends": "0", - "guid": "caf33c5d-858c-4f9a-894f-ab302ec5445a", - "implements": null, + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "5d4278f0-7db2-498f-872a-c974bd8ce334", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], "load_selection": null, - "name": "FactoryInterface", + "name": "Bucket", "power_version": "1.0.0", - "system_name": "JCB.Interfaces.FactoryInterface", - "type": "interface", + "system_name": "JCB.Power.Generator.Bucket", + "type": "final class", "use_selection": null, - "namespace": "VDM\\Joomla\\Componentbuilder.Interfaces.FactoryInterface", - "description": "The Container Factory Interface", + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Generator.Bucket", + "description": "Power Bucket\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": "use Joomla\\DI\\Container;", + "head": "", "composer": "" } \ No newline at end of file diff --git a/src/5e3d856d-8174-4131-b4e9-9328066438e1/README.md b/src/5e3d856d-8174-4131-b4e9-9328066438e1/README.md new file mode 100644 index 0000000..2b029db --- /dev/null +++ b/src/5e3d856d-8174-4131-b4e9-9328066438e1/README.md @@ -0,0 +1,46 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class PermissionCore (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **MapperDouble** +```uml +@startuml +class PermissionCore << (F,LightGreen) >> #RoyalBlue { + # firstKey(string $key) : string + # secondKey(string $key) : string +} + +note right of PermissionCore::firstKey + Model the first key + + since: 3.2.0 + return: string +end note + +note right of PermissionCore::secondKey + Model the second key + + since: 3.2.0 + return: string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/5e3d856d-8174-4131-b4e9-9328066438e1/code.php b/src/5e3d856d-8174-4131-b4e9-9328066438e1/code.php new file mode 100644 index 0000000..c40ed35 --- /dev/null +++ b/src/5e3d856d-8174-4131-b4e9-9328066438e1/code.php @@ -0,0 +1,52 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Componentbuilder\Interfaces\Mapperdoubleinterface; +use VDM\Joomla\Componentbuilder\Abstraction\MapperDouble; + + +/** + * Permission Core Builder Class + * + * @since 3.2.0 + */ +final class PermissionCore extends MapperDouble implements Mapperdoubleinterface +{ + /** + * Model the first key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function firstKey(string $key): string + { + return $key; + } + + /** + * Model the second key + * + * @param string $key The second key to model + * + * @return string + * @since 3.2.0 + */ + protected function secondKey(string $key): string + { + return $key; + } +} + diff --git a/src/5e3d856d-8174-4131-b4e9-9328066438e1/code.power b/src/5e3d856d-8174-4131-b4e9-9328066438e1/code.power new file mode 100644 index 0000000..2fc53e5 --- /dev/null +++ b/src/5e3d856d-8174-4131-b4e9-9328066438e1/code.power @@ -0,0 +1,25 @@ + /** + * Model the first key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function firstKey(string $key): string + { + return $key; + } + + /** + * Model the second key + * + * @param string $key The second key to model + * + * @return string + * @since 3.2.0 + */ + protected function secondKey(string $key): string + { + return $key; + } \ No newline at end of file diff --git a/src/5e3d856d-8174-4131-b4e9-9328066438e1/settings.json b/src/5e3d856d-8174-4131-b4e9-9328066438e1/settings.json new file mode 100644 index 0000000..b77b208 --- /dev/null +++ b/src/5e3d856d-8174-4131-b4e9-9328066438e1/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "4d4e76e9-12d9-4d19-b58c-b88974b2586a", + "guid": "5e3d856d-8174-4131-b4e9-9328066438e1", + "implements": [ + "fbc58009-fa16-4d49-a0dd-419c3b62d42f" + ], + "load_selection": null, + "name": "PermissionCore", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.PermissionCore", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.PermissionCore", + "description": "Permission Core Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/5f8e8fa6-3793-44af-882d-9cfb209434e9/README.md b/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/README.md index b2c2352..ead83b3 100644 --- a/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/README.md +++ b/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/README.md @@ -11,14 +11,14 @@ ```uml @startuml class Customalias #Gold { - # Registry $registry - # FieldName $fieldName - + __construct(?Registry $registry = null, ?FieldName $fieldName = null) + # BuilderCustomAlias $customalias + # FieldName $fieldname + + __construct(BuilderCustomAlias $customalias, FieldName $fieldname) + set(object $item) : void } note right of Customalias::__construct - Constructor + Constructor. since: 3.2.0 end note diff --git a/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.php b/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.php index 8502253..1ed1042 100644 --- a/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.php +++ b/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.php @@ -12,8 +12,7 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Model; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; -use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomAlias as BuilderCustomAlias; use VDM\Joomla\Componentbuilder\Compiler\Field\Name as FieldName; use VDM\Joomla\Utilities\JsonHelper; use VDM\Joomla\Utilities\ArrayHelper; @@ -27,33 +26,33 @@ use VDM\Joomla\Utilities\ArrayHelper; class Customalias { /** - * The compiler Registry + * The BuilderCustomAlias Class. * - * @var Registry + * @var BuilderCustomAlias * @since 3.2.0 */ - protected Registry $registry; + protected BuilderCustomAlias $customalias; /** - * The compiler field name + * The Name Class. * - * @var FieldName + * @var FieldName * @since 3.2.0 */ - protected FieldName $fieldName; + protected FieldName $fieldname; /** - * Constructor + * Constructor. * - * @param Registry|null $registry The compiler registry object. - * @param FieldName|null $fieldName The compiler field name object. + * @param BuilderCustomAlias $customalias The CustomAlias Class. + * @param FieldName $fieldname The Name Class. * * @since 3.2.0 */ - public function __construct(?Registry $registry = null, ?FieldName $fieldName = null) + public function __construct(BuilderCustomAlias $customalias, FieldName $fieldname) { - $this->registry = $registry ?: Compiler::_('Registry'); - $this->fieldName = $fieldName ?: Compiler::_('Field.Name'); + $this->customalias = $customalias; + $this->fieldname = $fieldname; } /** @@ -66,7 +65,7 @@ class Customalias */ public function set(object &$item) { - if (!$this->registry->get('builder.custom_alias.' . $item->name_single_code, null) + if (!$this->customalias->get($item->name_single_code) && isset($item->alias_builder_type) && 2 == $item->alias_builder_type && isset($item->alias_builder) && JsonHelper::check($item->alias_builder)) { @@ -90,10 +89,10 @@ class Customalias if (ArrayHelper::check($alias_fields)) { // load the field names - $this->registry->set('builder.custom_alias.' . $item->name_single_code, + $this->customalias->set($item->name_single_code, (array) array_map( function ($field) use (&$item) { - return $this->fieldName->get( + return $this->fieldname->get( $field, $item->name_list_code ); }, $alias_fields @@ -104,7 +103,6 @@ class Customalias // unset unset($item->alias_builder); - } - + } } diff --git a/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.power b/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.power index cc4343d..1162ebf 100644 --- a/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.power +++ b/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/code.power @@ -1,31 +1,31 @@ /** - * The compiler Registry + * The BuilderCustomAlias Class. * - * @var Registry + * @var BuilderCustomAlias * @since 3.2.0 */ - protected Registry $registry; + protected BuilderCustomAlias $customalias; /** - * The compiler field name + * The Name Class. * - * @var FieldName + * @var FieldName * @since 3.2.0 */ - protected FieldName $fieldName; + protected FieldName $fieldname; /** - * Constructor + * Constructor. * - * @param Registry|null $registry The compiler registry object. - * @param FieldName|null $fieldName The compiler field name object. + * @param BuilderCustomAlias $customalias The CustomAlias Class. + * @param FieldName $fieldname The Name Class. * * @since 3.2.0 */ - public function __construct(?Registry $registry = null, ?FieldName $fieldName = null) + public function __construct(BuilderCustomAlias $customalias, FieldName $fieldname) { - $this->registry = $registry ?: Compiler::_('Registry'); - $this->fieldName = $fieldName ?: Compiler::_('Field.Name'); + $this->customalias = $customalias; + $this->fieldname = $fieldname; } /** @@ -38,7 +38,7 @@ */ public function set(object &$item) { - if (!$this->registry->get('builder.custom_alias.' . $item->name_single_code, null) + if (!$this->customalias->get($item->name_single_code) && isset($item->alias_builder_type) && 2 == $item->alias_builder_type && isset($item->alias_builder) && JsonHelper::check($item->alias_builder)) { @@ -62,10 +62,10 @@ if (ArrayHelper::check($alias_fields)) { // load the field names - $this->registry->set('builder.custom_alias.' . $item->name_single_code, + $this->customalias->set($item->name_single_code, (array) array_map( function ($field) use (&$item) { - return $this->fieldName->get( + return $this->fieldname->get( $field, $item->name_list_code ); }, $alias_fields @@ -76,4 +76,4 @@ // unset unset($item->alias_builder); - } + } \ No newline at end of file diff --git a/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/settings.json b/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/settings.json index a7e396a..712456e 100644 --- a/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/settings.json +++ b/src/5f8e8fa6-3793-44af-882d-9cfb209434e9/settings.json @@ -11,22 +11,18 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" + "use": "9d74d613-5ef7-4cf1-9f12-64f0a8e19806", + "as": "BuilderCustomAlias" }, "use_selection1": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", - "as": "default" - }, - "use_selection2": { "use": "9387215f-a965-4421-acf3-5e8f9d11382f", "as": "FieldName" }, - "use_selection3": { + "use_selection2": { "use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18", "as": "default" }, - "use_selection4": { + "use_selection3": { "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", "as": "default" } diff --git a/src/63dabe82-0f4a-4ade-9851-8518ade23de2/README.md b/src/63dabe82-0f4a-4ade-9851-8518ade23de2/README.md index 6156dc5..d86a662 100644 --- a/src/63dabe82-0f4a-4ade-9851-8518ade23de2/README.md +++ b/src/63dabe82-0f4a-4ade-9851-8518ade23de2/README.md @@ -6,11 +6,11 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Settings (Details) +# final class Settings (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler\Component** ```uml @startuml -class Settings #Gold { +class Settings << (F,LightGreen) >> #RoyalBlue { # array $standardFolders # array $standardRootFiles # ?object $data diff --git a/src/63dabe82-0f4a-4ade-9851-8518ade23de2/code.php b/src/63dabe82-0f4a-4ade-9851-8518ade23de2/code.php index 41f3f40..63b5348 100644 --- a/src/63dabe82-0f4a-4ade-9851-8518ade23de2/code.php +++ b/src/63dabe82-0f4a-4ade-9851-8518ade23de2/code.php @@ -31,7 +31,7 @@ use VDM\Joomla\Utilities\StringHelper; * * @since 3.2.0 */ -class Settings +final class Settings { /** * The standard folders diff --git a/src/63dabe82-0f4a-4ade-9851-8518ade23de2/settings.json b/src/63dabe82-0f4a-4ade-9851-8518ade23de2/settings.json index 1137ad7..602a951 100644 --- a/src/63dabe82-0f4a-4ade-9851-8518ade23de2/settings.json +++ b/src/63dabe82-0f4a-4ade-9851-8518ade23de2/settings.json @@ -8,7 +8,7 @@ "name": "Settings", "power_version": "1.0.0", "system_name": "JCB.Compiler.Component.Settings", - "type": "class", + "type": "final class", "use_selection": { "use_selection0": { "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", diff --git a/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/README.md b/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/README.md new file mode 100644 index 0000000..244fb10 --- /dev/null +++ b/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class OrderZero (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class OrderZero << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/code.php b/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/code.php new file mode 100644 index 0000000..49258cf --- /dev/null +++ b/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Order Zero Builder Class + * + * @since 3.2.0 + */ +final class OrderZero extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/code.power b/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/settings.json b/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/settings.json new file mode 100644 index 0000000..38ffa9d --- /dev/null +++ b/src/66b7b5f8-60d6-427a-9f8c-84c11a3d6780/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "66b7b5f8-60d6-427a-9f8c-84c11a3d6780", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "OrderZero", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.OrderZero", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.OrderZero", + "description": "Order Zero Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/673954d3-78d3-445a-b99f-4b40d617c882/README.md b/src/673954d3-78d3-445a-b99f-4b40d617c882/README.md index 2bad66d..7c3a540 100644 --- a/src/673954d3-78d3-445a-b99f-4b40d617c882/README.md +++ b/src/673954d3-78d3-445a-b99f-4b40d617c882/README.md @@ -6,11 +6,11 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Structuresingle (Details) +# final class Structuresingle (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler\Component** ```uml @startuml -class Structuresingle #Gold { +class Structuresingle << (F,LightGreen) >> #RoyalBlue { # string $newName # string $currentFullPath # string $packageFullPath diff --git a/src/673954d3-78d3-445a-b99f-4b40d617c882/code.php b/src/673954d3-78d3-445a-b99f-4b40d617c882/code.php index f9b357d..ea90927 100644 --- a/src/673954d3-78d3-445a-b99f-4b40d617c882/code.php +++ b/src/673954d3-78d3-445a-b99f-4b40d617c882/code.php @@ -35,7 +35,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; * * @since 3.2.0 */ -class Structuresingle +final class Structuresingle { /** * The new name @@ -256,7 +256,7 @@ class Structuresingle ) !== false && (strpos($licenseChecker, 'gpl') !== false || strpos( - $licenseChecker, 'General public license' + $licenseChecker, 'general public license' ) !== false)) { return true; @@ -618,7 +618,6 @@ class Structuresingle 'Notice' ); } - } - + } } diff --git a/src/673954d3-78d3-445a-b99f-4b40d617c882/code.power b/src/673954d3-78d3-445a-b99f-4b40d617c882/code.power index 2ed3eb0..8e7cb28 100644 --- a/src/673954d3-78d3-445a-b99f-4b40d617c882/code.power +++ b/src/673954d3-78d3-445a-b99f-4b40d617c882/code.power @@ -217,7 +217,7 @@ ) !== false && (strpos($licenseChecker, 'gpl') !== false || strpos( - $licenseChecker, 'General public license' + $licenseChecker, 'general public license' ) !== false)) { return true; @@ -579,4 +579,4 @@ 'Notice' ); } - } + } \ No newline at end of file diff --git a/src/673954d3-78d3-445a-b99f-4b40d617c882/settings.json b/src/673954d3-78d3-445a-b99f-4b40d617c882/settings.json index 49ebdd3..a785bf1 100644 --- a/src/673954d3-78d3-445a-b99f-4b40d617c882/settings.json +++ b/src/673954d3-78d3-445a-b99f-4b40d617c882/settings.json @@ -8,7 +8,7 @@ "name": "Structuresingle", "power_version": "1.0.0", "system_name": "JCB.Compiler.Component.Structuresingle", - "type": "class", + "type": "final class", "use_selection": { "use_selection0": { "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", diff --git a/src/6784dd52-0909-451a-a872-9a942a023c68/README.md b/src/6784dd52-0909-451a-a872-9a942a023c68/README.md index 82cc448..70c95cf 100644 --- a/src/6784dd52-0909-451a-a872-9a942a023c68/README.md +++ b/src/6784dd52-0909-451a-a872-9a942a023c68/README.md @@ -10,8 +10,8 @@ > namespace: **VDM\Joomla\Componentbuilder\Power** ```uml @startuml -class Grep << (F,LightGreen) >> #Green { - + string $path +class Grep << (F,LightGreen) >> #RoyalBlue { + + ?string $path + ?array $paths # Contents $contents # CMSApplication $app diff --git a/src/6784dd52-0909-451a-a872-9a942a023c68/code.php b/src/6784dd52-0909-451a-a872-9a942a023c68/code.php index ef04f4a..3db88b5 100644 --- a/src/6784dd52-0909-451a-a872-9a942a023c68/code.php +++ b/src/6784dd52-0909-451a-a872-9a942a023c68/code.php @@ -39,7 +39,7 @@ final class Grep * @var string * @since 3.2.0 **/ - public string $path; + public ?string $path; /** * All approved paths @@ -241,11 +241,6 @@ final class Grep */ private function init() { - if (!Folder::exists($this->path)) - { - $this->path = null; - } - if (is_array($this->paths) && $this->paths !== []) { foreach ($this->paths as $n => &$path) @@ -273,15 +268,7 @@ final class Grep unset($this->paths[$n]); } } - - // if we still have paths - if ($this->paths !== []) - { - return; - } } - - $this->paths = null; } /** diff --git a/src/6784dd52-0909-451a-a872-9a942a023c68/code.power b/src/6784dd52-0909-451a-a872-9a942a023c68/code.power index 32e15c3..d5e52a2 100644 --- a/src/6784dd52-0909-451a-a872-9a942a023c68/code.power +++ b/src/6784dd52-0909-451a-a872-9a942a023c68/code.power @@ -4,7 +4,7 @@ * @var string * @since 3.2.0 **/ - public string $path; + public ?string $path; /** * All approved paths @@ -206,11 +206,6 @@ */ private function init() { - if (!Folder::exists($this->path)) - { - $this->path = null; - } - if (is_array($this->paths) && $this->paths !== []) { foreach ($this->paths as $n => &$path) @@ -238,15 +233,7 @@ unset($this->paths[$n]); } } - - // if we still have paths - if ($this->paths !== []) - { - return; - } } - - $this->paths = null; } /** diff --git a/src/6a1dddb3-a955-425e-b713-8ef81f256035/README.md b/src/6a1dddb3-a955-425e-b713-8ef81f256035/README.md new file mode 100644 index 0000000..239d99a --- /dev/null +++ b/src/6a1dddb3-a955-425e-b713-8ef81f256035/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Title (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class Title << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/6a1dddb3-a955-425e-b713-8ef81f256035/code.php b/src/6a1dddb3-a955-425e-b713-8ef81f256035/code.php new file mode 100644 index 0000000..95269d6 --- /dev/null +++ b/src/6a1dddb3-a955-425e-b713-8ef81f256035/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Title Builder Class + * + * @since 3.2.0 + */ +final class Title extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/6a1dddb3-a955-425e-b713-8ef81f256035/code.power b/src/6a1dddb3-a955-425e-b713-8ef81f256035/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/6a1dddb3-a955-425e-b713-8ef81f256035/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/6a1dddb3-a955-425e-b713-8ef81f256035/settings.json b/src/6a1dddb3-a955-425e-b713-8ef81f256035/settings.json new file mode 100644 index 0000000..a854882 --- /dev/null +++ b/src/6a1dddb3-a955-425e-b713-8ef81f256035/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "6a1dddb3-a955-425e-b713-8ef81f256035", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "Title", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.Title", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Title", + "description": "Title Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/README.md b/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/README.md new file mode 100644 index 0000000..b84bbd1 --- /dev/null +++ b/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class JsonItemArray (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class JsonItemArray << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/code.php b/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/code.php new file mode 100644 index 0000000..d6f4d2a --- /dev/null +++ b/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\InArray; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Json Item Array Builder Class + * + * @since 3.2.0 + */ +final class JsonItemArray extends StorageRegistry implements Storageregistryinterface +{ + /** + * In Array + * + * @since 3.2.0 + */ + use InArray; +} + diff --git a/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/code.power b/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/code.power new file mode 100644 index 0000000..3a43b47 --- /dev/null +++ b/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/code.power @@ -0,0 +1,6 @@ + /** + * In Array + * + * @since 3.2.0 + */ + use InArray; \ No newline at end of file diff --git a/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/settings.json b/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/settings.json new file mode 100644 index 0000000..204909a --- /dev/null +++ b/src/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "6b386f2e-3eb1-4f60-81af-a90c8da1ffeb", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "JsonItemArray", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.JsonItemArray", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "215b35ac-1b26-4838-bbcf-d1fdbbd9353f", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.JsonItemArray", + "description": "Json Item Array Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/README.md b/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/README.md index 9ef200f..51678c4 100644 --- a/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/README.md +++ b/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/README.md @@ -16,6 +16,7 @@ class Folder #Gold { + __construct(?Counter $counter = null, ?File $file = null) + create(string $path, bool $addHtml = true) : void + remove(string $path, ?array $ignore = null) : bool + # shouldIgnore(string $basePath, string $filePath, ...) : bool } note right of Folder::__construct @@ -37,6 +38,18 @@ note right of Folder::remove since: 3.2.0 return: bool end note + +note right of Folder::shouldIgnore + Check if the current path should be ignored. + + since: 3.2.0 + return: bool + + arguments: + string $basePath + string $filePath + ?array $ignore = null +end note @enduml ``` diff --git a/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/code.php b/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/code.php index b59a62d..4313f08 100644 --- a/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/code.php +++ b/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/code.php @@ -100,77 +100,71 @@ class Folder */ public function remove(string $path, ?array $ignore = null): bool { - if (JoomlaFolder::exists($path)) + if (!JoomlaFolder::exists($path)) { - $it = new \RecursiveDirectoryIterator($path); - $it = new \RecursiveIteratorIterator($it, \RecursiveIteratorIterator::CHILD_FIRST); - - // remove ending / - $path = rtrim($path, '/'); - - // now loop the files & folders - foreach ($it as $file) - { - if ('.' === $file->getBasename() || '..' === $file->getBasename()) continue; - - // set file dir - $file_dir = $file->getPathname(); - - // check if this is a dir or a file - if ($file->isDir()) - { - $keeper = false; - if (ArrayHelper::check($ignore)) - { - foreach ($ignore as $keep) - { - if (strpos((string) $file_dir, $path . '/' . $keep) !== false) - { - $keeper = true; - } - } - } - - if ($keeper) - { - continue; - } - - JoomlaFolder::delete($file_dir); - } - else - { - $keeper = false; - if (ArrayHelper::check($ignore)) - { - foreach ($ignore as $keep) - { - if (strpos((string) $file_dir, $path . '/'. $keep) !== false) - { - $keeper = true; - } - } - } - - if ($keeper) - { - continue; - } - - JoomlaFile::delete($file_dir); - } - } - - // delete the root folder if ignore not set - if (!ArrayHelper::check($ignore)) - { - return JoomlaFolder::delete($path); - } - - return true; + return false; } - return false; + + $it = new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::SKIP_DOTS); + $files = new \RecursiveIteratorIterator($it, \RecursiveIteratorIterator::CHILD_FIRST); + + // Prepare a base path without trailing slash for comparison + $basePath = rtrim($path, '/'); + + foreach ($files as $fileinfo) + { + $filePath = $fileinfo->getRealPath(); + + if ($this->shouldIgnore($basePath, $filePath, $ignore)) + { + continue; + } + + if ($fileinfo->isDir()) + { + JoomlaFolder::delete($filePath); + } + else + { + JoomlaFile::delete($filePath); + } + } + + // Delete the root folder if ignore not set + if (!ArrayHelper::check($ignore)) + { + return JoomlaFolder::delete($path); + } + + return true; } - + + /** + * Check if the current path should be ignored. + * + * @param string $basePath The base directory path + * @param string $filePath The current file or directory path + * @param array|null $ignore List of items to ignore + * + * @return boolean True if the path should be ignored + * @since 3.2.0 + */ + protected function shouldIgnore(string $basePath, string $filePath, ?array $ignore = null): bool + { + if (!$ignore || !ArrayHelper::check($ignore)) + { + return false; + } + + foreach ($ignore as $item) + { + if (strpos($filePath, $basePath . '/' . $item) !== false) + { + return true; + } + } + + return false; + } } diff --git a/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/code.power b/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/code.power index be3e9b8..8c5f7af 100644 --- a/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/code.power +++ b/src/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1/code.power @@ -71,74 +71,69 @@ */ public function remove(string $path, ?array $ignore = null): bool { - if (JoomlaFolder::exists($path)) + if (!JoomlaFolder::exists($path)) { - $it = new \RecursiveDirectoryIterator($path); - $it = new \RecursiveIteratorIterator($it, \RecursiveIteratorIterator::CHILD_FIRST); - - // remove ending / - $path = rtrim($path, '/'); - - // now loop the files & folders - foreach ($it as $file) - { - if ('.' === $file->getBasename() || '..' === $file->getBasename()) continue; - - // set file dir - $file_dir = $file->getPathname(); - - // check if this is a dir or a file - if ($file->isDir()) - { - $keeper = false; - if (ArrayHelper::check($ignore)) - { - foreach ($ignore as $keep) - { - if (strpos((string) $file_dir, $path . '/' . $keep) !== false) - { - $keeper = true; - } - } - } - - if ($keeper) - { - continue; - } - - JoomlaFolder::delete($file_dir); - } - else - { - $keeper = false; - if (ArrayHelper::check($ignore)) - { - foreach ($ignore as $keep) - { - if (strpos((string) $file_dir, $path . '/'. $keep) !== false) - { - $keeper = true; - } - } - } - - if ($keeper) - { - continue; - } - - JoomlaFile::delete($file_dir); - } - } - - // delete the root folder if ignore not set - if (!ArrayHelper::check($ignore)) - { - return JoomlaFolder::delete($path); - } - - return true; + return false; } - return false; + + $it = new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::SKIP_DOTS); + $files = new \RecursiveIteratorIterator($it, \RecursiveIteratorIterator::CHILD_FIRST); + + // Prepare a base path without trailing slash for comparison + $basePath = rtrim($path, '/'); + + foreach ($files as $fileinfo) + { + $filePath = $fileinfo->getRealPath(); + + if ($this->shouldIgnore($basePath, $filePath, $ignore)) + { + continue; + } + + if ($fileinfo->isDir()) + { + JoomlaFolder::delete($filePath); + } + else + { + JoomlaFile::delete($filePath); + } + } + + // Delete the root folder if ignore not set + if (!ArrayHelper::check($ignore)) + { + return JoomlaFolder::delete($path); + } + + return true; } + + /** + * Check if the current path should be ignored. + * + * @param string $basePath The base directory path + * @param string $filePath The current file or directory path + * @param array|null $ignore List of items to ignore + * + * @return boolean True if the path should be ignored + * @since 3.2.0 + */ + protected function shouldIgnore(string $basePath, string $filePath, ?array $ignore = null): bool + { + if (!$ignore || !ArrayHelper::check($ignore)) + { + return false; + } + + foreach ($ignore as $item) + { + if (strpos($filePath, $basePath . '/' . $item) !== false) + { + return true; + } + } + + return false; + } \ No newline at end of file diff --git a/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/README.md b/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/README.md index 6a443ab..5862b27 100644 --- a/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/README.md +++ b/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/README.md @@ -6,11 +6,11 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Structure (Details) +# final class Structure (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler\Component** ```uml @startuml -class Structure #Gold { +class Structure << (F,LightGreen) >> #RoyalBlue { # Settings $settings # Paths $paths # Folder $folder diff --git a/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/code.php b/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/code.php index 567ca5b..dee9d57 100644 --- a/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/code.php +++ b/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/code.php @@ -24,7 +24,7 @@ use VDM\Joomla\Utilities\ObjectHelper; * * @since 3.2.0 */ -class Structure +final class Structure { /** * Compiler Component Joomla Version Settings @@ -112,7 +112,6 @@ class Structure $this->folders($sub_folders, $new_path); } } - } - + } } diff --git a/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/code.power b/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/code.power index bc53851..a74ea1c 100644 --- a/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/code.power +++ b/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/code.power @@ -84,4 +84,4 @@ $this->folders($sub_folders, $new_path); } } - } + } \ No newline at end of file diff --git a/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/settings.json b/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/settings.json index ff149d6..0d122d4 100644 --- a/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/settings.json +++ b/src/6c89c663-78f5-4078-9fac-7047f2eaaf96/settings.json @@ -8,7 +8,7 @@ "name": "Structure", "power_version": "1.0.0", "system_name": "JCB.Compiler.Component.Structure", - "type": "class", + "type": "final class", "use_selection": { "use_selection0": { "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", diff --git a/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/README.md b/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/README.md new file mode 100644 index 0000000..7d66f73 --- /dev/null +++ b/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/README.md @@ -0,0 +1,74 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class CustomFieldTypeFile (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class CustomFieldTypeFile << (F,LightGreen) >> #RoyalBlue { + # Config $config + # Content $content + # SiteField $sitefield + # Placeholder $placeholder + # Language $language + # ComponentPlaceholder $componentplaceholder + # Structure $structure + # InputButton $inputbutton + # FieldGroupControl $fieldgroupcontrol + # ExtensionCustomFields $extensioncustomfields + # CMSApplication $app + # array $phpFieldArray + + __construct(Config $config, Content $content, ...) + + set(array $data, string $nameListCode, ...) : void +} + +note right of CustomFieldTypeFile::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + Content $content + SiteField $sitefield + Placeholder $placeholder + Language $language + ComponentPlaceholder $componentplaceholder + Structure $structure + InputButton $inputbutton + FieldGroupControl $fieldgroupcontrol + ExtensionCustomFields $extensioncustomfields + ?CMSApplication $app = null +end note + +note right of CustomFieldTypeFile::set + set Custom Field Type File + + since: 3.2.0 + return: void + + arguments: + array $data + string $nameListCode + string $nameSingleCode +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/code.php b/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/code.php new file mode 100644 index 0000000..4934202 --- /dev/null +++ b/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/code.php @@ -0,0 +1,521 @@ + + * @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\Compiler\Creator; + + +use Joomla\CMS\Factory; +use Joomla\CMS\Language\Text; +use Joomla\CMS\Application\CMSApplication; +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Content; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteFieldData as SiteField; +use VDM\Joomla\Componentbuilder\Compiler\Placeholder; +use VDM\Joomla\Componentbuilder\Compiler\Language; +use VDM\Joomla\Componentbuilder\Compiler\Component\Placeholder as ComponentPlaceholder; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Structure; +use VDM\Joomla\Componentbuilder\Compiler\Field\InputButton; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldGroupControl; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ExtensionCustomFields; +use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Placefix; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line; +use VDM\Joomla\Utilities\String\FieldHelper; + + +/** + * Custom Field Type File Creator Class + * + * @since 3.2.0 + */ +final class CustomFieldTypeFile +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Content Class. + * + * @var Content + * @since 3.2.0 + */ + protected Content $content; + + /** + * The SiteFieldData Class. + * + * @var SiteField + * @since 3.2.0 + */ + protected SiteField $sitefield; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The Placeholder Class. + * + * @var ComponentPlaceholder + * @since 3.2.0 + */ + protected ComponentPlaceholder $componentplaceholder; + + /** + * The Structure Class. + * + * @var Structure + * @since 3.2.0 + */ + protected Structure $structure; + + /** + * The InputButton Class. + * + * @var InputButton + * @since 3.2.0 + */ + protected InputButton $inputbutton; + + /** + * The FieldGroupControl Class. + * + * @var FieldGroupControl + * @since 3.2.0 + */ + protected FieldGroupControl $fieldgroupcontrol; + + /** + * The ExtensionCustomFields Class. + * + * @var ExtensionCustomFields + * @since 3.2.0 + */ + protected ExtensionCustomFields $extensioncustomfields; + + /** + * Application object. + * + * @var CMSApplication + * @since 3.2.0 + **/ + protected CMSApplication $app; + + /** + * Array of php fields Allowed (16) + * + * @var array + * @since 3.2.0 + **/ + protected array $phpFieldArray = ['', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'x', 'HEADER']; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Content $content The Content Class. + * @param SiteField $sitefield The SiteFieldData Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Language $language The Language Class. + * @param ComponentPlaceholder $componentplaceholder The Placeholder Class. + * @param Structure $structure The Structure Class. + * @param InputButton $inputbutton The InputButton Class. + * @param FieldGroupControl $fieldgroupcontrol The FieldGroupControl Class. + * @param ExtensionCustomFields $extensioncustomfields The ExtensionCustomFields Class. + * @param CMSApplication|null $app The app object. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Content $content, SiteField $sitefield, + Placeholder $placeholder, Language $language, + ComponentPlaceholder $componentplaceholder, + Structure $structure, InputButton $inputbutton, + FieldGroupControl $fieldgroupcontrol, + ExtensionCustomFields $extensioncustomfields, + ?CMSApplication $app = null) + { + $this->config = $config; + $this->content = $content; + $this->sitefield = $sitefield; + $this->placeholder = $placeholder; + $this->language = $language; + $this->componentplaceholder = $componentplaceholder; + $this->structure = $structure; + $this->inputbutton = $inputbutton; + $this->fieldgroupcontrol = $fieldgroupcontrol; + $this->extensioncustomfields = $extensioncustomfields; + $this->app = $app ?: Factory::getApplication(); + } + + /** + * set Custom Field Type File + * + * @param array $data The field complete data set + * @param string $nameListCode The list view code name + * @param string $nameSingleCode The single view code name + * + * @return void + * @since 3.2.0 + */ + public function set(array $data, string $nameListCode, string $nameSingleCode): void + { + // make sure it is not already been build or if it is prime + if (isset($data['custom']) && isset($data['custom']['extends']) + && ((isset($data['custom']['prime_php']) + && $data['custom']['prime_php'] == 1) + || !$this->content->exist_('customfield_' . $data['type']) + || !ArrayHelper::check( + $this->content->get_('customfield_' . $data['type']) + ) + )) + { + // set J prefix + $jprefix = 'J'; + // check if this field has a dot in field type name + if (strpos((string) $data['type'], '.') !== false) + { + // so we have name spacing in custom field type name + $dotTypeArray = explode('.', (string) $data['type']); + // set the J prefix + if (count((array) $dotTypeArray) > 1) + { + $jprefix = strtoupper(array_shift($dotTypeArray)); + } + // update the type name now + $data['type'] = implode('', $dotTypeArray); + $data['custom']['type'] = $data['type']; + } + // set tab and break replacements + $tabBreak = array( + '\t' => Indent::_(1), + '\n' => PHP_EOL + ); + // set the [[[PLACEHOLDER]]] options + $replace = array( + Placefix::_('JPREFIX') => $jprefix, + Placefix::_('TABLE') => (isset($data['custom']['table'])) + ? $data['custom']['table'] : '', + Placefix::_('ID') => (isset($data['custom']['id'])) + ? $data['custom']['id'] : '', + Placefix::_('TEXT') => (isset($data['custom']['text'])) + ? $data['custom']['text'] : '', + Placefix::_('CODE_TEXT') => (isset($data['code'], $data['custom']['text'])) + ? $data['code'] . '_' . $data['custom']['text'] : '', + Placefix::_('CODE') => (isset($data['code'])) + ? $data['code'] : '', + Placefix::_('view_type') => $nameSingleCode + . '_' . $data['type'], + Placefix::_('type') => (isset($data['type'])) + ? $data['type'] : '', + Placefix::_('com_component') => (isset($data['custom']['component']) + && StringHelper::check( + $data['custom']['component'] + )) ? StringHelper::safe( + $data['custom']['component'] + ) : 'com_' . $this->config->component_code_name, + // set the generic values + Placefix::_('component') => $this->config->component_code_name, + Placefix::_('Component') => $this->content->get('Component'), + Placefix::_('view') => (isset($data['custom']['view']) + && StringHelper::check( + $data['custom']['view'] + )) ? StringHelper::safe( + $data['custom']['view'] + ) : $nameSingleCode, + Placefix::_('views') => (isset($data['custom']['views']) + && StringHelper::check( + $data['custom']['views'] + )) ? StringHelper::safe( + $data['custom']['views'] + ) : $nameListCode + ); + // now set the ###PLACEHOLDER### options + foreach ($replace as $replacekey => $replacevalue) + { + // update the key value + $replacekey = str_replace( + array(Placefix::b(), Placefix::d()), + array(Placefix::h(), Placefix::h()), $replacekey + ); + // now set the value + $replace[$replacekey] = $replacevalue; + } + // load the global placeholders + foreach ($this->componentplaceholder->get() as $globalPlaceholder => $gloabalValue) + { + $replace[$globalPlaceholder] = $gloabalValue; + } + // start loading the field type + // $this->fileContentDynamic['customfield_' . $data['type']] = array(); + // JPREFIX <<>> + $this->content->set_('customfield_' . $data['type'], 'JPREFIX', $jprefix); + // Type <<>> + $this->content->set_('customfield_' . $data['type'], 'Type', + StringHelper::safe( + $data['custom']['type'], 'F' + ) + ); + // type <<>> + $this->content->set_('customfield_' . $data['type'], 'type', StringHelper::safe($data['custom']['type'])); + // is this a own custom field + if (isset($data['custom']['own_custom'])) + { + // make sure the button option notice is set to notify the developer that the button option is not available in own custom field types + if (isset($data['custom']['add_button']) + && ($data['custom']['add_button'] === 'true' + || 1 == $data['custom']['add_button'])) + { + // set error + $this->app->enqueueMessage( + Text::_('COM_COMPONENTBUILDER_HR_HTHREEDYNAMIC_BUTTON_ERRORHTHREE'), 'Error' + ); + $this->app->enqueueMessage( + Text::_('COM_COMPONENTBUILDER_THE_OPTION_TO_ADD_A_DYNAMIC_BUTTON_IS_NOT_AVAILABLE_IN_BOWN_CUSTOM_FIELD_TYPESB_YOU_WILL_HAVE_TO_CUSTOM_CODE_IT'), 'Error' + ); + } + // load another file + $target = array('admin' => 'customfield'); + $this->structure->build( + $target, 'fieldcustom', $data['custom']['type'] + ); + // get the extends name + $JFORM_extends = StringHelper::safe( + $data['custom']['extends'] + ); + // JFORM_TYPE_HEADER <<>> + $add_default_header = true; + $this->content->set_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER', + "//" . Line::_( + __LINE__,__CLASS__ + ) . " Import the " . $JFORM_extends + . " field type classes needed" + ); + // JFORM_extens <<>> + $this->content->set_('customfield_' . $data['type'], + 'JFORM_extends', $JFORM_extends + ); + // JFORM_EXTENDS <<>> + $this->content->set_('customfield_' . $data['type'], 'JFORM_EXTENDS', + StringHelper::safe( + $data['custom']['extends'], 'F' + ) + ); + // JFORM_TYPE_PHP <<>> + $this->content->set_('customfield_' . $data['type'], 'JFORM_TYPE_PHP', + PHP_EOL . PHP_EOL . Indent::_(1) . "//" . Line::_( + __LINE__,__CLASS__ + ) . " A " . $data['custom']['own_custom'] . " Field" + ); + // load the other PHP options + foreach ($this->phpFieldArray as $x) + { + // reset the php bucket + $phpBucket = ''; + // only set if available + if (isset($data['custom']['php' . $x]) + && ArrayHelper::check( + $data['custom']['php' . $x] + )) + { + foreach ($data['custom']['php' . $x] as $line => $code) + { + if (StringHelper::check($code)) + { + $phpBucket .= PHP_EOL . $this->placeholder->update( + $code, $tabBreak + ); + } + } + // check if this is header text + if ('HEADER' === $x) + { + $this->content->add_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER', + PHP_EOL . $this->placeholder->update( + $phpBucket, $replace + ) + ); + // stop default headers from loading + $add_default_header = false; + } + else + { + // JFORM_TYPE_PHP <<>> + $this->content->add_('customfield_' . $data['type'], 'JFORM_TYPE_PHP', + PHP_EOL . $this->placeholder->update( + $phpBucket, $replace + ) + ); + } + } + } + // check if we should add default header + if ($add_default_header) + { + $this->content->add_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER', + PHP_EOL . "jimport('joomla.form.helper');" + ); + $this->content->add_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER', + PHP_EOL . "JFormHelper::loadFieldClass('" . $JFORM_extends . "');" + ); + } + // check the the JFormHelper::loadFieldClass(..) was set + elseif (strpos((string) $this->content->get_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER'), + 'JFormHelper::loadFieldClass(') === false) + { + $this->content->add_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER', + PHP_EOL . "JFormHelper::loadFieldClass('" + . $JFORM_extends . "');" + ); + } + } + else + { + // first build the custom field type file + $target = array('admin' => 'customfield'); + $this->structure->build( + $target, 'field' . $data['custom']['extends'], + $data['custom']['type'] + ); + // make sure the value is reset + $phpCode = ''; + // now load the php script + if (isset($data['custom']['php']) + && ArrayHelper::check( + $data['custom']['php'] + )) + { + foreach ($data['custom']['php'] as $line => $code) + { + if (StringHelper::check($code)) + { + if ($line == 1) + { + $phpCode .= $this->placeholder->update( + $code, $tabBreak + ); + } + else + { + $phpCode .= PHP_EOL . Indent::_(2) + . $this->placeholder->update($code, $tabBreak); + } + } + } + // replace the placholders + $phpCode = $this->placeholder->update($phpCode, $replace); + } + // catch empty stuff + if (!StringHelper::check($phpCode)) + { + $phpCode = 'return null;'; + } + // some house cleaning for users + if ($data['custom']['extends'] === 'user') + { + // make sure the value is reset + $phpxCode = ''; + // now load the php xclude script + if (ArrayHelper::check( + $data['custom']['phpx'] + )) + { + foreach ($data['custom']['phpx'] as $line => $code) + { + if (StringHelper::check($code)) + { + if ($line == 1) + { + $phpxCode .= $this->placeholder->update( + $code, $tabBreak + ); + } + else + { + $phpxCode .= PHP_EOL . Indent::_(2) + . $this->placeholder->update( + $code, $tabBreak + ); + } + } + } + // replace the placholders + $phpxCode = $this->placeholder->update($phpxCode, $replace); + } + // catch empty stuff + if (!StringHelper::check($phpxCode)) + { + $phpxCode = 'return null;'; + } + // temp holder for name + $tempName = $data['custom']['label'] . ' Group'; + // set lang + $groupLangName = $this->config->lang_prefix . '_' + . FieldHelper::safe( + $tempName, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $groupLangName, + StringHelper::safe($tempName, 'W') + ); + // build the Group Control + $this->fieldgroupcontrol->set($data['type'], $groupLangName); + // JFORM_GETGROUPS_PHP <<>> + $this->content->set_('customfield_' . $data['type'], 'JFORM_GETGROUPS_PHP', + $phpCode + ); + // JFORM_GETEXCLUDED_PHP <<>> + $this->content->set_('customfield_' . $data['type'], 'JFORM_GETEXCLUDED_PHP', + $phpxCode + ); + } + else + { + // JFORM_GETOPTIONS_PHP <<>> + $this->content->set_('customfield_' . $data['type'], 'JFORM_GETOPTIONS_PHP', + $phpCode + ); + } + // type <<>> + $this->content->set_('customfield_' . $data['type'], 'ADD_BUTTON', + $this->inputbutton->get($data['custom']) + ); + } + } + // if this field gets used in plug-in or module we should track it so if needed we can copy it over + if ((strpos($nameSingleCode, 'P|uG!n') !== false || strpos($nameSingleCode, 'M0dU|3') !== false) + && isset($data['custom']) + && isset($data['custom']['type'])) + { + $this->extensioncustomfields->set($data['type'], $data['custom']['type']); + } + } +} + diff --git a/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/code.power b/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/code.power new file mode 100644 index 0000000..c54df95 --- /dev/null +++ b/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/code.power @@ -0,0 +1,477 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Content Class. + * + * @var Content + * @since 3.2.0 + */ + protected Content $content; + + /** + * The SiteFieldData Class. + * + * @var SiteField + * @since 3.2.0 + */ + protected SiteField $sitefield; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The Placeholder Class. + * + * @var ComponentPlaceholder + * @since 3.2.0 + */ + protected ComponentPlaceholder $componentplaceholder; + + /** + * The Structure Class. + * + * @var Structure + * @since 3.2.0 + */ + protected Structure $structure; + + /** + * The InputButton Class. + * + * @var InputButton + * @since 3.2.0 + */ + protected InputButton $inputbutton; + + /** + * The FieldGroupControl Class. + * + * @var FieldGroupControl + * @since 3.2.0 + */ + protected FieldGroupControl $fieldgroupcontrol; + + /** + * The ExtensionCustomFields Class. + * + * @var ExtensionCustomFields + * @since 3.2.0 + */ + protected ExtensionCustomFields $extensioncustomfields; + + /** + * Application object. + * + * @var CMSApplication + * @since 3.2.0 + **/ + protected CMSApplication $app; + + /** + * Array of php fields Allowed (16) + * + * @var array + * @since 3.2.0 + **/ + protected array $phpFieldArray = ['', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'x', 'HEADER']; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Content $content The Content Class. + * @param SiteField $sitefield The SiteFieldData Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Language $language The Language Class. + * @param ComponentPlaceholder $componentplaceholder The Placeholder Class. + * @param Structure $structure The Structure Class. + * @param InputButton $inputbutton The InputButton Class. + * @param FieldGroupControl $fieldgroupcontrol The FieldGroupControl Class. + * @param ExtensionCustomFields $extensioncustomfields The ExtensionCustomFields Class. + * @param CMSApplication|null $app The app object. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Content $content, SiteField $sitefield, + Placeholder $placeholder, Language $language, + ComponentPlaceholder $componentplaceholder, + Structure $structure, InputButton $inputbutton, + FieldGroupControl $fieldgroupcontrol, + ExtensionCustomFields $extensioncustomfields, + ?CMSApplication $app = null) + { + $this->config = $config; + $this->content = $content; + $this->sitefield = $sitefield; + $this->placeholder = $placeholder; + $this->language = $language; + $this->componentplaceholder = $componentplaceholder; + $this->structure = $structure; + $this->inputbutton = $inputbutton; + $this->fieldgroupcontrol = $fieldgroupcontrol; + $this->extensioncustomfields = $extensioncustomfields; + $this->app = $app ?: Factory::getApplication(); + } + + /** + * set Custom Field Type File + * + * @param array $data The field complete data set + * @param string $nameListCode The list view code name + * @param string $nameSingleCode The single view code name + * + * @return void + * @since 3.2.0 + */ + public function set(array $data, string $nameListCode, string $nameSingleCode): void + { + // make sure it is not already been build or if it is prime + if (isset($data['custom']) && isset($data['custom']['extends']) + && ((isset($data['custom']['prime_php']) + && $data['custom']['prime_php'] == 1) + || !$this->content->exist_('customfield_' . $data['type']) + || !ArrayHelper::check( + $this->content->get_('customfield_' . $data['type']) + ) + )) + { + // set J prefix + $jprefix = 'J'; + // check if this field has a dot in field type name + if (strpos((string) $data['type'], '.') !== false) + { + // so we have name spacing in custom field type name + $dotTypeArray = explode('.', (string) $data['type']); + // set the J prefix + if (count((array) $dotTypeArray) > 1) + { + $jprefix = strtoupper(array_shift($dotTypeArray)); + } + // update the type name now + $data['type'] = implode('', $dotTypeArray); + $data['custom']['type'] = $data['type']; + } + // set tab and break replacements + $tabBreak = array( + '\t' => Indent::_(1), + '\n' => PHP_EOL + ); + // set the [[[PLACEHOLDER]]] options + $replace = array( + Placefix::_('JPREFIX') => $jprefix, + Placefix::_('TABLE') => (isset($data['custom']['table'])) + ? $data['custom']['table'] : '', + Placefix::_('ID') => (isset($data['custom']['id'])) + ? $data['custom']['id'] : '', + Placefix::_('TEXT') => (isset($data['custom']['text'])) + ? $data['custom']['text'] : '', + Placefix::_('CODE_TEXT') => (isset($data['code'], $data['custom']['text'])) + ? $data['code'] . '_' . $data['custom']['text'] : '', + Placefix::_('CODE') => (isset($data['code'])) + ? $data['code'] : '', + Placefix::_('view_type') => $nameSingleCode + . '_' . $data['type'], + Placefix::_('type') => (isset($data['type'])) + ? $data['type'] : '', + Placefix::_('com_component') => (isset($data['custom']['component']) + && StringHelper::check( + $data['custom']['component'] + )) ? StringHelper::safe( + $data['custom']['component'] + ) : 'com_' . $this->config->component_code_name, + // set the generic values + Placefix::_('component') => $this->config->component_code_name, + Placefix::_('Component') => $this->content->get('Component'), + Placefix::_('view') => (isset($data['custom']['view']) + && StringHelper::check( + $data['custom']['view'] + )) ? StringHelper::safe( + $data['custom']['view'] + ) : $nameSingleCode, + Placefix::_('views') => (isset($data['custom']['views']) + && StringHelper::check( + $data['custom']['views'] + )) ? StringHelper::safe( + $data['custom']['views'] + ) : $nameListCode + ); + // now set the ###PLACEHOLDER### options + foreach ($replace as $replacekey => $replacevalue) + { + // update the key value + $replacekey = str_replace( + array(Placefix::b(), Placefix::d()), + array(Placefix::h(), Placefix::h()), $replacekey + ); + // now set the value + $replace[$replacekey] = $replacevalue; + } + // load the global placeholders + foreach ($this->componentplaceholder->get() as $globalPlaceholder => $gloabalValue) + { + $replace[$globalPlaceholder] = $gloabalValue; + } + // start loading the field type + // $this->fileContentDynamic['customfield_' . $data['type']] = array(); + // JPREFIX <<>> + $this->content->set_('customfield_' . $data['type'], 'JPREFIX', $jprefix); + // Type <<>> + $this->content->set_('customfield_' . $data['type'], 'Type', + StringHelper::safe( + $data['custom']['type'], 'F' + ) + ); + // type <<>> + $this->content->set_('customfield_' . $data['type'], 'type', StringHelper::safe($data['custom']['type'])); + // is this a own custom field + if (isset($data['custom']['own_custom'])) + { + // make sure the button option notice is set to notify the developer that the button option is not available in own custom field types + if (isset($data['custom']['add_button']) + && ($data['custom']['add_button'] === 'true' + || 1 == $data['custom']['add_button'])) + { + // set error + $this->app->enqueueMessage( + Text::_('

Dynamic Button Error

'), 'Error' + ); + $this->app->enqueueMessage( + Text::_('The option to add a dynamic button is not available in own custom field types, you will have to custom code it.'), 'Error' + ); + } + // load another file + $target = array('admin' => 'customfield'); + $this->structure->build( + $target, 'fieldcustom', $data['custom']['type'] + ); + // get the extends name + $JFORM_extends = StringHelper::safe( + $data['custom']['extends'] + ); + // JFORM_TYPE_HEADER <<>> + $add_default_header = true; + $this->content->set_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER', + "//" . Line::_( + __LINE__,__CLASS__ + ) . " Import the " . $JFORM_extends + . " field type classes needed" + ); + // JFORM_extens <<>> + $this->content->set_('customfield_' . $data['type'], + 'JFORM_extends', $JFORM_extends + ); + // JFORM_EXTENDS <<>> + $this->content->set_('customfield_' . $data['type'], 'JFORM_EXTENDS', + StringHelper::safe( + $data['custom']['extends'], 'F' + ) + ); + // JFORM_TYPE_PHP <<>> + $this->content->set_('customfield_' . $data['type'], 'JFORM_TYPE_PHP', + PHP_EOL . PHP_EOL . Indent::_(1) . "//" . Line::_( + __LINE__,__CLASS__ + ) . " A " . $data['custom']['own_custom'] . " Field" + ); + // load the other PHP options + foreach ($this->phpFieldArray as $x) + { + // reset the php bucket + $phpBucket = ''; + // only set if available + if (isset($data['custom']['php' . $x]) + && ArrayHelper::check( + $data['custom']['php' . $x] + )) + { + foreach ($data['custom']['php' . $x] as $line => $code) + { + if (StringHelper::check($code)) + { + $phpBucket .= PHP_EOL . $this->placeholder->update( + $code, $tabBreak + ); + } + } + // check if this is header text + if ('HEADER' === $x) + { + $this->content->add_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER', + PHP_EOL . $this->placeholder->update( + $phpBucket, $replace + ) + ); + // stop default headers from loading + $add_default_header = false; + } + else + { + // JFORM_TYPE_PHP <<>> + $this->content->add_('customfield_' . $data['type'], 'JFORM_TYPE_PHP', + PHP_EOL . $this->placeholder->update( + $phpBucket, $replace + ) + ); + } + } + } + // check if we should add default header + if ($add_default_header) + { + $this->content->add_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER', + PHP_EOL . "jimport('joomla.form.helper');" + ); + $this->content->add_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER', + PHP_EOL . "JFormHelper::loadFieldClass('" . $JFORM_extends . "');" + ); + } + // check the the JFormHelper::loadFieldClass(..) was set + elseif (strpos((string) $this->content->get_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER'), + 'JFormHelper::loadFieldClass(') === false) + { + $this->content->add_('customfield_' . $data['type'], 'JFORM_TYPE_HEADER', + PHP_EOL . "JFormHelper::loadFieldClass('" + . $JFORM_extends . "');" + ); + } + } + else + { + // first build the custom field type file + $target = array('admin' => 'customfield'); + $this->structure->build( + $target, 'field' . $data['custom']['extends'], + $data['custom']['type'] + ); + // make sure the value is reset + $phpCode = ''; + // now load the php script + if (isset($data['custom']['php']) + && ArrayHelper::check( + $data['custom']['php'] + )) + { + foreach ($data['custom']['php'] as $line => $code) + { + if (StringHelper::check($code)) + { + if ($line == 1) + { + $phpCode .= $this->placeholder->update( + $code, $tabBreak + ); + } + else + { + $phpCode .= PHP_EOL . Indent::_(2) + . $this->placeholder->update($code, $tabBreak); + } + } + } + // replace the placholders + $phpCode = $this->placeholder->update($phpCode, $replace); + } + // catch empty stuff + if (!StringHelper::check($phpCode)) + { + $phpCode = 'return null;'; + } + // some house cleaning for users + if ($data['custom']['extends'] === 'user') + { + // make sure the value is reset + $phpxCode = ''; + // now load the php xclude script + if (ArrayHelper::check( + $data['custom']['phpx'] + )) + { + foreach ($data['custom']['phpx'] as $line => $code) + { + if (StringHelper::check($code)) + { + if ($line == 1) + { + $phpxCode .= $this->placeholder->update( + $code, $tabBreak + ); + } + else + { + $phpxCode .= PHP_EOL . Indent::_(2) + . $this->placeholder->update( + $code, $tabBreak + ); + } + } + } + // replace the placholders + $phpxCode = $this->placeholder->update($phpxCode, $replace); + } + // catch empty stuff + if (!StringHelper::check($phpxCode)) + { + $phpxCode = 'return null;'; + } + // temp holder for name + $tempName = $data['custom']['label'] . ' Group'; + // set lang + $groupLangName = $this->config->lang_prefix . '_' + . FieldHelper::safe( + $tempName, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $groupLangName, + StringHelper::safe($tempName, 'W') + ); + // build the Group Control + $this->fieldgroupcontrol->set($data['type'], $groupLangName); + // JFORM_GETGROUPS_PHP <<>> + $this->content->set_('customfield_' . $data['type'], 'JFORM_GETGROUPS_PHP', + $phpCode + ); + // JFORM_GETEXCLUDED_PHP <<>> + $this->content->set_('customfield_' . $data['type'], 'JFORM_GETEXCLUDED_PHP', + $phpxCode + ); + } + else + { + // JFORM_GETOPTIONS_PHP <<>> + $this->content->set_('customfield_' . $data['type'], 'JFORM_GETOPTIONS_PHP', + $phpCode + ); + } + // type <<>> + $this->content->set_('customfield_' . $data['type'], 'ADD_BUTTON', + $this->inputbutton->get($data['custom']) + ); + } + } + // if this field gets used in plug-in or module we should track it so if needed we can copy it over + if ((strpos($nameSingleCode, 'P|uG!n') !== false || strpos($nameSingleCode, 'M0dU|3') !== false) + && isset($data['custom']) + && isset($data['custom']['type'])) + { + $this->extensioncustomfields->set($data['type'], $data['custom']['type']); + } + } \ No newline at end of file diff --git a/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/settings.json b/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/settings.json new file mode 100644 index 0000000..f379586 --- /dev/null +++ b/src/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96/settings.json @@ -0,0 +1,83 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "0", + "guid": "6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96", + "implements": null, + "load_selection": null, + "name": "CustomFieldTypeFile", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.CustomFieldTypeFile", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "adfbe68a-6d22-43e5-aee8-2787e8c47e75", + "as": "default" + }, + "use_selection2": { + "use": "33f5131e-4a5b-414b-95dd-d22227c2666d", + "as": "SiteField" + }, + "use_selection3": { + "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", + "as": "default" + }, + "use_selection4": { + "use": "8eee7df5-2775-41a9-9372-c46c5939a252", + "as": "default" + }, + "use_selection5": { + "use": "aecc17ba-0b0f-4e5c-ae43-71be063a3dcb", + "as": "ComponentPlaceholder" + }, + "use_selection6": { + "use": "1efdded5-d6c8-452c-8f37-0374483a7b3f", + "as": "default" + }, + "use_selection7": { + "use": "c600f58c-3fe2-4d2d-b711-2660eab6effe", + "as": "default" + }, + "use_selection8": { + "use": "d5530adf-c809-45a9-87fc-7cecd3d972d8", + "as": "default" + }, + "use_selection9": { + "use": "e9b6b06b-f600-4f9d-984d-79c70ae7ae92", + "as": "default" + }, + "use_selection10": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + }, + "use_selection11": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection12": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + }, + "use_selection13": { + "use": "500f3a7f-c16d-4dd4-81b2-2df6776b5388", + "as": "default" + }, + "use_selection14": { + "use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222", + "as": "default" + }, + "use_selection15": { + "use": "9ef0eb24-aae4-4f5a-99af-d724db44808f", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.CustomFieldTypeFile", + "description": "Custom Field Type File Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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;\r\nuse Joomla\\CMS\\Application\\CMSApplication;", + "composer": "" +} \ No newline at end of file diff --git a/src/6f20369a-8536-4870-a1a3-cda254c939c8/README.md b/src/6f20369a-8536-4870-a1a3-cda254c939c8/README.md index d8249fb..2da08aa 100644 --- a/src/6f20369a-8536-4870-a1a3-cda254c939c8/README.md +++ b/src/6f20369a-8536-4870-a1a3-cda254c939c8/README.md @@ -8,6 +8,7 @@ ``` # class Paths (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler\Utilities** +> extends: **MapperSingle** ```uml @startuml class Paths #Gold { diff --git a/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/README.md b/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/README.md new file mode 100644 index 0000000..4417e35 --- /dev/null +++ b/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/README.md @@ -0,0 +1,77 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# class Database (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Service** +```uml +@startuml +class Database #Gold { + + register(Container $container) : void + + getModelLoad(Container $container) : ModelLoad + + getModelUpsert(Container $container) : ModelUpsert + + getLoadDatabase(Container $container) : LoadDatabase + + getInsertDatabase(Container $container) : InsertDatabase + + getUpdateDatabase(Container $container) : UpdateDatabase +} + +note right of Database::register + Registers the service provider with a DI container. + + since: 3.2.0 + return: void +end note + +note right of Database::getModelLoad + Get the Power Model Load + + since: 3.2.0 + return: ModelLoad +end note + +note right of Database::getModelUpsert + Get the Power Model Update or Insert + + since: 3.2.0 + return: ModelUpsert +end note + +note right of Database::getLoadDatabase + Get the Load Database + + since: 3.2.0 + return: LoadDatabase +end note + +note right of Database::getInsertDatabase + Get the Insert Database + + since: 3.2.0 + return: InsertDatabase +end note + +note right of Database::getUpdateDatabase + Get the Update Database + + since: 3.2.0 + return: UpdateDatabase +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/code.php b/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/code.php new file mode 100644 index 0000000..4b1a238 --- /dev/null +++ b/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/code.php @@ -0,0 +1,135 @@ + + * @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\Power\Service; + + +use Joomla\DI\Container; +use Joomla\DI\ServiceProviderInterface; +use VDM\Joomla\Componentbuilder\Power\Model\Load as ModelLoad; +use VDM\Joomla\Componentbuilder\Power\Model\Upsert as ModelUpsert; +use VDM\Joomla\Componentbuilder\Power\Database\Load as LoadDatabase; +use VDM\Joomla\Componentbuilder\Power\Database\Insert as InsertDatabase; +use VDM\Joomla\Componentbuilder\Power\Database\Update as UpdateDatabase; + + +/** + * Database Service Provider + * + * @since 3.2.0 + */ +class Database implements ServiceProviderInterface +{ + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(ModelLoad::class, 'Power.Model.Load') + ->share('Power.Model.Load', [$this, 'getModelLoad'], true); + + $container->alias(ModelUpsert::class, 'Power.Model.Upsert') + ->share('Power.Model.Upsert', [$this, 'getModelUpsert'], true); + + $container->alias(LoadDatabase::class, 'Power.Database.Load') + ->share('Power.Database.Load', [$this, 'getLoadDatabase'], true); + + $container->alias(InsertDatabase::class, 'Power.Database.Insert') + ->share('Power.Database.Insert', [$this, 'getInsertDatabase'], true); + + $container->alias(UpdateDatabase::class, 'Power.Database.Update') + ->share('Power.Database.Update', [$this, 'getUpdateDatabase'], true); + } + + /** + * Get the Power Model Load + * + * @param Container $container The DI container. + * + * @return ModelLoad + * @since 3.2.0 + */ + public function getModelLoad(Container $container): ModelLoad + { + return new ModelLoad( + $container->get('Table') + ); + } + + /** + * Get the Power Model Update or Insert + * + * @param Container $container The DI container. + * + * @return ModelUpsert + * @since 3.2.0 + */ + public function getModelUpsert(Container $container): ModelUpsert + { + return new ModelUpsert( + $container->get('Table') + ); + } + + /** + * Get the Load Database + * + * @param Container $container The DI container. + * + * @return LoadDatabase + * @since 3.2.0 + */ + public function getLoadDatabase(Container $container): LoadDatabase + { + return new LoadDatabase( + $container->get('Power.Model.Load'), + $container->get('Load') + ); + } + + /** + * Get the Insert Database + * + * @param Container $container The DI container. + * + * @return InsertDatabase + * @since 3.2.0 + */ + public function getInsertDatabase(Container $container): InsertDatabase + { + return new InsertDatabase( + $container->get('Power.Model.Upsert'), + $container->get('Insert') + ); + } + + /** + * Get the Update Database + * + * @param Container $container The DI container. + * + * @return UpdateDatabase + * @since 3.2.0 + */ + public function getUpdateDatabase(Container $container): UpdateDatabase + { + return new UpdateDatabase( + $container->get('Power.Model.Upsert'), + $container->get('Update') + ); + } +} + diff --git a/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/code.power b/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/code.power new file mode 100644 index 0000000..c02fb62 --- /dev/null +++ b/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/code.power @@ -0,0 +1,103 @@ + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(ModelLoad::class, 'Power.Model.Load') + ->share('Power.Model.Load', [$this, 'getModelLoad'], true); + + $container->alias(ModelUpsert::class, 'Power.Model.Upsert') + ->share('Power.Model.Upsert', [$this, 'getModelUpsert'], true); + + $container->alias(LoadDatabase::class, 'Power.Database.Load') + ->share('Power.Database.Load', [$this, 'getLoadDatabase'], true); + + $container->alias(InsertDatabase::class, 'Power.Database.Insert') + ->share('Power.Database.Insert', [$this, 'getInsertDatabase'], true); + + $container->alias(UpdateDatabase::class, 'Power.Database.Update') + ->share('Power.Database.Update', [$this, 'getUpdateDatabase'], true); + } + + /** + * Get the Power Model Load + * + * @param Container $container The DI container. + * + * @return ModelLoad + * @since 3.2.0 + */ + public function getModelLoad(Container $container): ModelLoad + { + return new ModelLoad( + $container->get('Table') + ); + } + + /** + * Get the Power Model Update or Insert + * + * @param Container $container The DI container. + * + * @return ModelUpsert + * @since 3.2.0 + */ + public function getModelUpsert(Container $container): ModelUpsert + { + return new ModelUpsert( + $container->get('Table') + ); + } + + /** + * Get the Load Database + * + * @param Container $container The DI container. + * + * @return LoadDatabase + * @since 3.2.0 + */ + public function getLoadDatabase(Container $container): LoadDatabase + { + return new LoadDatabase( + $container->get('Power.Model.Load'), + $container->get('Load') + ); + } + + /** + * Get the Insert Database + * + * @param Container $container The DI container. + * + * @return InsertDatabase + * @since 3.2.0 + */ + public function getInsertDatabase(Container $container): InsertDatabase + { + return new InsertDatabase( + $container->get('Power.Model.Upsert'), + $container->get('Insert') + ); + } + + /** + * Get the Update Database + * + * @param Container $container The DI container. + * + * @return UpdateDatabase + * @since 3.2.0 + */ + public function getUpdateDatabase(Container $container): UpdateDatabase + { + return new UpdateDatabase( + $container->get('Power.Model.Upsert'), + $container->get('Update') + ); + } \ No newline at end of file diff --git a/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/settings.json b/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/settings.json new file mode 100644 index 0000000..1c48964 --- /dev/null +++ b/src/7243aaf6-b76c-4391-8698-50abbfc98fbe/settings.json @@ -0,0 +1,42 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "0", + "guid": "7243aaf6-b76c-4391-8698-50abbfc98fbe", + "implements": [ + "-1" + ], + "load_selection": null, + "name": "Database", + "power_version": "1.0.0", + "system_name": "JCB.Power.Service.Database", + "type": "class", + "use_selection": { + "use_selection0": { + "use": "bb29a833-73f7-4283-9327-bc7e41f0723b", + "as": "ModelLoad" + }, + "use_selection1": { + "use": "7c1fb50f-8fb1-4627-8705-6fedf7182ca5", + "as": "ModelUpsert" + }, + "use_selection2": { + "use": "1f86db0f-e271-45df-8795-3e503ec76698", + "as": "LoadDatabase" + }, + "use_selection3": { + "use": "380bb7a3-cdcc-4336-a699-5070cbf521a5", + "as": "InsertDatabase" + }, + "use_selection4": { + "use": "e543c123-b1d9-4a0b-83b2-a9d371da5ff3", + "as": "UpdateDatabase" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Service.Database", + "description": "Database Service Provider\r\n\r\n@since 3.2.0", + "implements_custom": "ServiceProviderInterface", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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\\DI\\Container;\r\nuse Joomla\\DI\\ServiceProviderInterface;", + "composer": "" +} \ No newline at end of file diff --git a/src/7415fdb4-5719-40b7-b01f-05588e968b47/README.md b/src/7415fdb4-5719-40b7-b01f-05588e968b47/README.md new file mode 100644 index 0000000..7a80d8f --- /dev/null +++ b/src/7415fdb4-5719-40b7-b01f-05588e968b47/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class LayoutData (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class LayoutData << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/7415fdb4-5719-40b7-b01f-05588e968b47/code.php b/src/7415fdb4-5719-40b7-b01f-05588e968b47/code.php new file mode 100644 index 0000000..046368d --- /dev/null +++ b/src/7415fdb4-5719-40b7-b01f-05588e968b47/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Layout Data Builder Class + * + * @since 3.2.0 + */ +final class LayoutData extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/7415fdb4-5719-40b7-b01f-05588e968b47/code.power b/src/7415fdb4-5719-40b7-b01f-05588e968b47/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/7415fdb4-5719-40b7-b01f-05588e968b47/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/7415fdb4-5719-40b7-b01f-05588e968b47/settings.json b/src/7415fdb4-5719-40b7-b01f-05588e968b47/settings.json new file mode 100644 index 0000000..27a3b6d --- /dev/null +++ b/src/7415fdb4-5719-40b7-b01f-05588e968b47/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "7415fdb4-5719-40b7-b01f-05588e968b47", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "LayoutData", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.LayoutData", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.LayoutData", + "description": "Layout Data Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/74595661-236d-4aa1-99f3-358d093000be/README.md b/src/74595661-236d-4aa1-99f3-358d093000be/README.md new file mode 100644 index 0000000..c2eb981 --- /dev/null +++ b/src/74595661-236d-4aa1-99f3-358d093000be/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class OtherQuery (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class OtherQuery << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/74595661-236d-4aa1-99f3-358d093000be/code.php b/src/74595661-236d-4aa1-99f3-358d093000be/code.php new file mode 100644 index 0000000..0892287 --- /dev/null +++ b/src/74595661-236d-4aa1-99f3-358d093000be/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Other Query Builder Class + * + * @since 3.2.0 + */ +final class OtherQuery extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/74595661-236d-4aa1-99f3-358d093000be/code.power b/src/74595661-236d-4aa1-99f3-358d093000be/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/74595661-236d-4aa1-99f3-358d093000be/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/74595661-236d-4aa1-99f3-358d093000be/settings.json b/src/74595661-236d-4aa1-99f3-358d093000be/settings.json new file mode 100644 index 0000000..8a6a225 --- /dev/null +++ b/src/74595661-236d-4aa1-99f3-358d093000be/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "74595661-236d-4aa1-99f3-358d093000be", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "OtherQuery", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.OtherQuery", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.OtherQuery", + "description": "Other Query Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/7506a35c-fa32-44ab-bd41-363439b20b82/README.md b/src/7506a35c-fa32-44ab-bd41-363439b20b82/README.md new file mode 100644 index 0000000..6cbd803 --- /dev/null +++ b/src/7506a35c-fa32-44ab-bd41-363439b20b82/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ListHeadOverride (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ListHeadOverride << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/7506a35c-fa32-44ab-bd41-363439b20b82/code.php b/src/7506a35c-fa32-44ab-bd41-363439b20b82/code.php new file mode 100644 index 0000000..f59d911 --- /dev/null +++ b/src/7506a35c-fa32-44ab-bd41-363439b20b82/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * List Head Override Builder Class + * + * @since 3.2.0 + */ +final class ListHeadOverride extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/7506a35c-fa32-44ab-bd41-363439b20b82/code.power b/src/7506a35c-fa32-44ab-bd41-363439b20b82/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/7506a35c-fa32-44ab-bd41-363439b20b82/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/7506a35c-fa32-44ab-bd41-363439b20b82/settings.json b/src/7506a35c-fa32-44ab-bd41-363439b20b82/settings.json new file mode 100644 index 0000000..a603861 --- /dev/null +++ b/src/7506a35c-fa32-44ab-bd41-363439b20b82/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "7506a35c-fa32-44ab-bd41-363439b20b82", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ListHeadOverride", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ListHeadOverride", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ListHeadOverride", + "description": "List Head Override Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/763d137c-42bc-4282-98d8-cc5c0654985f/README.md b/src/763d137c-42bc-4282-98d8-cc5c0654985f/README.md index e370f8c..cb1039e 100644 --- a/src/763d137c-42bc-4282-98d8-cc5c0654985f/README.md +++ b/src/763d137c-42bc-4282-98d8-cc5c0654985f/README.md @@ -10,7 +10,7 @@ > namespace: **VDM\Joomla\Componentbuilder\Compiler\Power** ```uml @startuml -class Injector << (F,LightGreen) >> #Green { +class Injector << (F,LightGreen) >> #RoyalBlue { # Power $power # Extractor $extractor # Parser $parser diff --git a/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/README.md b/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/README.md index 7d2f1b2..4f2ea60 100644 --- a/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/README.md +++ b/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/README.md @@ -15,7 +15,7 @@ interface Mappersingleinterface #Lavender { + set(string $key, mixed $value) : void + get(string $key) : mixed + exist(string $key) : bool - + add(string $key, mixed $value) : void + + add(string $key, mixed $value, ...) : void + remove(string $key) : void } @@ -52,6 +52,11 @@ note right of Mappersingleinterface::add since: 3.2.0 return: void + + arguments: + string $key + mixed $value + bool $array = false end note note right of Mappersingleinterface::remove diff --git a/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/code.php b/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/code.php index b00e1fb..d8e4a7a 100644 --- a/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/code.php +++ b/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/code.php @@ -34,7 +34,7 @@ interface Mappersingleinterface * @return void * @since 3.2.0 */ - public function set(string $key, $value); + public function set(string $key, $value): void; /** * Get content @@ -62,11 +62,12 @@ interface Mappersingleinterface * * @param string $key The main string key * @param mixed $value The values to set + * @param bool $array The is array switch * * @return void * @since 3.2.0 */ - public function add(string $key, $value); + public function add(string $key, $value, bool $array = false): void; /** * Remove content @@ -76,7 +77,6 @@ interface Mappersingleinterface * @return void * @since 3.2.0 */ - public function remove(string $key); - + public function remove(string $key): void; } diff --git a/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/code.power b/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/code.power index e600907..f6df07c 100644 --- a/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/code.power +++ b/src/78527c29-24ad-4735-ad4c-ec33a4952d9b/code.power @@ -15,7 +15,7 @@ * @return void * @since 3.2.0 */ - public function set(string $key, $value); + public function set(string $key, $value): void; /** * Get content @@ -43,11 +43,12 @@ * * @param string $key The main string key * @param mixed $value The values to set + * @param bool $array The is array switch * * @return void * @since 3.2.0 */ - public function add(string $key, $value); + public function add(string $key, $value, bool $array = false): void; /** * Remove content @@ -57,4 +58,4 @@ * @return void * @since 3.2.0 */ - public function remove(string $key); + public function remove(string $key): void; \ No newline at end of file diff --git a/src/79739667-72c6-4576-9830-7b1eb92e4791/README.md b/src/79739667-72c6-4576-9830-7b1eb92e4791/README.md new file mode 100644 index 0000000..6ee9c0e --- /dev/null +++ b/src/79739667-72c6-4576-9830-7b1eb92e4791/README.md @@ -0,0 +1,76 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FieldsetXML (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class FieldsetXML << (F,LightGreen) >> #RoyalBlue { + # Config $config + # Placeholder $placeholder + # Language $language + # Event $event + # Permission $permission + # FieldDynamic $fielddynamic + # FieldNames $fieldnames + # AccessSwitch $accessswitch + # MetaData $metadata + # Layout $layout + # Counter $counter + # Xml $xml + + __construct(Config $config, Placeholder $placeholder, ...) + + get(array $view, string $component, ...) : string +} + +note right of FieldsetXML::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + Placeholder $placeholder + Language $language + Event $event + Permission $permission + FieldDynamic $fielddynamic + FieldNames $fieldnames + AccessSwitch $accessswitch + MetaData $metadata + Layout $layout + Counter $counter + Xml $xml +end note + +note right of FieldsetXML::get + Get a fieldset + + since: 3.2.0 + return: string + + arguments: + array $view + string $component + string $nameSingleCode + string $nameListCode +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/79739667-72c6-4576-9830-7b1eb92e4791/code.php b/src/79739667-72c6-4576-9830-7b1eb92e4791/code.php new file mode 100644 index 0000000..4e5292c --- /dev/null +++ b/src/79739667-72c6-4576-9830-7b1eb92e4791/code.php @@ -0,0 +1,680 @@ + + * @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\Compiler\Creator; + + +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Placeholder; +use VDM\Joomla\Componentbuilder\Compiler\Language\Fieldset as Language; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\EventInterface as Event; +use VDM\Joomla\Componentbuilder\Compiler\Adminview\Permission; +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldDynamic; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldNames; +use VDM\Joomla\Componentbuilder\Compiler\Builder\AccessSwitch; +use VDM\Joomla\Componentbuilder\Compiler\Builder\MetaData; +use VDM\Joomla\Componentbuilder\Compiler\Creator\Layout; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Counter; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Xml; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line; +use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator\Fieldsetinterface; + + +/** + * Fieldset XML Creator Class + * + * @since 3.2.0 + */ +final class FieldsetXML implements Fieldsetinterface +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Fieldset Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The EventInterface Class. + * + * @var Event + * @since 3.2.0 + */ + protected Event $event; + + /** + * The Permission Class. + * + * @var Permission + * @since 3.2.0 + */ + protected Permission $permission; + + /** + * The FieldDynamic Class. + * + * @var FieldDynamic + * @since 3.2.0 + */ + protected FieldDynamic $fielddynamic; + + /** + * The FieldNames Class. + * + * @var FieldNames + * @since 3.2.0 + */ + protected FieldNames $fieldnames; + + /** + * The AccessSwitch Class. + * + * @var AccessSwitch + * @since 3.2.0 + */ + protected AccessSwitch $accessswitch; + + /** + * The MetaData Class. + * + * @var MetaData + * @since 3.2.0 + */ + protected MetaData $metadata; + + /** + * The Layout Class. + * + * @var Layout + * @since 3.2.0 + */ + protected Layout $layout; + + /** + * The Counter Class. + * + * @var Counter + * @since 3.2.0 + */ + protected Counter $counter; + + /** + * The Xml Class. + * + * @var Xml + * @since 3.2.0 + */ + protected Xml $xml; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Language $language The Fieldset Class. + * @param Event $event The EventInterface Class. + * @param Permission $permission The Permission Class. + * @param FieldDynamic $fielddynamic The FieldDynamic Class. + * @param FieldNames $fieldnames The FieldNames Class. + * @param AccessSwitch $accessswitch The AccessSwitch Class. + * @param MetaData $metadata The MetaData Class. + * @param Layout $layout The Layout Class. + * @param Counter $counter The Counter Class. + * @param Xml $xml The Xml Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Placeholder $placeholder, + Language $language, Event $event, Permission $permission, + FieldDynamic $fielddynamic, FieldNames $fieldnames, + AccessSwitch $accessswitch, MetaData $metadata, + Layout $layout, Counter $counter, Xml $xml) + { + $this->config = $config; + $this->placeholder = $placeholder; + $this->language = $language; + $this->event = $event; + $this->permission = $permission; + $this->fielddynamic = $fielddynamic; + $this->fieldnames = $fieldnames; + $this->accessswitch = $accessswitch; + $this->metadata = $metadata; + $this->layout = $layout; + $this->counter = $counter; + $this->xml = $xml; + } + + /** + * Get a fieldset + * + * @param array $view The view data + * @param string $component The component name + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * + * @return string The fields set as a string or empty string if no field found. + * @since 3.2.0 + */ + public function get(array $view, string $component, string $nameSingleCode, + string $nameListCode): string + { + // setup the fieldset language values of this view + if (!isset($view['settings']->fields) + || !ArrayHelper::check($view['settings']->fields)) + { + return ''; + } + + // add metadata to the view + $metadata = false; + if (isset($view['metadata']) && $view['metadata']) + { + $metadata = true; + } + + // add access to the view + $access = false; + if (isset($view['access']) && $view['access']) + { + $access = true; + } + + // main lang prefix + $lang_view = $this->config->lang_prefix . '_' + . $this->placeholder->get('VIEW'); + $lang_views = $this->config->lang_prefix . '_' + . $this->placeholder->get('VIEWS'); + + $name_single = $view['settings']->name_single ?? 'Error'; + $name_list = $view['settings']->name_list ?? 'Error'; + $lang_target = $this->config->lang_target ?? 'both'; + + // load the language values + $this->language->set( + $access, + $metadata, + $lang_target, + $lang_view, + $lang_views, + $name_single, + $name_list, + $nameSingleCode, + $nameListCode + ); + + // set the read only + $read_only_xml = []; + if ($view['settings']->type == 2) + { + $read_only_xml['readonly'] = true; + $read_only_xml['disabled'] = true; + } + // start adding dynamc fields + $dynamic_fields_xml = []; + // set the custom table key + $dbkey = 'g'; + // for plugin event TODO change event api signatures + $placeholders = $this->placeholder->active; + $component_context = $this->config->component_context; + // Trigger Event: jcb_ce_onBeforeBuildFields + $this->event->trigger( + 'jcb_ce_onBeforeBuildFields', + array(&$component_context, &$dynamic_fields_xml, &$read_only_xml, + &$dbkey, &$view, &$component, &$nameSingleCode, + &$nameListCode, &$placeholders, &$lang_view, + &$lang_views) + ); + unset($placeholders); + // TODO we should add the global and local view switch if field for front end + foreach ($view['settings']->fields as $field) + { + $dynamic_fields_xml[] = $this->fielddynamic->get( + $field, $view, $view['settings']->type, $lang_view, + $nameSingleCode, $nameListCode, $this->placeholder->active, $dbkey, + true + ); + } + // for plugin event TODO change event api signatures + $placeholders = $this->placeholder->active; + // Trigger Event: jcb_ce_onAfterBuildFields + $this->event->trigger( + 'jcb_ce_onAfterBuildFields', + array(&$component_context, &$dynamic_fields_xml, &$read_only_xml, + &$dbkey, &$view, &$component, &$nameSingleCode, + &$nameListCode, &$placeholders, &$lang_view, + &$lang_views) + ); + unset($placeholders); + // set the default fields + $main_xml = new \simpleXMLElement(''); + $field_set_xml = $main_xml->addChild('fieldset'); + $field_set_xml->addAttribute('name', 'details'); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) . " Default Fields." + ); + $this->xml->comment( + $field_set_xml, + Line::_(__Line__, __Class__) . " Id Field. Type: Text (joomla)" + ); + // if id is not set + if (!$this->fieldnames->isString($nameSingleCode . '.id')) + { + $attributes = [ + 'name' => 'id', + 'type' => 'text', + 'class' => 'readonly', + 'readonly' => "true", + 'label' => 'JGLOBAL_FIELD_ID_LABEL', + 'description' => 'JGLOBAL_FIELD_ID_DESC', + 'size' => 10, + 'default' => 0 + ]; + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if created is not set + if (!$this->fieldnames->isString($nameSingleCode . '.created')) + { + $attributes = [ + 'name' => 'created', + 'type' => 'calendar', + 'label' => $lang_view . '_CREATED_DATE_LABEL', + 'description' => $lang_view . '_CREATED_DATE_DESC', + 'size' => 22, + 'format' => '%Y-%m-%d %H:%M:%S', + 'filter' => 'user_utc' + ]; + $attributes = array_merge($attributes, $read_only_xml); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Date Created Field. Type: Calendar (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if created_by is not set + if (!$this->fieldnames->isString($nameSingleCode . '.created_by')) + { + $attributes = [ + 'name' => 'created_by', + 'type' => 'user', + 'label' => $lang_view . '_CREATED_BY_LABEL', + 'description' => $lang_view . '_CREATED_BY_DESC', + ]; + $attributes = array_merge($attributes, $read_only_xml); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " User Created Field. Type: User (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if published is not set + if (!$this->fieldnames->isString($nameSingleCode . '.published')) + { + $attributes = [ + 'name' => 'published', + 'type' => 'list', + 'label' => 'JSTATUS' + ]; + $attributes = array_merge($attributes, $read_only_xml); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Published Field. Type: List (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + foreach (['JPUBLISHED' => 1, 'JUNPUBLISHED' => 0, + 'JARCHIVED' => 2, 'JTRASHED' => -2] as $text => $value + ) + { + $optionXML = $field_xml->addChild('option'); + $optionXML->addAttribute('value', $value); + $optionXML[] = $text; + } + } + // if modified is not set + if (!$this->fieldnames->isString($nameSingleCode . '.modified')) + { + $attributes = [ + 'name' => 'modified', + 'type' => 'calendar', + 'class' => 'readonly', + 'label' => $lang_view . '_MODIFIED_DATE_LABEL', + 'description' => $lang_view . '_MODIFIED_DATE_DESC', + 'size' => 22, + 'readonly' => "true", + 'format' => '%Y-%m-%d %H:%M:%S', + 'filter' => 'user_utc' + ]; + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Date Modified Field. Type: Calendar (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if modified_by is not set + if (!$this->fieldnames->isString($nameSingleCode . '.modified_by')) + { + $attributes = [ + 'name' => 'modified_by', + 'type' => 'user', + 'label' => $lang_view . '_MODIFIED_BY_LABEL', + 'description' => $lang_view . '_MODIFIED_BY_DESC', + 'class' => 'readonly', + 'readonly' => 'true', + 'filter' => 'unset' + ]; + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " User Modified Field. Type: User (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // check if view has access + if ($this->accessswitch->exists($nameSingleCode) + && !$this->fieldnames->isString($nameSingleCode . '.access')) + { + $attributes = [ + 'name' => 'access', + 'type' => 'accesslevel', + 'label' => 'JFIELD_ACCESS_LABEL', + 'description' => 'JFIELD_ACCESS_DESC', + 'default' => 1, + 'required' => "false" + ]; + $attributes = array_merge($attributes, $read_only_xml); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Access Field. Type: Accesslevel (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if ordering is not set + if (!$this->fieldnames->isString($nameSingleCode . '.ordering')) + { + $attributes = [ + 'name' => 'ordering', + 'type' => 'number', + 'class' => 'inputbox validate-ordering', + 'label' => $lang_view . '_ORDERING_LABEL', + 'description' => '', + 'default' => 0, + 'size' => 6, + 'required' => "false" + ]; + $attributes = array_merge($attributes, $read_only_xml); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Ordering Field. Type: Numbers (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if version is not set + if (!$this->fieldnames->isString($nameSingleCode . '.version')) + { + $attributes = [ + 'name' => 'version', + 'type' => 'text', + 'class' => 'readonly', + 'label' => $lang_view . '_VERSION_LABEL', + 'description' => $lang_view . '_VERSION_DESC', + 'size' => 6, + 'readonly' => "true", + 'filter' => 'unset' + ]; + $this->xml->comment( + $field_set_xml, + Line::_(__Line__, __Class__) . " Version Field. Type: Text (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // check if metadata is added to this view + if ($this->metadata->isString($nameSingleCode)) + { + // metakey + if (!$this->fieldnames->isString($nameSingleCode . '.metakey')) + { + $attributes = [ + 'name' => 'metakey', + 'type' => 'textarea', + 'label' => 'JFIELD_META_KEYWORDS_LABEL', + 'description' => 'JFIELD_META_KEYWORDS_DESC', + 'rows' => 3, + 'cols' => 30 + ]; + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Metakey Field. Type: Textarea (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes( + $field_xml, $attributes + ); + // count the static field created + $this->counter->field++; + } + // metadesc + if (!$this->fieldnames->isString($nameSingleCode . '.metadesc')) + { + $attributes['name'] = 'metadesc'; + $attributes['label'] = 'JFIELD_META_DESCRIPTION_LABEL'; + $attributes['description'] = 'JFIELD_META_DESCRIPTION_DESC'; + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Metadesc Field. Type: Textarea (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes( + $field_xml, $attributes + ); + // count the static field created + $this->counter->field++; + } + } + // fix the permissions field "title" issue gh-629 + // check if the title is not already set + if (!$this->fieldnames->isString($nameSingleCode . '.title') + && $this->permission->check($view, $nameSingleCode)) + { + // set the field/tab name + $field_name = "title"; + $tab_name = "publishing"; + + $attributes = [ + 'name' => $field_name, + 'type' => 'hidden', + 'default' => $component . ' ' . $nameSingleCode + ]; + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Was added due to Permissions JS needing a Title field" + ); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Let us know at gh-629 should this change" + ); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + // setup needed field values for layout + $field_array = []; + $field_array['order_edit'] = 0; + $field_array['tab'] = 15; + $field_array['alignment'] = 1; + // make sure it gets added to view + $this->layout->set( + $nameSingleCode, $tab_name, $field_name, $field_array + ); + } + // load the dynamic fields now + if (count((array) $dynamic_fields_xml)) + { + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) . " Dynamic Fields." + ); + foreach ($dynamic_fields_xml as $dynamicfield) + { + $this->xml->append($field_set_xml, $dynamicfield); + } + } + // check if metadata is added to this view + if ($this->metadata->isString($nameSingleCode)) + { + if (!$this->fieldnames->isString($nameSingleCode . '.robots') + || !$this->fieldnames->isString($nameSingleCode . '.author') + || !$this->fieldnames->isString($nameSingleCode . '.rights')) + { + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) . " Metadata Fields" + ); + $fields_xml = $field_set_xml->addChild('fields'); + $fields_xml->addAttribute('name', 'metadata'); + $fields_xml->addAttribute( + 'label', 'JGLOBAL_FIELDSET_METADATA_OPTIONS' + ); + $fields_field_set_xml = $fields_xml->addChild('fieldset'); + $fields_field_set_xml->addAttribute('name', 'vdmmetadata'); + $fields_field_set_xml->addAttribute( + 'label', 'JGLOBAL_FIELDSET_METADATA_OPTIONS' + ); + // robots + if (!$this->fieldnames->isString($nameSingleCode . '.robots')) + { + $this->xml->comment( + $fields_field_set_xml, Line::_(__Line__, __Class__) + . " Robots Field. Type: List (joomla)" + ); + $robots = $fields_field_set_xml->addChild('field'); + $attributes = [ + 'name' => 'robots', + 'type' => 'list', + 'label' => 'JFIELD_METADATA_ROBOTS_LABEL', + 'description' => 'JFIELD_METADATA_ROBOTS_DESC' + ]; + $this->xml->attributes( + $robots, $attributes + ); + // count the static field created + $this->counter->field++; + $options = [ + 'JGLOBAL_USE_GLOBAL' => '', + 'JGLOBAL_INDEX_FOLLOW' => 'index, follow', + 'JGLOBAL_NOINDEX_FOLLOW' => 'noindex, follow', + 'JGLOBAL_INDEX_NOFOLLOW' => 'index, nofollow', + 'JGLOBAL_NOINDEX_NOFOLLOW' => 'noindex, nofollow', + ]; + foreach ($options as $text => $value) + { + $option = $robots->addChild('option'); + $option->addAttribute('value', $value); + $option[] = $text; + } + } + // author + if (!$this->fieldnames->isString($nameSingleCode . '.author')) + { + $this->xml->comment( + $fields_field_set_xml, Line::_(__Line__, __Class__) + . " Author Field. Type: Text (joomla)" + ); + $author = $fields_field_set_xml->addChild('field'); + $attributes = [ + 'name' => 'author', + 'type' => 'text', + 'label' => 'JAUTHOR', + 'description' => 'JFIELD_METADATA_AUTHOR_DESC', + 'size' => 20 + ]; + $this->xml->attributes( + $author, $attributes + ); + // count the static field created + $this->counter->field++; + } + // rights + if (!$this->fieldnames->isString($nameSingleCode . '.rights')) + { + $this->xml->comment( + $fields_field_set_xml, Line::_(__Line__, __Class__) + . " Rights Field. Type: Textarea (joomla)" + ); + $rights = $fields_field_set_xml->addChild('field'); + $attributes = [ + 'name' => 'rights', + 'type' => 'textarea', + 'label' => 'JFIELD_META_RIGHTS_LABEL', + 'description' => 'JFIELD_META_RIGHTS_DESC', + 'required' => 'false', + 'filter' => 'string', + 'cols' => 30, + 'rows' => 2 + ]; + $this->xml->attributes( + $rights, $attributes + ); + // count the static field created + $this->counter->field++; + } + } + } + + // return the set + return $this->xml->pretty($main_xml, 'fieldset'); + } +} + diff --git a/src/79739667-72c6-4576-9830-7b1eb92e4791/code.power b/src/79739667-72c6-4576-9830-7b1eb92e4791/code.power new file mode 100644 index 0000000..b8ce66b --- /dev/null +++ b/src/79739667-72c6-4576-9830-7b1eb92e4791/code.power @@ -0,0 +1,640 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Fieldset Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The EventInterface Class. + * + * @var Event + * @since 3.2.0 + */ + protected Event $event; + + /** + * The Permission Class. + * + * @var Permission + * @since 3.2.0 + */ + protected Permission $permission; + + /** + * The FieldDynamic Class. + * + * @var FieldDynamic + * @since 3.2.0 + */ + protected FieldDynamic $fielddynamic; + + /** + * The FieldNames Class. + * + * @var FieldNames + * @since 3.2.0 + */ + protected FieldNames $fieldnames; + + /** + * The AccessSwitch Class. + * + * @var AccessSwitch + * @since 3.2.0 + */ + protected AccessSwitch $accessswitch; + + /** + * The MetaData Class. + * + * @var MetaData + * @since 3.2.0 + */ + protected MetaData $metadata; + + /** + * The Layout Class. + * + * @var Layout + * @since 3.2.0 + */ + protected Layout $layout; + + /** + * The Counter Class. + * + * @var Counter + * @since 3.2.0 + */ + protected Counter $counter; + + /** + * The Xml Class. + * + * @var Xml + * @since 3.2.0 + */ + protected Xml $xml; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Language $language The Fieldset Class. + * @param Event $event The EventInterface Class. + * @param Permission $permission The Permission Class. + * @param FieldDynamic $fielddynamic The FieldDynamic Class. + * @param FieldNames $fieldnames The FieldNames Class. + * @param AccessSwitch $accessswitch The AccessSwitch Class. + * @param MetaData $metadata The MetaData Class. + * @param Layout $layout The Layout Class. + * @param Counter $counter The Counter Class. + * @param Xml $xml The Xml Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Placeholder $placeholder, + Language $language, Event $event, Permission $permission, + FieldDynamic $fielddynamic, FieldNames $fieldnames, + AccessSwitch $accessswitch, MetaData $metadata, + Layout $layout, Counter $counter, Xml $xml) + { + $this->config = $config; + $this->placeholder = $placeholder; + $this->language = $language; + $this->event = $event; + $this->permission = $permission; + $this->fielddynamic = $fielddynamic; + $this->fieldnames = $fieldnames; + $this->accessswitch = $accessswitch; + $this->metadata = $metadata; + $this->layout = $layout; + $this->counter = $counter; + $this->xml = $xml; + } + + /** + * Get a fieldset + * + * @param array $view The view data + * @param string $component The component name + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * + * @return string The fields set as a string or empty string if no field found. + * @since 3.2.0 + */ + public function get(array $view, string $component, string $nameSingleCode, + string $nameListCode): string + { + // setup the fieldset language values of this view + if (!isset($view['settings']->fields) + || !ArrayHelper::check($view['settings']->fields)) + { + return ''; + } + + // add metadata to the view + $metadata = false; + if (isset($view['metadata']) && $view['metadata']) + { + $metadata = true; + } + + // add access to the view + $access = false; + if (isset($view['access']) && $view['access']) + { + $access = true; + } + + // main lang prefix + $lang_view = $this->config->lang_prefix . '_' + . $this->placeholder->get('VIEW'); + $lang_views = $this->config->lang_prefix . '_' + . $this->placeholder->get('VIEWS'); + + $name_single = $view['settings']->name_single ?? 'Error'; + $name_list = $view['settings']->name_list ?? 'Error'; + $lang_target = $this->config->lang_target ?? 'both'; + + // load the language values + $this->language->set( + $access, + $metadata, + $lang_target, + $lang_view, + $lang_views, + $name_single, + $name_list, + $nameSingleCode, + $nameListCode + ); + + // set the read only + $read_only_xml = []; + if ($view['settings']->type == 2) + { + $read_only_xml['readonly'] = true; + $read_only_xml['disabled'] = true; + } + // start adding dynamc fields + $dynamic_fields_xml = []; + // set the custom table key + $dbkey = 'g'; + // for plugin event TODO change event api signatures + $placeholders = $this->placeholder->active; + $component_context = $this->config->component_context; + // Trigger Event: jcb_ce_onBeforeBuildFields + $this->event->trigger( + 'jcb_ce_onBeforeBuildFields', + array(&$component_context, &$dynamic_fields_xml, &$read_only_xml, + &$dbkey, &$view, &$component, &$nameSingleCode, + &$nameListCode, &$placeholders, &$lang_view, + &$lang_views) + ); + unset($placeholders); + // TODO we should add the global and local view switch if field for front end + foreach ($view['settings']->fields as $field) + { + $dynamic_fields_xml[] = $this->fielddynamic->get( + $field, $view, $view['settings']->type, $lang_view, + $nameSingleCode, $nameListCode, $this->placeholder->active, $dbkey, + true + ); + } + // for plugin event TODO change event api signatures + $placeholders = $this->placeholder->active; + // Trigger Event: jcb_ce_onAfterBuildFields + $this->event->trigger( + 'jcb_ce_onAfterBuildFields', + array(&$component_context, &$dynamic_fields_xml, &$read_only_xml, + &$dbkey, &$view, &$component, &$nameSingleCode, + &$nameListCode, &$placeholders, &$lang_view, + &$lang_views) + ); + unset($placeholders); + // set the default fields + $main_xml = new \simpleXMLElement(''); + $field_set_xml = $main_xml->addChild('fieldset'); + $field_set_xml->addAttribute('name', 'details'); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) . " Default Fields." + ); + $this->xml->comment( + $field_set_xml, + Line::_(__Line__, __Class__) . " Id Field. Type: Text (joomla)" + ); + // if id is not set + if (!$this->fieldnames->isString($nameSingleCode . '.id')) + { + $attributes = [ + 'name' => 'id', + 'type' => 'text', + 'class' => 'readonly', + 'readonly' => "true", + 'label' => 'JGLOBAL_FIELD_ID_LABEL', + 'description' => 'JGLOBAL_FIELD_ID_DESC', + 'size' => 10, + 'default' => 0 + ]; + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if created is not set + if (!$this->fieldnames->isString($nameSingleCode . '.created')) + { + $attributes = [ + 'name' => 'created', + 'type' => 'calendar', + 'label' => $lang_view . '_CREATED_DATE_LABEL', + 'description' => $lang_view . '_CREATED_DATE_DESC', + 'size' => 22, + 'format' => '%Y-%m-%d %H:%M:%S', + 'filter' => 'user_utc' + ]; + $attributes = array_merge($attributes, $read_only_xml); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Date Created Field. Type: Calendar (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if created_by is not set + if (!$this->fieldnames->isString($nameSingleCode . '.created_by')) + { + $attributes = [ + 'name' => 'created_by', + 'type' => 'user', + 'label' => $lang_view . '_CREATED_BY_LABEL', + 'description' => $lang_view . '_CREATED_BY_DESC', + ]; + $attributes = array_merge($attributes, $read_only_xml); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " User Created Field. Type: User (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if published is not set + if (!$this->fieldnames->isString($nameSingleCode . '.published')) + { + $attributes = [ + 'name' => 'published', + 'type' => 'list', + 'label' => 'JSTATUS' + ]; + $attributes = array_merge($attributes, $read_only_xml); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Published Field. Type: List (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + foreach (['JPUBLISHED' => 1, 'JUNPUBLISHED' => 0, + 'JARCHIVED' => 2, 'JTRASHED' => -2] as $text => $value + ) + { + $optionXML = $field_xml->addChild('option'); + $optionXML->addAttribute('value', $value); + $optionXML[] = $text; + } + } + // if modified is not set + if (!$this->fieldnames->isString($nameSingleCode . '.modified')) + { + $attributes = [ + 'name' => 'modified', + 'type' => 'calendar', + 'class' => 'readonly', + 'label' => $lang_view . '_MODIFIED_DATE_LABEL', + 'description' => $lang_view . '_MODIFIED_DATE_DESC', + 'size' => 22, + 'readonly' => "true", + 'format' => '%Y-%m-%d %H:%M:%S', + 'filter' => 'user_utc' + ]; + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Date Modified Field. Type: Calendar (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if modified_by is not set + if (!$this->fieldnames->isString($nameSingleCode . '.modified_by')) + { + $attributes = [ + 'name' => 'modified_by', + 'type' => 'user', + 'label' => $lang_view . '_MODIFIED_BY_LABEL', + 'description' => $lang_view . '_MODIFIED_BY_DESC', + 'class' => 'readonly', + 'readonly' => 'true', + 'filter' => 'unset' + ]; + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " User Modified Field. Type: User (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // check if view has access + if ($this->accessswitch->exists($nameSingleCode) + && !$this->fieldnames->isString($nameSingleCode . '.access')) + { + $attributes = [ + 'name' => 'access', + 'type' => 'accesslevel', + 'label' => 'JFIELD_ACCESS_LABEL', + 'description' => 'JFIELD_ACCESS_DESC', + 'default' => 1, + 'required' => "false" + ]; + $attributes = array_merge($attributes, $read_only_xml); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Access Field. Type: Accesslevel (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if ordering is not set + if (!$this->fieldnames->isString($nameSingleCode . '.ordering')) + { + $attributes = [ + 'name' => 'ordering', + 'type' => 'number', + 'class' => 'inputbox validate-ordering', + 'label' => $lang_view . '_ORDERING_LABEL', + 'description' => '', + 'default' => 0, + 'size' => 6, + 'required' => "false" + ]; + $attributes = array_merge($attributes, $read_only_xml); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Ordering Field. Type: Numbers (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // if version is not set + if (!$this->fieldnames->isString($nameSingleCode . '.version')) + { + $attributes = [ + 'name' => 'version', + 'type' => 'text', + 'class' => 'readonly', + 'label' => $lang_view . '_VERSION_LABEL', + 'description' => $lang_view . '_VERSION_DESC', + 'size' => 6, + 'readonly' => "true", + 'filter' => 'unset' + ]; + $this->xml->comment( + $field_set_xml, + Line::_(__Line__, __Class__) . " Version Field. Type: Text (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + } + // check if metadata is added to this view + if ($this->metadata->isString($nameSingleCode)) + { + // metakey + if (!$this->fieldnames->isString($nameSingleCode . '.metakey')) + { + $attributes = [ + 'name' => 'metakey', + 'type' => 'textarea', + 'label' => 'JFIELD_META_KEYWORDS_LABEL', + 'description' => 'JFIELD_META_KEYWORDS_DESC', + 'rows' => 3, + 'cols' => 30 + ]; + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Metakey Field. Type: Textarea (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes( + $field_xml, $attributes + ); + // count the static field created + $this->counter->field++; + } + // metadesc + if (!$this->fieldnames->isString($nameSingleCode . '.metadesc')) + { + $attributes['name'] = 'metadesc'; + $attributes['label'] = 'JFIELD_META_DESCRIPTION_LABEL'; + $attributes['description'] = 'JFIELD_META_DESCRIPTION_DESC'; + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Metadesc Field. Type: Textarea (joomla)" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes( + $field_xml, $attributes + ); + // count the static field created + $this->counter->field++; + } + } + // fix the permissions field "title" issue gh-629 + // check if the title is not already set + if (!$this->fieldnames->isString($nameSingleCode . '.title') + && $this->permission->check($view, $nameSingleCode)) + { + // set the field/tab name + $field_name = "title"; + $tab_name = "publishing"; + + $attributes = [ + 'name' => $field_name, + 'type' => 'hidden', + 'default' => $component . ' ' . $nameSingleCode + ]; + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Was added due to Permissions JS needing a Title field" + ); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " Let us know at gh-629 should this change" + ); + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) + . " https://github.com/vdm-io/Joomla-Component-Builder/issues/629#issuecomment-750117235" + ); + $field_xml = $field_set_xml->addChild('field'); + $this->xml->attributes($field_xml, $attributes); + // count the static field created + $this->counter->field++; + // setup needed field values for layout + $field_array = []; + $field_array['order_edit'] = 0; + $field_array['tab'] = 15; + $field_array['alignment'] = 1; + // make sure it gets added to view + $this->layout->set( + $nameSingleCode, $tab_name, $field_name, $field_array + ); + } + // load the dynamic fields now + if (count((array) $dynamic_fields_xml)) + { + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) . " Dynamic Fields." + ); + foreach ($dynamic_fields_xml as $dynamicfield) + { + $this->xml->append($field_set_xml, $dynamicfield); + } + } + // check if metadata is added to this view + if ($this->metadata->isString($nameSingleCode)) + { + if (!$this->fieldnames->isString($nameSingleCode . '.robots') + || !$this->fieldnames->isString($nameSingleCode . '.author') + || !$this->fieldnames->isString($nameSingleCode . '.rights')) + { + $this->xml->comment( + $field_set_xml, Line::_(__Line__, __Class__) . " Metadata Fields" + ); + $fields_xml = $field_set_xml->addChild('fields'); + $fields_xml->addAttribute('name', 'metadata'); + $fields_xml->addAttribute( + 'label', 'JGLOBAL_FIELDSET_METADATA_OPTIONS' + ); + $fields_field_set_xml = $fields_xml->addChild('fieldset'); + $fields_field_set_xml->addAttribute('name', 'vdmmetadata'); + $fields_field_set_xml->addAttribute( + 'label', 'JGLOBAL_FIELDSET_METADATA_OPTIONS' + ); + // robots + if (!$this->fieldnames->isString($nameSingleCode . '.robots')) + { + $this->xml->comment( + $fields_field_set_xml, Line::_(__Line__, __Class__) + . " Robots Field. Type: List (joomla)" + ); + $robots = $fields_field_set_xml->addChild('field'); + $attributes = [ + 'name' => 'robots', + 'type' => 'list', + 'label' => 'JFIELD_METADATA_ROBOTS_LABEL', + 'description' => 'JFIELD_METADATA_ROBOTS_DESC' + ]; + $this->xml->attributes( + $robots, $attributes + ); + // count the static field created + $this->counter->field++; + $options = [ + 'JGLOBAL_USE_GLOBAL' => '', + 'JGLOBAL_INDEX_FOLLOW' => 'index, follow', + 'JGLOBAL_NOINDEX_FOLLOW' => 'noindex, follow', + 'JGLOBAL_INDEX_NOFOLLOW' => 'index, nofollow', + 'JGLOBAL_NOINDEX_NOFOLLOW' => 'noindex, nofollow', + ]; + foreach ($options as $text => $value) + { + $option = $robots->addChild('option'); + $option->addAttribute('value', $value); + $option[] = $text; + } + } + // author + if (!$this->fieldnames->isString($nameSingleCode . '.author')) + { + $this->xml->comment( + $fields_field_set_xml, Line::_(__Line__, __Class__) + . " Author Field. Type: Text (joomla)" + ); + $author = $fields_field_set_xml->addChild('field'); + $attributes = [ + 'name' => 'author', + 'type' => 'text', + 'label' => 'JAUTHOR', + 'description' => 'JFIELD_METADATA_AUTHOR_DESC', + 'size' => 20 + ]; + $this->xml->attributes( + $author, $attributes + ); + // count the static field created + $this->counter->field++; + } + // rights + if (!$this->fieldnames->isString($nameSingleCode . '.rights')) + { + $this->xml->comment( + $fields_field_set_xml, Line::_(__Line__, __Class__) + . " Rights Field. Type: Textarea (joomla)" + ); + $rights = $fields_field_set_xml->addChild('field'); + $attributes = [ + 'name' => 'rights', + 'type' => 'textarea', + 'label' => 'JFIELD_META_RIGHTS_LABEL', + 'description' => 'JFIELD_META_RIGHTS_DESC', + 'required' => 'false', + 'filter' => 'string', + 'cols' => 30, + 'rows' => 2 + ]; + $this->xml->attributes( + $rights, $attributes + ); + // count the static field created + $this->counter->field++; + } + } + } + + // return the set + return $this->xml->pretty($main_xml, 'fieldset'); + } \ No newline at end of file diff --git a/src/79739667-72c6-4576-9830-7b1eb92e4791/settings.json b/src/79739667-72c6-4576-9830-7b1eb92e4791/settings.json new file mode 100644 index 0000000..7809fcc --- /dev/null +++ b/src/79739667-72c6-4576-9830-7b1eb92e4791/settings.json @@ -0,0 +1,77 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "79739667-72c6-4576-9830-7b1eb92e4791", + "implements": [ + "d44f3294-6b68-4d85-a617-15fb772b7d14" + ], + "load_selection": null, + "name": "FieldsetXML", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.FieldsetXML", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", + "as": "default" + }, + "use_selection2": { + "use": "4ad7020e-39ab-49ba-977b-de6084944502", + "as": "Language" + }, + "use_selection3": { + "use": "20ed72b0-fcac-4344-aee1-8a65e3bf221d", + "as": "Event" + }, + "use_selection4": { + "use": "a85451d3-a5c5-446a-90ae-0cf715a16d94", + "as": "default" + }, + "use_selection5": { + "use": "4801f8b0-4a4a-4eda-8f0e-cf77f042c35e", + "as": "default" + }, + "use_selection6": { + "use": "961a2a2e-9f95-4b5f-b1c0-62ee783f9c66", + "as": "default" + }, + "use_selection7": { + "use": "e38a5276-6664-4bc6-8002-0562fcc248f8", + "as": "default" + }, + "use_selection8": { + "use": "f052eeef-5112-4efe-98c8-8c7db69dc2d1", + "as": "default" + }, + "use_selection9": { + "use": "a0f032db-2242-41df-8e4a-5e9e6f88201d", + "as": "default" + }, + "use_selection10": { + "use": "e6d871a6-bbe7-497d-af01-68f6bb9a87f4", + "as": "default" + }, + "use_selection11": { + "use": "f6ba34a2-0cd7-4dc1-ab67-75e962a5045b", + "as": "default" + }, + "use_selection12": { + "use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222", + "as": "default" + }, + "use_selection13": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.FieldsetXML", + "description": "Fieldset XML Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/README.md b/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/README.md index ff80602..3a8a421 100644 --- a/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/README.md +++ b/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/README.md @@ -15,27 +15,29 @@ class Dynamicget #Gold { # array $operator # array $guiMapper # Config $config - # Registry $registry + # SiteDynamicGet $sitedynamicget + # SiteMainGet $sitemainget # Customcode $customcode # Gui $gui # Placeholder $placeholder # Selection $selection - + __construct(?Config $config = null, ?Registry $registry = null, ...) + + __construct(Config $config, SiteDynamicGet $sitedynamicget, ...) + set(object $item, string $view_code, ...) : void } note right of Dynamicget::__construct - Constructor + Constructor. since: 3.2.0 arguments: - ?Config $config = null - ?Registry $registry = null - ?Customcode $customcode = null - ?Gui $gui = null - ?Placeholder $placeholder = null - ?Selection $selection = null + Config $config + SiteDynamicGet $sitedynamicget + SiteMainGet $sitemainget + Customcode $customcode + Gui $gui + Placeholder $placeholder + Selection $selection end note note right of Dynamicget::set diff --git a/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.php b/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.php index 4b218a2..cf74f60 100644 --- a/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.php +++ b/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.php @@ -12,9 +12,9 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Model; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteDynamicGet; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteMainGet; use VDM\Joomla\Componentbuilder\Compiler\Customcode; use VDM\Joomla\Componentbuilder\Compiler\Customcode\Gui; use VDM\Joomla\Componentbuilder\Compiler\Placeholder; @@ -79,74 +79,85 @@ class Dynamicget ]; /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The SiteDynamicGet Class. * - * @var Registry + * @var SiteDynamicGet * @since 3.2.0 */ - protected Registry $registry; + protected SiteDynamicGet $sitedynamicget; /** - * Compiler Customcode + * The SiteMainGet Class. * - * @var Customcode + * @var SiteMainGet + * @since 3.2.0 + */ + protected SiteMainGet $sitemainget; + + /** + * The Customcode Class. + * + * @var Customcode * @since 3.2.0 */ protected Customcode $customcode; /** - * Compiler Customcode in Gui + * The Gui Class. * - * @var Gui + * @var Gui * @since 3.2.0 - **/ + */ protected Gui $gui; /** - * Compiler Placeholder + * The Placeholder Class. * - * @var Placeholder + * @var Placeholder * @since 3.2.0 - **/ + */ protected Placeholder $placeholder; /** - * Compiler Dynamic Get Selection + * The Selection Class. * - * @var Selection + * @var Selection * @since 3.2.0 - **/ + */ protected Selection $selection; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config. - * @param Registry|null $registry The compiler registry. - * @param Customcode|null $customcode The compiler customcode object. - * @param Gui|null $gui The compiler customcode gui. - * @param Placeholder|null $placeholder The compiler placeholder object. - * @param Selection|null $selection The compiler dynamic get selection object. + * @param Config $config The Config Class. + * @param SiteDynamicGet $sitedynamicget The SiteDynamicGet Class. + * @param SiteMainGet $sitemainget The SiteMainGet Class. + * @param Customcode $customcode The Customcode Class. + * @param Gui $gui The Gui Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Selection $selection The Selection Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, ?Customcode $customcode = null, - ?Gui $gui = null, ?Placeholder $placeholder = null, ?Selection $selection = null) + public function __construct(Config $config, SiteDynamicGet $sitedynamicget, + SiteMainGet $sitemainget, Customcode $customcode, Gui $gui, + Placeholder $placeholder, Selection $selection) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->customcode = $customcode ?: Compiler::_('Customcode'); - $this->gui = $gui ?: Compiler::_('Customcode.Gui'); - $this->placeholder = $placeholder ?: Compiler::_('Placeholder'); - $this->selection = $selection ?: Compiler::_('Dynamicget.Selection'); + $this->config = $config; + $this->sitedynamicget = $sitedynamicget; + $this->sitemainget = $sitemainget; + $this->customcode = $customcode; + $this->gui = $gui; + $this->placeholder = $placeholder; + $this->selection = $selection; } /** @@ -308,9 +319,7 @@ class Dynamicget ); // loop joints - foreach ( - $item->join_view_table as $nr => &$option - ) + foreach ($item->join_view_table as $nr => &$option) { if (StringHelper::check( $option['selection'] @@ -349,15 +358,18 @@ class Dynamicget || isset($_part_of_a[$join_field[0]]) || isset($_part_of_a[$on_field[0]])) { - $this->registry-> - set('builder.site_main_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option['as'], $option['as']); + $this->sitemainget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option['as'], $option['as'] + ); } else { - $this->registry-> - set('builder.site_dynamic_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option['as'] . '.' . $join_field[1], $on_field[0]); + $this->sitedynamicget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option['as'] . '.' . $join_field[1], + $on_field[0] + ); } } elseif ($option['row_type'] == 2) @@ -365,9 +377,11 @@ class Dynamicget $item->custom_get[] = $option; if ($on_field[0] != 'a') { - $this->registry-> - set('builder.site_dynamic_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option['as'] . '.' . $join_field[1], $on_field[0]); + $this->sitedynamicget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option['as'] . '.' . $join_field[1], + $on_field[0] + ); } } } @@ -381,9 +395,7 @@ class Dynamicget (string) $item->join_db_table, true ); - if (ArrayHelper::check( - $item->join_db_table - )) + if (ArrayHelper::check($item->join_db_table)) { // start the part of a table bucket $_part_of_a = []; @@ -415,38 +427,29 @@ class Dynamicget ); // loop joints - foreach ( - $item->join_db_table as $nr => &$option1 - ) + foreach ($item->join_db_table as $nr => &$option1) { - if (StringHelper::check( - $option1['selection'] - )) + if (StringHelper::check($option1['selection'])) { // convert the type - $option1['type'] - = $this->jointer[$option1['type']]; + $option1['type'] = $this->jointer[$option1['type']]; // convert the operator - $option1['operator'] - = $this->operator[$option1['operator']]; + $option1['operator'] = $this->operator[$option1['operator']]; // get the on field values - $on_field - = $_relationship[$nr]['on_field']; + $on_field = $_relationship[$nr]['on_field']; // get the join field values - $join_field - = $_relationship[$nr]['join_field']; + $join_field = $_relationship[$nr]['join_field']; // set selection - $option1['selection'] - = $this->selection->get( - $item->key, - $view_code, - $option1['selection'], - $option1['db_table'], - $option1['as'], - 'db', - $option1['row_type'] - ); - $option1['key'] = $item->key; + $option1['selection'] = $this->selection->get( + $item->key, + $view_code, + $option1['selection'], + $option1['db_table'], + $option1['as'], + 'db', + $option1['row_type'] + ); + $option1['key'] = $item->key; $option1['context'] = $context; // load to the getters if ($option1['row_type'] == 1) @@ -456,15 +459,18 @@ class Dynamicget || isset($_part_of_a[$join_field[0]]) || isset($_part_of_a[$on_field[0]])) { - $this->registry-> - set('builder.site_main_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option1['as'], $option1['as']); + $this->sitemainget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option1['as'], $option1['as'] + ); } else { - $this->registry-> - set('builder.site_dynamic_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option1['as'] . '.' . $join_field[1], $on_field[0]); + $this->sitedynamicget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option1['as'] . '.' . $join_field[1], + $on_field[0] + ); } } elseif ($option1['row_type'] == 2) @@ -472,9 +478,11 @@ class Dynamicget $item->custom_get[] = $option1; if ($on_field[0] != 'a') { - $this->registry-> - set('builder.site_dynamic_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option1['as'] . '.' . $join_field[1], $on_field[0]); + $this->sitedynamicget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option1['as'] . '.' . $join_field[1], + $on_field[0] + ); } } } @@ -488,9 +496,7 @@ class Dynamicget (string) $item->filter, true ); - if (ArrayHelper::check( - $item->filter - )) + if (ArrayHelper::check($item->filter)) { foreach ($item->filter as $nr => &$option2) { @@ -513,16 +519,13 @@ class Dynamicget // set where details $item->where = json_decode((string) $item->where, true); - if (ArrayHelper::check( - $item->where - )) + if (ArrayHelper::check($item->where)) { foreach ($item->where as $nr => &$option3) { if (isset($option3['operator'])) { - $option3['operator'] - = $this->operator[$option3['operator']]; + $option3['operator'] = $this->operator[$option3['operator']]; } else { @@ -537,18 +540,14 @@ class Dynamicget // set order details $item->order = json_decode((string) $item->order, true); - if (!ArrayHelper::check( - $item->order - )) + if (!ArrayHelper::check($item->order)) { unset($item->order); } // set grouping $item->group = json_decode((string) $item->group, true); - if (!ArrayHelper::check( - $item->group - )) + if (!ArrayHelper::check($item->group)) { unset($item->group); } @@ -558,9 +557,7 @@ class Dynamicget (string) $item->global, true ); - if (!ArrayHelper::check( - $item->global - )) + if (!ArrayHelper::check($item->global)) { unset($item->global); } @@ -576,7 +573,6 @@ class Dynamicget unset($item->group); unset($item->global); } - } - + } } diff --git a/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.power b/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.power index 71d2c2b..6b784a8 100644 --- a/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.power +++ b/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/code.power @@ -46,74 +46,85 @@ ]; /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The SiteDynamicGet Class. * - * @var Registry + * @var SiteDynamicGet * @since 3.2.0 */ - protected Registry $registry; + protected SiteDynamicGet $sitedynamicget; /** - * Compiler Customcode + * The SiteMainGet Class. * - * @var Customcode + * @var SiteMainGet + * @since 3.2.0 + */ + protected SiteMainGet $sitemainget; + + /** + * The Customcode Class. + * + * @var Customcode * @since 3.2.0 */ protected Customcode $customcode; /** - * Compiler Customcode in Gui + * The Gui Class. * - * @var Gui + * @var Gui * @since 3.2.0 - **/ + */ protected Gui $gui; /** - * Compiler Placeholder + * The Placeholder Class. * - * @var Placeholder + * @var Placeholder * @since 3.2.0 - **/ + */ protected Placeholder $placeholder; /** - * Compiler Dynamic Get Selection + * The Selection Class. * - * @var Selection + * @var Selection * @since 3.2.0 - **/ + */ protected Selection $selection; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config. - * @param Registry|null $registry The compiler registry. - * @param Customcode|null $customcode The compiler customcode object. - * @param Gui|null $gui The compiler customcode gui. - * @param Placeholder|null $placeholder The compiler placeholder object. - * @param Selection|null $selection The compiler dynamic get selection object. + * @param Config $config The Config Class. + * @param SiteDynamicGet $sitedynamicget The SiteDynamicGet Class. + * @param SiteMainGet $sitemainget The SiteMainGet Class. + * @param Customcode $customcode The Customcode Class. + * @param Gui $gui The Gui Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Selection $selection The Selection Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, ?Customcode $customcode = null, - ?Gui $gui = null, ?Placeholder $placeholder = null, ?Selection $selection = null) + public function __construct(Config $config, SiteDynamicGet $sitedynamicget, + SiteMainGet $sitemainget, Customcode $customcode, Gui $gui, + Placeholder $placeholder, Selection $selection) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->customcode = $customcode ?: Compiler::_('Customcode'); - $this->gui = $gui ?: Compiler::_('Customcode.Gui'); - $this->placeholder = $placeholder ?: Compiler::_('Placeholder'); - $this->selection = $selection ?: Compiler::_('Dynamicget.Selection'); + $this->config = $config; + $this->sitedynamicget = $sitedynamicget; + $this->sitemainget = $sitemainget; + $this->customcode = $customcode; + $this->gui = $gui; + $this->placeholder = $placeholder; + $this->selection = $selection; } /** @@ -275,9 +286,7 @@ ); // loop joints - foreach ( - $item->join_view_table as $nr => &$option - ) + foreach ($item->join_view_table as $nr => &$option) { if (StringHelper::check( $option['selection'] @@ -316,15 +325,18 @@ || isset($_part_of_a[$join_field[0]]) || isset($_part_of_a[$on_field[0]])) { - $this->registry-> - set('builder.site_main_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option['as'], $option['as']); + $this->sitemainget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option['as'], $option['as'] + ); } else { - $this->registry-> - set('builder.site_dynamic_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option['as'] . '.' . $join_field[1], $on_field[0]); + $this->sitedynamicget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option['as'] . '.' . $join_field[1], + $on_field[0] + ); } } elseif ($option['row_type'] == 2) @@ -332,9 +344,11 @@ $item->custom_get[] = $option; if ($on_field[0] != 'a') { - $this->registry-> - set('builder.site_dynamic_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option['as'] . '.' . $join_field[1], $on_field[0]); + $this->sitedynamicget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option['as'] . '.' . $join_field[1], + $on_field[0] + ); } } } @@ -348,9 +362,7 @@ (string) $item->join_db_table, true ); - if (ArrayHelper::check( - $item->join_db_table - )) + if (ArrayHelper::check($item->join_db_table)) { // start the part of a table bucket $_part_of_a = []; @@ -382,38 +394,29 @@ ); // loop joints - foreach ( - $item->join_db_table as $nr => &$option1 - ) + foreach ($item->join_db_table as $nr => &$option1) { - if (StringHelper::check( - $option1['selection'] - )) + if (StringHelper::check($option1['selection'])) { // convert the type - $option1['type'] - = $this->jointer[$option1['type']]; + $option1['type'] = $this->jointer[$option1['type']]; // convert the operator - $option1['operator'] - = $this->operator[$option1['operator']]; + $option1['operator'] = $this->operator[$option1['operator']]; // get the on field values - $on_field - = $_relationship[$nr]['on_field']; + $on_field = $_relationship[$nr]['on_field']; // get the join field values - $join_field - = $_relationship[$nr]['join_field']; + $join_field = $_relationship[$nr]['join_field']; // set selection - $option1['selection'] - = $this->selection->get( - $item->key, - $view_code, - $option1['selection'], - $option1['db_table'], - $option1['as'], - 'db', - $option1['row_type'] - ); - $option1['key'] = $item->key; + $option1['selection'] = $this->selection->get( + $item->key, + $view_code, + $option1['selection'], + $option1['db_table'], + $option1['as'], + 'db', + $option1['row_type'] + ); + $option1['key'] = $item->key; $option1['context'] = $context; // load to the getters if ($option1['row_type'] == 1) @@ -423,15 +426,18 @@ || isset($_part_of_a[$join_field[0]]) || isset($_part_of_a[$on_field[0]])) { - $this->registry-> - set('builder.site_main_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option1['as'], $option1['as']); + $this->sitemainget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option1['as'], $option1['as'] + ); } else { - $this->registry-> - set('builder.site_dynamic_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option1['as'] . '.' . $join_field[1], $on_field[0]); + $this->sitedynamicget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option1['as'] . '.' . $join_field[1], + $on_field[0] + ); } } elseif ($option1['row_type'] == 2) @@ -439,9 +445,11 @@ $item->custom_get[] = $option1; if ($on_field[0] != 'a') { - $this->registry-> - set('builder.site_dynamic_get.' . $this->config->build_target . - '.' . $view_code . '.' . $option1['as'] . '.' . $join_field[1], $on_field[0]); + $this->sitedynamicget->set( + $this->config->build_target . '.' . $view_code . '.' . + $option1['as'] . '.' . $join_field[1], + $on_field[0] + ); } } } @@ -455,9 +463,7 @@ (string) $item->filter, true ); - if (ArrayHelper::check( - $item->filter - )) + if (ArrayHelper::check($item->filter)) { foreach ($item->filter as $nr => &$option2) { @@ -480,16 +486,13 @@ // set where details $item->where = json_decode((string) $item->where, true); - if (ArrayHelper::check( - $item->where - )) + if (ArrayHelper::check($item->where)) { foreach ($item->where as $nr => &$option3) { if (isset($option3['operator'])) { - $option3['operator'] - = $this->operator[$option3['operator']]; + $option3['operator'] = $this->operator[$option3['operator']]; } else { @@ -504,18 +507,14 @@ // set order details $item->order = json_decode((string) $item->order, true); - if (!ArrayHelper::check( - $item->order - )) + if (!ArrayHelper::check($item->order)) { unset($item->order); } // set grouping $item->group = json_decode((string) $item->group, true); - if (!ArrayHelper::check( - $item->group - )) + if (!ArrayHelper::check($item->group)) { unset($item->group); } @@ -525,9 +524,7 @@ (string) $item->global, true ); - if (!ArrayHelper::check( - $item->global - )) + if (!ArrayHelper::check($item->global)) { unset($item->global); } @@ -543,4 +540,4 @@ unset($item->group); unset($item->global); } - } + } \ No newline at end of file diff --git a/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/settings.json b/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/settings.json index c27afaf..5e009c0 100644 --- a/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/settings.json +++ b/src/79740ee8-4d10-4b51-9ff5-18e1386ec1c6/settings.json @@ -11,15 +11,15 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, - "use_selection1": { "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", "as": "default" }, + "use_selection1": { + "use": "ec0682ee-9166-48f8-951b-9b763792c1d1", + "as": "default" + }, "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "use": "17fa7789-a7d1-465e-b733-8c8d53f5ca1b", "as": "default" }, "use_selection3": { diff --git a/src/797579e8-b272-41ed-91de-428cb0b3e089/code.php b/src/797579e8-b272-41ed-91de-428cb0b3e089/code.php index 2af2ae1..e8a835c 100644 --- a/src/797579e8-b272-41ed-91de-428cb0b3e089/code.php +++ b/src/797579e8-b272-41ed-91de-428cb0b3e089/code.php @@ -73,6 +73,7 @@ class Hash // update the script return $this->placeholder->update($script, $locker); } + // check if we should hash a file if (strpos($script, 'HASH' . 'FILE((((') !== false) { @@ -84,8 +85,8 @@ class Hash // convert them foreach ($values as $path) { - // we first get the file if it exist - if ($value = FileHelper::getContent($path)) + // we first get the file if it exists + if (FileHelper::exists($path) && $value = FileHelper::getContent($path)) { // now we hash the file content $locker['HASH' . 'FILE((((' . $path . '))))'] diff --git a/src/797579e8-b272-41ed-91de-428cb0b3e089/code.power b/src/797579e8-b272-41ed-91de-428cb0b3e089/code.power index bbdda32..5543651 100644 --- a/src/797579e8-b272-41ed-91de-428cb0b3e089/code.power +++ b/src/797579e8-b272-41ed-91de-428cb0b3e089/code.power @@ -46,6 +46,7 @@ // update the script return $this->placeholder->update($script, $locker); } + // check if we should hash a file if (strpos($script, 'HASH' . 'FILE((((') !== false) { @@ -57,8 +58,8 @@ // convert them foreach ($values as $path) { - // we first get the file if it exist - if ($value = FileHelper::getContent($path)) + // we first get the file if it exists + if (FileHelper::exists($path) && $value = FileHelper::getContent($path)) { // now we hash the file content $locker['HASH' . 'FILE((((' . $path . '))))'] diff --git a/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/README.md b/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/README.md index a94a7d0..1db566c 100644 --- a/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/README.md +++ b/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/README.md @@ -11,13 +11,19 @@ ```uml @startuml abstract FieldHelper #Orange { - + {static} check(string $type, string $option = 'default') : bool + + {static} getValue(string $xml, string $get, ...) : string } -note right of FieldHelper::check - Field Checker +note right of FieldHelper::getValue + Get a field value from the XML stored string - return: bool + since: 3.2.0 + return: string + + arguments: + string $xml + string $get + string $confirmation = '' end note @enduml diff --git a/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/code.php b/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/code.php index df8209c..52f2176 100644 --- a/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/code.php +++ b/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/code.php @@ -12,6 +12,11 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Utilities; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Utilities\GetHelper; +use VDM\Joomla\Utilities\Base64Helper; + + /** * The Field Helper * @@ -20,64 +25,29 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Utilities; abstract class FieldHelper { /** - * Field Grouping https://docs.joomla.org/Form_field - **/ - protected static $fields = [ - 'default' => [ - 'accesslevel', 'cachehandler', 'calendar', 'captcha', 'category', 'checkbox', 'checkboxes', 'chromestyle', - 'color', 'combo', 'componentlayout', 'contentlanguage', 'contenttype', 'databaseconnection', 'components', - 'editor', 'editors', 'email', 'file', 'file', 'filelist', 'folderlist', 'groupedlist', 'headertag', 'helpsite', 'hidden', 'imagelist', - 'integer', 'language', 'list', 'media', 'menu', 'modal_menu', 'menuitem', 'meter', 'modulelayout', 'moduleorder', 'moduleposition', - 'moduletag', 'note', 'number', 'password', 'plugins', 'predefinedlist', 'radio', 'range', 'repeatable', 'rules', - 'sessionhandler', 'spacer', 'sql', 'subform', 'tag', 'tel', 'templatestyle', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup' - ], - 'plain' => [ - 'cachehandler', 'calendar', 'checkbox', 'chromestyle', 'color', 'componentlayout', 'contenttype', 'editor', 'editors', 'captcha', - 'email', 'file', 'headertag', 'helpsite', 'hidden', 'integer', 'language', 'media', 'menu', 'modal_menu', 'menuitem', 'meter', 'modulelayout', 'templatestyle', - 'moduleorder', 'moduletag', 'number', 'password', 'range', 'rules', 'tag', 'tel', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup' - ], - 'option' => [ - 'accesslevel', 'category', 'checkboxes', 'combo', 'contentlanguage', 'databaseconnection', 'components', - 'filelist', 'folderlist', 'imagelist', 'list', 'plugins', 'predefinedlist', 'radio', 'sessionhandler', 'sql', 'groupedlist' - ], - 'text' => [ - 'calendar', 'color', 'editor', 'email', 'number', 'password', 'range', 'tel', 'text', 'textarea', 'url' - ], - 'list' => [ - 'checkbox', 'checkboxes', 'list', 'radio', 'groupedlist', 'combo' - ], - 'dynamic' => [ - 'category', 'file', 'filelist', 'folderlist', 'headertag', 'imagelist', 'integer', 'media', 'meter', 'rules', 'tag', 'timezone', 'user' - ], - 'spacer' => [ - 'note', 'spacer' - ], - 'special' => [ - 'contentlanguage', 'moduleposition', 'plugin', 'repeatable', 'subform' - ], - 'search' => [ - 'editor', 'email', 'tel', 'text', 'textarea', 'url', 'subform' - ] - ]; - - /** - * Field Checker + * Get a field value from the XML stored string * - * @param string $type The field type - * @param string $option The field grouping + * @param string $xml The xml string of the field + * @param string $get The value key to get from the string + * @param string $confirmation The value to confirm found value * - * @return bool if the field was found + * @return string The field value from xml + * @since 3.2.0 */ - public static function check(string $type, string $option = 'default'): bool + public static function getValue(&$xml, string &$get, string $confirmation = ''): string { - // now check - if (isset(self::$fields[$option]) && - in_array($type, self::$fields[$option])) + if (StringHelper::check($xml)) { - return true; + // if we have a PHP value, we must base64 decode it + if (strpos($get, 'type_php') !== false) + { + return Base64Helper::open(GetHelper::between($xml, $get . '="', '"', $confirmation)); + } + + return GetHelper::between($xml, $get . '="', '"', $confirmation); } - return false; - } - + + return $confirmation; + } } diff --git a/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/code.power b/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/code.power index 79489fb..ad670cd 100644 --- a/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/code.power +++ b/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/code.power @@ -1,59 +1,25 @@ /** - * Field Grouping https://docs.joomla.org/Form_field - **/ - protected static $fields = [ - 'default' => [ - 'accesslevel', 'cachehandler', 'calendar', 'captcha', 'category', 'checkbox', 'checkboxes', 'chromestyle', - 'color', 'combo', 'componentlayout', 'contentlanguage', 'contenttype', 'databaseconnection', 'components', - 'editor', 'editors', 'email', 'file', 'file', 'filelist', 'folderlist', 'groupedlist', 'headertag', 'helpsite', 'hidden', 'imagelist', - 'integer', 'language', 'list', 'media', 'menu', 'modal_menu', 'menuitem', 'meter', 'modulelayout', 'moduleorder', 'moduleposition', - 'moduletag', 'note', 'number', 'password', 'plugins', 'predefinedlist', 'radio', 'range', 'repeatable', 'rules', - 'sessionhandler', 'spacer', 'sql', 'subform', 'tag', 'tel', 'templatestyle', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup' - ], - 'plain' => [ - 'cachehandler', 'calendar', 'checkbox', 'chromestyle', 'color', 'componentlayout', 'contenttype', 'editor', 'editors', 'captcha', - 'email', 'file', 'headertag', 'helpsite', 'hidden', 'integer', 'language', 'media', 'menu', 'modal_menu', 'menuitem', 'meter', 'modulelayout', 'templatestyle', - 'moduleorder', 'moduletag', 'number', 'password', 'range', 'rules', 'tag', 'tel', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup' - ], - 'option' => [ - 'accesslevel', 'category', 'checkboxes', 'combo', 'contentlanguage', 'databaseconnection', 'components', - 'filelist', 'folderlist', 'imagelist', 'list', 'plugins', 'predefinedlist', 'radio', 'sessionhandler', 'sql', 'groupedlist' - ], - 'text' => [ - 'calendar', 'color', 'editor', 'email', 'number', 'password', 'range', 'tel', 'text', 'textarea', 'url' - ], - 'list' => [ - 'checkbox', 'checkboxes', 'list', 'radio', 'groupedlist', 'combo' - ], - 'dynamic' => [ - 'category', 'file', 'filelist', 'folderlist', 'headertag', 'imagelist', 'integer', 'media', 'meter', 'rules', 'tag', 'timezone', 'user' - ], - 'spacer' => [ - 'note', 'spacer' - ], - 'special' => [ - 'contentlanguage', 'moduleposition', 'plugin', 'repeatable', 'subform' - ], - 'search' => [ - 'editor', 'email', 'tel', 'text', 'textarea', 'url', 'subform' - ] - ]; - - /** - * Field Checker + * Get a field value from the XML stored string * - * @param string $type The field type - * @param string $option The field grouping + * @param string $xml The xml string of the field + * @param string $get The value key to get from the string + * @param string $confirmation The value to confirm found value * - * @return bool if the field was found + * @return string The field value from xml + * @since 3.2.0 */ - public static function check(string $type, string $option = 'default'): bool + public static function getValue(&$xml, string &$get, string $confirmation = ''): string { - // now check - if (isset(self::$fields[$option]) && - in_array($type, self::$fields[$option])) + if (StringHelper::check($xml)) { - return true; + // if we have a PHP value, we must base64 decode it + if (strpos($get, 'type_php') !== false) + { + return Base64Helper::open(GetHelper::between($xml, $get . '="', '"', $confirmation)); + } + + return GetHelper::between($xml, $get . '="', '"', $confirmation); } - return false; - } + + return $confirmation; + } \ No newline at end of file diff --git a/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/settings.json b/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/settings.json index da1cb1f..696eded 100644 --- a/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/settings.json +++ b/src/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec/settings.json @@ -9,7 +9,20 @@ "power_version": "1.0.0", "system_name": "JCB.Compiler.Utilities.FieldHelper", "type": "abstract class", - "use_selection": null, + "use_selection": { + "use_selection0": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection1": { + "use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc", + "as": "default" + }, + "use_selection2": { + "use": "64a6ff6c-069c-4a11-a76b-db5e36c27690", + "as": "default" + } + }, "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Utilities.FieldHelper", "description": "The Field Helper\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", diff --git a/src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/code.php b/src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/code.php index 7db3a4b..7f490df 100644 --- a/src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/code.php +++ b/src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/code.php @@ -80,7 +80,6 @@ class LockBase implements LockBaseInterface } return $script; - } - + } } diff --git a/src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/code.power b/src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/code.power index 52fe5ac..60a6fc2 100644 --- a/src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/code.power +++ b/src/7c07c9d6-34cd-4491-934a-ef0a83f414c0/code.power @@ -52,4 +52,4 @@ } return $script; - } + } \ No newline at end of file diff --git a/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/README.md b/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/README.md index 43f8e2e..c431d61 100644 --- a/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/README.md +++ b/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/README.md @@ -6,18 +6,19 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# final class Model (Details) -> namespace: **VDM\Joomla\Componentbuilder\Power** +# final class Upsert (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Model** +> extends: **AbstractionModel** ```uml @startuml -class Model << (F,LightGreen) >> #Green { +class Upsert << (F,LightGreen) >> #RoyalBlue { + value(mixed $value, string $field, ...) : mixed # validateBefore(mixed $value, ?string $field = null, ...) : bool # validateAfter(mixed $value, ?string $field = null, ...) : bool # getTable() : string } -note right of Model::value +note right of Upsert::value Model the value Example: $this->value(value, 'field_key', 'table_name'); @@ -30,7 +31,7 @@ Example: $this->value(value, 'field_key', 'table_name'); ?string $table = null end note -note right of Model::validateBefore +note right of Upsert::validateBefore Validate before the value is modelled since: 3.2.0 @@ -42,7 +43,7 @@ note right of Model::validateBefore ?string $table = null end note -note right of Model::validateAfter +note right of Upsert::validateAfter Validate after the value is modelled since: 3.2.0 @@ -54,7 +55,7 @@ note right of Model::validateAfter ?string $table = null end note -note right of Model::getTable +note right of Upsert::getTable Get the current active table since: 3.2.0 diff --git a/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/code.php b/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/code.php index 200e388..607b5ca 100644 --- a/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/code.php +++ b/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/code.php @@ -9,21 +9,22 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ -namespace VDM\Joomla\Componentbuilder\Power; +namespace VDM\Joomla\Componentbuilder\Power\Model; -use VDM\Joomla\Componentbuilder\Abstraction\Model as AbstractionModel; +use VDM\Joomla\Abstraction\Model as AbstractionModel; use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\ArrayHelper; -use VDM\Joomla\Componentbuilder\Interfaces\ModelInterface; +use VDM\Joomla\Utilities\ObjectHelper; +use VDM\Joomla\Interfaces\ModelInterface; /** - * Power Model + * Power Model Update or Insert * * @since 3.2.0 */ -final class Model extends AbstractionModel implements ModelInterface +final class Upsert extends AbstractionModel implements ModelInterface { /** * Model the value @@ -75,7 +76,7 @@ final class Model extends AbstractionModel implements ModelInterface protected function validateBefore(&$value, ?string $field = null, ?string $table = null): bool { // check values - if (StringHelper::check($value) || ArrayHelper::check($value, true) || is_numeric($value)) + if (StringHelper::check($value) || ArrayHelper::check($value, true) || ObjectHelper::check($value) || is_numeric($value)) { return true; } diff --git a/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/code.power b/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/code.power index a45c583..20d7d27 100644 --- a/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/code.power +++ b/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/code.power @@ -48,7 +48,7 @@ protected function validateBefore(&$value, ?string $field = null, ?string $table = null): bool { // check values - if (StringHelper::check($value) || ArrayHelper::check($value, true) || is_numeric($value)) + if (StringHelper::check($value) || ArrayHelper::check($value, true) || ObjectHelper::check($value) || is_numeric($value)) { return true; } diff --git a/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/settings.json b/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/settings.json index dd48e06..e371e35 100644 --- a/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/settings.json +++ b/src/7c1fb50f-8fb1-4627-8705-6fedf7182ca5/settings.json @@ -7,9 +7,9 @@ "8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff" ], "load_selection": null, - "name": "Model", + "name": "Upsert", "power_version": "1.0.0", - "system_name": "JCB.Power.Model", + "system_name": "JCB.Power.Model.Upsert", "type": "final class", "use_selection": { "use_selection0": { @@ -23,10 +23,14 @@ "use_selection2": { "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", "as": "default" + }, + "use_selection3": { + "use": "91004529-94a9-4590-b842-e7c6b624ecf5", + "as": "default" } }, - "namespace": "VDM\\Joomla\\Componentbuilder.Power.Model", - "description": "Power Model\r\n\r\n@since 3.2.0", + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Model.Upsert", + "description": "Power Model Update or Insert\r\n\r\n@since 3.2.0", "extends_custom": "AbstractionModel", "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/7f01622a-74c9-4e67-b111-3eb488035206/README.md b/src/7f01622a-74c9-4e67-b111-3eb488035206/README.md new file mode 100644 index 0000000..c87c787 --- /dev/null +++ b/src/7f01622a-74c9-4e67-b111-3eb488035206/README.md @@ -0,0 +1,206 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Permission (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class Permission << (F,LightGreen) >> #RoyalBlue { + # Config $config + # PermissionCore $permissioncore + # PermissionViews $permissionviews + # PermissionAction $permissionaction + # PermissionComponent $permissioncomponent + # PermissionGlobalAction $permissionglobalaction + # PermissionDashboard $permissiondashboard + # Counter $counter + # Language $language + # array $permissions + # string $nameList + # string $nameListLower + # string $nameSingleLower + + __construct(Config $config, PermissionCore $permissioncore, ...) + + getAction(string $nameView, string $action) : ?string + + getGlobal(string $nameView, string $action) : string + + actionExist(string $nameView, string $action) : bool + + globalExist(string $nameView, string $action) : bool + + set(array $view, string $nameView, ...) : void + - build(array $view, string $nameView, ...) : void + - setDashboard(string $nameView, string $nameViews, ...) : void + - initialise(array $view, string $type) : bool + - initPort(int $port) : void + - initHistory(int $history) : void + - initBatch(string $type) : void + - setNames(object $settings, string $customName, ...) : void + - getTitle(string $nameBuilder, string $customName) : string + - getDescription(string $nameBuilder, string $customName) : string + - getCore(string $nameView, string $action) : ?string +} + +note right of Permission::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + PermissionCore $permissioncore + PermissionViews $permissionviews + PermissionAction $permissionaction + PermissionComponent $permissioncomponent + PermissionGlobalAction $permissionglobalaction + PermissionDashboard $permissiondashboard + Counter $counter + Language $language +end note + +note left of Permission::getAction + Get the permission action + + since: 3.2.0 + return: ?string +end note + +note right of Permission::getGlobal + Get the global permission action + + since: 3.2.0 + return: string +end note + +note left of Permission::actionExist + Check if the permission action exist + + since: 3.2.0 + return: bool +end note + +note right of Permission::globalExist + Check if the global permission action exist + + since: 3.2.0 + return: bool +end note + +note left of Permission::set + Set the permissions + + since: 3.2.0 + return: void + + arguments: + array $view + string $nameView + string $nameViews + array $menuControllers + string $type = 'admin' +end note + +note right of Permission::build + Build of permissions + + since: 3.2.0 + return: void + + arguments: + array $view + string $nameView + string $nameViews + array $menuControllers + string $type = 'admin' +end note + +note left of Permission::setDashboard + Set dashboard permissions + + since: 3.2.0 + return: void + + arguments: + string $nameView + string $nameViews + array $menuControllers + string $action + string $coreTarget +end note + +note right of Permission::initialise + Initialise build of permissions + + since: 3.2.0 + return: bool +end note + +note left of Permission::initPort + Initialise build of import and export permissions + + since: 3.2.0 + return: void +end note + +note right of Permission::initHistory + Initialise build of history permissions + + since: 3.2.0 + return: void +end note + +note left of Permission::initBatch + Initialise build of batch permissions + + since: 3.2.0 + return: void +end note + +note right of Permission::setNames + Initialise build of names used in permissions + + since: 3.2.0 + return: void + + arguments: + object $settings + string $customName + string $type +end note + +note left of Permission::getTitle + Get the dynamic title + + since: 3.2.0 + return: string +end note + +note right of Permission::getDescription + Get the dynamic description + + since: 3.2.0 + return: string +end note + +note left of Permission::getCore + Get the core permission action + + since: 3.2.0 + return: ?string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/7f01622a-74c9-4e67-b111-3eb488035206/code.php b/src/7f01622a-74c9-4e67-b111-3eb488035206/code.php new file mode 100644 index 0000000..1dddb22 --- /dev/null +++ b/src/7f01622a-74c9-4e67-b111-3eb488035206/code.php @@ -0,0 +1,696 @@ + + * @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\Compiler\Creator; + + +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionCore; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionViews; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionAction; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionComponent; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionGlobalAction; +use VDM\Joomla\Componentbuilder\Compiler\Builder\PermissionDashboard; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Counter; +use VDM\Joomla\Componentbuilder\Compiler\Language; +use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Utilities\StringHelper; + + +/** + * Permission Creator Class + * + * @since 3.2.0 + */ +final class Permission +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The PermissionCore Class. + * + * @var PermissionCore + * @since 3.2.0 + */ + protected PermissionCore $permissioncore; + + /** + * The PermissionViews Class. + * + * @var PermissionViews + * @since 3.2.0 + */ + protected PermissionViews $permissionviews; + + /** + * The PermissionAction Class. + * + * @var PermissionAction + * @since 3.2.0 + */ + protected PermissionAction $permissionaction; + + /** + * The PermissionComponent Class. + * + * @var PermissionComponent + * @since 3.2.0 + */ + protected PermissionComponent $permissioncomponent; + + /** + * The PermissionGlobalAction Class. + * + * @var PermissionGlobalAction + * @since 3.2.0 + */ + protected PermissionGlobalAction $permissionglobalaction; + + /** + * The PermissionDashboard Class. + * + * @var PermissionDashboard + * @since 3.2.0 + */ + protected PermissionDashboard $permissiondashboard; + + /** + * The Counter Class. + * + * @var Counter + * @since 3.2.0 + */ + protected Counter $counter; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The permissions + * + * @var array + * @since 3.2.0 + */ + protected array $permissions; + + /** + * The Name List View + * + * @var string + * @since 3.2.0 + */ + protected string $nameList; + + /** + * The Lowercase Name List View + * + * @var string + * @since 3.2.0 + */ + protected string $nameListLower; + + /** + * The Lowercase Name Single View + * + * @var string + * @since 3.2.0 + */ + protected string $nameSingleLower; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param PermissionCore $permissioncore The PermissionCore Class. + * @param PermissionViews $permissionviews The PermissionViews Class. + * @param PermissionAction $permissionaction The PermissionAction Class. + * @param PermissionComponent $permissioncomponent The PermissionComponent Class. + * @param PermissionGlobalAction $permissionglobalaction The PermissionGlobalAction Class. + * @param PermissionDashboard $permissiondashboard The PermissionDashboard Class. + * @param Counter $counter The Counter Class. + * @param Language $language The Language Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, PermissionCore $permissioncore, PermissionViews $permissionviews, + PermissionAction $permissionaction, PermissionComponent $permissioncomponent, PermissionGlobalAction $permissionglobalaction, + PermissionDashboard $permissiondashboard, Counter $counter, Language $language) + { + $this->config = $config; + $this->permissioncore = $permissioncore; + $this->permissionviews = $permissionviews; + $this->permissionaction = $permissionaction; + $this->permissioncomponent = $permissioncomponent; + $this->permissionglobalaction = $permissionglobalaction; + $this->permissiondashboard = $permissiondashboard; + $this->counter = $counter; + $this->language = $language; + } + + /** + * Get the permission action + * + * @param string $nameView View Single Code Name + * @param string $action The Permission Action + * + * @return string|null The action name if set + * @since 3.2.0 + */ + public function getAction(string $nameView, string $action): ?string + { + if (($set_action = $this->getCore($nameView, $action)) !== null && + $this->permissionaction->exist($set_action, $nameView)) + { + return $set_action; + } + + return $action; + } + + /** + * Get the global permission action + * + * @param string $nameView View Single Code Name + * @param string $action The Permission Action + * + * @return string The action name if set + * @since 3.2.0 + */ + public function getGlobal(string $nameView, string $action): string + { + if (($set_action = $this->getCore($nameView, $action)) !== null && + $this->permissionglobalaction->exist($set_action, $nameView)) + { + return $set_action; + } + + return $action; + } + + /** + * Check if the permission action exist + * + * @param string $nameView View Single Code Name + * @param string $action The Permission Action + * + * @return bool true if it exist + * @since 3.2.0 + */ + public function actionExist(string $nameView, string $action): bool + { + if (($set_action = $this->getCore($nameView, $action)) !== null && + $this->permissionaction->exist($set_action, $nameView)) + { + return true; + } + + return false; + } + + /** + * Check if the global permission action exist + * + * @param string $nameView View Single Code Name + * @param string $action The Permission Action + * + * @return bool true if it exist + * @since 3.2.0 + */ + public function globalExist(string $nameView, string $action): bool + { + if (($set_action = $this->getCore($nameView, $action)) !== null && + $this->permissionglobalaction->exist($set_action, $nameView)) + { + return true; + } + + return false; + } + + /** + * Set the permissions + * + * @param array $view View details + * @param string $nameView View Single Code Name + * @param string $nameViews View List Code Name + * @param array $menuControllers Menu Controllers + * @param string $type Type of permissions area + * + * @return void + * @since 3.2.0 + */ + public function set(array &$view, string $nameView, string $nameViews, array $menuControllers, string $type = 'admin'): void + { + if ($this->initialise($view, $type)) + { + $this->build($view, $nameView, $nameViews, $menuControllers, $type); + } + } + + /** + * Build of permissions + * + * @param array $view View details + * @param string $nameView View Single Code Name + * @param string $nameViews View List Code Name + * @param array $menuControllers Menu Controllers + * @param string $type Type of permissions area + * + * @return void + * @since 3.2.0 + */ + private function build(array &$view, string $nameView, string $nameViews, + array $menuControllers, string $type = 'admin'): void + { + // load the permissions + foreach ($this->permissions as &$permission) + { + // set action name + $arr = explode('.', trim((string) $permission['action'])); + if ($arr[0] != 'core' || $arr[0] === 'view') + { + array_shift($arr); + $action_main = implode('.', $arr); + $action = $nameView . '.' . $action_main; + } + else + { + if ($arr[0] === 'core') + { + // core is already set in global access + $permission['implementation'] = 1; + } + + $action = $permission['action']; + } + + // build action name + $action_name_builder = explode('.', trim((string) $permission['action'])); + array_shift($action_name_builder); + $name_builder = trim(implode('___', $action_name_builder)); + $custom_name = trim(implode(' ', $action_name_builder)); + + // check if we have access set for this view (if not skip) + if ($name_builder === 'edit___access' && $type === 'admin' + && (!isset($view['access']) || $view['access'] != 1)) + { + continue; + } + + // set the names + $this->setNames($view['settings'], $custom_name, $type); + + // set title (only if not set already) + if (!isset($permission['title']) || !StringHelper::check($permission['title'])) + { + $permission['title'] = $this->getTitle($name_builder, $custom_name); + } + + // set description (only if not set already) + if (!isset($permission['description']) || !StringHelper::check($permission['description'])) + { + $permission['description'] = $this->getDescription($name_builder, $custom_name); + } + + // if core is not used update all core strings + $core_check = explode('.', (string) $action); + $core_check[0] = 'core'; + $core_target = implode('.', $core_check); + + $this->permissioncore->set($nameView, $core_target, $action); + + // set array sort name + $sort_key = StringHelper::safe($permission['title']); + + // set title + $title = $this->config->lang_prefix . '_' . StringHelper::safe($permission['title'], 'U'); + + // load the actions + if ($permission['implementation'] == 1) + { + // only related to view + $this->permissionviews->set($nameView, $action, [ + 'name' => $action, + 'title' => $title, + 'description' => "{$title}_DESC" + ]); + + // load permission to action + $this->permissionaction->set($action, $nameView, $nameView); + } + elseif ($permission['implementation'] == 2) + { + // relation to whole component + $this->permissioncomponent->set($sort_key, [ + 'name' => $action, + 'title' => $title, + 'description' => "{$title}_DESC" + ]); + + // the size needs increase + $this->counter->accessSize++; + + // build permission switch + $this->permissionglobalaction->set($action, $nameView, $nameView); + + // add menu control view that has menus options + $this->setDashboard($nameView, $nameViews, $menuControllers, $action, $core_target); + } + elseif ($permission['implementation'] == 3) + { + // only related to view + $this->permissionviews->set($nameView, $action, [ + 'name' => $action, + 'title' => $title, + 'description' => "{$title}_DESC" + ]); + + // load permission to action + $this->permissionaction->set($action, $nameView, $nameView); + + // relation to whole component + $this->permissioncomponent->set($sort_key, [ + 'name' => $action, + 'title' => $title, + 'description' => "{$title}_DESC" + ]); + + // the size needs increase + $this->counter->accessSize++; + + // build permission switch + $this->permissionglobalaction->set($action, $nameView, $nameView); + + // add menu control view that has menus options + $this->setDashboard($nameView, $nameViews, $menuControllers, $action, $core_target); + } + + // set to language file + $this->language->set( + 'bothadmin', $title, $permission['title'] + ); + + $this->language->set( + 'bothadmin', "{$title}_DESC", $permission['description'] + ); + } + + // update permissions + $view['settings']->permissions = $this->permissions; + } + + /** + * Set dashboard permissions + * + * @param string $nameView View Single Code Name + * @param string $nameViews View List Code Name + * @param array $menuControllers Menu Controllers + * @param string $action The targeted action + * @param string $coreTarget The core target + * + * @return void + * @since 3.2.0 + */ + private function setDashboard(string $nameView, string $nameViews, + array $menuControllers, string $action, string $coreTarget): void + { + // dashboard icon checker + if ($coreTarget === 'core.access') + { + $this->permissiondashboard->set( + 'icon', "$nameViews.access", + "'$nameViews.access' => '$action'" + ); + $this->permissiondashboard->set( + 'icon', "$nameView.access", + "'$nameView.access' => '$action'" + ); + } + + if ($coreTarget === 'core.create') + { + $this->permissiondashboard->set( + 'icon', "$nameView.create", + "'$nameView.create' => '$action'" + ); + } + + // add menu control view that has menus options + foreach ($menuControllers as $menu_controller) + { + if ($coreTarget === 'core.' . $menu_controller) + { + if ($menu_controller === 'dashboard_add') + { + $this->permissiondashboard->set( + 'icon', "$nameView.$menu_controller", + "'$nameView.$menu_controller' => '$action'" + ); + } + else + { + $this->permissiondashboard->set( + 'icon', "$nameViews.$menu_controller", + "'$nameViews.$menu_controller' => '$action'" + ); + } + } + } + } + + /** + * Initialise build of permissions + * + * @param array $view View details + * @param string $type Type of permissions area + * + * @return bool true if build can continue + * @since 3.2.0 + */ + private function initialise(array $view, string $type): bool + { + if (isset($view['settings']) && (isset($view['settings']->permissions) + && ArrayHelper::check($view['settings']->permissions) + || (isset($view['port']) && $view['port']) + || (isset($view['history']) && $view['history']))) + { + if (isset($view['settings']->permissions) + && ArrayHelper::check($view['settings']->permissions)) + { + $this->permissions = $view['settings']->permissions; + } + else + { + $this->permissions = []; + } + + $this->initPort($view['port'] ?? 0); + $this->initHistory($view['history'] ?? 0); + $this->initBatch($type); + + return true; + } + + return false; + } + + /** + * Initialise build of import and export permissions + * + * @param int $port The port adding switch + * + * @return void + * @since 3.2.0 + */ + private function initPort(int $port): void + { + if ($port) + { + // export + $add = []; + $add['action'] = 'view.export'; + $add['implementation'] = '2'; + array_push($this->permissions, $add); + + // import + $add = []; + $add['action'] = 'view.import'; + $add['implementation'] = '2'; + array_push($this->permissions, $add); + } + } + + /** + * Initialise build of history permissions + * + * @param int $history The history adding switch + * + * @return void + * @since 3.2.0 + */ + private function initHistory(int $history): void + { + if ($history) + { + // export + $add = []; + $add['action'] = 'view.version'; + $add['implementation'] = '3'; + array_push($this->permissions, $add); + } + } + + /** + * Initialise build of batch permissions + * + * @param string $type Type of permissions area + * + * @return void + * @since 3.2.0 + */ + private function initBatch(string $type): void + { + // add batch permissions + if ($type === 'admin') + { + // set batch control + $add = []; + $add['action'] = 'view.batch'; + $add['implementation'] = '2'; + array_push($this->permissions, $add); + } + } + + /** + * Initialise build of names used in permissions + * + * @param object $settings The view settings object + * @param string $customName The custom name + * @param string $type Type of permissions area + * + * @return void + * @since 3.2.0 + */ + private function setNames(object $settings, string $customName, string $type): void + { + // build the names + if ($type === 'admin') + { + $this->nameList = StringHelper::safe( + $settings->name_list, 'W' + ); + $this->nameListLower = StringHelper::safe( + $customName . ' ' . $settings->name_list, 'w' + ); + $this->nameSingleLower = StringHelper::safe( + $settings->name_single, 'w' + ); + } + elseif ($type === 'customAdmin') + { + $this->nameList = StringHelper::safe( + $settings->name, 'W' + ); + $this->nameListLower = $settings->name; + $this->nameSingleLower = $settings->name; + } + } + + /** + * Get the dynamic title + * + * @param string $nameBuilder The target builder name + * @param string $customName The dynamic custom name + * + * @return string The title + * @since 3.2.0 + */ + private function getTitle(string $nameBuilder, string $customName): string + { + $actionTitles = [ + 'edit' => 'Edit', + 'edit___own' => 'Edit Own', + 'edit___access' => 'Edit Access', + 'edit___state' => 'Edit State', + 'edit___created_by' => 'Edit Created By', + 'edit___created' => 'Edit Created Date', + 'create' => 'Create', + 'delete' => 'Delete', + 'access' => 'Access', + 'export' => 'Export', + 'import' => 'Import', + 'version' => 'Edit Version', + 'batch' => 'Batch Use', + ]; + + $titleSuffix = $actionTitles[$nameBuilder] ?? StringHelper::safe($customName, 'W'); + + return $this->nameList . ' ' . $titleSuffix; + } + + /** + * Get the dynamic description + * + * @param string $nameBuilder The target builder name + * @param string $customName The dynamic custom name + * + * @return string The description + * @since 3.2.0 + */ + private function getDescription(string $nameBuilder, string $customName): string + { + $actionDescriptions = [ + 'edit' => 'edit the ' . $this->nameSingleLower, + 'edit___own' => 'edit ' . $this->nameListLower . ' created by them', + 'edit___access' => 'change the access of the ' . $this->nameListLower, + 'edit___state' => 'update the state of the ' . $this->nameSingleLower, + 'edit___created_by' => 'update the created by of the ' . $this->nameListLower, + 'edit___created' => 'update the created date of the ' . $this->nameListLower, + 'create' => 'create ' . $this->nameListLower, + 'delete' => 'delete ' . $this->nameListLower, + 'access' => 'access ' . $this->nameListLower, + 'export' => 'export ' . $this->nameListLower, + 'import' => 'import ' . $this->nameListLower, + 'version' => 'edit versions of ' . $this->nameListLower, + 'batch' => 'use batch copy/update method of ' . $this->nameListLower + ]; + + $description = $actionDescriptions[$nameBuilder] ?? StringHelper::safe($customName, 'w') . ' of ' . $this->nameSingleLower; + + return ' Allows the users in this group to ' . $description; + } + + /** + * Get the core permission action + * + * @param string $nameView View Single Code Name + * @param string $action The Permission Action + * + * @return string|null The action name if set + * @since 3.2.0 + */ + private function getCore(string $nameView, string $action): ?string + { + return $this->permissioncore->get($nameView, $action); + } +} + diff --git a/src/7f01622a-74c9-4e67-b111-3eb488035206/code.power b/src/7f01622a-74c9-4e67-b111-3eb488035206/code.power new file mode 100644 index 0000000..6259ff8 --- /dev/null +++ b/src/7f01622a-74c9-4e67-b111-3eb488035206/code.power @@ -0,0 +1,660 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The PermissionCore Class. + * + * @var PermissionCore + * @since 3.2.0 + */ + protected PermissionCore $permissioncore; + + /** + * The PermissionViews Class. + * + * @var PermissionViews + * @since 3.2.0 + */ + protected PermissionViews $permissionviews; + + /** + * The PermissionAction Class. + * + * @var PermissionAction + * @since 3.2.0 + */ + protected PermissionAction $permissionaction; + + /** + * The PermissionComponent Class. + * + * @var PermissionComponent + * @since 3.2.0 + */ + protected PermissionComponent $permissioncomponent; + + /** + * The PermissionGlobalAction Class. + * + * @var PermissionGlobalAction + * @since 3.2.0 + */ + protected PermissionGlobalAction $permissionglobalaction; + + /** + * The PermissionDashboard Class. + * + * @var PermissionDashboard + * @since 3.2.0 + */ + protected PermissionDashboard $permissiondashboard; + + /** + * The Counter Class. + * + * @var Counter + * @since 3.2.0 + */ + protected Counter $counter; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The permissions + * + * @var array + * @since 3.2.0 + */ + protected array $permissions; + + /** + * The Name List View + * + * @var string + * @since 3.2.0 + */ + protected string $nameList; + + /** + * The Lowercase Name List View + * + * @var string + * @since 3.2.0 + */ + protected string $nameListLower; + + /** + * The Lowercase Name Single View + * + * @var string + * @since 3.2.0 + */ + protected string $nameSingleLower; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param PermissionCore $permissioncore The PermissionCore Class. + * @param PermissionViews $permissionviews The PermissionViews Class. + * @param PermissionAction $permissionaction The PermissionAction Class. + * @param PermissionComponent $permissioncomponent The PermissionComponent Class. + * @param PermissionGlobalAction $permissionglobalaction The PermissionGlobalAction Class. + * @param PermissionDashboard $permissiondashboard The PermissionDashboard Class. + * @param Counter $counter The Counter Class. + * @param Language $language The Language Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, PermissionCore $permissioncore, PermissionViews $permissionviews, + PermissionAction $permissionaction, PermissionComponent $permissioncomponent, PermissionGlobalAction $permissionglobalaction, + PermissionDashboard $permissiondashboard, Counter $counter, Language $language) + { + $this->config = $config; + $this->permissioncore = $permissioncore; + $this->permissionviews = $permissionviews; + $this->permissionaction = $permissionaction; + $this->permissioncomponent = $permissioncomponent; + $this->permissionglobalaction = $permissionglobalaction; + $this->permissiondashboard = $permissiondashboard; + $this->counter = $counter; + $this->language = $language; + } + + /** + * Get the permission action + * + * @param string $nameView View Single Code Name + * @param string $action The Permission Action + * + * @return string|null The action name if set + * @since 3.2.0 + */ + public function getAction(string $nameView, string $action): ?string + { + if (($set_action = $this->getCore($nameView, $action)) !== null && + $this->permissionaction->exist($set_action, $nameView)) + { + return $set_action; + } + + return $action; + } + + /** + * Get the global permission action + * + * @param string $nameView View Single Code Name + * @param string $action The Permission Action + * + * @return string The action name if set + * @since 3.2.0 + */ + public function getGlobal(string $nameView, string $action): string + { + if (($set_action = $this->getCore($nameView, $action)) !== null && + $this->permissionglobalaction->exist($set_action, $nameView)) + { + return $set_action; + } + + return $action; + } + + /** + * Check if the permission action exist + * + * @param string $nameView View Single Code Name + * @param string $action The Permission Action + * + * @return bool true if it exist + * @since 3.2.0 + */ + public function actionExist(string $nameView, string $action): bool + { + if (($set_action = $this->getCore($nameView, $action)) !== null && + $this->permissionaction->exist($set_action, $nameView)) + { + return true; + } + + return false; + } + + /** + * Check if the global permission action exist + * + * @param string $nameView View Single Code Name + * @param string $action The Permission Action + * + * @return bool true if it exist + * @since 3.2.0 + */ + public function globalExist(string $nameView, string $action): bool + { + if (($set_action = $this->getCore($nameView, $action)) !== null && + $this->permissionglobalaction->exist($set_action, $nameView)) + { + return true; + } + + return false; + } + + /** + * Set the permissions + * + * @param array $view View details + * @param string $nameView View Single Code Name + * @param string $nameViews View List Code Name + * @param array $menuControllers Menu Controllers + * @param string $type Type of permissions area + * + * @return void + * @since 3.2.0 + */ + public function set(array &$view, string $nameView, string $nameViews, array $menuControllers, string $type = 'admin'): void + { + if ($this->initialise($view, $type)) + { + $this->build($view, $nameView, $nameViews, $menuControllers, $type); + } + } + + /** + * Build of permissions + * + * @param array $view View details + * @param string $nameView View Single Code Name + * @param string $nameViews View List Code Name + * @param array $menuControllers Menu Controllers + * @param string $type Type of permissions area + * + * @return void + * @since 3.2.0 + */ + private function build(array &$view, string $nameView, string $nameViews, + array $menuControllers, string $type = 'admin'): void + { + // load the permissions + foreach ($this->permissions as &$permission) + { + // set action name + $arr = explode('.', trim((string) $permission['action'])); + if ($arr[0] != 'core' || $arr[0] === 'view') + { + array_shift($arr); + $action_main = implode('.', $arr); + $action = $nameView . '.' . $action_main; + } + else + { + if ($arr[0] === 'core') + { + // core is already set in global access + $permission['implementation'] = 1; + } + + $action = $permission['action']; + } + + // build action name + $action_name_builder = explode('.', trim((string) $permission['action'])); + array_shift($action_name_builder); + $name_builder = trim(implode('___', $action_name_builder)); + $custom_name = trim(implode(' ', $action_name_builder)); + + // check if we have access set for this view (if not skip) + if ($name_builder === 'edit___access' && $type === 'admin' + && (!isset($view['access']) || $view['access'] != 1)) + { + continue; + } + + // set the names + $this->setNames($view['settings'], $custom_name, $type); + + // set title (only if not set already) + if (!isset($permission['title']) || !StringHelper::check($permission['title'])) + { + $permission['title'] = $this->getTitle($name_builder, $custom_name); + } + + // set description (only if not set already) + if (!isset($permission['description']) || !StringHelper::check($permission['description'])) + { + $permission['description'] = $this->getDescription($name_builder, $custom_name); + } + + // if core is not used update all core strings + $core_check = explode('.', (string) $action); + $core_check[0] = 'core'; + $core_target = implode('.', $core_check); + + $this->permissioncore->set($nameView, $core_target, $action); + + // set array sort name + $sort_key = StringHelper::safe($permission['title']); + + // set title + $title = $this->config->lang_prefix . '_' . StringHelper::safe($permission['title'], 'U'); + + // load the actions + if ($permission['implementation'] == 1) + { + // only related to view + $this->permissionviews->set($nameView, $action, [ + 'name' => $action, + 'title' => $title, + 'description' => "{$title}_DESC" + ]); + + // load permission to action + $this->permissionaction->set($action, $nameView, $nameView); + } + elseif ($permission['implementation'] == 2) + { + // relation to whole component + $this->permissioncomponent->set($sort_key, [ + 'name' => $action, + 'title' => $title, + 'description' => "{$title}_DESC" + ]); + + // the size needs increase + $this->counter->accessSize++; + + // build permission switch + $this->permissionglobalaction->set($action, $nameView, $nameView); + + // add menu control view that has menus options + $this->setDashboard($nameView, $nameViews, $menuControllers, $action, $core_target); + } + elseif ($permission['implementation'] == 3) + { + // only related to view + $this->permissionviews->set($nameView, $action, [ + 'name' => $action, + 'title' => $title, + 'description' => "{$title}_DESC" + ]); + + // load permission to action + $this->permissionaction->set($action, $nameView, $nameView); + + // relation to whole component + $this->permissioncomponent->set($sort_key, [ + 'name' => $action, + 'title' => $title, + 'description' => "{$title}_DESC" + ]); + + // the size needs increase + $this->counter->accessSize++; + + // build permission switch + $this->permissionglobalaction->set($action, $nameView, $nameView); + + // add menu control view that has menus options + $this->setDashboard($nameView, $nameViews, $menuControllers, $action, $core_target); + } + + // set to language file + $this->language->set( + 'bothadmin', $title, $permission['title'] + ); + + $this->language->set( + 'bothadmin', "{$title}_DESC", $permission['description'] + ); + } + + // update permissions + $view['settings']->permissions = $this->permissions; + } + + /** + * Set dashboard permissions + * + * @param string $nameView View Single Code Name + * @param string $nameViews View List Code Name + * @param array $menuControllers Menu Controllers + * @param string $action The targeted action + * @param string $coreTarget The core target + * + * @return void + * @since 3.2.0 + */ + private function setDashboard(string $nameView, string $nameViews, + array $menuControllers, string $action, string $coreTarget): void + { + // dashboard icon checker + if ($coreTarget === 'core.access') + { + $this->permissiondashboard->set( + 'icon', "$nameViews.access", + "'$nameViews.access' => '$action'" + ); + $this->permissiondashboard->set( + 'icon', "$nameView.access", + "'$nameView.access' => '$action'" + ); + } + + if ($coreTarget === 'core.create') + { + $this->permissiondashboard->set( + 'icon', "$nameView.create", + "'$nameView.create' => '$action'" + ); + } + + // add menu control view that has menus options + foreach ($menuControllers as $menu_controller) + { + if ($coreTarget === 'core.' . $menu_controller) + { + if ($menu_controller === 'dashboard_add') + { + $this->permissiondashboard->set( + 'icon', "$nameView.$menu_controller", + "'$nameView.$menu_controller' => '$action'" + ); + } + else + { + $this->permissiondashboard->set( + 'icon', "$nameViews.$menu_controller", + "'$nameViews.$menu_controller' => '$action'" + ); + } + } + } + } + + /** + * Initialise build of permissions + * + * @param array $view View details + * @param string $type Type of permissions area + * + * @return bool true if build can continue + * @since 3.2.0 + */ + private function initialise(array $view, string $type): bool + { + if (isset($view['settings']) && (isset($view['settings']->permissions) + && ArrayHelper::check($view['settings']->permissions) + || (isset($view['port']) && $view['port']) + || (isset($view['history']) && $view['history']))) + { + if (isset($view['settings']->permissions) + && ArrayHelper::check($view['settings']->permissions)) + { + $this->permissions = $view['settings']->permissions; + } + else + { + $this->permissions = []; + } + + $this->initPort($view['port'] ?? 0); + $this->initHistory($view['history'] ?? 0); + $this->initBatch($type); + + return true; + } + + return false; + } + + /** + * Initialise build of import and export permissions + * + * @param int $port The port adding switch + * + * @return void + * @since 3.2.0 + */ + private function initPort(int $port): void + { + if ($port) + { + // export + $add = []; + $add['action'] = 'view.export'; + $add['implementation'] = '2'; + array_push($this->permissions, $add); + + // import + $add = []; + $add['action'] = 'view.import'; + $add['implementation'] = '2'; + array_push($this->permissions, $add); + } + } + + /** + * Initialise build of history permissions + * + * @param int $history The history adding switch + * + * @return void + * @since 3.2.0 + */ + private function initHistory(int $history): void + { + if ($history) + { + // export + $add = []; + $add['action'] = 'view.version'; + $add['implementation'] = '3'; + array_push($this->permissions, $add); + } + } + + /** + * Initialise build of batch permissions + * + * @param string $type Type of permissions area + * + * @return void + * @since 3.2.0 + */ + private function initBatch(string $type): void + { + // add batch permissions + if ($type === 'admin') + { + // set batch control + $add = []; + $add['action'] = 'view.batch'; + $add['implementation'] = '2'; + array_push($this->permissions, $add); + } + } + + /** + * Initialise build of names used in permissions + * + * @param object $settings The view settings object + * @param string $customName The custom name + * @param string $type Type of permissions area + * + * @return void + * @since 3.2.0 + */ + private function setNames(object $settings, string $customName, string $type): void + { + // build the names + if ($type === 'admin') + { + $this->nameList = StringHelper::safe( + $settings->name_list, 'W' + ); + $this->nameListLower = StringHelper::safe( + $customName . ' ' . $settings->name_list, 'w' + ); + $this->nameSingleLower = StringHelper::safe( + $settings->name_single, 'w' + ); + } + elseif ($type === 'customAdmin') + { + $this->nameList = StringHelper::safe( + $settings->name, 'W' + ); + $this->nameListLower = $settings->name; + $this->nameSingleLower = $settings->name; + } + } + + /** + * Get the dynamic title + * + * @param string $nameBuilder The target builder name + * @param string $customName The dynamic custom name + * + * @return string The title + * @since 3.2.0 + */ + private function getTitle(string $nameBuilder, string $customName): string + { + $actionTitles = [ + 'edit' => 'Edit', + 'edit___own' => 'Edit Own', + 'edit___access' => 'Edit Access', + 'edit___state' => 'Edit State', + 'edit___created_by' => 'Edit Created By', + 'edit___created' => 'Edit Created Date', + 'create' => 'Create', + 'delete' => 'Delete', + 'access' => 'Access', + 'export' => 'Export', + 'import' => 'Import', + 'version' => 'Edit Version', + 'batch' => 'Batch Use', + ]; + + $titleSuffix = $actionTitles[$nameBuilder] ?? StringHelper::safe($customName, 'W'); + + return $this->nameList . ' ' . $titleSuffix; + } + + /** + * Get the dynamic description + * + * @param string $nameBuilder The target builder name + * @param string $customName The dynamic custom name + * + * @return string The description + * @since 3.2.0 + */ + private function getDescription(string $nameBuilder, string $customName): string + { + $actionDescriptions = [ + 'edit' => 'edit the ' . $this->nameSingleLower, + 'edit___own' => 'edit ' . $this->nameListLower . ' created by them', + 'edit___access' => 'change the access of the ' . $this->nameListLower, + 'edit___state' => 'update the state of the ' . $this->nameSingleLower, + 'edit___created_by' => 'update the created by of the ' . $this->nameListLower, + 'edit___created' => 'update the created date of the ' . $this->nameListLower, + 'create' => 'create ' . $this->nameListLower, + 'delete' => 'delete ' . $this->nameListLower, + 'access' => 'access ' . $this->nameListLower, + 'export' => 'export ' . $this->nameListLower, + 'import' => 'import ' . $this->nameListLower, + 'version' => 'edit versions of ' . $this->nameListLower, + 'batch' => 'use batch copy/update method of ' . $this->nameListLower + ]; + + $description = $actionDescriptions[$nameBuilder] ?? StringHelper::safe($customName, 'w') . ' of ' . $this->nameSingleLower; + + return ' Allows the users in this group to ' . $description; + } + + /** + * Get the core permission action + * + * @param string $nameView View Single Code Name + * @param string $action The Permission Action + * + * @return string|null The action name if set + * @since 3.2.0 + */ + private function getCore(string $nameView, string $action): ?string + { + return $this->permissioncore->get($nameView, $action); + } \ No newline at end of file diff --git a/src/7f01622a-74c9-4e67-b111-3eb488035206/settings.json b/src/7f01622a-74c9-4e67-b111-3eb488035206/settings.json new file mode 100644 index 0000000..fb8837f --- /dev/null +++ b/src/7f01622a-74c9-4e67-b111-3eb488035206/settings.json @@ -0,0 +1,63 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "7f01622a-74c9-4e67-b111-3eb488035206", + "implements": null, + "load_selection": null, + "name": "Permission", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.Permission", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "5e3d856d-8174-4131-b4e9-9328066438e1", + "as": "default" + }, + "use_selection2": { + "use": "480d11b9-783b-45d5-bce1-b0c2fcaad08a", + "as": "default" + }, + "use_selection3": { + "use": "2528f2bb-6ebc-4d55-9a9d-23ef58534c1a", + "as": "default" + }, + "use_selection4": { + "use": "94f4939f-82cc-4196-802b-1346ce5c7f99", + "as": "default" + }, + "use_selection5": { + "use": "a601888d-12b6-427f-94ae-95004206e24e", + "as": "default" + }, + "use_selection6": { + "use": "e046b530-47fe-406f-b45a-b5eec8cbb238", + "as": "default" + }, + "use_selection7": { + "use": "e6d871a6-bbe7-497d-af01-68f6bb9a87f4", + "as": "default" + }, + "use_selection8": { + "use": "8eee7df5-2775-41a9-9372-c46c5939a252", + "as": "default" + }, + "use_selection9": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + }, + "use_selection10": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.Permission", + "description": "Permission Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/7f515c18-d019-4d2d-9852-b2dc970985b3/README.md b/src/7f515c18-d019-4d2d-9852-b2dc970985b3/README.md new file mode 100644 index 0000000..45e7713 --- /dev/null +++ b/src/7f515c18-d019-4d2d-9852-b2dc970985b3/README.md @@ -0,0 +1,340 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Attributes (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Field** +```uml +@startuml +class Attributes << (F,LightGreen) >> #RoyalBlue { + # Config $config + # Registry $registry + # ListFieldClass $listfieldclass + # DoNotEscape $donotescape + # Placeholder $placeholder + # Customcode $customcode + # Language $language + # FieldGroups $fieldgroups + - int $title + - int $alias + - array $properties + - array $php + - array $attributes + - bool $custom + - string $customLabel + - bool $readonly + - int $viewType + - string $name + - string $typeName + - bool $multiple + - string $langLabel + - string $langView + - string $nameListCode + - string $nameSingleCode + - array $placeholders + - bool $repeatable + + __construct(Config $config, Registry $registry, ...) + + set(array $field, int $viewType, ...) : array + - setSettings(array $field) : bool + - setProperties() : bool + - setAttributes() : void + - extraAttributes() : void + - getValue(string $name) : ?string + - modelValue(?string $value, string $name, ...) : ?string + - setValue(?string $value, string $name, ...) : void + - setPHP() : void + - getXmlValue(string $name) : ?string + - getType() : string + - getName() : string + - getValidation() : ?string + - getTypePHP(string $name) : ?string + - getPrimePHP(string $name) : ?string + - getExtends() : ?string + - getView() : ?string + - getViews() : ?string + - getComponent() : ?string + - getTable() : ?string + - getValueField() : ?string + - getKeyField() : ?string + - removeButtonRepeatable() : string + - getButton() : ?string + - removeRequired() : string + - setReadonly(string $name) : string + - getMultiple(string $name) : string + - getClass() : string + - initialise(int $viewType, string $name, ...) : void +} + +note right of Attributes::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + Registry $registry + ListFieldClass $listfieldclass + DoNotEscape $donotescape + Placeholder $placeholder + Customcode $customcode + Language $language + FieldGroups $fieldgroups +end note + +note left of Attributes::set + set field attributes + + since: 3.2.0 + return: array + + arguments: + array $field + int $viewType + string $name + string $typeName + bool $multiple + string $langLabel + string $langView + string $nameListCode + string $nameSingleCode + array $placeholders + bool $repeatable = false +end note + +note right of Attributes::setSettings + set field settings + + since: 3.2.0 + return: bool +end note + +note left of Attributes::setProperties + set field properties + + since: 3.2.0 + return: bool +end note + +note right of Attributes::setAttributes + Set the attributes with properties + + since: 3.2.0 + return: void +end note + +note left of Attributes::extraAttributes + Set the extra attributes + + since: 3.2.0 + return: void +end note + +note right of Attributes::getValue + Get XML value + + since: 3.2.0 + return: ?string +end note + +note left of Attributes::modelValue + Model the found value + + since: 3.2.0 + return: ?string + + arguments: + ?string $value + string $name + int $translatable +end note + +note right of Attributes::setValue + set the found value + + since: 3.2.0 + return: void + + arguments: + ?string $value + string $name + string $example + int $mandatory +end note + +note left of Attributes::setPHP + Set PHP if needed + + since: 3.2.0 + return: void +end note + +note right of Attributes::getXmlValue + get an xml value (default) + + since: 3.2.0 + return: ?string +end note + +note left of Attributes::getType + get type value + + since: 3.2.0 + return: string +end note + +note right of Attributes::getName + get name value + + since: 3.2.0 + return: string +end note + +note left of Attributes::getValidation + get validation value + + since: 3.2.0 + return: ?string +end note + +note right of Attributes::getTypePHP + get type PHP code + + since: 3.2.0 + return: ?string +end note + +note left of Attributes::getPrimePHP + get prime PHP code + + since: 3.2.0 + return: ?string +end note + +note right of Attributes::getExtends + get extends value + + since: 3.2.0 + return: ?string +end note + +note left of Attributes::getView + get view value + + since: 3.2.0 + return: ?string +end note + +note right of Attributes::getViews + get views value + + since: 3.2.0 + return: ?string +end note + +note left of Attributes::getComponent + get component value + + since: 3.2.0 + return: ?string +end note + +note right of Attributes::getTable + get table value + + since: 3.2.0 + return: ?string +end note + +note left of Attributes::getValueField + get value field + + since: 3.2.0 + return: ?string +end note + +note right of Attributes::getKeyField + get key field value + + since: 3.2.0 + return: ?string +end note + +note left of Attributes::removeButtonRepeatable + remove the button on repeatable + + since: 3.2.0 + return: string +end note + +note right of Attributes::getButton + get button value + + since: 3.2.0 + return: ?string +end note + +note left of Attributes::removeRequired + remove the required value + + since: 3.2.0 + return: string +end note + +note right of Attributes::setReadonly + set the readonly switch + + since: 3.2.0 + return: string +end note + +note left of Attributes::getMultiple + set the multiple switch + + since: 3.2.0 + return: string +end note + +note right of Attributes::getClass + get class value + + since: 3.2.0 + return: string +end note + +note left of Attributes::initialise + Initialise the attributes and other global values + + since: 3.2.0 + return: void + + arguments: + int $viewType + string $name + string $typeName + bool $multiple + string $langLabel + string $langView + string $nameListCode + string $nameSingleCode + array $placeholders + bool $repeatable +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/7f515c18-d019-4d2d-9852-b2dc970985b3/code.php b/src/7f515c18-d019-4d2d-9852-b2dc970985b3/code.php new file mode 100644 index 0000000..f0df3f1 --- /dev/null +++ b/src/7f515c18-d019-4d2d-9852-b2dc970985b3/code.php @@ -0,0 +1,1160 @@ + + * @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\Compiler\Field; + + +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ListFieldClass; +use VDM\Joomla\Componentbuilder\Compiler\Builder\DoNotEscape; +use VDM\Joomla\Componentbuilder\Compiler\Placeholder; +use VDM\Joomla\Componentbuilder\Compiler\Customcode; +use VDM\Joomla\Componentbuilder\Compiler\Language; +use VDM\Joomla\Componentbuilder\Compiler\Field\Groups as FieldGroups; +use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Utilities\GetHelper; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Utilities\Base64Helper; +use VDM\Joomla\Utilities\String\FieldHelper; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\FieldHelper as UtilitiesFieldHelper; + + +/** + * Compiler Field Attributes + * + * @since 3.2.0 + */ +final class Attributes +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Registry Class. + * + * @var Registry + * @since 3.2.0 + */ + protected Registry $registry; + + /** + * The ListFieldClass Class. + * + * @var ListFieldClass + * @since 3.2.0 + */ + protected ListFieldClass $listfieldclass; + + /** + * The DoNotEscape Class. + * + * @var DoNotEscape + * @since 3.2.0 + */ + protected DoNotEscape $donotescape; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Customcode Class. + * + * @var Customcode + * @since 3.2.0 + */ + protected Customcode $customcode; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The Groups Class. + * + * @var FieldGroups + * @since 3.2.0 + */ + protected FieldGroups $fieldgroups; + + /** + * Title Switch + * + * @var int + * @since 3.2.0 + */ + private int $title; + + /** + * Alias Switch + * + * @var int + * @since 3.2.0 + */ + private int $alias; + + /** + * Field Properties + * + * @var array + * @since 3.2.0 + */ + private array $properties; + + /** + * PHP Tracking + * + * @var array + * @since 3.2.0 + */ + private array $php; + + /** + * Field attributes + * + * @var array + * @since 3.2.0 + */ + private array $attributes; + + /** + * Field custom switch + * + * @var bool + * @since 3.2.0 + */ + private bool $custom; + + /** + * Field Custom Label + * + * @var string + * @since 3.2.0 + */ + private string $customLabel; + + /** + * Field readonly switch + * + * @var bool + * @since 3.2.0 + */ + private bool $readonly; + + /** + * Field View Type + * + * @var int + * @since 3.2.0 + */ + private int $viewType; + + /** + * Field Name + * + * @var string + * @since 3.2.0 + */ + private string $name; + + /** + * Field Type Name + * + * @var string + * @since 3.2.0 + */ + private string $typeName; + + /** + * Field Multiple Switch + * + * @var bool + * @since 3.2.0 + */ + private bool $multiple; + + /** + * Field Name Language Label + * + * @var string + * @since 3.2.0 + */ + private string $langLabel; + + /** + * View Language String + * + * @var string + * @since 3.2.0 + */ + private string $langView; + + /** + * View List Code + * + * @var string + * @since 3.2.0 + */ + private string $nameListCode; + + /** + * View Single Code + * + * @var string + * @since 3.2.0 + */ + private string $nameSingleCode; + + /** + * Field Placeholders + * + * @var array + * @since 3.2.0 + */ + private array $placeholders; + + /** + * Repeatable Switch + * + * @var bool + * @since 3.2.0 + */ + private bool $repeatable; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Registry $registry The Registry Class. + * @param ListFieldClass $listfieldclass The ListFieldClass Class. + * @param DoNotEscape $donotescape The DoNotEscape Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Customcode $customcode The Customcode Class. + * @param Language $language The Language Class. + * @param FieldGroups $fieldgroups The Groups Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Registry $registry, ListFieldClass $listfieldclass, DoNotEscape $donotescape, Placeholder $placeholder, + Customcode $customcode, Language $language, FieldGroups $fieldgroups) + { + $this->config = $config; + $this->registry = $registry; + $this->listfieldclass = $listfieldclass; + $this->donotescape = $donotescape; + $this->placeholder = $placeholder; + $this->customcode = $customcode; + $this->language = $language; + $this->fieldgroups = $fieldgroups; + } + + /** + * set field attributes + * + * @param array $field The field data + * @param int $viewType The view type + * @param string $name The field name + * @param string $typeName The field type + * @param bool $multiple The switch to set multiple selection option + * @param string $langLabel The language string for field label + * @param string $langView The language string of the view + * @param string $nameListCode The list view name + * @param string $nameSingleCode The single view name + * @param array $placeholders The place holder and replace values + * @param bool $repeatable The repeatable field switch + * + * @return array The field attributes + * @since 3.2.0 + */ + public function set( + array $field, int $viewType, string $name, string $typeName, + bool &$multiple, string &$langLabel, string $langView, string $nameListCode, + string $nameSingleCode, array $placeholders, bool $repeatable = false + ): array + { + if (!$this->setSettings($field)) + { + return []; + } + + // initialise the empty attributes and other global values + $this->initialise($viewType, $name, $typeName, $multiple, $langLabel, + $langView, $nameListCode, $nameSingleCode, $placeholders, $repeatable); + + if (!$this->setProperties()) + { + return $this->attributes; + } + + // set the attributes + $this->setAttributes(); + + // update global ref passed value + $multiple = $this->multiple; + $langLabel = $this->langLabel; + + return $this->attributes; + } + + /** + * set field settings + * + * @param array $field The field data + * + * @return bool true if settings was set + * @since 3.2.0 + */ + private function setSettings(array $field): bool + { + if (isset($field['settings'])) + { + $this->settings = $field['settings']; + $this->alias = $field['alias'] ?? 0; + $this->title = $field['title'] ?? 0; + + return true; + } + + return false; + } + + /** + * set field properties + * + * @return bool true if settings was set + * @since 3.2.0 + */ + private function setProperties(): bool + { + if (isset($this->settings->properties) && ArrayHelper::check($this->settings->properties)) + { + $this->properties = $this->settings->properties; + + return true; + } + + return false; + } + + /** + * Set the attributes with properties + * + * @return void + * @since 3.2.0 + */ + private function setAttributes(): void + { + foreach ($this->properties as $property) + { + $name = $property['name'] ?? 'error'; + $example = $property['example'] ?? 'error'; + $translatable = $property['translatable'] ?? 0; + $mandatory = $property['mandatory'] ?? 0; + + $this->setValue( + $this->modelValue( + $this->getValue($name), + $name, + (int) $translatable + ), + $name, + $example, + (int) $mandatory + ); + } + + $this->setPHP(); + + $this->extraAttributes(); + } + + /** + * Set the extra attributes + * + * @return void + * @since 3.2.0 + */ + private function extraAttributes(): void + { + // do some nice twigs beyond the default + if (isset($this->attributes['name'])) + { + // check if we have class value for the list view of this field + $listclass = GetHelper::between( + $this->settings->xml, 'listclass="', '"' + ); + if (StringHelper::check($listclass)) + { + $this->listfieldclass->set($this->nameListCode . '.' . $this->attributes['name'], $listclass); + } + + // check if we find reason to remove this field from being escaped + $escaped = GetHelper::between( + $this->settings->xml, 'escape="', '"' + ); + if (StringHelper::check($escaped)) + { + $this->donotescape->set($this->nameListCode . '.' . + $this->attributes['name'], true); + } + + // check if we have display switch for dynamic placement + $display = GetHelper::between( + $this->settings->xml, 'display="', '"' + ); + if (StringHelper::check($display)) + { + $this->attributes['display'] = $display; + } + + // make sure validation is set if found (even it not part of field properties) + if (!isset($this->attributes['validate'])) + { + // check if we have validate (validation rule set) + $validationRule = GetHelper::between( + $this->settings->xml, 'validate="', '"' + ); + if (StringHelper::check($validationRule)) + { + $this->attributes['validate'] + = StringHelper::safe( + $validationRule + ); + } + } + + // make sure ID is always readonly + if ($this->attributes['name'] === 'id' && !$this->readonly) + { + $this->attributes['readonly'] = 'true'; + } + } + } + + /** + * Get XML value + * + * @param string $name The property name + * + * @return string|null The property value + * @since 3.2.0 + */ + private function getValue(string $name): ?string + { + if ($name === 'type') + { + return $this->getType(); + } + + if ($name === 'name') + { + return $this->getName(); + } + + if ($name === 'validate') + { + return $this->getValidation(); + } + + if (in_array($name, ['extension', 'directory', 'formsource'])) + { + return $this->getXmlValue($name); + } + + if (strpos((string) $name, 'type_php') !== false && $this->custom) + { + return $this->getTypePHP($name); + } + + if ($name === 'prime_php' && $this->custom) + { + return $this->getPrimePHP($name); + } + + if ($name === 'extends' && $this->custom) + { + return $this->getExtends(); + } + + if ($name === 'view' && $this->custom) + { + return $this->getView(); + } + + if ($name === 'views' && $this->custom) + { + return $this->getViews(); + } + + if ($name === 'component' && $this->custom) + { + return $this->getComponent(); + } + + if ($name === 'table' && $this->custom) + { + return $this->getTable(); + } + + if ($name === 'value_field' && $this->custom) + { + return $this->getValueField(); + } + + if ($name === 'key_field' && $this->custom) + { + return $this->getKeyField(); + } + + if ($name === 'button' && $this->repeatable && $this->custom) + { + return $this->removeButtonRepeatable(); + } + + if ($name === 'button' && $this->custom) + { + return $this->getButton(); + } + + if ($name === 'required' && 'repeatable' === $this->typeName) + { + return $this->removeRequired(); + } + + if ($this->viewType == 2 && in_array($name, ['readonly', 'disabled'])) + { + return $this->setReadonly($name); + } + + if ($name === 'multiple') + { + return $this->getMultiple($name); + } + + if ($name === 'class' && in_array($this->typeName, ['note', 'spacer'])) + { + return $this->getClass(); + } + + // Default action if no condition is met + return $this->getXmlValue($name); + } + + /** + * Model the found value + * + * @param string|null $value The property value + * @param string $name The property name + * @param int $translatable Switch to set translation + * + * @return string|null The property value + * @since 3.2.0 + */ + private function modelValue(?string $value, string $name, int $translatable): ?string + { + // check if translatable + if ($value !== null && StringHelper::check($value) + && $translatable == 1) + { + // update label if field use multiple times + if ($name === 'label') + { + if (isset($this->attributes['name']) + && $this->registry->get("unique.names." . $this->nameListCode . ".names." . $this->attributes['name']) !== null) + { + $value .= ' (' + . StringHelper::safe( + $this->registry->get("unique.names." . $this->nameListCode . ".names." . $this->attributes['name']) + ) . ')'; + } + } + + // replace placeholders + $value = $this->placeholder->update( + $value, $this->placeholders + ); + + // insure custom labels don't get messed up + if ($this->custom) + { + $this->customLabel = $value; + } + + // set lang key + $lang_value = $this->langView . '_' + . FieldHelper::safe( + $this->name . ' ' . $name, true + ); + + // add to lang array + $this->language->set($this->config->lang_target, $lang_value, $value); + + // use lang value + $value = $lang_value; + } + elseif ($this->alias && $translatable == 1) + { + if ($name === 'label') + { + $value = 'JFIELD_ALIAS_LABEL'; + } + elseif ($name === 'description') + { + $value = 'JFIELD_ALIAS_DESC'; + } + elseif ($name === 'hint') + { + $value = 'JFIELD_ALIAS_PLACEHOLDER'; + } + } + elseif ($this->title && $translatable == 1) + { + if ($name === 'label') + { + $value = 'JGLOBAL_TITLE'; + } + } + + return $value; + } + + /** + * set the found value + * + * @param string|null $value The property value + * @param string $name The property name + * @param string $example The example value + * @param int $mandatory The mandatory switch + * + * @return void + * @since 3.2.0 + */ + private function setValue(?string $value, string $name, string $example, int $mandatory): void + { + // only load value if found or is mandatory + if (($value !== null && StringHelper::check($value)) + || ($mandatory == 1 && !$this->custom)) + { + // make sure mandatory fields are added + if ($value === null || !StringHelper::check($value)) + { + $value = $example; + } + + // load to langBuilder down the line + if ($name === 'label') + { + if ($this->custom) + { + $this->attributes['custom']['label'] = $this->customLabel ?? 'error'; + } + + $this->langLabel = $value; + } + + // now set the value + $this->attributes[$name] = $value; + } + // validate that the default field is set + elseif ($name === 'default' + && ($xmlValidateValue = GetHelper::between( + $this->settings->xml, 'default="', '"', 'none-set' + )) !== 'none-set') + { + // we must allow empty defaults + $this->attributes['default'] = $value; + } + } + + /** + * Set PHP if needed + * + * @return void + * @since 3.2.0 + */ + private function setPHP(): void + { + // check if all php is loaded using the tracker + if (ArrayHelper::check($this->php)) + { + // little search validation + $confirmation = '8qvZHoyuFYQqpj0YQbc6F3o5DhBlmS-_-a8pmCZfOVSfANjkmV5LG8pCdAY2JNYu6cB'; + foreach ($this->php as $search_key => $php_key) + { + // we must search for more code in the xml just encase + foreach (range(2, 30) as $php_line) + { + $get_ = $search_key . '_' . $php_line; + if (!isset($this->attributes['custom'][$php_key][$php_line]) + && ($value = UtilitiesFieldHelper::getValue( + $this->settings->xml, $get_, $confirmation + )) !== $confirmation) + { + $this->attributes['custom'][$php_key][$php_line] + = $this->customcode->update( + Base64Helper::open($value) + ); + } + } + } + } + } + + /** + * get an xml value (default) + * + * @param string $name The property name + * + * @return string|null + * @since 3.2.0 + */ + private function getXmlValue(string $name): ?string + { + // get value & replace the placeholders + return $this->placeholder->update( + GetHelper::between( + $this->settings->xml, $name . '="', '"' + ), $this->placeholders + ); + } + + /** + * get type value + * + * @return string + * @since 3.2.0 + */ + private function getType(): string + { + // add to custom if it is custom + if ($this->custom) + { + // set the type just to make sure. + $this->attributes['custom']['type'] = $this->typeName; + } + + return $this->typeName; + } + + /** + * get name value + * + * @return string + * @since 3.2.0 + */ + private function getName(): string + { + // get the actual field name + return $this->placeholder->update($this->name, $this->placeholders); + } + + /** + * get validation value + * + * @return string|null + * @since 3.2.0 + */ + private function getValidation(): ?string + { + // check if we have validate (validation rule set) + $value = GetHelper::between( + $this->settings->xml, 'validate="', '"' + ); + + if (StringHelper::check($value)) + { + $value = StringHelper::safe( + $value + ); + } + + return $value; + } + + /** + * get type PHP code + * + * @param string $name The property name + * + * @return string|null + * @since 3.2.0 + */ + private function getTypePHP(string $name): ?string + { + // set the line number + $line = (int) preg_replace( + '/[^0-9]/', '', (string) $name + ); + + // set the type key + $key = (string) trim( + str_replace( + 'type_', '', + preg_replace('/[0-9]+/', '', (string) $name) + ), '_' + ); + + // load the php for the custom field file + $this->attributes['custom'][$key][$line] + = $this->customcode->update( + Base64Helper::open( + GetHelper::between( + $this->settings->xml, + $name . '="', '"' + ) + ) + ); + + // load tracker + $this->php['type_' . $key] = $key; + + return null; + } + + /** + * get prime PHP code + * + * @param string $name The property name + * + * @return string|null + * @since 3.2.0 + */ + private function getPrimePHP(string $name): ?string + { + // load the php for the custom field file + $this->attributes['custom']['prime_php'] + = (int) GetHelper::between( + $this->settings->xml, $name . '="', '"' + ); + + return null; + } + + /** + * get extends value + * + * @return string|null + * @since 3.2.0 + */ + private function getExtends(): ?string + { + // load the class that is being extended + $this->attributes['custom']['extends'] + = GetHelper::between( + $this->settings->xml, 'extends="', '"' + ); + + return null; + } + + /** + * get view value + * + * @return string|null + * @since 3.2.0 + */ + private function getView(): ?string + { + // load the view name & replace the placeholders + $this->attributes['custom']['view'] + = StringHelper::safe( + $this->placeholder->update( + GetHelper::between( + $this->settings->xml, 'view="', '"' + ), $this->placeholders + ) + ); + + return null; + } + + /** + * get views value + * + * @return string|null + * @since 3.2.0 + */ + private function getViews(): ?string + { + // load the views name & replace the placeholders + $this->attributes['custom']['views'] + = StringHelper::safe( + $this->placeholder->update( + GetHelper::between( + $this->settings->xml, 'views="', '"' + ), $this->placeholders + ) + ); + + return null; + } + + /** + * get component value + * + * @return string|null + * @since 3.2.0 + */ + private function getComponent(): ?string + { + // load the component name & replace the placeholders + $this->attributes['custom']['component'] + = $this->placeholder->update( + GetHelper::between( + $this->settings->xml, 'component="', '"' + ), $this->placeholders + ); + + return null; + } + + /** + * get table value + * + * @return string|null + * @since 3.2.0 + */ + private function getTable(): ?string + { + // load the main table that is queried & replace the placeholders + $this->attributes['custom']['table'] + = $this->placeholder->update( + GetHelper::between( + $this->settings->xml, 'table="', '"' + ), $this->placeholders + ); + + return null; + } + + /** + * get value field + * + * @return string|null + * @since 3.2.0 + */ + private function getValueField(): ?string + { + // load the text key + $this->attributes['custom']['text'] + = StringHelper::safe( + GetHelper::between( + $this->settings->xml, 'value_field="', '"' + ) + ); + + return null; + } + + /** + * get key field value + * + * @return string|null + * @since 3.2.0 + */ + private function getKeyField(): ?string + { + // load the id key + $this->attributes['custom']['id'] + = StringHelper::safe( + GetHelper::between( + $this->settings->xml, 'key_field="', '"' + ) + ); + + return null; + } + + /** + * remove the button on repeatable + * + * @return string + * @since 3.2.0 + */ + private function removeButtonRepeatable(): string + { + // do not add button + $this->attributes['custom']['add_button'] = 'false'; + + // don't load the button to repeatable + return 'false'; + } + + /** + * get button value + * + * @return string|null + * @since 3.2.0 + */ + private function getButton(): ?string + { + // load the button string value if found + $value = (string) StringHelper::safe( + GetHelper::between( + $this->settings->xml, 'button="', '"' + ) + ); + + // add to custom values + $this->attributes['custom']['add_button'] + = (StringHelper::check($value) + || 1 == $value) ? $value : 'false'; + + return $value; + } + + /** + * remove the required value + * + * @return string + * @since 3.2.0 + */ + private function removeRequired(): string + { + // don't load the required to repeatable field type + return 'false'; + } + + /** + * set the readonly switch + * + * @param string $name The property name + * + * @return string + * @since 3.2.0 + */ + private function setReadonly(string $name): string + { + // trip the switch for readonly + if ($name === 'readonly') + { + $this->readonly = true; + } + + // set read only + return 'true'; + } + + /** + * set the multiple switch + * + * @param string $name The property name + * + * @return string + * @since 3.2.0 + */ + private function getMultiple(string $name): string + { + $value = (string) GetHelper::between( + $this->settings->xml, $name . '="', '"' + ); + + // add the multiple + if ('true' === $value) + { + $this->multiple = true; + } + + return $value; + } + + /** + * get class value + * + * @return string + * @since 3.2.0 + */ + private function getClass(): string + { + $value = GetHelper::between( + $this->settings->xml, 'class="', '"' + ); + + // add the type class + if (StringHelper::check($value)) + { + if (strpos($value, $this->name) === false) + { + $value = $value . ' ' . $this->name; + } + + return $value; + } + + return $this->name; + } + + /** + * Initialise the attributes and other global values + * + * @param int $viewType The view type + * @param string $name The field name + * @param string $typeName The field type + * @param bool $multiple The switch to set multiple selection option + * @param string $langLabel The language string for field label + * @param string $langView The language string of the view + * @param string $nameListCode The list view name + * @param string $nameSingleCode The single view name + * @param array $placeholders The place holder and replace values + * @param bool $repeatable The repeatable field switch + * + * @return void + * @since 3.2.0 + */ + private function initialise(int $viewType, string $name, string $typeName, + bool $multiple, string $langLabel, string $langView, string $nameListCode, + string $nameSingleCode, array $placeholders, bool $repeatable): void + { + $this->attributes = []; + $this->php = []; + $this->custom = false; + $this->readonly = false; + $this->viewType = $viewType; + $this->name = $name; + $this->typeName = $typeName; + $this->multiple = $multiple; + $this->langLabel = $langLabel; + $this->langView = $langView; + $this->nameListCode = $nameListCode; + $this->nameSingleCode = $nameSingleCode; + $this->placeholders = $placeholders; + $this->repeatable = $repeatable; + + // setup Joomla default fields + if (!$this->fieldgroups->check($typeName)) + { + $this->attributes['custom'] = []; + + // is this an own custom field + if (isset($this->settings->own_custom)) + { + $this->attributes['custom']['own_custom'] + = $this->settings->own_custom; + } + $this->custom = true; + } + } +} + diff --git a/src/7f515c18-d019-4d2d-9852-b2dc970985b3/code.power b/src/7f515c18-d019-4d2d-9852-b2dc970985b3/code.power new file mode 100644 index 0000000..f1ef814 --- /dev/null +++ b/src/7f515c18-d019-4d2d-9852-b2dc970985b3/code.power @@ -0,0 +1,1121 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Registry Class. + * + * @var Registry + * @since 3.2.0 + */ + protected Registry $registry; + + /** + * The ListFieldClass Class. + * + * @var ListFieldClass + * @since 3.2.0 + */ + protected ListFieldClass $listfieldclass; + + /** + * The DoNotEscape Class. + * + * @var DoNotEscape + * @since 3.2.0 + */ + protected DoNotEscape $donotescape; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Customcode Class. + * + * @var Customcode + * @since 3.2.0 + */ + protected Customcode $customcode; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The Groups Class. + * + * @var FieldGroups + * @since 3.2.0 + */ + protected FieldGroups $fieldgroups; + + /** + * Title Switch + * + * @var int + * @since 3.2.0 + */ + private int $title; + + /** + * Alias Switch + * + * @var int + * @since 3.2.0 + */ + private int $alias; + + /** + * Field Properties + * + * @var array + * @since 3.2.0 + */ + private array $properties; + + /** + * PHP Tracking + * + * @var array + * @since 3.2.0 + */ + private array $php; + + /** + * Field attributes + * + * @var array + * @since 3.2.0 + */ + private array $attributes; + + /** + * Field custom switch + * + * @var bool + * @since 3.2.0 + */ + private bool $custom; + + /** + * Field Custom Label + * + * @var string + * @since 3.2.0 + */ + private string $customLabel; + + /** + * Field readonly switch + * + * @var bool + * @since 3.2.0 + */ + private bool $readonly; + + /** + * Field View Type + * + * @var int + * @since 3.2.0 + */ + private int $viewType; + + /** + * Field Name + * + * @var string + * @since 3.2.0 + */ + private string $name; + + /** + * Field Type Name + * + * @var string + * @since 3.2.0 + */ + private string $typeName; + + /** + * Field Multiple Switch + * + * @var bool + * @since 3.2.0 + */ + private bool $multiple; + + /** + * Field Name Language Label + * + * @var string + * @since 3.2.0 + */ + private string $langLabel; + + /** + * View Language String + * + * @var string + * @since 3.2.0 + */ + private string $langView; + + /** + * View List Code + * + * @var string + * @since 3.2.0 + */ + private string $nameListCode; + + /** + * View Single Code + * + * @var string + * @since 3.2.0 + */ + private string $nameSingleCode; + + /** + * Field Placeholders + * + * @var array + * @since 3.2.0 + */ + private array $placeholders; + + /** + * Repeatable Switch + * + * @var bool + * @since 3.2.0 + */ + private bool $repeatable; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Registry $registry The Registry Class. + * @param ListFieldClass $listfieldclass The ListFieldClass Class. + * @param DoNotEscape $donotescape The DoNotEscape Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Customcode $customcode The Customcode Class. + * @param Language $language The Language Class. + * @param FieldGroups $fieldgroups The Groups Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Registry $registry, ListFieldClass $listfieldclass, DoNotEscape $donotescape, Placeholder $placeholder, + Customcode $customcode, Language $language, FieldGroups $fieldgroups) + { + $this->config = $config; + $this->registry = $registry; + $this->listfieldclass = $listfieldclass; + $this->donotescape = $donotescape; + $this->placeholder = $placeholder; + $this->customcode = $customcode; + $this->language = $language; + $this->fieldgroups = $fieldgroups; + } + + /** + * set field attributes + * + * @param array $field The field data + * @param int $viewType The view type + * @param string $name The field name + * @param string $typeName The field type + * @param bool $multiple The switch to set multiple selection option + * @param string $langLabel The language string for field label + * @param string $langView The language string of the view + * @param string $nameListCode The list view name + * @param string $nameSingleCode The single view name + * @param array $placeholders The place holder and replace values + * @param bool $repeatable The repeatable field switch + * + * @return array The field attributes + * @since 3.2.0 + */ + public function set( + array $field, int $viewType, string $name, string $typeName, + bool &$multiple, string &$langLabel, string $langView, string $nameListCode, + string $nameSingleCode, array $placeholders, bool $repeatable = false + ): array + { + if (!$this->setSettings($field)) + { + return []; + } + + // initialise the empty attributes and other global values + $this->initialise($viewType, $name, $typeName, $multiple, $langLabel, + $langView, $nameListCode, $nameSingleCode, $placeholders, $repeatable); + + if (!$this->setProperties()) + { + return $this->attributes; + } + + // set the attributes + $this->setAttributes(); + + // update global ref passed value + $multiple = $this->multiple; + $langLabel = $this->langLabel; + + return $this->attributes; + } + + /** + * set field settings + * + * @param array $field The field data + * + * @return bool true if settings was set + * @since 3.2.0 + */ + private function setSettings(array $field): bool + { + if (isset($field['settings'])) + { + $this->settings = $field['settings']; + $this->alias = $field['alias'] ?? 0; + $this->title = $field['title'] ?? 0; + + return true; + } + + return false; + } + + /** + * set field properties + * + * @return bool true if settings was set + * @since 3.2.0 + */ + private function setProperties(): bool + { + if (isset($this->settings->properties) && ArrayHelper::check($this->settings->properties)) + { + $this->properties = $this->settings->properties; + + return true; + } + + return false; + } + + /** + * Set the attributes with properties + * + * @return void + * @since 3.2.0 + */ + private function setAttributes(): void + { + foreach ($this->properties as $property) + { + $name = $property['name'] ?? 'error'; + $example = $property['example'] ?? 'error'; + $translatable = $property['translatable'] ?? 0; + $mandatory = $property['mandatory'] ?? 0; + + $this->setValue( + $this->modelValue( + $this->getValue($name), + $name, + (int) $translatable + ), + $name, + $example, + (int) $mandatory + ); + } + + $this->setPHP(); + + $this->extraAttributes(); + } + + /** + * Set the extra attributes + * + * @return void + * @since 3.2.0 + */ + private function extraAttributes(): void + { + // do some nice twigs beyond the default + if (isset($this->attributes['name'])) + { + // check if we have class value for the list view of this field + $listclass = GetHelper::between( + $this->settings->xml, 'listclass="', '"' + ); + if (StringHelper::check($listclass)) + { + $this->listfieldclass->set($this->nameListCode . '.' . $this->attributes['name'], $listclass); + } + + // check if we find reason to remove this field from being escaped + $escaped = GetHelper::between( + $this->settings->xml, 'escape="', '"' + ); + if (StringHelper::check($escaped)) + { + $this->donotescape->set($this->nameListCode . '.' . + $this->attributes['name'], true); + } + + // check if we have display switch for dynamic placement + $display = GetHelper::between( + $this->settings->xml, 'display="', '"' + ); + if (StringHelper::check($display)) + { + $this->attributes['display'] = $display; + } + + // make sure validation is set if found (even it not part of field properties) + if (!isset($this->attributes['validate'])) + { + // check if we have validate (validation rule set) + $validationRule = GetHelper::between( + $this->settings->xml, 'validate="', '"' + ); + if (StringHelper::check($validationRule)) + { + $this->attributes['validate'] + = StringHelper::safe( + $validationRule + ); + } + } + + // make sure ID is always readonly + if ($this->attributes['name'] === 'id' && !$this->readonly) + { + $this->attributes['readonly'] = 'true'; + } + } + } + + /** + * Get XML value + * + * @param string $name The property name + * + * @return string|null The property value + * @since 3.2.0 + */ + private function getValue(string $name): ?string + { + if ($name === 'type') + { + return $this->getType(); + } + + if ($name === 'name') + { + return $this->getName(); + } + + if ($name === 'validate') + { + return $this->getValidation(); + } + + if (in_array($name, ['extension', 'directory', 'formsource'])) + { + return $this->getXmlValue($name); + } + + if (strpos((string) $name, 'type_php') !== false && $this->custom) + { + return $this->getTypePHP($name); + } + + if ($name === 'prime_php' && $this->custom) + { + return $this->getPrimePHP($name); + } + + if ($name === 'extends' && $this->custom) + { + return $this->getExtends(); + } + + if ($name === 'view' && $this->custom) + { + return $this->getView(); + } + + if ($name === 'views' && $this->custom) + { + return $this->getViews(); + } + + if ($name === 'component' && $this->custom) + { + return $this->getComponent(); + } + + if ($name === 'table' && $this->custom) + { + return $this->getTable(); + } + + if ($name === 'value_field' && $this->custom) + { + return $this->getValueField(); + } + + if ($name === 'key_field' && $this->custom) + { + return $this->getKeyField(); + } + + if ($name === 'button' && $this->repeatable && $this->custom) + { + return $this->removeButtonRepeatable(); + } + + if ($name === 'button' && $this->custom) + { + return $this->getButton(); + } + + if ($name === 'required' && 'repeatable' === $this->typeName) + { + return $this->removeRequired(); + } + + if ($this->viewType == 2 && in_array($name, ['readonly', 'disabled'])) + { + return $this->setReadonly($name); + } + + if ($name === 'multiple') + { + return $this->getMultiple($name); + } + + if ($name === 'class' && in_array($this->typeName, ['note', 'spacer'])) + { + return $this->getClass(); + } + + // Default action if no condition is met + return $this->getXmlValue($name); + } + + /** + * Model the found value + * + * @param string|null $value The property value + * @param string $name The property name + * @param int $translatable Switch to set translation + * + * @return string|null The property value + * @since 3.2.0 + */ + private function modelValue(?string $value, string $name, int $translatable): ?string + { + // check if translatable + if ($value !== null && StringHelper::check($value) + && $translatable == 1) + { + // update label if field use multiple times + if ($name === 'label') + { + if (isset($this->attributes['name']) + && $this->registry->get("unique.names." . $this->nameListCode . ".names." . $this->attributes['name']) !== null) + { + $value .= ' (' + . StringHelper::safe( + $this->registry->get("unique.names." . $this->nameListCode . ".names." . $this->attributes['name']) + ) . ')'; + } + } + + // replace placeholders + $value = $this->placeholder->update( + $value, $this->placeholders + ); + + // insure custom labels don't get messed up + if ($this->custom) + { + $this->customLabel = $value; + } + + // set lang key + $lang_value = $this->langView . '_' + . FieldHelper::safe( + $this->name . ' ' . $name, true + ); + + // add to lang array + $this->language->set($this->config->lang_target, $lang_value, $value); + + // use lang value + $value = $lang_value; + } + elseif ($this->alias && $translatable == 1) + { + if ($name === 'label') + { + $value = 'JFIELD_ALIAS_LABEL'; + } + elseif ($name === 'description') + { + $value = 'JFIELD_ALIAS_DESC'; + } + elseif ($name === 'hint') + { + $value = 'JFIELD_ALIAS_PLACEHOLDER'; + } + } + elseif ($this->title && $translatable == 1) + { + if ($name === 'label') + { + $value = 'JGLOBAL_TITLE'; + } + } + + return $value; + } + + /** + * set the found value + * + * @param string|null $value The property value + * @param string $name The property name + * @param string $example The example value + * @param int $mandatory The mandatory switch + * + * @return void + * @since 3.2.0 + */ + private function setValue(?string $value, string $name, string $example, int $mandatory): void + { + // only load value if found or is mandatory + if (($value !== null && StringHelper::check($value)) + || ($mandatory == 1 && !$this->custom)) + { + // make sure mandatory fields are added + if ($value === null || !StringHelper::check($value)) + { + $value = $example; + } + + // load to langBuilder down the line + if ($name === 'label') + { + if ($this->custom) + { + $this->attributes['custom']['label'] = $this->customLabel ?? 'error'; + } + + $this->langLabel = $value; + } + + // now set the value + $this->attributes[$name] = $value; + } + // validate that the default field is set + elseif ($name === 'default' + && ($xmlValidateValue = GetHelper::between( + $this->settings->xml, 'default="', '"', 'none-set' + )) !== 'none-set') + { + // we must allow empty defaults + $this->attributes['default'] = $value; + } + } + + /** + * Set PHP if needed + * + * @return void + * @since 3.2.0 + */ + private function setPHP(): void + { + // check if all php is loaded using the tracker + if (ArrayHelper::check($this->php)) + { + // little search validation + $confirmation = '8qvZHoyuFYQqpj0YQbc6F3o5DhBlmS-_-a8pmCZfOVSfANjkmV5LG8pCdAY2JNYu6cB'; + foreach ($this->php as $search_key => $php_key) + { + // we must search for more code in the xml just encase + foreach (range(2, 30) as $php_line) + { + $get_ = $search_key . '_' . $php_line; + if (!isset($this->attributes['custom'][$php_key][$php_line]) + && ($value = UtilitiesFieldHelper::getValue( + $this->settings->xml, $get_, $confirmation + )) !== $confirmation) + { + $this->attributes['custom'][$php_key][$php_line] + = $this->customcode->update( + Base64Helper::open($value) + ); + } + } + } + } + } + + /** + * get an xml value (default) + * + * @param string $name The property name + * + * @return string|null + * @since 3.2.0 + */ + private function getXmlValue(string $name): ?string + { + // get value & replace the placeholders + return $this->placeholder->update( + GetHelper::between( + $this->settings->xml, $name . '="', '"' + ), $this->placeholders + ); + } + + /** + * get type value + * + * @return string + * @since 3.2.0 + */ + private function getType(): string + { + // add to custom if it is custom + if ($this->custom) + { + // set the type just to make sure. + $this->attributes['custom']['type'] = $this->typeName; + } + + return $this->typeName; + } + + /** + * get name value + * + * @return string + * @since 3.2.0 + */ + private function getName(): string + { + // get the actual field name + return $this->placeholder->update($this->name, $this->placeholders); + } + + /** + * get validation value + * + * @return string|null + * @since 3.2.0 + */ + private function getValidation(): ?string + { + // check if we have validate (validation rule set) + $value = GetHelper::between( + $this->settings->xml, 'validate="', '"' + ); + + if (StringHelper::check($value)) + { + $value = StringHelper::safe( + $value + ); + } + + return $value; + } + + /** + * get type PHP code + * + * @param string $name The property name + * + * @return string|null + * @since 3.2.0 + */ + private function getTypePHP(string $name): ?string + { + // set the line number + $line = (int) preg_replace( + '/[^0-9]/', '', (string) $name + ); + + // set the type key + $key = (string) trim( + str_replace( + 'type_', '', + preg_replace('/[0-9]+/', '', (string) $name) + ), '_' + ); + + // load the php for the custom field file + $this->attributes['custom'][$key][$line] + = $this->customcode->update( + Base64Helper::open( + GetHelper::between( + $this->settings->xml, + $name . '="', '"' + ) + ) + ); + + // load tracker + $this->php['type_' . $key] = $key; + + return null; + } + + /** + * get prime PHP code + * + * @param string $name The property name + * + * @return string|null + * @since 3.2.0 + */ + private function getPrimePHP(string $name): ?string + { + // load the php for the custom field file + $this->attributes['custom']['prime_php'] + = (int) GetHelper::between( + $this->settings->xml, $name . '="', '"' + ); + + return null; + } + + /** + * get extends value + * + * @return string|null + * @since 3.2.0 + */ + private function getExtends(): ?string + { + // load the class that is being extended + $this->attributes['custom']['extends'] + = GetHelper::between( + $this->settings->xml, 'extends="', '"' + ); + + return null; + } + + /** + * get view value + * + * @return string|null + * @since 3.2.0 + */ + private function getView(): ?string + { + // load the view name & replace the placeholders + $this->attributes['custom']['view'] + = StringHelper::safe( + $this->placeholder->update( + GetHelper::between( + $this->settings->xml, 'view="', '"' + ), $this->placeholders + ) + ); + + return null; + } + + /** + * get views value + * + * @return string|null + * @since 3.2.0 + */ + private function getViews(): ?string + { + // load the views name & replace the placeholders + $this->attributes['custom']['views'] + = StringHelper::safe( + $this->placeholder->update( + GetHelper::between( + $this->settings->xml, 'views="', '"' + ), $this->placeholders + ) + ); + + return null; + } + + /** + * get component value + * + * @return string|null + * @since 3.2.0 + */ + private function getComponent(): ?string + { + // load the component name & replace the placeholders + $this->attributes['custom']['component'] + = $this->placeholder->update( + GetHelper::between( + $this->settings->xml, 'component="', '"' + ), $this->placeholders + ); + + return null; + } + + /** + * get table value + * + * @return string|null + * @since 3.2.0 + */ + private function getTable(): ?string + { + // load the main table that is queried & replace the placeholders + $this->attributes['custom']['table'] + = $this->placeholder->update( + GetHelper::between( + $this->settings->xml, 'table="', '"' + ), $this->placeholders + ); + + return null; + } + + /** + * get value field + * + * @return string|null + * @since 3.2.0 + */ + private function getValueField(): ?string + { + // load the text key + $this->attributes['custom']['text'] + = StringHelper::safe( + GetHelper::between( + $this->settings->xml, 'value_field="', '"' + ) + ); + + return null; + } + + /** + * get key field value + * + * @return string|null + * @since 3.2.0 + */ + private function getKeyField(): ?string + { + // load the id key + $this->attributes['custom']['id'] + = StringHelper::safe( + GetHelper::between( + $this->settings->xml, 'key_field="', '"' + ) + ); + + return null; + } + + /** + * remove the button on repeatable + * + * @return string + * @since 3.2.0 + */ + private function removeButtonRepeatable(): string + { + // do not add button + $this->attributes['custom']['add_button'] = 'false'; + + // don't load the button to repeatable + return 'false'; + } + + /** + * get button value + * + * @return string|null + * @since 3.2.0 + */ + private function getButton(): ?string + { + // load the button string value if found + $value = (string) StringHelper::safe( + GetHelper::between( + $this->settings->xml, 'button="', '"' + ) + ); + + // add to custom values + $this->attributes['custom']['add_button'] + = (StringHelper::check($value) + || 1 == $value) ? $value : 'false'; + + return $value; + } + + /** + * remove the required value + * + * @return string + * @since 3.2.0 + */ + private function removeRequired(): string + { + // don't load the required to repeatable field type + return 'false'; + } + + /** + * set the readonly switch + * + * @param string $name The property name + * + * @return string + * @since 3.2.0 + */ + private function setReadonly(string $name): string + { + // trip the switch for readonly + if ($name === 'readonly') + { + $this->readonly = true; + } + + // set read only + return 'true'; + } + + /** + * set the multiple switch + * + * @param string $name The property name + * + * @return string + * @since 3.2.0 + */ + private function getMultiple(string $name): string + { + $value = (string) GetHelper::between( + $this->settings->xml, $name . '="', '"' + ); + + // add the multiple + if ('true' === $value) + { + $this->multiple = true; + } + + return $value; + } + + /** + * get class value + * + * @return string + * @since 3.2.0 + */ + private function getClass(): string + { + $value = GetHelper::between( + $this->settings->xml, 'class="', '"' + ); + + // add the type class + if (StringHelper::check($value)) + { + if (strpos($value, $this->name) === false) + { + $value = $value . ' ' . $this->name; + } + + return $value; + } + + return $this->name; + } + + /** + * Initialise the attributes and other global values + * + * @param int $viewType The view type + * @param string $name The field name + * @param string $typeName The field type + * @param bool $multiple The switch to set multiple selection option + * @param string $langLabel The language string for field label + * @param string $langView The language string of the view + * @param string $nameListCode The list view name + * @param string $nameSingleCode The single view name + * @param array $placeholders The place holder and replace values + * @param bool $repeatable The repeatable field switch + * + * @return void + * @since 3.2.0 + */ + private function initialise(int $viewType, string $name, string $typeName, + bool $multiple, string $langLabel, string $langView, string $nameListCode, + string $nameSingleCode, array $placeholders, bool $repeatable): void + { + $this->attributes = []; + $this->php = []; + $this->custom = false; + $this->readonly = false; + $this->viewType = $viewType; + $this->name = $name; + $this->typeName = $typeName; + $this->multiple = $multiple; + $this->langLabel = $langLabel; + $this->langView = $langView; + $this->nameListCode = $nameListCode; + $this->nameSingleCode = $nameSingleCode; + $this->placeholders = $placeholders; + $this->repeatable = $repeatable; + + // setup Joomla default fields + if (!$this->fieldgroups->check($typeName)) + { + $this->attributes['custom'] = []; + + // is this an own custom field + if (isset($this->settings->own_custom)) + { + $this->attributes['custom']['own_custom'] + = $this->settings->own_custom; + } + $this->custom = true; + } + } \ No newline at end of file diff --git a/src/7f515c18-d019-4d2d-9852-b2dc970985b3/settings.json b/src/7f515c18-d019-4d2d-9852-b2dc970985b3/settings.json new file mode 100644 index 0000000..2b59797 --- /dev/null +++ b/src/7f515c18-d019-4d2d-9852-b2dc970985b3/settings.json @@ -0,0 +1,75 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "7f515c18-d019-4d2d-9852-b2dc970985b3", + "implements": null, + "load_selection": null, + "name": "Attributes", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Field.Attributes", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "as": "default" + }, + "use_selection2": { + "use": "c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6", + "as": "default" + }, + "use_selection3": { + "use": "0d9d3294-0bed-4c44-b1a1-e172f62cafb2", + "as": "default" + }, + "use_selection4": { + "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", + "as": "default" + }, + "use_selection5": { + "use": "313b43c4-98c3-4f62-9177-2d73ec8eba31", + "as": "default" + }, + "use_selection6": { + "use": "8eee7df5-2775-41a9-9372-c46c5939a252", + "as": "default" + }, + "use_selection7": { + "use": "12df35ad-2d44-4c4c-a7d5-a3350932a520", + "as": "FieldGroups" + }, + "use_selection8": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + }, + "use_selection9": { + "use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc", + "as": "default" + }, + "use_selection10": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection11": { + "use": "64a6ff6c-069c-4a11-a76b-db5e36c27690", + "as": "default" + }, + "use_selection12": { + "use": "9ef0eb24-aae4-4f5a-99af-d724db44808f", + "as": "default" + }, + "use_selection13": { + "use": "7a5fd3f3-199e-43ba-a8e8-f473d6c030ec", + "as": "UtilitiesFieldHelper" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Field.Attributes", + "description": "Compiler Field Attributes\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": "" +} \ No newline at end of file diff --git a/src/81212121-ad5c-43c5-b046-f2650864f690/README.md b/src/81212121-ad5c-43c5-b046-f2650864f690/README.md new file mode 100644 index 0000000..e6852d2 --- /dev/null +++ b/src/81212121-ad5c-43c5-b046-f2650864f690/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class AccessSwitchList (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class AccessSwitchList << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/81212121-ad5c-43c5-b046-f2650864f690/code.php b/src/81212121-ad5c-43c5-b046-f2650864f690/code.php new file mode 100644 index 0000000..1e6317d --- /dev/null +++ b/src/81212121-ad5c-43c5-b046-f2650864f690/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Access Switch List Builder Class + * + * @since 3.2.0 + */ +final class AccessSwitchList extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/81212121-ad5c-43c5-b046-f2650864f690/code.power b/src/81212121-ad5c-43c5-b046-f2650864f690/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/81212121-ad5c-43c5-b046-f2650864f690/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/81212121-ad5c-43c5-b046-f2650864f690/settings.json b/src/81212121-ad5c-43c5-b046-f2650864f690/settings.json new file mode 100644 index 0000000..af3a04e --- /dev/null +++ b/src/81212121-ad5c-43c5-b046-f2650864f690/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "81212121-ad5c-43c5-b046-f2650864f690", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "AccessSwitchList", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.AccessSwitchList", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.AccessSwitchList", + "description": "Access Switch List Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/8561f1f6-96c7-4e54-8869-0132116d57ce/README.md b/src/8561f1f6-96c7-4e54-8869-0132116d57ce/README.md new file mode 100644 index 0000000..6992355 --- /dev/null +++ b/src/8561f1f6-96c7-4e54-8869-0132116d57ce/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class CheckBox (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class CheckBox << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/8561f1f6-96c7-4e54-8869-0132116d57ce/code.php b/src/8561f1f6-96c7-4e54-8869-0132116d57ce/code.php new file mode 100644 index 0000000..8f8e060 --- /dev/null +++ b/src/8561f1f6-96c7-4e54-8869-0132116d57ce/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Check Box Builder Class + * + * @since 3.2.0 + */ +final class CheckBox extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/8561f1f6-96c7-4e54-8869-0132116d57ce/code.power b/src/8561f1f6-96c7-4e54-8869-0132116d57ce/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/8561f1f6-96c7-4e54-8869-0132116d57ce/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/8561f1f6-96c7-4e54-8869-0132116d57ce/settings.json b/src/8561f1f6-96c7-4e54-8869-0132116d57ce/settings.json new file mode 100644 index 0000000..8019948 --- /dev/null +++ b/src/8561f1f6-96c7-4e54-8869-0132116d57ce/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "8561f1f6-96c7-4e54-8869-0132116d57ce", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "CheckBox", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.CheckBox", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.CheckBox", + "description": "Check Box Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/README.md b/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/README.md new file mode 100644 index 0000000..2a27609 --- /dev/null +++ b/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class TemplateData (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class TemplateData << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/code.php b/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/code.php new file mode 100644 index 0000000..9f002b0 --- /dev/null +++ b/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Template Data Builder Class + * + * @since 3.2.0 + */ +final class TemplateData extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/code.power b/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/settings.json b/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/settings.json new file mode 100644 index 0000000..98bf83f --- /dev/null +++ b/src/8591f6db-dd3c-4a63-9b3f-574c0ec74ade/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "8591f6db-dd3c-4a63-9b3f-574c0ec74ade", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "TemplateData", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.TemplateData", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.TemplateData", + "description": "Template Data Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/87d1da23-08d6-4fbf-bd0d-b746da240b8a/README.md b/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/README.md new file mode 100644 index 0000000..fe1b95c --- /dev/null +++ b/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class CustomField (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class CustomField << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/code.php b/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/code.php new file mode 100644 index 0000000..1eced25 --- /dev/null +++ b/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Custom Field Builder Class + * + * @since 3.2.0 + */ +final class CustomField extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/code.power b/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/settings.json b/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/settings.json new file mode 100644 index 0000000..1b3e9bc --- /dev/null +++ b/src/87d1da23-08d6-4fbf-bd0d-b746da240b8a/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "87d1da23-08d6-4fbf-bd0d-b746da240b8a", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "CustomField", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.CustomField", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.CustomField", + "description": "Custom Field Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/87faa133-4cac-4816-ae41-5c3f9a2f76aa/code.php b/src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/code.php index 0d9212d..349b31f 100644 --- a/src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/code.php +++ b/src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/code.php @@ -106,9 +106,9 @@ class Customview implements ServiceProviderInterface { return new DynamicgetSelection( $container->get('Config'), - $container->get('Registry') + $container->get('Compiler.Builder.Get.As.Lookup'), + $container->get('Compiler.Builder.Site.Fields') ); - } - + } } diff --git a/src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/code.power b/src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/code.power index 0e7a5c0..32da808 100644 --- a/src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/code.power +++ b/src/87faa133-4cac-4816-ae41-5c3f9a2f76aa/code.power @@ -78,6 +78,7 @@ { return new DynamicgetSelection( $container->get('Config'), - $container->get('Registry') + $container->get('Compiler.Builder.Get.As.Lookup'), + $container->get('Compiler.Builder.Site.Fields') ); - } + } \ No newline at end of file diff --git a/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/README.md b/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/README.md new file mode 100644 index 0000000..a17f737 --- /dev/null +++ b/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/README.md @@ -0,0 +1,165 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ServiceProviderBuilder (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Generator** +```uml +@startuml +class ServiceProviderBuilder << (F,LightGreen) >> #RoyalBlue { + # Search $search + # ServiceProvider $serviceprovider + + __construct(Search $search, ServiceProvider $serviceprovider) + + getCode(array $power) : ?string + - setRegisterLines(array $useSelections) : void + - setGetFunctions(array $useSelections) : void + - valid(string $guid) : bool + - getName(string $guid, string $as = 'default') : ?string + - getFunctionName(string $name) : string + - getDependencies(string $guid) : ?array + - getDescription(string $guid) : ?string + - getAlias(string $guid, string $className) : string + - getServiceProviderCode() : ?string + - setVersion(string $version) : void + + setRegisterLine(string $className, string $functionName, ...) : void + + setGetFunction(string $className, string $functionName, ...) : void + - extractSinceVersion(string $inputString) : ?string +} + +note right of ServiceProviderBuilder::__construct + Constructor. + + since: 3.2.0 +end note + +note left of ServiceProviderBuilder::getCode + Get the service provider code. + + since: 3.2.0 + return: ?string +end note + +note right of ServiceProviderBuilder::setRegisterLines + Set the class alias and share code for the service provider register. + + since: 3.2.0 + return: void +end note + +note left of ServiceProviderBuilder::setGetFunctions + Set the class get function for the service provider. + + since: 3.2.0 + return: void +end note + +note right of ServiceProviderBuilder::valid + Check that this is a valid injection class. + + since: 3.2.0 + return: bool +end note + +note left of ServiceProviderBuilder::getName + Get the class name. + + since: 3.2.0 + return: ?string +end note + +note right of ServiceProviderBuilder::getFunctionName + Get the function name. + + since: 3.2.0 + return: string +end note + +note left of ServiceProviderBuilder::getDependencies + Get the dependencies of a class + + since: 3.2.0 + return: ?array +end note + +note right of ServiceProviderBuilder::getDescription + Get the class description. + + since: 3.2.0 + return: ?string +end note + +note left of ServiceProviderBuilder::getAlias + Get the class alias + + since: 3.2.0 + return: string +end note + +note right of ServiceProviderBuilder::getServiceProviderCode + Get the service provider code. + + since: 3.2.0 + return: ?string +end note + +note left of ServiceProviderBuilder::setVersion + Set the class since version. + + since: 3.2.0 + return: void +end note + +note right of ServiceProviderBuilder::setRegisterLine + Set the class alias and share code for the service provider register. + + since: 3.2.0 + return: void + + arguments: + string $className + string $functionName + string $alias +end note + +note left of ServiceProviderBuilder::setGetFunction + Set the class get function for the service provider. + + since: 3.2.0 + return: void + + arguments: + string $className + string $functionName + string $description + ?array $dependencies = null +end note + +note right of ServiceProviderBuilder::extractSinceVersion + Extract the '@since' version number from a given string. +This function checks the provided string for a '@since' annotation +and retrieves the subsequent version number. If no '@since' +annotation is found or no version number is provided after the +annotation, the function will return null. + + since: 3.2.0 + return: ?string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/code.php b/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/code.php new file mode 100644 index 0000000..61a5580 --- /dev/null +++ b/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/code.php @@ -0,0 +1,303 @@ + + * @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\Power\Generator; + + +use VDM\Joomla\Componentbuilder\Power\Generator\Search; +use VDM\Joomla\Componentbuilder\Power\Generator\ServiceProvider; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; + + +/** + * Power Service Provider Builder of JCB + * + * @since 3.2.0 + */ +final class ServiceProviderBuilder +{ + /** + * The Search Class. + * + * @var Search + * @since 3.2.0 + */ + protected Search $search; + + /** + * The Service Provider Class. + * + * @var ServiceProvider + * @since 3.2.0 + */ + protected ServiceProvider $serviceprovider; + + /** + * Constructor. + * + * @param Search $search The Search Class. + * @param ServiceProvider $serviceprovider The Service Provider Class. + * + * @since 3.2.0 + */ + public function __construct(Search $search, ServiceProvider $serviceprovider) + { + $this->search = $search; + $this->serviceprovider = $serviceprovider; + } + + /** + * Get the service provider code. + * + * @param array $power The power being saved + * + * @return string|null + * @since 3.2.0 + */ + public function getCode(array $power): ?string + { + $this->setVersion($this->extractSinceVersion($power['description'] ?? '') ?? $power['power_version'] ?? '1.0.0'); + + if (!empty($power['use_selection'])) + { + $this->setRegisterLines($power['use_selection']); + $this->setGetFunctions($power['use_selection']); + } + + return $this->getServiceProviderCode(); + } + + /** + * Set the class alias and share code for the service provider register. + * + * @param array $useSelections The use (in class) selections + * + * @return void + * @since 3.2.0 + */ + private function setRegisterLines(array $useSelections): void + { + foreach ($useSelections as $use_selection) + { + if (!$this->valid($use_selection['use'])) + { + continue; + } + + if (($name = $this->getName($use_selection['use'], $use_selection['as'])) === null) + { + continue; + } + + $function_name = $this->getFunctionName($name); + $alias = $this->getAlias($use_selection['use'], $name); + + $this->setRegisterLine($name, $function_name, $alias); + } + } + + /** + * Set the class get function for the service provider. + * + * @param array $useSelections The use (in class) selections + * + * @return void + * @since 3.2.0 + */ + private function setGetFunctions(array $useSelections): void + { + foreach ($useSelections as $use_selection) + { + if (!$this->valid($use_selection['use'])) + { + continue; + } + + if (($name = $this->getName($use_selection['use'], $use_selection['as'])) === null) + { + continue; + } + + if (($description = $this->getDescription($use_selection['use'])) === null) + { + continue; + } + + $function_name = $this->getFunctionName($name); + $dependencies = $this->getDependencies($use_selection['use']); + + $this->setGetFunction($name, $function_name, "Get $description", $dependencies); + } + } + + /** + * Check that this is a valid injection class. + * + * @param string $guid The class GUID of the power + * + * @return bool + * @since 3.2.0 + */ + private function valid(string $guid): bool + { + return $this->search->validInject($guid); + } + + /** + * Get the class name. + * + * @param string $guid The class GUID of the power + * @param string $as The as name + * + * @return string|null + * @since 3.2.0 + */ + private function getName(string $guid, string $as = 'default'): ?string + { + return $this->search->name($guid, $as); + } + + /** + * Get the function name. + * + * @param string $name The class name + * + * @return string + * @since 3.2.0 + */ + private function getFunctionName(string $name): string + { + return "get{$name}"; + } + + /** + * Get the dependencies of a class + * + * @param string $guid The class GUID of the power + * + * @return array|null + * @since 3.2.0 + */ + private function getDependencies(string $guid): ?array + { + return $this->search->dependencies($guid); + } + + /** + * Get the class description. + * + * @param string $guid The class GUID of the power + * + * @return string|null + * @since 3.2.0 + */ + private function getDescription(string $guid): ?string + { + return $this->search->description($guid); + } + + /** + * Get the class alias + * + * @param string $guid The class GUID of the power + * @param string $className The class name + * + * @return string + * @since 3.2.0 + */ + private function getAlias(string $guid, string $className): string + { + return $this->search->alias($guid, $className); + } + + /** + * Get the service provider code. + * + * @return string|null + * @since 3.2.0 + */ + private function getServiceProviderCode(): ?string + { + return $this->serviceprovider->getCode(); + } + + /** + * Set the class since version. + * + * @param string $version The class since version + * + * @return void + * @since 3.2.0 + */ + private function setVersion(string $version): void + { + $this->serviceprovider->setVersion($version); + } + + /** + * Set the class alias and share code for the service provider register. + * + * @param string $className The variable name in lowerCamelCase format. + * @param string $functionName The function name in lowerCamelCase format. + * @param string $alias The variable alias format. + * + * @return void + * @since 3.2.0 + */ + public function setRegisterLine(string $className, string $functionName, string $alias): void + { + $this->serviceprovider->setRegisterLine($className, $functionName, $alias); + } + + /** + * Set the class get function for the service provider. + * + * @param string $className The variable name in lowerCamelCase format. + * @param string $functionName The function name in lowerCamelCase format. + * @param string $description The function description. + * @param array|null $dependencies The class dependencies aliases. + * + * @return void + * @since 3.2.0 + */ + public function setGetFunction(string $className, string $functionName, + string $description, ?array $dependencies = null): void + { + $this->serviceprovider->setGetFunction($className, $functionName, + $description, $dependencies); + } + + /** + * Extract the '@since' version number from a given string. + * + * This function checks the provided string for a '@since' annotation + * and retrieves the subsequent version number. If no '@since' + * annotation is found or no version number is provided after the + * annotation, the function will return null. + * + * @param string $inputString The input string to search. + * + * @return string|null The version number if found, or null if not. + * @since 3.2.0 + */ + private function extractSinceVersion(string $inputString): ?string + { + // Use regex to match the @since pattern and capture the version number + if (preg_match('/@since\s+([\d\.]+)/', $inputString, $matches)) + { + return $matches[1]; + } + + // If no match is found, return null + return null; + } +} + diff --git a/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/code.power b/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/code.power new file mode 100644 index 0000000..7f4e11f --- /dev/null +++ b/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/code.power @@ -0,0 +1,275 @@ + /** + * The Search Class. + * + * @var Search + * @since 3.2.0 + */ + protected Search $search; + + /** + * The Service Provider Class. + * + * @var ServiceProvider + * @since 3.2.0 + */ + protected ServiceProvider $serviceprovider; + + /** + * Constructor. + * + * @param Search $search The Search Class. + * @param ServiceProvider $serviceprovider The Service Provider Class. + * + * @since 3.2.0 + */ + public function __construct(Search $search, ServiceProvider $serviceprovider) + { + $this->search = $search; + $this->serviceprovider = $serviceprovider; + } + + /** + * Get the service provider code. + * + * @param array $power The power being saved + * + * @return string|null + * @since 3.2.0 + */ + public function getCode(array $power): ?string + { + $this->setVersion($this->extractSinceVersion($power['description'] ?? '') ?? $power['power_version'] ?? '1.0.0'); + + if (!empty($power['use_selection'])) + { + $this->setRegisterLines($power['use_selection']); + $this->setGetFunctions($power['use_selection']); + } + + return $this->getServiceProviderCode(); + } + + /** + * Set the class alias and share code for the service provider register. + * + * @param array $useSelections The use (in class) selections + * + * @return void + * @since 3.2.0 + */ + private function setRegisterLines(array $useSelections): void + { + foreach ($useSelections as $use_selection) + { + if (!$this->valid($use_selection['use'])) + { + continue; + } + + if (($name = $this->getName($use_selection['use'], $use_selection['as'])) === null) + { + continue; + } + + $function_name = $this->getFunctionName($name); + $alias = $this->getAlias($use_selection['use'], $name); + + $this->setRegisterLine($name, $function_name, $alias); + } + } + + /** + * Set the class get function for the service provider. + * + * @param array $useSelections The use (in class) selections + * + * @return void + * @since 3.2.0 + */ + private function setGetFunctions(array $useSelections): void + { + foreach ($useSelections as $use_selection) + { + if (!$this->valid($use_selection['use'])) + { + continue; + } + + if (($name = $this->getName($use_selection['use'], $use_selection['as'])) === null) + { + continue; + } + + if (($description = $this->getDescription($use_selection['use'])) === null) + { + continue; + } + + $function_name = $this->getFunctionName($name); + $dependencies = $this->getDependencies($use_selection['use']); + + $this->setGetFunction($name, $function_name, "Get $description", $dependencies); + } + } + + /** + * Check that this is a valid injection class. + * + * @param string $guid The class GUID of the power + * + * @return bool + * @since 3.2.0 + */ + private function valid(string $guid): bool + { + return $this->search->validInject($guid); + } + + /** + * Get the class name. + * + * @param string $guid The class GUID of the power + * @param string $as The as name + * + * @return string|null + * @since 3.2.0 + */ + private function getName(string $guid, string $as = 'default'): ?string + { + return $this->search->name($guid, $as); + } + + /** + * Get the function name. + * + * @param string $name The class name + * + * @return string + * @since 3.2.0 + */ + private function getFunctionName(string $name): string + { + return "get{$name}"; + } + + /** + * Get the dependencies of a class + * + * @param string $guid The class GUID of the power + * + * @return array|null + * @since 3.2.0 + */ + private function getDependencies(string $guid): ?array + { + return $this->search->dependencies($guid); + } + + /** + * Get the class description. + * + * @param string $guid The class GUID of the power + * + * @return string|null + * @since 3.2.0 + */ + private function getDescription(string $guid): ?string + { + return $this->search->description($guid); + } + + /** + * Get the class alias + * + * @param string $guid The class GUID of the power + * @param string $className The class name + * + * @return string + * @since 3.2.0 + */ + private function getAlias(string $guid, string $className): string + { + return $this->search->alias($guid, $className); + } + + /** + * Get the service provider code. + * + * @return string|null + * @since 3.2.0 + */ + private function getServiceProviderCode(): ?string + { + return $this->serviceprovider->getCode(); + } + + /** + * Set the class since version. + * + * @param string $version The class since version + * + * @return void + * @since 3.2.0 + */ + private function setVersion(string $version): void + { + $this->serviceprovider->setVersion($version); + } + + /** + * Set the class alias and share code for the service provider register. + * + * @param string $className The variable name in lowerCamelCase format. + * @param string $functionName The function name in lowerCamelCase format. + * @param string $alias The variable alias format. + * + * @return void + * @since 3.2.0 + */ + public function setRegisterLine(string $className, string $functionName, string $alias): void + { + $this->serviceprovider->setRegisterLine($className, $functionName, $alias); + } + + /** + * Set the class get function for the service provider. + * + * @param string $className The variable name in lowerCamelCase format. + * @param string $functionName The function name in lowerCamelCase format. + * @param string $description The function description. + * @param array|null $dependencies The class dependencies aliases. + * + * @return void + * @since 3.2.0 + */ + public function setGetFunction(string $className, string $functionName, + string $description, ?array $dependencies = null): void + { + $this->serviceprovider->setGetFunction($className, $functionName, + $description, $dependencies); + } + + /** + * Extract the '@since' version number from a given string. + * + * This function checks the provided string for a '@since' annotation + * and retrieves the subsequent version number. If no '@since' + * annotation is found or no version number is provided after the + * annotation, the function will return null. + * + * @param string $inputString The input string to search. + * + * @return string|null The version number if found, or null if not. + * @since 3.2.0 + */ + private function extractSinceVersion(string $inputString): ?string + { + // Use regex to match the @since pattern and capture the version number + if (preg_match('/@since\s+([\d\.]+)/', $inputString, $matches)) + { + return $matches[1]; + } + + // If no match is found, return null + return null; + } \ No newline at end of file diff --git a/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/settings.json b/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/settings.json new file mode 100644 index 0000000..fb72a3d --- /dev/null +++ b/src/8a2a3ee5-6ce2-4604-91e2-01f770228960/settings.json @@ -0,0 +1,31 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "8a2a3ee5-6ce2-4604-91e2-01f770228960", + "implements": null, + "load_selection": null, + "name": "ServiceProviderBuilder", + "power_version": "1.0.0", + "system_name": "JCB.Power.Generator.ServiceProviderBuilder", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "50302fce-62b4-48ae-a692-9cc4595ce74c", + "as": "default" + }, + "use_selection1": { + "use": "369ae3f5-90db-43b9-aba9-ce5c83311c4e", + "as": "default" + }, + "use_selection2": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Generator.ServiceProviderBuilder", + "description": "Power Service Provider Builder of JCB\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": "" +} \ No newline at end of file diff --git a/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/README.md b/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/README.md new file mode 100644 index 0000000..b87fc0b --- /dev/null +++ b/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Tags (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class Tags << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/code.php b/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/code.php new file mode 100644 index 0000000..ab5d3a4 --- /dev/null +++ b/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Tags Builder Class + * + * @since 3.2.0 + */ +final class Tags extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/code.power b/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/settings.json b/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/settings.json new file mode 100644 index 0000000..b9ae7f0 --- /dev/null +++ b/src/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "8ca30d59-e56a-4cdd-bd8c-d9aad28f5903", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "Tags", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.Tags", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Tags", + "description": "Tags Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/README.md b/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/README.md new file mode 100644 index 0000000..5358d7f --- /dev/null +++ b/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class GetAsLookup (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class GetAsLookup << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/code.php b/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/code.php new file mode 100644 index 0000000..7efc09c --- /dev/null +++ b/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Get As Lookup Builder Class + * + * @since 3.2.0 + */ +final class GetAsLookup extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/code.power b/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/settings.json b/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/settings.json new file mode 100644 index 0000000..eccde04 --- /dev/null +++ b/src/8f46f85d-7921-44e9-a40e-dc4f01c5d43a/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "8f46f85d-7921-44e9-a40e-dc4f01c5d43a", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "GetAsLookup", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.GetAsLookup", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.GetAsLookup", + "description": "Get As Lookup Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/README.md b/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/README.md new file mode 100644 index 0000000..27d1288 --- /dev/null +++ b/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/README.md @@ -0,0 +1,149 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# class Creator (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Service** +```uml +@startuml +class Creator #Gold { + + register(Container $container) : void + + getBuilders(Container $container) : Builders + + getCustomFieldTypeFile(Container $container) : CustomFieldTypeFile + + getLayout(Container $container) : Layout + + getPermission(Container $container) : Permission + + getSiteFieldData(Container $container) : SiteFieldData + + getFieldsetString(Container $container) : FieldsetString + + getFieldsetXML(Container $container) : FieldsetXML + + getFieldsetDynamic(Container $container) : FieldsetDynamic + + getFieldXML(Container $container) : FieldXML + + getFieldString(Container $container) : FieldString + + getFieldDynamic(Container $container) : FieldDynamic + + getFieldAsString(Container $container) : FieldAsString + + getFieldType(Container $container) : FieldType + + getFieldset(Container $container) : Fieldset +} + +note right of Creator::register + Registers the service provider with a DI container. + + since: 3.2.0 + return: void +end note + +note left of Creator::getBuilders + Get The Builders Class. + + since: 3.2.0 + return: Builders +end note + +note right of Creator::getCustomFieldTypeFile + Get The CustomFieldTypeFile Class. + + since: 3.2.0 + return: CustomFieldTypeFile +end note + +note left of Creator::getLayout + Get The Layout Class. + + since: 3.2.0 + return: Layout +end note + +note right of Creator::getPermission + Get The Permission Class. + + since: 3.2.0 + return: Permission +end note + +note left of Creator::getSiteFieldData + Get The SiteFieldData Class. + + since: 3.2.0 + return: SiteFieldData +end note + +note right of Creator::getFieldsetString + Get The FieldsetString Class. + + since: 3.2.0 + return: FieldsetString +end note + +note left of Creator::getFieldsetXML + Get The FieldsetXML Class. + + since: 3.2.0 + return: FieldsetXML +end note + +note right of Creator::getFieldsetDynamic + Get The FieldsetDynamic Class. + + since: 3.2.0 + return: FieldsetDynamic +end note + +note left of Creator::getFieldXML + Get The FieldXML Class. + + since: 3.2.0 + return: FieldXML +end note + +note right of Creator::getFieldString + Get The FieldString Class. + + since: 3.2.0 + return: FieldString +end note + +note left of Creator::getFieldDynamic + Get The FieldDynamic Class. + + since: 3.2.0 + return: FieldDynamic +end note + +note right of Creator::getFieldAsString + Get The FieldAsString Class. + + since: 3.2.0 + return: FieldAsString +end note + +note left of Creator::getFieldType + Get The Fieldtypeinterface Class. + + since: 3.2.0 + return: FieldType +end note + +note right of Creator::getFieldset + Get The Fieldsetinterface Class. + + since: 3.2.0 + return: Fieldset +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/code.php b/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/code.php new file mode 100644 index 0000000..3881613 --- /dev/null +++ b/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/code.php @@ -0,0 +1,434 @@ + + * @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\Compiler\Service; + + +use Joomla\DI\Container; +use Joomla\DI\ServiceProviderInterface; +use VDM\Joomla\Componentbuilder\Compiler\Creator\Builders; +use VDM\Joomla\Componentbuilder\Compiler\Creator\CustomFieldTypeFile; +use VDM\Joomla\Componentbuilder\Compiler\Creator\Layout; +use VDM\Joomla\Componentbuilder\Compiler\Creator\Permission; +use VDM\Joomla\Componentbuilder\Compiler\Creator\SiteFieldData; +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldsetString; +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldsetXML; +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldsetDynamic; +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldXML; +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldString; +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldDynamic; +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldAsString; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator\Fieldtypeinterface as FieldType; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator\Fieldsetinterface as Fieldset; + + +/** + * Creator Service Provider + * + * @since 3.2.0 + */ +class Creator implements ServiceProviderInterface +{ + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(Builders::class, 'Compiler.Creator.Builders') + ->share('Compiler.Creator.Builders', [$this, 'getBuilders'], true); + + $container->alias(CustomFieldTypeFile::class, 'Compiler.Creator.Custom.Field.Type.File') + ->share('Compiler.Creator.Custom.Field.Type.File', [$this, 'getCustomFieldTypeFile'], true); + + $container->alias(Layout::class, 'Compiler.Creator.Layout') + ->share('Compiler.Creator.Layout', [$this, 'getLayout'], true); + + $container->alias(Permission::class, 'Compiler.Creator.Permission') + ->share('Compiler.Creator.Permission', [$this, 'getPermission'], true); + + $container->alias(SiteFieldData::class, 'Compiler.Creator.Site.Field.Data') + ->share('Compiler.Creator.Site.Field.Data', [$this, 'getSiteFieldData'], true); + + $container->alias(FieldsetString::class, 'Compiler.Creator.Fieldset.String') + ->share('Compiler.Creator.Fieldset.String', [$this, 'getFieldsetString'], true); + + $container->alias(FieldsetXML::class, 'Compiler.Creator.Fieldset.XML') + ->share('Compiler.Creator.Fieldset.XML', [$this, 'getFieldsetXML'], true); + + $container->alias(FieldsetDynamic::class, 'Compiler.Creator.Fieldset.Dynamic') + ->share('Compiler.Creator.Fieldset.Dynamic', [$this, 'getFieldsetDynamic'], true); + + $container->alias(FieldXML::class, 'Compiler.Creator.Field.XML') + ->share('Compiler.Creator.Field.XML', [$this, 'getFieldXML'], true); + + $container->alias(FieldString::class, 'Compiler.Creator.Field.String') + ->share('Compiler.Creator.Field.String', [$this, 'getFieldString'], true); + + $container->alias(FieldDynamic::class, 'Compiler.Creator.Field.Dynamic') + ->share('Compiler.Creator.Field.Dynamic', [$this, 'getFieldDynamic'], true); + + $container->alias(FieldAsString::class, 'Compiler.Creator.Field.As.String') + ->share('Compiler.Creator.Field.As.String', [$this, 'getFieldAsString'], true); + + $container->alias(FieldType::class, 'Compiler.Creator.Field.Type') + ->share('Compiler.Creator.Field.Type', [$this, 'getFieldType'], true); + + $container->alias(Fieldset::class, 'Compiler.Creator.Fieldset') + ->share('Compiler.Creator.Fieldset', [$this, 'getFieldset'], true); + } + + /** + * Get The Builders Class. + * + * @param Container $container The DI container. + * + * @return Builders + * @since 3.2.0 + */ + public function getBuilders(Container $container): Builders + { + return new Builders( + $container->get('Config'), + $container->get('Language'), + $container->get('Placeholder'), + $container->get('Compiler.Creator.Layout'), + $container->get('Compiler.Creator.Site.Field.Data'), + $container->get('Compiler.Builder.Tags'), + $container->get('Compiler.Builder.Database.Tables'), + $container->get('Compiler.Builder.Database.Unique.Keys'), + $container->get('Compiler.Builder.Database.Keys'), + $container->get('Compiler.Builder.Database.Unique.Guid'), + $container->get('Compiler.Builder.List.Join'), + $container->get('Compiler.Builder.History'), + $container->get('Compiler.Builder.Alias'), + $container->get('Compiler.Builder.Title'), + $container->get('Compiler.Builder.Category.Other.Name'), + $container->get('Compiler.Builder.Lists'), + $container->get('Compiler.Builder.Custom.List'), + $container->get('Compiler.Builder.Field.Relations'), + $container->get('Compiler.Builder.Hidden.Fields'), + $container->get('Compiler.Builder.Integer.Fields'), + $container->get('Compiler.Builder.Dynamic.Fields'), + $container->get('Compiler.Builder.Main.Text.Field'), + $container->get('Compiler.Builder.Custom.Field'), + $container->get('Compiler.Builder.Custom.Field.Links'), + $container->get('Compiler.Builder.Script.User.Switch'), + $container->get('Compiler.Builder.Script.Media.Switch'), + $container->get('Compiler.Builder.Category'), + $container->get('Compiler.Builder.Category.Code'), + $container->get('Compiler.Builder.Check.Box'), + $container->get('Compiler.Builder.Json.String'), + $container->get('Compiler.Builder.Base.Six.Four'), + $container->get('Compiler.Builder.Model.Basic.Field'), + $container->get('Compiler.Builder.Model.Whmcs.Field'), + $container->get('Compiler.Builder.Model.Medium.Field'), + $container->get('Compiler.Builder.Model.Expert.Field.Initiator'), + $container->get('Compiler.Builder.Model.Expert.Field'), + $container->get('Compiler.Builder.Json.Item'), + $container->get('Compiler.Builder.Items.Method.List.String'), + $container->get('Compiler.Builder.Json.Item.Array'), + $container->get('Compiler.Builder.Items.Method.Eximport.String'), + $container->get('Compiler.Builder.Selection.Translation'), + $container->get('Compiler.Builder.Admin.Filter.Type'), + $container->get('Compiler.Builder.Sort'), + $container->get('Compiler.Builder.Search'), + $container->get('Compiler.Builder.Filter'), + $container->get('Compiler.Builder.Component.Fields') + ); + } + + /** + * Get The CustomFieldTypeFile Class. + * + * @param Container $container The DI container. + * + * @return CustomFieldTypeFile + * @since 3.2.0 + */ + public function getCustomFieldTypeFile(Container $container): CustomFieldTypeFile + { + return new CustomFieldTypeFile( + $container->get('Config'), + $container->get('Content'), + $container->get('Compiler.Builder.Site.Field.Data'), + $container->get('Placeholder'), + $container->get('Language'), + $container->get('Component.Placeholder'), + $container->get('Utilities.Structure'), + $container->get('Field.Input.Button'), + $container->get('Compiler.Builder.Field.Group.Control'), + $container->get('Compiler.Builder.Extension.Custom.Fields') + ); + } + + /** + * Get The Layout Class. + * + * @param Container $container The DI container. + * + * @return Layout + * @since 3.2.0 + */ + public function getLayout(Container $container): Layout + { + return new Layout( + $container->get('Config'), + $container->get('Compiler.Builder.Order.Zero'), + $container->get('Compiler.Builder.Tab.Counter'), + $container->get('Compiler.Builder.Layout'), + $container->get('Compiler.Builder.Moved.Publishing.Fields'), + $container->get('Compiler.Builder.New.Publishing.Fields') + ); + } + + /** + * Get The Permission Class. + * + * @param Container $container The DI container. + * + * @return Permission + * @since 3.2.0 + */ + public function getPermission(Container $container): Permission + { + return new Permission( + $container->get('Config'), + $container->get('Compiler.Builder.Permission.Core'), + $container->get('Compiler.Builder.Permission.Views'), + $container->get('Compiler.Builder.Permission.Action'), + $container->get('Compiler.Builder.Permission.Component'), + $container->get('Compiler.Builder.Permission.Global.Action'), + $container->get('Compiler.Builder.Permission.Dashboard'), + $container->get('Utilities.Counter'), + $container->get('Language') + ); + } + + /** + * Get The SiteFieldData Class. + * + * @param Container $container The DI container. + * + * @return SiteFieldData + * @since 3.2.0 + */ + public function getSiteFieldData(Container $container): SiteFieldData + { + return new SiteFieldData( + $container->get('Config'), + $container->get('Compiler.Builder.Site.Fields'), + $container->get('Compiler.Builder.Site.Field.Data') + ); + } + + /** + * Get The FieldsetString Class. + * + * @param Container $container The DI container. + * + * @return FieldsetString + * @since 3.2.0 + */ + public function getFieldsetString(Container $container): FieldsetString + { + return new FieldsetString( + $container->get('Config'), + $container->get('Placeholder'), + $container->get('Language.Fieldset'), + $container->get('Event'), + $container->get('Adminview.Permission'), + $container->get('Compiler.Creator.Field.Dynamic'), + $container->get('Compiler.Builder.Field.Names'), + $container->get('Compiler.Builder.Access.Switch'), + $container->get('Compiler.Builder.Meta.Data'), + $container->get('Compiler.Creator.Layout'), + $container->get('Utilities.Counter') + ); + } + + /** + * Get The FieldsetXML Class. + * + * @param Container $container The DI container. + * + * @return FieldsetXML + * @since 3.2.0 + */ + public function getFieldsetXML(Container $container): FieldsetXML + { + return new FieldsetXML( + $container->get('Config'), + $container->get('Placeholder'), + $container->get('Language.Fieldset'), + $container->get('Event'), + $container->get('Adminview.Permission'), + $container->get('Compiler.Creator.Field.Dynamic'), + $container->get('Compiler.Builder.Field.Names'), + $container->get('Compiler.Builder.Access.Switch'), + $container->get('Compiler.Builder.Meta.Data'), + $container->get('Compiler.Creator.Layout'), + $container->get('Utilities.Counter'), + $container->get('Utilities.Xml') + ); + } + + /** + * Get The FieldsetDynamic Class. + * + * @param Container $container The DI container. + * + * @return FieldsetDynamic + * @since 3.2.0 + */ + public function getFieldsetDynamic(Container $container): FieldsetDynamic + { + return new FieldsetDynamic( + $container->get('Compiler.Creator.Field.As.String') + ); + } + + /** + * Get The FieldXML Class. + * + * @param Container $container The DI container. + * + * @return FieldXML + * @since 3.2.0 + */ + public function getFieldXML(Container $container): FieldXML + { + return new FieldXML( + $container->get('Config'), + $container->get('Language'), + $container->get('Field'), + $container->get('Field.Groups'), + $container->get('Field.Name'), + $container->get('Field.Type.Name'), + $container->get('Field.Attributes'), + $container->get('Utilities.Xml'), + $container->get('Compiler.Creator.Custom.Field.Type.File'), + $container->get('Utilities.Counter') + ); + } + + /** + * Get The FieldString Class. + * + * @param Container $container The DI container. + * + * @return FieldString + * @since 3.2.0 + */ + public function getFieldString(Container $container): FieldString + { + return new FieldString( + $container->get('Config'), + $container->get('Language'), + $container->get('Field'), + $container->get('Field.Groups'), + $container->get('Field.Name'), + $container->get('Field.Type.Name'), + $container->get('Field.Attributes'), + $container->get('Compiler.Creator.Custom.Field.Type.File'), + $container->get('Utilities.Counter') + ); + } + + /** + * Get The FieldDynamic Class. + * + * @param Container $container The DI container. + * + * @return FieldDynamic + * @since 3.2.0 + */ + public function getFieldDynamic(Container $container): FieldDynamic + { + return new FieldDynamic( + $container->get('Field.Name'), + $container->get('Field.Type.Name'), + $container->get('Field.Attributes'), + $container->get('Field.Groups'), + $container->get('Compiler.Builder.Field.Names'), + $container->get('Compiler.Creator.Field.Type'), + $container->get('Compiler.Creator.Builders'), + $container->get('Compiler.Creator.Layout') + ); + } + + /** + * Get The FieldAsString Class. + * + * @param Container $container The DI container. + * + * @return FieldAsString + * @since 3.2.0 + */ + public function getFieldAsString(Container $container): FieldAsString + { + return new FieldAsString( + $container->get('Compiler.Creator.Field.Dynamic'), + $container->get('Utilities.Xml') + ); + } + + /** + * Get The Fieldtypeinterface Class. + * + * @param Container $container The DI container. + * + * @return FieldType + * @since 3.2.0 + */ + public function getFieldType(Container $container): FieldType + { + // check what type of field builder to use + if ($container->get('Config')->get('field_builder_type', 2) == 1) + { + // build field set using string manipulation + return $container->get('Compiler.Creator.Field.String'); + } + else + { + // build field set with simpleXMLElement class + return $container->get('Compiler.Creator.Field.XML'); + } + } + + /** + * Get The Fieldsetinterface Class. + * + * @param Container $container The DI container. + * + * @return Fieldset + * @since 3.2.0 + */ + public function getFieldset(Container $container): Fieldset + { + // check what type of field builder to use + if ($container->get('Config')->get('field_builder_type', 2) == 1) + { + // build field set using string manipulation + return $container->get('Compiler.Creator.Fieldset.String'); + } + else + { + // build field set with simpleXMLElement class + return $container->get('Compiler.Creator.Fieldset.XML'); + } + } +} + diff --git a/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/code.power b/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/code.power new file mode 100644 index 0000000..7926899 --- /dev/null +++ b/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/code.power @@ -0,0 +1,393 @@ + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(Builders::class, 'Compiler.Creator.Builders') + ->share('Compiler.Creator.Builders', [$this, 'getBuilders'], true); + + $container->alias(CustomFieldTypeFile::class, 'Compiler.Creator.Custom.Field.Type.File') + ->share('Compiler.Creator.Custom.Field.Type.File', [$this, 'getCustomFieldTypeFile'], true); + + $container->alias(Layout::class, 'Compiler.Creator.Layout') + ->share('Compiler.Creator.Layout', [$this, 'getLayout'], true); + + $container->alias(Permission::class, 'Compiler.Creator.Permission') + ->share('Compiler.Creator.Permission', [$this, 'getPermission'], true); + + $container->alias(SiteFieldData::class, 'Compiler.Creator.Site.Field.Data') + ->share('Compiler.Creator.Site.Field.Data', [$this, 'getSiteFieldData'], true); + + $container->alias(FieldsetString::class, 'Compiler.Creator.Fieldset.String') + ->share('Compiler.Creator.Fieldset.String', [$this, 'getFieldsetString'], true); + + $container->alias(FieldsetXML::class, 'Compiler.Creator.Fieldset.XML') + ->share('Compiler.Creator.Fieldset.XML', [$this, 'getFieldsetXML'], true); + + $container->alias(FieldsetDynamic::class, 'Compiler.Creator.Fieldset.Dynamic') + ->share('Compiler.Creator.Fieldset.Dynamic', [$this, 'getFieldsetDynamic'], true); + + $container->alias(FieldXML::class, 'Compiler.Creator.Field.XML') + ->share('Compiler.Creator.Field.XML', [$this, 'getFieldXML'], true); + + $container->alias(FieldString::class, 'Compiler.Creator.Field.String') + ->share('Compiler.Creator.Field.String', [$this, 'getFieldString'], true); + + $container->alias(FieldDynamic::class, 'Compiler.Creator.Field.Dynamic') + ->share('Compiler.Creator.Field.Dynamic', [$this, 'getFieldDynamic'], true); + + $container->alias(FieldAsString::class, 'Compiler.Creator.Field.As.String') + ->share('Compiler.Creator.Field.As.String', [$this, 'getFieldAsString'], true); + + $container->alias(FieldType::class, 'Compiler.Creator.Field.Type') + ->share('Compiler.Creator.Field.Type', [$this, 'getFieldType'], true); + + $container->alias(Fieldset::class, 'Compiler.Creator.Fieldset') + ->share('Compiler.Creator.Fieldset', [$this, 'getFieldset'], true); + } + + /** + * Get The Builders Class. + * + * @param Container $container The DI container. + * + * @return Builders + * @since 3.2.0 + */ + public function getBuilders(Container $container): Builders + { + return new Builders( + $container->get('Config'), + $container->get('Language'), + $container->get('Placeholder'), + $container->get('Compiler.Creator.Layout'), + $container->get('Compiler.Creator.Site.Field.Data'), + $container->get('Compiler.Builder.Tags'), + $container->get('Compiler.Builder.Database.Tables'), + $container->get('Compiler.Builder.Database.Unique.Keys'), + $container->get('Compiler.Builder.Database.Keys'), + $container->get('Compiler.Builder.Database.Unique.Guid'), + $container->get('Compiler.Builder.List.Join'), + $container->get('Compiler.Builder.History'), + $container->get('Compiler.Builder.Alias'), + $container->get('Compiler.Builder.Title'), + $container->get('Compiler.Builder.Category.Other.Name'), + $container->get('Compiler.Builder.Lists'), + $container->get('Compiler.Builder.Custom.List'), + $container->get('Compiler.Builder.Field.Relations'), + $container->get('Compiler.Builder.Hidden.Fields'), + $container->get('Compiler.Builder.Integer.Fields'), + $container->get('Compiler.Builder.Dynamic.Fields'), + $container->get('Compiler.Builder.Main.Text.Field'), + $container->get('Compiler.Builder.Custom.Field'), + $container->get('Compiler.Builder.Custom.Field.Links'), + $container->get('Compiler.Builder.Script.User.Switch'), + $container->get('Compiler.Builder.Script.Media.Switch'), + $container->get('Compiler.Builder.Category'), + $container->get('Compiler.Builder.Category.Code'), + $container->get('Compiler.Builder.Check.Box'), + $container->get('Compiler.Builder.Json.String'), + $container->get('Compiler.Builder.Base.Six.Four'), + $container->get('Compiler.Builder.Model.Basic.Field'), + $container->get('Compiler.Builder.Model.Whmcs.Field'), + $container->get('Compiler.Builder.Model.Medium.Field'), + $container->get('Compiler.Builder.Model.Expert.Field.Initiator'), + $container->get('Compiler.Builder.Model.Expert.Field'), + $container->get('Compiler.Builder.Json.Item'), + $container->get('Compiler.Builder.Items.Method.List.String'), + $container->get('Compiler.Builder.Json.Item.Array'), + $container->get('Compiler.Builder.Items.Method.Eximport.String'), + $container->get('Compiler.Builder.Selection.Translation'), + $container->get('Compiler.Builder.Admin.Filter.Type'), + $container->get('Compiler.Builder.Sort'), + $container->get('Compiler.Builder.Search'), + $container->get('Compiler.Builder.Filter'), + $container->get('Compiler.Builder.Component.Fields') + ); + } + + /** + * Get The CustomFieldTypeFile Class. + * + * @param Container $container The DI container. + * + * @return CustomFieldTypeFile + * @since 3.2.0 + */ + public function getCustomFieldTypeFile(Container $container): CustomFieldTypeFile + { + return new CustomFieldTypeFile( + $container->get('Config'), + $container->get('Content'), + $container->get('Compiler.Builder.Site.Field.Data'), + $container->get('Placeholder'), + $container->get('Language'), + $container->get('Component.Placeholder'), + $container->get('Utilities.Structure'), + $container->get('Field.Input.Button'), + $container->get('Compiler.Builder.Field.Group.Control'), + $container->get('Compiler.Builder.Extension.Custom.Fields') + ); + } + + /** + * Get The Layout Class. + * + * @param Container $container The DI container. + * + * @return Layout + * @since 3.2.0 + */ + public function getLayout(Container $container): Layout + { + return new Layout( + $container->get('Config'), + $container->get('Compiler.Builder.Order.Zero'), + $container->get('Compiler.Builder.Tab.Counter'), + $container->get('Compiler.Builder.Layout'), + $container->get('Compiler.Builder.Moved.Publishing.Fields'), + $container->get('Compiler.Builder.New.Publishing.Fields') + ); + } + + /** + * Get The Permission Class. + * + * @param Container $container The DI container. + * + * @return Permission + * @since 3.2.0 + */ + public function getPermission(Container $container): Permission + { + return new Permission( + $container->get('Config'), + $container->get('Compiler.Builder.Permission.Core'), + $container->get('Compiler.Builder.Permission.Views'), + $container->get('Compiler.Builder.Permission.Action'), + $container->get('Compiler.Builder.Permission.Component'), + $container->get('Compiler.Builder.Permission.Global.Action'), + $container->get('Compiler.Builder.Permission.Dashboard'), + $container->get('Utilities.Counter'), + $container->get('Language') + ); + } + + /** + * Get The SiteFieldData Class. + * + * @param Container $container The DI container. + * + * @return SiteFieldData + * @since 3.2.0 + */ + public function getSiteFieldData(Container $container): SiteFieldData + { + return new SiteFieldData( + $container->get('Config'), + $container->get('Compiler.Builder.Site.Fields'), + $container->get('Compiler.Builder.Site.Field.Data') + ); + } + + /** + * Get The FieldsetString Class. + * + * @param Container $container The DI container. + * + * @return FieldsetString + * @since 3.2.0 + */ + public function getFieldsetString(Container $container): FieldsetString + { + return new FieldsetString( + $container->get('Config'), + $container->get('Placeholder'), + $container->get('Language.Fieldset'), + $container->get('Event'), + $container->get('Adminview.Permission'), + $container->get('Compiler.Creator.Field.Dynamic'), + $container->get('Compiler.Builder.Field.Names'), + $container->get('Compiler.Builder.Access.Switch'), + $container->get('Compiler.Builder.Meta.Data'), + $container->get('Compiler.Creator.Layout'), + $container->get('Utilities.Counter') + ); + } + + /** + * Get The FieldsetXML Class. + * + * @param Container $container The DI container. + * + * @return FieldsetXML + * @since 3.2.0 + */ + public function getFieldsetXML(Container $container): FieldsetXML + { + return new FieldsetXML( + $container->get('Config'), + $container->get('Placeholder'), + $container->get('Language.Fieldset'), + $container->get('Event'), + $container->get('Adminview.Permission'), + $container->get('Compiler.Creator.Field.Dynamic'), + $container->get('Compiler.Builder.Field.Names'), + $container->get('Compiler.Builder.Access.Switch'), + $container->get('Compiler.Builder.Meta.Data'), + $container->get('Compiler.Creator.Layout'), + $container->get('Utilities.Counter'), + $container->get('Utilities.Xml') + ); + } + + /** + * Get The FieldsetDynamic Class. + * + * @param Container $container The DI container. + * + * @return FieldsetDynamic + * @since 3.2.0 + */ + public function getFieldsetDynamic(Container $container): FieldsetDynamic + { + return new FieldsetDynamic( + $container->get('Compiler.Creator.Field.As.String') + ); + } + + /** + * Get The FieldXML Class. + * + * @param Container $container The DI container. + * + * @return FieldXML + * @since 3.2.0 + */ + public function getFieldXML(Container $container): FieldXML + { + return new FieldXML( + $container->get('Config'), + $container->get('Language'), + $container->get('Field'), + $container->get('Field.Groups'), + $container->get('Field.Name'), + $container->get('Field.Type.Name'), + $container->get('Field.Attributes'), + $container->get('Utilities.Xml'), + $container->get('Compiler.Creator.Custom.Field.Type.File'), + $container->get('Utilities.Counter') + ); + } + + /** + * Get The FieldString Class. + * + * @param Container $container The DI container. + * + * @return FieldString + * @since 3.2.0 + */ + public function getFieldString(Container $container): FieldString + { + return new FieldString( + $container->get('Config'), + $container->get('Language'), + $container->get('Field'), + $container->get('Field.Groups'), + $container->get('Field.Name'), + $container->get('Field.Type.Name'), + $container->get('Field.Attributes'), + $container->get('Compiler.Creator.Custom.Field.Type.File'), + $container->get('Utilities.Counter') + ); + } + + /** + * Get The FieldDynamic Class. + * + * @param Container $container The DI container. + * + * @return FieldDynamic + * @since 3.2.0 + */ + public function getFieldDynamic(Container $container): FieldDynamic + { + return new FieldDynamic( + $container->get('Field.Name'), + $container->get('Field.Type.Name'), + $container->get('Field.Attributes'), + $container->get('Field.Groups'), + $container->get('Compiler.Builder.Field.Names'), + $container->get('Compiler.Creator.Field.Type'), + $container->get('Compiler.Creator.Builders'), + $container->get('Compiler.Creator.Layout') + ); + } + + /** + * Get The FieldAsString Class. + * + * @param Container $container The DI container. + * + * @return FieldAsString + * @since 3.2.0 + */ + public function getFieldAsString(Container $container): FieldAsString + { + return new FieldAsString( + $container->get('Compiler.Creator.Field.Dynamic'), + $container->get('Utilities.Xml') + ); + } + + /** + * Get The Fieldtypeinterface Class. + * + * @param Container $container The DI container. + * + * @return FieldType + * @since 3.2.0 + */ + public function getFieldType(Container $container): FieldType + { + // check what type of field builder to use + if ($container->get('Config')->get('field_builder_type', 2) == 1) + { + // build field set using string manipulation + return $container->get('Compiler.Creator.Field.String'); + } + else + { + // build field set with simpleXMLElement class + return $container->get('Compiler.Creator.Field.XML'); + } + } + + /** + * Get The Fieldsetinterface Class. + * + * @param Container $container The DI container. + * + * @return Fieldset + * @since 3.2.0 + */ + public function getFieldset(Container $container): Fieldset + { + // check what type of field builder to use + if ($container->get('Config')->get('field_builder_type', 2) == 1) + { + // build field set using string manipulation + return $container->get('Compiler.Creator.Fieldset.String'); + } + else + { + // build field set with simpleXMLElement class + return $container->get('Compiler.Creator.Fieldset.XML'); + } + } \ No newline at end of file diff --git a/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/settings.json b/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/settings.json new file mode 100644 index 0000000..d7e8269 --- /dev/null +++ b/src/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b/settings.json @@ -0,0 +1,78 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "0", + "guid": "8fdd604f-53e7-4a91-9935-afcfd2f6ac1b", + "implements": [ + "-1" + ], + "load_selection": null, + "name": "Creator", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Service.Creator", + "type": "class", + "use_selection": { + "use_selection0": { + "use": "55278140-80d5-4168-8241-d64515c4b35e", + "as": "default" + }, + "use_selection1": { + "use": "6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96", + "as": "default" + }, + "use_selection2": { + "use": "a0f032db-2242-41df-8e4a-5e9e6f88201d", + "as": "default" + }, + "use_selection3": { + "use": "7f01622a-74c9-4e67-b111-3eb488035206", + "as": "default" + }, + "use_selection4": { + "use": "15b4addf-bf6b-4691-9c92-858c7de9c2c1", + "as": "default" + }, + "use_selection5": { + "use": "05448890-e324-41a0-b6db-d804bfc241cc", + "as": "default" + }, + "use_selection6": { + "use": "79739667-72c6-4576-9830-7b1eb92e4791", + "as": "default" + }, + "use_selection7": { + "use": "b5986fab-17ca-4236-8c0c-81ebd2bb82ba", + "as": "default" + }, + "use_selection8": { + "use": "ac691a05-5630-4002-b166-dedec3fb0fcb", + "as": "default" + }, + "use_selection9": { + "use": "44d039b9-d293-481b-b560-23a6e7a63962", + "as": "default" + }, + "use_selection10": { + "use": "4801f8b0-4a4a-4eda-8f0e-cf77f042c35e", + "as": "default" + }, + "use_selection11": { + "use": "f48764e0-16c6-459c-8576-af7616f3b720", + "as": "default" + }, + "use_selection12": { + "use": "2d27c436-4d8e-4692-8382-d9e97af2231c", + "as": "FieldType" + }, + "use_selection13": { + "use": "d44f3294-6b68-4d85-a617-15fb772b7d14", + "as": "Fieldset" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Service.Creator", + "description": "Creator Service Provider\r\n\r\n@since 3.2.0", + "implements_custom": "ServiceProviderInterface", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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\\DI\\Container;\r\nuse Joomla\\DI\\ServiceProviderInterface;", + "composer": "" +} \ No newline at end of file diff --git a/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/README.md b/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/README.md new file mode 100644 index 0000000..dc714b6 --- /dev/null +++ b/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ScriptUserSwitch (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ScriptUserSwitch << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/code.php b/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/code.php new file mode 100644 index 0000000..1c5370a --- /dev/null +++ b/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\InArray; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Script User Switch Builder Class + * + * @since 3.2.0 + */ +final class ScriptUserSwitch extends StorageRegistry implements Storageregistryinterface +{ + /** + * In Array + * + * @since 3.2.0 + */ + use InArray; +} + diff --git a/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/code.power b/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/code.power new file mode 100644 index 0000000..3a43b47 --- /dev/null +++ b/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/code.power @@ -0,0 +1,6 @@ + /** + * In Array + * + * @since 3.2.0 + */ + use InArray; \ No newline at end of file diff --git a/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/settings.json b/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/settings.json new file mode 100644 index 0000000..27cc334 --- /dev/null +++ b/src/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "9042fac6-5ca5-4ebe-94fe-cf9b0718ed36", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ScriptUserSwitch", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ScriptUserSwitch", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "215b35ac-1b26-4838-bbcf-d1fdbbd9353f", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ScriptUserSwitch", + "description": "Script User Switch Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/9387215f-a965-4421-acf3-5e8f9d11382f/README.md b/src/9387215f-a965-4421-acf3-5e8f9d11382f/README.md index eb24980..7ecc7cd 100644 --- a/src/9387215f-a965-4421-acf3-5e8f9d11382f/README.md +++ b/src/9387215f-a965-4421-acf3-5e8f9d11382f/README.md @@ -11,23 +11,23 @@ ```uml @startuml class Name #Gold { - # Registry $registry # array $unique # Placeholder $placeholder - # UniqueName $uniqueName - + __construct(?Placeholder $placeholder = null, ?UniqueName $uniqueName = null, ...) + # UniqueName $uniquename + # CategoryOtherName $categoryothername + + __construct(Placeholder $placeholder, UniqueName $uniquename, ...) + get(array $field, ?string $listViewName = null, ...) : string } note right of Name::__construct - Constructor + Constructor. since: 3.2.0 arguments: - ?Placeholder $placeholder = null - ?UniqueName $uniqueName = null - ?Registry $registry = null + Placeholder $placeholder + UniqueName $uniquename + CategoryOtherName $categoryothername end note note right of Name::get diff --git a/src/9387215f-a965-4421-acf3-5e8f9d11382f/code.php b/src/9387215f-a965-4421-acf3-5e8f9d11382f/code.php index 6a00b32..09e7f9f 100644 --- a/src/9387215f-a965-4421-acf3-5e8f9d11382f/code.php +++ b/src/9387215f-a965-4421-acf3-5e8f9d11382f/code.php @@ -12,7 +12,6 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Field; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\String\TypeHelper; @@ -20,7 +19,7 @@ use VDM\Joomla\Utilities\String\FieldHelper; use VDM\Joomla\Utilities\GetHelper; use VDM\Joomla\Componentbuilder\Compiler\Placeholder; use VDM\Joomla\Componentbuilder\Compiler\Field\UniqueName; -use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CategoryOtherName; /** @@ -30,14 +29,6 @@ use VDM\Joomla\Componentbuilder\Compiler\Registry; */ class Name { - /** - * The compiler registry - * - * @var Registry - * @since 3.2.0 - */ - protected Registry $registry; - /** * Unique Field Names * @@ -47,35 +38,44 @@ class Name protected array $unique; /** - * Compiler Placeholder + * The Placeholder Class. * - * @var Placeholder + * @var Placeholder * @since 3.2.0 */ protected Placeholder $placeholder; /** - * Compiler Field Unique Name + * The UniqueName Class. * - * @var UniqueName + * @var UniqueName * @since 3.2.0 */ - protected UniqueName $uniqueName; + protected UniqueName $uniquename; /** - * Constructor + * The CategoryOtherName Class. * - * @param Placeholder|null $placeholder The compiler component placeholder object. - * @param UniqueName|null $uniqueName The compiler field unique name object. - * @param Registry|null $registry The compiler registry object. + * @var CategoryOtherName + * @since 3.2.0 + */ + protected CategoryOtherName $categoryothername; + + /** + * Constructor. + * + * @param Placeholder $placeholder The Placeholder Class. + * @param UniqueName $uniquename The UniqueName Class. + * @param CategoryOtherName $categoryothername The CategoryOtherName Class. * * @since 3.2.0 */ - public function __construct(?Placeholder $placeholder = null, ?UniqueName $uniqueName = null, ?Registry $registry = null) + public function __construct(Placeholder $placeholder, UniqueName $uniquename, + CategoryOtherName $categoryothername) { - $this->placeholder = $placeholder ?: Compiler::_('Placeholder'); - $this->uniqueName = $uniqueName ?: Compiler::_('Field.Unique.Name'); - $this->registry = $registry ?: Compiler::_('Registry'); + $this->placeholder = $placeholder; + $this->uniquename = $uniquename; + $this->categoryothername = $categoryothername; } /** @@ -91,11 +91,8 @@ class Name public function get(array &$field, ?string $listViewName = null, string $amicably = ''): string { // return the unique name if already set - if ($listViewName && StringHelper::check($listViewName) - && isset($field['hash']) - && isset( - $this->unique[$listViewName . $amicably . $field['hash']] - )) + if ($listViewName && StringHelper::check($listViewName) && isset($field['hash']) + && isset($this->unique[$listViewName . $amicably . $field['hash']])) { return $this->unique[$listViewName . $amicably . $field['hash']]; } @@ -161,16 +158,14 @@ class Name $field['settings']->xml, 'view="', '"' ) ); + // This is to link other view category if (StringHelper::check($otherName) - && StringHelper::check( - $otherViews - ) && StringHelper::check( - $otherView - )) + && StringHelper::check($otherViews) + && StringHelper::check($otherView)) { // set other category details - $this->registry->set("category.other.name.${listViewName}", [ + $this->categoryothername->set($listViewName, [ 'name' => FieldHelper::safe( $otherName ), @@ -220,7 +215,7 @@ class Name if (StringHelper::check($listViewName) && isset($field['hash'])) { $this->unique[$listViewName . $amicably . $field['hash']] - = $this->uniqueName->get($name, $listViewName . $amicably); + = $this->uniquename->get($name, $listViewName . $amicably); // now return the unique name return $this->unique[$listViewName . $amicably . $field['hash']]; @@ -228,7 +223,6 @@ class Name // fall back to global return $name; - } - + } } diff --git a/src/9387215f-a965-4421-acf3-5e8f9d11382f/code.power b/src/9387215f-a965-4421-acf3-5e8f9d11382f/code.power index f953505..7184907 100644 --- a/src/9387215f-a965-4421-acf3-5e8f9d11382f/code.power +++ b/src/9387215f-a965-4421-acf3-5e8f9d11382f/code.power @@ -1,11 +1,3 @@ - /** - * The compiler registry - * - * @var Registry - * @since 3.2.0 - */ - protected Registry $registry; - /** * Unique Field Names * @@ -15,35 +7,44 @@ protected array $unique; /** - * Compiler Placeholder + * The Placeholder Class. * - * @var Placeholder + * @var Placeholder * @since 3.2.0 */ protected Placeholder $placeholder; /** - * Compiler Field Unique Name + * The UniqueName Class. * - * @var UniqueName + * @var UniqueName * @since 3.2.0 */ - protected UniqueName $uniqueName; + protected UniqueName $uniquename; /** - * Constructor + * The CategoryOtherName Class. * - * @param Placeholder|null $placeholder The compiler component placeholder object. - * @param UniqueName|null $uniqueName The compiler field unique name object. - * @param Registry|null $registry The compiler registry object. + * @var CategoryOtherName + * @since 3.2.0 + */ + protected CategoryOtherName $categoryothername; + + /** + * Constructor. + * + * @param Placeholder $placeholder The Placeholder Class. + * @param UniqueName $uniquename The UniqueName Class. + * @param CategoryOtherName $categoryothername The CategoryOtherName Class. * * @since 3.2.0 */ - public function __construct(?Placeholder $placeholder = null, ?UniqueName $uniqueName = null, ?Registry $registry = null) + public function __construct(Placeholder $placeholder, UniqueName $uniquename, + CategoryOtherName $categoryothername) { - $this->placeholder = $placeholder ?: Compiler::_('Placeholder'); - $this->uniqueName = $uniqueName ?: Compiler::_('Field.Unique.Name'); - $this->registry = $registry ?: Compiler::_('Registry'); + $this->placeholder = $placeholder; + $this->uniquename = $uniquename; + $this->categoryothername = $categoryothername; } /** @@ -59,11 +60,8 @@ public function get(array &$field, ?string $listViewName = null, string $amicably = ''): string { // return the unique name if already set - if ($listViewName && StringHelper::check($listViewName) - && isset($field['hash']) - && isset( - $this->unique[$listViewName . $amicably . $field['hash']] - )) + if ($listViewName && StringHelper::check($listViewName) && isset($field['hash']) + && isset($this->unique[$listViewName . $amicably . $field['hash']])) { return $this->unique[$listViewName . $amicably . $field['hash']]; } @@ -129,16 +127,14 @@ $field['settings']->xml, 'view="', '"' ) ); + // This is to link other view category if (StringHelper::check($otherName) - && StringHelper::check( - $otherViews - ) && StringHelper::check( - $otherView - )) + && StringHelper::check($otherViews) + && StringHelper::check($otherView)) { // set other category details - $this->registry->set("category.other.name.${listViewName}", [ + $this->categoryothername->set($listViewName, [ 'name' => FieldHelper::safe( $otherName ), @@ -188,7 +184,7 @@ if (StringHelper::check($listViewName) && isset($field['hash'])) { $this->unique[$listViewName . $amicably . $field['hash']] - = $this->uniqueName->get($name, $listViewName . $amicably); + = $this->uniquename->get($name, $listViewName . $amicably); // now return the unique name return $this->unique[$listViewName . $amicably . $field['hash']]; @@ -196,4 +192,4 @@ // fall back to global return $name; - } + } \ No newline at end of file diff --git a/src/9387215f-a965-4421-acf3-5e8f9d11382f/settings.json b/src/9387215f-a965-4421-acf3-5e8f9d11382f/settings.json index d7f4536..dba84f3 100644 --- a/src/9387215f-a965-4421-acf3-5e8f9d11382f/settings.json +++ b/src/9387215f-a965-4421-acf3-5e8f9d11382f/settings.json @@ -11,39 +11,35 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, - "use_selection1": { "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", "as": "default" }, - "use_selection2": { + "use_selection1": { "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", "as": "default" }, - "use_selection3": { + "use_selection2": { "use": "a8935cbe-7701-40dc-bfd5-675f2d600954", "as": "default" }, - "use_selection4": { + "use_selection3": { "use": "9ef0eb24-aae4-4f5a-99af-d724db44808f", "as": "default" }, - "use_selection5": { + "use_selection4": { "use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc", "as": "default" }, - "use_selection6": { + "use_selection5": { "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", "as": "default" }, - "use_selection7": { + "use_selection6": { "use": "8c018533-e967-4bf2-9bd9-9e92966fcb5e", "as": "default" }, - "use_selection8": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "use_selection7": { + "use": "a1e551a9-8369-48c9-a076-4e5beb65e0df", "as": "default" } }, diff --git a/src/9481caa2-6d04-4598-8320-543a93927243/README.md b/src/9481caa2-6d04-4598-8320-543a93927243/README.md new file mode 100644 index 0000000..37a2d55 --- /dev/null +++ b/src/9481caa2-6d04-4598-8320-543a93927243/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class AdminFilterType (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class AdminFilterType << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/9481caa2-6d04-4598-8320-543a93927243/code.php b/src/9481caa2-6d04-4598-8320-543a93927243/code.php new file mode 100644 index 0000000..6c17a53 --- /dev/null +++ b/src/9481caa2-6d04-4598-8320-543a93927243/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Admin Filter Type Builder Class + * + * @since 3.2.0 + */ +final class AdminFilterType extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/9481caa2-6d04-4598-8320-543a93927243/code.power b/src/9481caa2-6d04-4598-8320-543a93927243/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/9481caa2-6d04-4598-8320-543a93927243/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/9481caa2-6d04-4598-8320-543a93927243/settings.json b/src/9481caa2-6d04-4598-8320-543a93927243/settings.json new file mode 100644 index 0000000..6f9644b --- /dev/null +++ b/src/9481caa2-6d04-4598-8320-543a93927243/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "9481caa2-6d04-4598-8320-543a93927243", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "AdminFilterType", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.AdminFilterType", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.AdminFilterType", + "description": "Admin Filter Type Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/94e0beae-7daa-43b2-81b9-0bde390a76d8/README.md b/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/README.md new file mode 100644 index 0000000..f32f7f6 --- /dev/null +++ b/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Sort (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class Sort << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/code.php b/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/code.php new file mode 100644 index 0000000..28b8135 --- /dev/null +++ b/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Sort Builder Class + * + * @since 3.2.0 + */ +final class Sort extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/code.power b/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/settings.json b/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/settings.json new file mode 100644 index 0000000..5e7114b --- /dev/null +++ b/src/94e0beae-7daa-43b2-81b9-0bde390a76d8/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "94e0beae-7daa-43b2-81b9-0bde390a76d8", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "Sort", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.Sort", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Sort", + "description": "Sort Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/94f4939f-82cc-4196-802b-1346ce5c7f99/README.md b/src/94f4939f-82cc-4196-802b-1346ce5c7f99/README.md new file mode 100644 index 0000000..9829dc2 --- /dev/null +++ b/src/94f4939f-82cc-4196-802b-1346ce5c7f99/README.md @@ -0,0 +1,46 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class PermissionComponent (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **MapperSingle** +```uml +@startuml +class PermissionComponent << (F,LightGreen) >> #RoyalBlue { + + build() : string + # key(string $key) : string +} + +note right of PermissionComponent::build + Get the build component content + + since: 3.2.0 + return: string +end note + +note right of PermissionComponent::key + Model the key + + since: 3.2.0 + return: string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/94f4939f-82cc-4196-802b-1346ce5c7f99/code.php b/src/94f4939f-82cc-4196-802b-1346ce5c7f99/code.php new file mode 100644 index 0000000..8049793 --- /dev/null +++ b/src/94f4939f-82cc-4196-802b-1346ce5c7f99/code.php @@ -0,0 +1,91 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; +use VDM\Joomla\Componentbuilder\Interfaces\Mappersingleinterface; +use VDM\Joomla\Componentbuilder\Abstraction\MapperSingle; + + +/** + * Permission Component Builder Class + * + * @since 3.2.0 + */ +final class PermissionComponent extends MapperSingle implements Mappersingleinterface +{ + /** + * Get the build component content + * + * @return string + * @since 3.2.0 + */ + public function build(): string + { + if ($this->isActive()) + { + $bucket = ['
']; + + // get the header + if ($this->exist('->HEAD<-')) + { + $headers = $this->get('->HEAD<-'); + + // remove from active values + $this->remove('->HEAD<-'); + + foreach ($headers as $action) + { + $bucket[] = Indent::_(2) . ''; + } + } + + if ($this->isActive()) + { + ksort($this->active, SORT_STRING); + + foreach ($this->active as $active) + { + $bucket[] = Indent::_(2) . ''; + } + } + + // reset memory + $this->active = []; + + return implode(PHP_EOL, $bucket) . PHP_EOL . Indent::_(1) . "
"; + } + + return ''; + } + + /** + * Model the key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function key(string $key): string + { + return $key; + } +} + diff --git a/src/94f4939f-82cc-4196-802b-1346ce5c7f99/code.power b/src/94f4939f-82cc-4196-802b-1346ce5c7f99/code.power new file mode 100644 index 0000000..2923e7e --- /dev/null +++ b/src/94f4939f-82cc-4196-802b-1346ce5c7f99/code.power @@ -0,0 +1,63 @@ + /** + * Get the build component content + * + * @return string + * @since 3.2.0 + */ + public function build(): string + { + if ($this->isActive()) + { + $bucket = ['
']; + + // get the header + if ($this->exist('->HEAD<-')) + { + $headers = $this->get('->HEAD<-'); + + // remove from active values + $this->remove('->HEAD<-'); + + foreach ($headers as $action) + { + $bucket[] = Indent::_(2) . ''; + } + } + + if ($this->isActive()) + { + ksort($this->active, SORT_STRING); + + foreach ($this->active as $active) + { + $bucket[] = Indent::_(2) . ''; + } + } + + // reset memory + $this->active = []; + + return implode(PHP_EOL, $bucket) . PHP_EOL . Indent::_(1) . "
"; + } + + return ''; + } + + /** + * Model the key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function key(string $key): string + { + return $key; + } \ No newline at end of file diff --git a/src/94f4939f-82cc-4196-802b-1346ce5c7f99/settings.json b/src/94f4939f-82cc-4196-802b-1346ce5c7f99/settings.json new file mode 100644 index 0000000..ea48c04 --- /dev/null +++ b/src/94f4939f-82cc-4196-802b-1346ce5c7f99/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "c6bbc3ee-58e7-4463-adba-5c5ae839ee36", + "guid": "94f4939f-82cc-4196-802b-1346ce5c7f99", + "implements": [ + "78527c29-24ad-4735-ad4c-ec33a4952d9b" + ], + "load_selection": null, + "name": "PermissionComponent", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.PermissionComponent", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.PermissionComponent", + "description": "Permission Component Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/952423ba-015a-4104-89a4-030695aa4d15/README.md b/src/952423ba-015a-4104-89a4-030695aa4d15/README.md new file mode 100644 index 0000000..db121f3 --- /dev/null +++ b/src/952423ba-015a-4104-89a4-030695aa4d15/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class IntegerFields (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class IntegerFields << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/952423ba-015a-4104-89a4-030695aa4d15/code.php b/src/952423ba-015a-4104-89a4-030695aa4d15/code.php new file mode 100644 index 0000000..1f97dfd --- /dev/null +++ b/src/952423ba-015a-4104-89a4-030695aa4d15/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\ToString; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Integer Fields Builder Class + * + * @since 3.2.0 + */ +final class IntegerFields extends StorageRegistry implements Storageregistryinterface +{ + /** + * To String Values + * + * @since 3.2.0 + */ + use ToString; +} + diff --git a/src/952423ba-015a-4104-89a4-030695aa4d15/code.power b/src/952423ba-015a-4104-89a4-030695aa4d15/code.power new file mode 100644 index 0000000..b9696bb --- /dev/null +++ b/src/952423ba-015a-4104-89a4-030695aa4d15/code.power @@ -0,0 +1,6 @@ + /** + * To String Values + * + * @since 3.2.0 + */ + use ToString; \ No newline at end of file diff --git a/src/952423ba-015a-4104-89a4-030695aa4d15/settings.json b/src/952423ba-015a-4104-89a4-030695aa4d15/settings.json new file mode 100644 index 0000000..b268e2e --- /dev/null +++ b/src/952423ba-015a-4104-89a4-030695aa4d15/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "952423ba-015a-4104-89a4-030695aa4d15", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "IntegerFields", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.IntegerFields", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "7d494d91-ab60-43cd-aecf-d50e07f7f30e", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.IntegerFields", + "description": "Integer Fields Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/9551b683-67b6-4367-bb14-4b016def37e3/README.md b/src/9551b683-67b6-4367-bb14-4b016def37e3/README.md new file mode 100644 index 0000000..a2abd6a --- /dev/null +++ b/src/9551b683-67b6-4367-bb14-4b016def37e3/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class CustomTabs (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class CustomTabs << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/9551b683-67b6-4367-bb14-4b016def37e3/code.php b/src/9551b683-67b6-4367-bb14-4b016def37e3/code.php new file mode 100644 index 0000000..8857768 --- /dev/null +++ b/src/9551b683-67b6-4367-bb14-4b016def37e3/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Custom Tabs Builder Class + * + * @since 3.2.0 + */ +final class CustomTabs extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/9551b683-67b6-4367-bb14-4b016def37e3/code.power b/src/9551b683-67b6-4367-bb14-4b016def37e3/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/9551b683-67b6-4367-bb14-4b016def37e3/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/9551b683-67b6-4367-bb14-4b016def37e3/settings.json b/src/9551b683-67b6-4367-bb14-4b016def37e3/settings.json new file mode 100644 index 0000000..3a2f577 --- /dev/null +++ b/src/9551b683-67b6-4367-bb14-4b016def37e3/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "9551b683-67b6-4367-bb14-4b016def37e3", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "CustomTabs", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.CustomTabs", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.CustomTabs", + "description": "Custom Tabs Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/95d0e03f-24fd-4412-bc2e-f0899fcc3205/README.md b/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/README.md index 9b28d75..d772ea5 100644 --- a/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/README.md +++ b/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/README.md @@ -10,7 +10,7 @@ > namespace: **VDM\Joomla\Componentbuilder\Compiler\Power** ```uml @startuml -class Parser << (F,LightGreen) >> #Green { +class Parser << (F,LightGreen) >> #RoyalBlue { + code(string $code) : array + getClassCode(string $code) : ?string + getClassLicense(string $code) : ?string @@ -19,6 +19,7 @@ class Parser << (F,LightGreen) >> #Green { - properties(string $code) : ?array - methods(string $code) : ?array - extractDocBlock(string $code, string $declaration) : ?string + - extractMethodBody(string $code, int $startPos) : ?string - extractFunctionArgumentDetails(?string $comment, ?string $arguments) : ?array - extractReturnType(?string $returnType, ?string $comment) : ?string - extractArgTypesFromComment(string $comment) : ?array @@ -86,63 +87,70 @@ note left of Parser::extractDocBlock return: ?string end note -note right of Parser::extractFunctionArgumentDetails +note right of Parser::extractMethodBody + Extracts method body based on starting position of method declaration. + + since: 3.2.0 + return: ?string +end note + +note left of Parser::extractFunctionArgumentDetails Extracts the function argument details. since: 3.2.0 return: ?array end note -note left of Parser::extractReturnType +note right of Parser::extractReturnType Extracts the function return type. since: 3.2.0 return: ?string end note -note right of Parser::extractArgTypesFromComment +note left of Parser::extractArgTypesFromComment Extracts argument types from a given comment. since: 3.2.0 return: ?array end note -note left of Parser::extractArgTypesArguments +note right of Parser::extractArgTypesArguments Extracts argument types from a given declaration. since: 3.2.0 return: ?array end note -note right of Parser::extractReturnTypeFromComment +note left of Parser::extractReturnTypeFromComment Extracts return type from a given declaration. since: 3.2.0 return: ?string end note -note left of Parser::extractSinceVersion +note right of Parser::extractSinceVersion Extracts the version number from the @since tag in the given comment. since: 3.2.0 return: ?string end note -note right of Parser::extractDeprecatedVersion +note left of Parser::extractDeprecatedVersion Extracts the version number from the deprecated tag in the given comment. since: 3.2.0 return: ?string end note -note left of Parser::removeWhiteSpaceFromComment +note right of Parser::removeWhiteSpaceFromComment Remove all white space from each line of the comment since: 3.2.0 return: string end note -note right of Parser::mergeArgumentTypes +note left of Parser::mergeArgumentTypes Merges the types from the comments and the arguments. since: 3.2.0 diff --git a/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/code.php b/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/code.php index ab94a78..ac911e4 100644 --- a/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/code.php +++ b/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/code.php @@ -285,6 +285,10 @@ final class Parser $full_declaration = trim(preg_replace('/\s{2,}/', ' ', preg_replace('/[\r\n]+/', ' ', $full_declaration))); + // extract method's body + $start_pos = strpos($code, $full_declaration) + strlen($full_declaration); + $method_body = $this->extractMethodBody($code, $start_pos); + // now load what we found $methods[] = [ 'name' => $match['name'] ?? 'error', @@ -297,7 +301,8 @@ final class Parser 'deprecated' => $this->extractDeprecatedVersion($comment), 'arguments' => $this->extractFunctionArgumentDetails($comment, $match['arguments'] ?? null), 'comment' => $comment, - 'declaration' => str_replace(["\r\n", "\r", "\n"], '', $full_declaration) + 'declaration' => str_replace(["\r\n", "\r", "\n"], '', $full_declaration), + 'body' => $method_body ]; } } @@ -350,6 +355,53 @@ final class Parser return null; } + /** + * Extracts method body based on starting position of method declaration. + * + * @param string $code The class code + * @param string $startPos The starting position of method declaration + * + * @return string|null Method body or null if not found + * @since 3.2.0 + */ + private function extractMethodBody(string $code, int $startPos): ?string + { + $braces_count = 0; + $in_method = false; + $method_body = ""; + + for ($i = $startPos; $i < strlen($code); $i++) { + if ($code[$i] === '{') + { + $braces_count++; + if (!$in_method) + { + $in_method = true; + continue; + } + } + + if ($code[$i] === '}') + { + $braces_count--; + } + + if ($in_method) + { + $method_body .= $code[$i]; + } + + if ($braces_count <= 0 && $in_method) + { + // remove the closing brace + $method_body = substr($method_body, 0, -1); + break; + } + } + + return $in_method ? $method_body : null; + } + /** * Extracts the function argument details. * diff --git a/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/code.power b/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/code.power index 49665a1..bb96969 100644 --- a/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/code.power +++ b/src/95d0e03f-24fd-4412-bc2e-f0899fcc3205/code.power @@ -262,6 +262,10 @@ $full_declaration = trim(preg_replace('/\s{2,}/', ' ', preg_replace('/[\r\n]+/', ' ', $full_declaration))); + // extract method's body + $start_pos = strpos($code, $full_declaration) + strlen($full_declaration); + $method_body = $this->extractMethodBody($code, $start_pos); + // now load what we found $methods[] = [ 'name' => $match['name'] ?? 'error', @@ -274,7 +278,8 @@ 'deprecated' => $this->extractDeprecatedVersion($comment), 'arguments' => $this->extractFunctionArgumentDetails($comment, $match['arguments'] ?? null), 'comment' => $comment, - 'declaration' => str_replace(["\r\n", "\r", "\n"], '', $full_declaration) + 'declaration' => str_replace(["\r\n", "\r", "\n"], '', $full_declaration), + 'body' => $method_body ]; } } @@ -327,6 +332,53 @@ return null; } + /** + * Extracts method body based on starting position of method declaration. + * + * @param string $code The class code + * @param string $startPos The starting position of method declaration + * + * @return string|null Method body or null if not found + * @since 3.2.0 + */ + private function extractMethodBody(string $code, int $startPos): ?string + { + $braces_count = 0; + $in_method = false; + $method_body = ""; + + for ($i = $startPos; $i < strlen($code); $i++) { + if ($code[$i] === '{') + { + $braces_count++; + if (!$in_method) + { + $in_method = true; + continue; + } + } + + if ($code[$i] === '}') + { + $braces_count--; + } + + if ($in_method) + { + $method_body .= $code[$i]; + } + + if ($braces_count <= 0 && $in_method) + { + // remove the closing brace + $method_body = substr($method_body, 0, -1); + break; + } + } + + return $in_method ? $method_body : null; + } + /** * Extracts the function argument details. * diff --git a/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/README.md b/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/README.md new file mode 100644 index 0000000..fb4ec4e --- /dev/null +++ b/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FieldNames (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class FieldNames << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/code.php b/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/code.php new file mode 100644 index 0000000..f1202b8 --- /dev/null +++ b/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\IsString; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Field Names Builder Class + * + * @since 3.2.0 + */ +final class FieldNames extends StorageRegistry implements Storageregistryinterface +{ + /** + * Is String Values + * + * @since 3.2.0 + */ + use IsString; +} + diff --git a/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/code.power b/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/code.power new file mode 100644 index 0000000..2f3dba0 --- /dev/null +++ b/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/code.power @@ -0,0 +1,6 @@ + /** + * Is String Values + * + * @since 3.2.0 + */ + use IsString; \ No newline at end of file diff --git a/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/settings.json b/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/settings.json new file mode 100644 index 0000000..423277e --- /dev/null +++ b/src/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "961a2a2e-9f95-4b5f-b1c0-62ee783f9c66", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "FieldNames", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.FieldNames", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "ff7d0111-8f79-42aa-ac14-b53ba2c49369", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.FieldNames", + "description": "Field Names Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/README.md b/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/README.md new file mode 100644 index 0000000..6a9c1b3 --- /dev/null +++ b/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ItemsMethodListString (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ItemsMethodListString << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/code.php b/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/code.php new file mode 100644 index 0000000..02a5b72 --- /dev/null +++ b/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Items Method List String Builder Class + * + * @since 3.2.0 + */ +final class ItemsMethodListString extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/code.power b/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/settings.json b/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/settings.json new file mode 100644 index 0000000..3193df7 --- /dev/null +++ b/src/972c4de9-6f6f-463b-8eea-cc7cbdb96aba/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "972c4de9-6f6f-463b-8eea-cc7cbdb96aba", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ItemsMethodListString", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ItemsMethodListString", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ItemsMethodListString", + "description": "Items Method List String Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/README.md b/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/README.md new file mode 100644 index 0000000..5062c4d --- /dev/null +++ b/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/README.md @@ -0,0 +1,39 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# abstract class BaseConfig (Details) +> namespace: **VDM\Joomla\Componentbuilder\Abstraction** +> extends: **Config** +```uml +@startuml +abstract BaseConfig #Orange { + # Input $input + # JoomlaRegistry $params + + __construct(?Input $input = null, ?JoomlaRegistry $params = null) +} + +note right of BaseConfig::__construct + Constructor + + since: 3.2.0 +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/code.php b/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/code.php new file mode 100644 index 0000000..1319d2c --- /dev/null +++ b/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/code.php @@ -0,0 +1,64 @@ + + * @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\Abstraction; + + +use Joomla\Registry\Registry as JoomlaRegistry; +use Joomla\CMS\Factory; +use Joomla\Input\Input; +use VDM\Joomla\Abstraction\BaseConfig as Config; +use VDM\Joomla\Utilities\Component\Helper; +use VDM\Joomla\Utilities\String\ClassfunctionHelper; + + +/** + * Config + * + * @since 3.2.0 + */ +abstract class BaseConfig extends Config +{ + /** + * Hold a JInput object for easier access to the input variables. + * + * @var Input + * @since 3.2.0 + */ + protected Input $input; + + /** + * The Params + * + * @var JoomlaRegistry + * @since 3.2.0 + */ + protected JoomlaRegistry $params; + + /** + * Constructor + * + * @param Input|null $input Input + * @param Registry|null $params The component parameters + * + * @throws \Exception + * @since 3.2.0 + */ + public function __construct(?Input $input = null, ?JoomlaRegistry $params = null) + { + $this->input = $input ?: Factory::getApplication()->input; + $this->params = $params ?: Helper::getParams('com_componentbuilder'); + + // run parent constructor + parent::__construct(); + } +} + diff --git a/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/code.power b/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/code.power new file mode 100644 index 0000000..86a86ff --- /dev/null +++ b/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/code.power @@ -0,0 +1,33 @@ + /** + * Hold a JInput object for easier access to the input variables. + * + * @var Input + * @since 3.2.0 + */ + protected Input $input; + + /** + * The Params + * + * @var JoomlaRegistry + * @since 3.2.0 + */ + protected JoomlaRegistry $params; + + /** + * Constructor + * + * @param Input|null $input Input + * @param Registry|null $params The component parameters + * + * @throws \Exception + * @since 3.2.0 + */ + public function __construct(?Input $input = null, ?JoomlaRegistry $params = null) + { + $this->input = $input ?: Factory::getApplication()->input; + $this->params = $params ?: Helper::getParams('com_componentbuilder'); + + // run parent constructor + parent::__construct(); + } \ No newline at end of file diff --git a/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/settings.json b/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/settings.json new file mode 100644 index 0000000..06dbf88 --- /dev/null +++ b/src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/settings.json @@ -0,0 +1,32 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "-1", + "guid": "9769f3b2-17bf-4f20-b54b-3a4ebe572b36", + "implements": null, + "load_selection": null, + "name": "BaseConfig", + "power_version": "1.0.0", + "system_name": "JCB.Abstraction.BaseConfig", + "type": "abstract class", + "use_selection": { + "use_selection0": { + "use": "ffbd4e1f-a342-4080-ab7d-1de3741bf319", + "as": "Config" + }, + "use_selection1": { + "use": "640b5352-fb09-425f-a26e-cd44eda03f15", + "as": "default" + }, + "use_selection2": { + "use": "30c5b4c2-f75f-4d15-869a-f8bfedd87358", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Abstraction.BaseConfig", + "description": "Config\r\n\r\n@since 3.2.0", + "extends_custom": "Config", + "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\\Registry\\Registry as JoomlaRegistry;\r\nuse Joomla\\CMS\\Factory;\r\nuse Joomla\\Input\\Input;", + "composer": "" +} \ No newline at end of file diff --git a/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/README.md b/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/README.md index 226a37d..110ca00 100644 --- a/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/README.md +++ b/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/README.md @@ -11,13 +11,14 @@ ```uml @startuml class DatabaseName #Gold { + # Lists $lists # Registry $registry - + __construct(?Registry $registry = null) + + __construct(Lists $lists, Registry $registry) + get(string $nameListCode, int $fieldId, ...) : ?string } note right of DatabaseName::__construct - Constructor + Constructor. since: 3.2.0 end note diff --git a/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/code.php b/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/code.php index 345146e..24acdd4 100644 --- a/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/code.php +++ b/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/code.php @@ -12,9 +12,9 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Field; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; -use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Lists; use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Utilities\ArrayHelper; /** @@ -25,23 +25,33 @@ use VDM\Joomla\Componentbuilder\Compiler\Registry; class DatabaseName { /** - * The compiler registry + * The Lists Class. * - * @var Registry + * @var Lists + * @since 3.2.0 + */ + protected Lists $lists; + + /** + * The Registry Class. + * + * @var Registry * @since 3.2.0 */ protected Registry $registry; /** - * Constructor + * Constructor. * - * @param Registry|null $config The compiler registry object. + * @param Lists $lists The Lists Class. + * @param Registry $registry The Registry Class. * * @since 3.2.0 */ - public function __construct(?Registry $registry = null) + public function __construct(Lists $lists, Registry $registry) { - $this->registry = $registry ?: Compiler::_('Registry'); + $this->lists = $lists; + $this->registry = $registry; } /** @@ -56,47 +66,56 @@ class DatabaseName */ public function get(string $nameListCode, int $fieldId, string $targetArea = 'builder.list'): ?string { - if (($fields = $this->registry->get("${targetArea}.${nameListCode}")) !== null) + if ($targetArea === 'builder.list') { - if ($fieldId < 0) + if (($fields = $this->lists->get($nameListCode)) === null) { - switch ($fieldId) - { - case -1: - return 'a.id'; - case -2: - return 'a.ordering'; - case -3: - return 'a.published'; - } + return null; } - foreach ($fields as $field) + } + elseif (($fields = $this->registry->get("${targetArea}.${nameListCode}")) === null) + { + return null; + } + + if ($fieldId < 0) + { + switch ($fieldId) { - if ($field['id'] == $fieldId) + case -1: + return 'a.id'; + case -2: + return 'a.ordering'; + case -3: + return 'a.published'; + } + } + + foreach ($fields as $field) + { + if ($field['id'] == $fieldId) + { + // now check if this is a category + if ($field['type'] === 'category') { - // now check if this is a category - if ($field['type'] === 'category') - { - return 'c.title'; - } - // set the custom code - elseif (ArrayHelper::check( - $field['custom'] - )) - { - return $field['custom']['db'] . "." - . $field['custom']['text']; - } - else - { - return 'a.' . $field['code']; - } + return 'c.title'; + } + // set the custom code + elseif (ArrayHelper::check( + $field['custom'] + )) + { + return $field['custom']['db'] . "." + . $field['custom']['text']; + } + else + { + return 'a.' . $field['code']; } } } return null; - } - + } } diff --git a/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/code.power b/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/code.power index b222866..e9b8fca 100644 --- a/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/code.power +++ b/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/code.power @@ -1,21 +1,31 @@ /** - * The compiler registry + * The Lists Class. * - * @var Registry + * @var Lists + * @since 3.2.0 + */ + protected Lists $lists; + + /** + * The Registry Class. + * + * @var Registry * @since 3.2.0 */ protected Registry $registry; /** - * Constructor + * Constructor. * - * @param Registry|null $config The compiler registry object. + * @param Lists $lists The Lists Class. + * @param Registry $registry The Registry Class. * * @since 3.2.0 */ - public function __construct(?Registry $registry = null) + public function __construct(Lists $lists, Registry $registry) { - $this->registry = $registry ?: Compiler::_('Registry'); + $this->lists = $lists; + $this->registry = $registry; } /** @@ -30,44 +40,54 @@ */ public function get(string $nameListCode, int $fieldId, string $targetArea = 'builder.list'): ?string { - if (($fields = $this->registry->get("${targetArea}.${nameListCode}")) !== null) + if ($targetArea === 'builder.list') { - if ($fieldId < 0) + if (($fields = $this->lists->get($nameListCode)) === null) { - switch ($fieldId) - { - case -1: - return 'a.id'; - case -2: - return 'a.ordering'; - case -3: - return 'a.published'; - } + return null; } - foreach ($fields as $field) + } + elseif (($fields = $this->registry->get("${targetArea}.${nameListCode}")) === null) + { + return null; + } + + if ($fieldId < 0) + { + switch ($fieldId) { - if ($field['id'] == $fieldId) + case -1: + return 'a.id'; + case -2: + return 'a.ordering'; + case -3: + return 'a.published'; + } + } + + foreach ($fields as $field) + { + if ($field['id'] == $fieldId) + { + // now check if this is a category + if ($field['type'] === 'category') { - // now check if this is a category - if ($field['type'] === 'category') - { - return 'c.title'; - } - // set the custom code - elseif (ArrayHelper::check( - $field['custom'] - )) - { - return $field['custom']['db'] . "." - . $field['custom']['text']; - } - else - { - return 'a.' . $field['code']; - } + return 'c.title'; + } + // set the custom code + elseif (ArrayHelper::check( + $field['custom'] + )) + { + return $field['custom']['db'] . "." + . $field['custom']['text']; + } + else + { + return 'a.' . $field['code']; } } } return null; - } + } \ No newline at end of file diff --git a/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/settings.json b/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/settings.json index 86f2de0..47e8184 100644 --- a/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/settings.json +++ b/src/99368a6f-2f64-4d4e-ad3a-544d4020ecc6/settings.json @@ -11,15 +11,15 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" + "use": "4a857023-2d96-4649-9ed5-910d0329854d", + "as": "default" }, "use_selection1": { - "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", "as": "default" }, "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", "as": "default" } }, diff --git a/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/README.md b/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/README.md new file mode 100644 index 0000000..a3a62d7 --- /dev/null +++ b/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/README.md @@ -0,0 +1,130 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ClassInjectorBuilder (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Generator** +```uml +@startuml +class ClassInjectorBuilder << (F,LightGreen) >> #RoyalBlue { + # Search $search + # ClassInjector $classinjector + + __construct(Search $search, ClassInjector $classinjector) + + getCode(array $power) : ?string + - valid(string $guid) : bool + - getName(string $guid, string $as = 'default') : ?string + - getDescription(string $guid) : ?string + - getDependencyInjectionCode() : ?string + - setVersion(string $version) : void + - setProperty(string $name, string $description) : void + - setComment(string $name, string $description) : void + - setArgument(string $name) : void + - setAssignment(string $name) : void + - extractSinceVersion(string $inputString) : ?string +} + +note right of ClassInjectorBuilder::__construct + Constructor. + + since: 3.2.0 +end note + +note left of ClassInjectorBuilder::getCode + Get the injection code. + + since: 3.2.0 + return: ?string +end note + +note right of ClassInjectorBuilder::valid + Check that this is a valid injection class. + + since: 3.2.0 + return: bool +end note + +note left of ClassInjectorBuilder::getName + Get the class name. + + since: 3.2.0 + return: ?string +end note + +note right of ClassInjectorBuilder::getDescription + Get the class description. + + since: 3.2.0 + return: ?string +end note + +note left of ClassInjectorBuilder::getDependencyInjectionCode + Get the dependency injection code. + + since: 3.2.0 + return: ?string +end note + +note right of ClassInjectorBuilder::setVersion + Set the class since version. + + since: 3.2.0 + return: void +end note + +note left of ClassInjectorBuilder::setProperty + Set the class property. + + since: 3.2.0 + return: void +end note + +note right of ClassInjectorBuilder::setComment + Set the class comment for the constructor parameter. + + since: 3.2.0 + return: void +end note + +note left of ClassInjectorBuilder::setArgument + Set the class constructor argument. + + since: 3.2.0 + return: void +end note + +note right of ClassInjectorBuilder::setAssignment + Get the assignment code inside the constructor. + + since: 3.2.0 + return: void +end note + +note left of ClassInjectorBuilder::extractSinceVersion + Extract the '@since' version number from a given string. +This function checks the provided string for a '@since' annotation +and retrieves the subsequent version number. If no '@since' +annotation is found or no version number is provided after the +annotation, the function will return null. + + since: 3.2.0 + return: ?string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/code.php b/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/code.php new file mode 100644 index 0000000..e3a234c --- /dev/null +++ b/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/code.php @@ -0,0 +1,251 @@ + + * @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\Power\Generator; + + +use VDM\Joomla\Componentbuilder\Power\Generator\Search; +use VDM\Joomla\Componentbuilder\Power\Generator\ClassInjector; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; + + +/** + * Power Class Injector Builder of JCB + * + * @since 3.2.0 + */ +final class ClassInjectorBuilder +{ + /** + * The Search Class. + * + * @var Search + * @since 3.2.0 + */ + protected Search $search; + + /** + * The Class Injector Class. + * + * @var ClassInjector + * @since 3.2.0 + */ + protected ClassInjector $classinjector; + + /** + * Constructor. + * + * @param Search $search The Search Class. + * @param ClassInjector $classinjector The Class Injector Class. + * + * @since 3.2.0 + */ + public function __construct(Search $search, ClassInjector $classinjector) + { + $this->search = $search; + $this->classinjector = $classinjector; + } + + /** + * Get the injection code. + * + * @param array $power The power being saved + * + * @return string|null + * @since 3.2.0 + */ + public function getCode(array $power): ?string + { + $this->setVersion($this->extractSinceVersion($power['description']) ?? $power['power_version'] ?? '1.0.0'); + + foreach ($power['use_selection'] as $use_selection) + { + if (!$this->valid($use_selection['use'])) + { + continue; + } + + if (($name = $this->getName($use_selection['use'], $use_selection['as'])) === null) + { + continue; + } + + if (($description = $this->getDescription($use_selection['use'])) === null) + { + continue; + } + + $this->setProperty($name, $description); + $this->setComment($name, $description); + $this->setArgument($name); + $this->setAssignment($name); + } + + return $this->getDependencyInjectionCode(); + } + + /** + * Check that this is a valid injection class. + * + * @param string $guid The class GUID of the power + * + * @return bool + * @since 3.2.0 + */ + private function valid(string $guid): bool + { + return $this->search->validInject($guid); + } + + /** + * Get the class name. + * + * @param string $guid The class GUID of the power + * @param string $as The as name + * + * @return string|null + * @since 3.2.0 + */ + private function getName(string $guid, string $as = 'default'): ?string + { + return $this->search->name($guid, $as); + } + + /** + * Get the class description. + * + * @param string $guid The class GUID of the power + * + * @return string|null + * @since 3.2.0 + */ + private function getDescription(string $guid): ?string + { + return $this->search->description($guid); + } + + /** + * Get the dependency injection code. + * + * @return string|null + * @since 3.2.0 + */ + private function getDependencyInjectionCode(): ?string + { + return $this->classinjector->getCode(); + } + + /** + * Set the class since version. + * + * @param string $version The class since version + * + * @return void + * @since 3.2.0 + */ + private function setVersion(string $version): void + { + $this->classinjector->setVersion($version); + } + + /** + * Set the class property. + * + * @param string $name The class name + * @param string $description The class description + * + * @return void + * @since 3.2.0 + */ + private function setProperty(string $name, string $description): void + { + $this->classinjector->setProperty( + strtolower($name), + $name, + $description + ); + } + + /** + * Set the class comment for the constructor parameter. + * + * @param string $name The class name + * @param string $description The class description + * + * @return void + * @since 3.2.0 + */ + private function setComment(string $name, string $description): void + { + $this->classinjector->setComment( + strtolower($name), + $name, + $description + ); + } + + /** + * Set the class constructor argument. + * + * @param string $name The class name + * + * @return void + * @since 3.2.0 + */ + private function setArgument(string $name): void + { + $this->classinjector->setArgument( + strtolower($name), + $name + ); + } + + /** + * Get the assignment code inside the constructor. + * + * @param string $name The class name + * + * @return void + * @since 3.2.0 + */ + private function setAssignment(string $name): void + { + $this->classinjector->setAssignment( + strtolower($name) + ); + } + + /** + * Extract the '@since' version number from a given string. + * + * This function checks the provided string for a '@since' annotation + * and retrieves the subsequent version number. If no '@since' + * annotation is found or no version number is provided after the + * annotation, the function will return null. + * + * @param string $inputString The input string to search. + * + * @return string|null The version number if found, or null if not. + * @since 3.2.0 + */ + private function extractSinceVersion(string $inputString): ?string + { + // Use regex to match the @since pattern and capture the version number + if (preg_match('/@since\s+([\d\.]+)/', $inputString, $matches)) + { + return $matches[1]; + } + + // If no match is found, return null + return null; + } +} + diff --git a/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/code.power b/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/code.power new file mode 100644 index 0000000..4dfb10f --- /dev/null +++ b/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/code.power @@ -0,0 +1,223 @@ + /** + * The Search Class. + * + * @var Search + * @since 3.2.0 + */ + protected Search $search; + + /** + * The Class Injector Class. + * + * @var ClassInjector + * @since 3.2.0 + */ + protected ClassInjector $classinjector; + + /** + * Constructor. + * + * @param Search $search The Search Class. + * @param ClassInjector $classinjector The Class Injector Class. + * + * @since 3.2.0 + */ + public function __construct(Search $search, ClassInjector $classinjector) + { + $this->search = $search; + $this->classinjector = $classinjector; + } + + /** + * Get the injection code. + * + * @param array $power The power being saved + * + * @return string|null + * @since 3.2.0 + */ + public function getCode(array $power): ?string + { + $this->setVersion($this->extractSinceVersion($power['description']) ?? $power['power_version'] ?? '1.0.0'); + + foreach ($power['use_selection'] as $use_selection) + { + if (!$this->valid($use_selection['use'])) + { + continue; + } + + if (($name = $this->getName($use_selection['use'], $use_selection['as'])) === null) + { + continue; + } + + if (($description = $this->getDescription($use_selection['use'])) === null) + { + continue; + } + + $this->setProperty($name, $description); + $this->setComment($name, $description); + $this->setArgument($name); + $this->setAssignment($name); + } + + return $this->getDependencyInjectionCode(); + } + + /** + * Check that this is a valid injection class. + * + * @param string $guid The class GUID of the power + * + * @return bool + * @since 3.2.0 + */ + private function valid(string $guid): bool + { + return $this->search->validInject($guid); + } + + /** + * Get the class name. + * + * @param string $guid The class GUID of the power + * @param string $as The as name + * + * @return string|null + * @since 3.2.0 + */ + private function getName(string $guid, string $as = 'default'): ?string + { + return $this->search->name($guid, $as); + } + + /** + * Get the class description. + * + * @param string $guid The class GUID of the power + * + * @return string|null + * @since 3.2.0 + */ + private function getDescription(string $guid): ?string + { + return $this->search->description($guid); + } + + /** + * Get the dependency injection code. + * + * @return string|null + * @since 3.2.0 + */ + private function getDependencyInjectionCode(): ?string + { + return $this->classinjector->getCode(); + } + + /** + * Set the class since version. + * + * @param string $version The class since version + * + * @return void + * @since 3.2.0 + */ + private function setVersion(string $version): void + { + $this->classinjector->setVersion($version); + } + + /** + * Set the class property. + * + * @param string $name The class name + * @param string $description The class description + * + * @return void + * @since 3.2.0 + */ + private function setProperty(string $name, string $description): void + { + $this->classinjector->setProperty( + strtolower($name), + $name, + $description + ); + } + + /** + * Set the class comment for the constructor parameter. + * + * @param string $name The class name + * @param string $description The class description + * + * @return void + * @since 3.2.0 + */ + private function setComment(string $name, string $description): void + { + $this->classinjector->setComment( + strtolower($name), + $name, + $description + ); + } + + /** + * Set the class constructor argument. + * + * @param string $name The class name + * + * @return void + * @since 3.2.0 + */ + private function setArgument(string $name): void + { + $this->classinjector->setArgument( + strtolower($name), + $name + ); + } + + /** + * Get the assignment code inside the constructor. + * + * @param string $name The class name + * + * @return void + * @since 3.2.0 + */ + private function setAssignment(string $name): void + { + $this->classinjector->setAssignment( + strtolower($name) + ); + } + + /** + * Extract the '@since' version number from a given string. + * + * This function checks the provided string for a '@since' annotation + * and retrieves the subsequent version number. If no '@since' + * annotation is found or no version number is provided after the + * annotation, the function will return null. + * + * @param string $inputString The input string to search. + * + * @return string|null The version number if found, or null if not. + * @since 3.2.0 + */ + private function extractSinceVersion(string $inputString): ?string + { + // Use regex to match the @since pattern and capture the version number + if (preg_match('/@since\s+([\d\.]+)/', $inputString, $matches)) + { + return $matches[1]; + } + + // If no match is found, return null + return null; + } \ No newline at end of file diff --git a/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/settings.json b/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/settings.json new file mode 100644 index 0000000..af969e1 --- /dev/null +++ b/src/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7/settings.json @@ -0,0 +1,31 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7", + "implements": null, + "load_selection": null, + "name": "ClassInjectorBuilder", + "power_version": "1.0.0", + "system_name": "JCB.Power.Generator.ClassInjectorBuilder", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "50302fce-62b4-48ae-a692-9cc4595ce74c", + "as": "default" + }, + "use_selection1": { + "use": "c72692b0-0a0f-412a-b05b-80002cbf886a", + "as": "default" + }, + "use_selection2": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Generator.ClassInjectorBuilder", + "description": "Power Class Injector Builder of JCB\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": "" +} \ No newline at end of file diff --git a/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/README.md b/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/README.md new file mode 100644 index 0000000..cb7aee4 --- /dev/null +++ b/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class MovedPublishingFields (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class MovedPublishingFields << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/code.php b/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/code.php new file mode 100644 index 0000000..cce3959 --- /dev/null +++ b/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Moved Publishing Fields Builder Class + * + * @since 3.2.0 + */ +final class MovedPublishingFields extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/code.power b/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/settings.json b/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/settings.json new file mode 100644 index 0000000..f8f3171 --- /dev/null +++ b/src/9cdff2af-bd1b-452f-810e-d034b9720d2a/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "9cdff2af-bd1b-452f-810e-d034b9720d2a", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "MovedPublishingFields", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.MovedPublishingFields", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.MovedPublishingFields", + "description": "Moved Publishing Fields Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/README.md b/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/README.md new file mode 100644 index 0000000..4c7c8af --- /dev/null +++ b/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class OtherFilter (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class OtherFilter << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/code.php b/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/code.php new file mode 100644 index 0000000..324381a --- /dev/null +++ b/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Other Filter Builder Class + * + * @since 3.2.0 + */ +final class OtherFilter extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/code.power b/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/settings.json b/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/settings.json new file mode 100644 index 0000000..63b2d77 --- /dev/null +++ b/src/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "OtherFilter", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.OtherFilter", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.OtherFilter", + "description": "Other Filter Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/README.md b/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/README.md new file mode 100644 index 0000000..dffe00a --- /dev/null +++ b/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class CustomAlias (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class CustomAlias << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/code.php b/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/code.php new file mode 100644 index 0000000..67f6671 --- /dev/null +++ b/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Custom Alias Builder Class + * + * @since 3.2.0 + */ +final class CustomAlias extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/code.power b/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/settings.json b/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/settings.json new file mode 100644 index 0000000..87768b8 --- /dev/null +++ b/src/9d74d613-5ef7-4cf1-9f12-64f0a8e19806/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "9d74d613-5ef7-4cf1-9f12-64f0a8e19806", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "CustomAlias", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.CustomAlias", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.CustomAlias", + "description": "Custom Alias Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/9f00e793-86f8-4ef9-b775-a3eb129f83c0/README.md b/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/README.md index ca382ff..f1974db 100644 --- a/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/README.md +++ b/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/README.md @@ -12,8 +12,9 @@ @startuml class Language #Gold { + register(Container $container) : void - + getLanguage(Container $container) : CompilerLanguage - + getLanguageExtractor(Container $container) : Extractor + + getCompilerLanguage(Container $container) : CompilerLanguage + + getExtractor(Container $container) : Extractor + + getFieldset(Container $container) : Fieldset } note right of Language::register @@ -23,19 +24,26 @@ note right of Language::register return: void end note -note right of Language::getLanguage - Get the Compiler Language +note right of Language::getCompilerLanguage + Get The Language Class. since: 3.2.0 return: CompilerLanguage end note -note right of Language::getLanguageExtractor - Get the Compiler Language Extractor +note right of Language::getExtractor + Get The Extractor Class. since: 3.2.0 return: Extractor end note + +note right of Language::getFieldset + Get The Fieldset Class. + + since: 3.2.0 + return: Fieldset +end note @enduml ``` diff --git a/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/code.php b/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/code.php index de702b8..0fc4e7e 100644 --- a/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/code.php +++ b/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/code.php @@ -16,6 +16,7 @@ use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use VDM\Joomla\Componentbuilder\Compiler\Language as CompilerLanguage; use VDM\Joomla\Componentbuilder\Compiler\Language\Extractor; +use VDM\Joomla\Componentbuilder\Compiler\Language\Fieldset; /** @@ -36,21 +37,24 @@ class Language implements ServiceProviderInterface public function register(Container $container) { $container->alias(CompilerLanguage::class, 'Language') - ->share('Language', [$this, 'getLanguage'], true); + ->share('Language', [$this, 'getCompilerLanguage'], true); $container->alias(Extractor::class, 'Language.Extractor') - ->share('Language.Extractor', [$this, 'getLanguageExtractor'], true); + ->share('Language.Extractor', [$this, 'getExtractor'], true); + + $container->alias(Fieldset::class, 'Language.Fieldset') + ->share('Language.Fieldset', [$this, 'getFieldset'], true); } /** - * Get the Compiler Language + * Get The Language Class. * * @param Container $container The DI container. * * @return CompilerLanguage * @since 3.2.0 */ - public function getLanguage(Container $container): CompilerLanguage + public function getCompilerLanguage(Container $container): CompilerLanguage { return new CompilerLanguage( $container->get('Config') @@ -58,14 +62,14 @@ class Language implements ServiceProviderInterface } /** - * Get the Compiler Language Extractor + * Get The Extractor Class. * * @param Container $container The DI container. * * @return Extractor * @since 3.2.0 */ - public function getLanguageExtractor(Container $container): Extractor + public function getExtractor(Container $container): Extractor { return new Extractor( $container->get('Config'), @@ -73,6 +77,23 @@ class Language implements ServiceProviderInterface $container->get('Placeholder') ); } - + + /** + * Get The Fieldset Class. + * + * @param Container $container The DI container. + * + * @return Fieldset + * @since 3.2.0 + */ + public function getFieldset(Container $container): Fieldset + { + return new Fieldset( + $container->get('Language'), + $container->get('Compiler.Builder.Meta.Data'), + $container->get('Compiler.Builder.Access.Switch'), + $container->get('Compiler.Builder.Access.Switch.List') + ); + } } diff --git a/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/code.power b/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/code.power index af4f11b..0b9febf 100644 --- a/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/code.power +++ b/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/code.power @@ -9,21 +9,24 @@ public function register(Container $container) { $container->alias(CompilerLanguage::class, 'Language') - ->share('Language', [$this, 'getLanguage'], true); + ->share('Language', [$this, 'getCompilerLanguage'], true); $container->alias(Extractor::class, 'Language.Extractor') - ->share('Language.Extractor', [$this, 'getLanguageExtractor'], true); + ->share('Language.Extractor', [$this, 'getExtractor'], true); + + $container->alias(Fieldset::class, 'Language.Fieldset') + ->share('Language.Fieldset', [$this, 'getFieldset'], true); } /** - * Get the Compiler Language + * Get The Language Class. * * @param Container $container The DI container. * * @return CompilerLanguage * @since 3.2.0 */ - public function getLanguage(Container $container): CompilerLanguage + public function getCompilerLanguage(Container $container): CompilerLanguage { return new CompilerLanguage( $container->get('Config') @@ -31,14 +34,14 @@ } /** - * Get the Compiler Language Extractor + * Get The Extractor Class. * * @param Container $container The DI container. * * @return Extractor * @since 3.2.0 */ - public function getLanguageExtractor(Container $container): Extractor + public function getExtractor(Container $container): Extractor { return new Extractor( $container->get('Config'), @@ -46,3 +49,21 @@ $container->get('Placeholder') ); } + + /** + * Get The Fieldset Class. + * + * @param Container $container The DI container. + * + * @return Fieldset + * @since 3.2.0 + */ + public function getFieldset(Container $container): Fieldset + { + return new Fieldset( + $container->get('Language'), + $container->get('Compiler.Builder.Meta.Data'), + $container->get('Compiler.Builder.Access.Switch'), + $container->get('Compiler.Builder.Access.Switch.List') + ); + } \ No newline at end of file diff --git a/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/settings.json b/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/settings.json index 660284d..258d797 100644 --- a/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/settings.json +++ b/src/9f00e793-86f8-4ef9-b775-a3eb129f83c0/settings.json @@ -19,6 +19,10 @@ "use_selection1": { "use": "d33b9278-c409-4aec-a047-b72f56712391", "as": "default" + }, + "use_selection2": { + "use": "4ad7020e-39ab-49ba-977b-de6084944502", + "as": "default" } }, "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Service.Language", diff --git a/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/README.md b/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/README.md new file mode 100644 index 0000000..d04bcc5 --- /dev/null +++ b/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class MysqlTableSetting (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class MysqlTableSetting << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/code.php b/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/code.php new file mode 100644 index 0000000..1cb7eba --- /dev/null +++ b/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Mysql Table Setting Builder Class + * + * @since 3.2.0 + */ +final class MysqlTableSetting extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/code.power b/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/settings.json b/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/settings.json new file mode 100644 index 0000000..21db0f6 --- /dev/null +++ b/src/9ff6d6cd-afea-4f15-a67b-fd132d386989/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "9ff6d6cd-afea-4f15-a67b-fd132d386989", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "MysqlTableSetting", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.MysqlTableSetting", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.MysqlTableSetting", + "description": "Mysql Table Setting Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/a090a472-eb3d-4086-a6d5-4215e1b1851f/README.md b/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/README.md new file mode 100644 index 0000000..abc06b6 --- /dev/null +++ b/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FieldRelations (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class FieldRelations << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/code.php b/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/code.php new file mode 100644 index 0000000..685a7c3 --- /dev/null +++ b/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Field Relations Builder Class + * + * @since 3.2.0 + */ +final class FieldRelations extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/code.power b/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/settings.json b/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/settings.json new file mode 100644 index 0000000..401e5e2 --- /dev/null +++ b/src/a090a472-eb3d-4086-a6d5-4215e1b1851f/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "a090a472-eb3d-4086-a6d5-4215e1b1851f", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "FieldRelations", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.FieldRelations", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.FieldRelations", + "description": "Field Relations Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/a0f032db-2242-41df-8e4a-5e9e6f88201d/README.md b/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/README.md new file mode 100644 index 0000000..9cba0a8 --- /dev/null +++ b/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/README.md @@ -0,0 +1,64 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Layout (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class Layout << (F,LightGreen) >> #RoyalBlue { + # Config $config + # OrderZero $orderzero + # TabCounter $tabcounter + # BuilderLayout $layout + # MovedPublishingFields $movedpublishingfields + # NewPublishingFields $newpublishingfields + + __construct(Config $config, OrderZero $orderzero, ...) + + set(string $nameSingleCode, string $tabName, ...) : void +} + +note right of Layout::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + OrderZero $orderzero + TabCounter $tabcounter + BuilderLayout $layout + MovedPublishingFields $movedpublishingfields + NewPublishingFields $newpublishingfields +end note + +note right of Layout::set + set the layout builders + + since: 3.2.0 + return: void + + arguments: + string $nameSingleCode + string $tabName + string $name + array $field +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/code.php b/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/code.php new file mode 100644 index 0000000..77047ed --- /dev/null +++ b/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/code.php @@ -0,0 +1,218 @@ + + * @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\Compiler\Creator; + + +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Builder\OrderZero; +use VDM\Joomla\Componentbuilder\Compiler\Builder\TabCounter; +use VDM\Joomla\Componentbuilder\Compiler\Builder\Layout as BuilderLayout; +use VDM\Joomla\Componentbuilder\Compiler\Builder\MovedPublishingFields; +use VDM\Joomla\Componentbuilder\Compiler\Builder\NewPublishingFields; +use VDM\Joomla\Utilities\StringHelper; + + +/** + * Layout Creator Class + * + * @since 3.2.0 + */ +final class Layout +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The OrderZero Class. + * + * @var OrderZero + * @since 3.2.0 + */ + protected OrderZero $orderzero; + + /** + * The TabCounter Class. + * + * @var TabCounter + * @since 3.2.0 + */ + protected TabCounter $tabcounter; + + /** + * The Builder Layout Class. + * + * @var BuilderLayout + * @since 3.2.0 + */ + protected BuilderLayout $layout; + + /** + * The MovedPublishingFields Class. + * + * @var MovedPublishingFields + * @since 3.2.0 + */ + protected MovedPublishingFields $movedpublishingfields; + + /** + * The NewPublishingFields Class. + * + * @var NewPublishingFields + * @since 3.2.0 + */ + protected NewPublishingFields $newpublishingfields; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param OrderZero $orderzero The OrderZero Class. + * @param TabCounter $tabcounter The TabCounter Class. + * @param BuilderLayout $layout The Layout Class. + * @param MovedPublishingFields $movedpublishingfields The MovedPublishingFields Class. + * @param NewPublishingFields $newpublishingfields The NewPublishingFields Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, OrderZero $orderzero, + TabCounter $tabcounter, BuilderLayout $layout, + MovedPublishingFields $movedpublishingfields, + NewPublishingFields $newpublishingfields) + { + $this->config = $config; + $this->orderzero = $orderzero; + $this->tabcounter = $tabcounter; + $this->layout = $layout; + $this->movedpublishingfields = $movedpublishingfields; + $this->newpublishingfields = $newpublishingfields; + } + + /** + * set the layout builders + * + * @param string $nameSingleCode The single edit view code name + * @param string $tabName The tab code name + * @param string $name The field code name + * @param array $field The field details + * + * @return void + * @since 3.2.0 + */ + public function set(string $nameSingleCode, string $tabName, string $name, array &$field): void + { + // first fix the zero order + // to insure it lands before all the other fields + // as zero is expected to behave + if ($field['order_edit'] == 0) + { + // get the value + $zero_counter = $this->orderzero->get($nameSingleCode . '.' . $field['tab'], -999); + if ($zero_counter != -999) + { + $zero_counter++; + } + $field['order_edit'] = $zero_counter; + // set the value + $this->orderzero->set($nameSingleCode . '.' . $field['tab'], $zero_counter); + } + // get the default fields + $default_fields = $this->config->default_fields; + // now build the layout + if (StringHelper::check($tabName) + && strtolower($tabName) != 'publishing') + { + $this->tabcounter->set($nameSingleCode . '.' . $field['tab'], $tabName); + if ($this->layout->exists($nameSingleCode . '.' . $tabName . '.' + . $field['alignment'] . '.' . $field['order_edit'])) + { + $size = $this->layout->count($nameSingleCode . '.' . $tabName . '.' + . $field['alignment']) + 1; + while ($this->layout->exists($nameSingleCode . '.' . $tabName . '.' + . $field['alignment'] . '.' . $size)) + { + $size++; + } + $this->layout->set($nameSingleCode . '.' . $tabName . '.' + . $field['alignment'] . '.' . $size, $name); + } + else + { + $this->layout->set($nameSingleCode . '.' + . $tabName . '.' . $field['alignment'] . '.' . $field['order_edit'], $name); + } + // check if default fields were overwritten + if (in_array($name, $default_fields)) + { + // just to eliminate + $this->movedpublishingfields->set($nameSingleCode . '.' . $name, true); + } + } + elseif ($tabName === 'publishing' || $tabName === 'Publishing') + { + if (!in_array($name, $default_fields)) + { + if ($this->newpublishingfields->exists($nameSingleCode . '.' . + $field['alignment'] . '.' . $field['order_edit'])) + { + $size = $this->newpublishingfields->count($nameSingleCode . '.' . + $field['alignment']) + 1; + while ($this->newpublishingfields->exists($nameSingleCode . '.' . + $field['alignment'] . '.' . $size)) + { + $size++; + } + $this->newpublishingfields->set($nameSingleCode . '.' . + $field['alignment'] . '.' . $size, $name); + } + else + { + $this->newpublishingfields->set($nameSingleCode . '.' . + $field['alignment'] . '.' . $field['order_edit'], $name); + } + } + } + else + { + $this->tabcounter->set($nameSingleCode . '.1', 'Details'); + if ($this->layout->exists($nameSingleCode . '.Details.' + . $field['alignment'] . '.' . $field['order_edit'])) + { + $size = $this->layout->count($nameSingleCode . '.Details.' + . $field['alignment']) + 1; + while ($this->layout->exists($nameSingleCode . '.Details.' + . $field['alignment'] . '.' . $size)) + { + $size++; + } + $this->layout->set($nameSingleCode . '.Details.' + . $field['alignment'] . '.' . $size, $name); + } + else + { + $this->layout->set($nameSingleCode . '.Details.' . $field['alignment'] . '.' + . $field['order_edit'], $name); + } + // check if default fields were overwritten + if (in_array($name, $default_fields)) + { + // just to eliminate + $this->movedpublishingfields->set($nameSingleCode . '.' . $name, true); + } + } + } +} + diff --git a/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/code.power b/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/code.power new file mode 100644 index 0000000..2f14485 --- /dev/null +++ b/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/code.power @@ -0,0 +1,186 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The OrderZero Class. + * + * @var OrderZero + * @since 3.2.0 + */ + protected OrderZero $orderzero; + + /** + * The TabCounter Class. + * + * @var TabCounter + * @since 3.2.0 + */ + protected TabCounter $tabcounter; + + /** + * The Builder Layout Class. + * + * @var BuilderLayout + * @since 3.2.0 + */ + protected BuilderLayout $layout; + + /** + * The MovedPublishingFields Class. + * + * @var MovedPublishingFields + * @since 3.2.0 + */ + protected MovedPublishingFields $movedpublishingfields; + + /** + * The NewPublishingFields Class. + * + * @var NewPublishingFields + * @since 3.2.0 + */ + protected NewPublishingFields $newpublishingfields; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param OrderZero $orderzero The OrderZero Class. + * @param TabCounter $tabcounter The TabCounter Class. + * @param BuilderLayout $layout The Layout Class. + * @param MovedPublishingFields $movedpublishingfields The MovedPublishingFields Class. + * @param NewPublishingFields $newpublishingfields The NewPublishingFields Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, OrderZero $orderzero, + TabCounter $tabcounter, BuilderLayout $layout, + MovedPublishingFields $movedpublishingfields, + NewPublishingFields $newpublishingfields) + { + $this->config = $config; + $this->orderzero = $orderzero; + $this->tabcounter = $tabcounter; + $this->layout = $layout; + $this->movedpublishingfields = $movedpublishingfields; + $this->newpublishingfields = $newpublishingfields; + } + + /** + * set the layout builders + * + * @param string $nameSingleCode The single edit view code name + * @param string $tabName The tab code name + * @param string $name The field code name + * @param array $field The field details + * + * @return void + * @since 3.2.0 + */ + public function set(string $nameSingleCode, string $tabName, string $name, array &$field): void + { + // first fix the zero order + // to insure it lands before all the other fields + // as zero is expected to behave + if ($field['order_edit'] == 0) + { + // get the value + $zero_counter = $this->orderzero->get($nameSingleCode . '.' . $field['tab'], -999); + if ($zero_counter != -999) + { + $zero_counter++; + } + $field['order_edit'] = $zero_counter; + // set the value + $this->orderzero->set($nameSingleCode . '.' . $field['tab'], $zero_counter); + } + // get the default fields + $default_fields = $this->config->default_fields; + // now build the layout + if (StringHelper::check($tabName) + && strtolower($tabName) != 'publishing') + { + $this->tabcounter->set($nameSingleCode . '.' . $field['tab'], $tabName); + if ($this->layout->exists($nameSingleCode . '.' . $tabName . '.' + . $field['alignment'] . '.' . $field['order_edit'])) + { + $size = $this->layout->count($nameSingleCode . '.' . $tabName . '.' + . $field['alignment']) + 1; + while ($this->layout->exists($nameSingleCode . '.' . $tabName . '.' + . $field['alignment'] . '.' . $size)) + { + $size++; + } + $this->layout->set($nameSingleCode . '.' . $tabName . '.' + . $field['alignment'] . '.' . $size, $name); + } + else + { + $this->layout->set($nameSingleCode . '.' + . $tabName . '.' . $field['alignment'] . '.' . $field['order_edit'], $name); + } + // check if default fields were overwritten + if (in_array($name, $default_fields)) + { + // just to eliminate + $this->movedpublishingfields->set($nameSingleCode . '.' . $name, true); + } + } + elseif ($tabName === 'publishing' || $tabName === 'Publishing') + { + if (!in_array($name, $default_fields)) + { + if ($this->newpublishingfields->exists($nameSingleCode . '.' . + $field['alignment'] . '.' . $field['order_edit'])) + { + $size = $this->newpublishingfields->count($nameSingleCode . '.' . + $field['alignment']) + 1; + while ($this->newpublishingfields->exists($nameSingleCode . '.' . + $field['alignment'] . '.' . $size)) + { + $size++; + } + $this->newpublishingfields->set($nameSingleCode . '.' . + $field['alignment'] . '.' . $size, $name); + } + else + { + $this->newpublishingfields->set($nameSingleCode . '.' . + $field['alignment'] . '.' . $field['order_edit'], $name); + } + } + } + else + { + $this->tabcounter->set($nameSingleCode . '.1', 'Details'); + if ($this->layout->exists($nameSingleCode . '.Details.' + . $field['alignment'] . '.' . $field['order_edit'])) + { + $size = $this->layout->count($nameSingleCode . '.Details.' + . $field['alignment']) + 1; + while ($this->layout->exists($nameSingleCode . '.Details.' + . $field['alignment'] . '.' . $size)) + { + $size++; + } + $this->layout->set($nameSingleCode . '.Details.' + . $field['alignment'] . '.' . $size, $name); + } + else + { + $this->layout->set($nameSingleCode . '.Details.' . $field['alignment'] . '.' + . $field['order_edit'], $name); + } + // check if default fields were overwritten + if (in_array($name, $default_fields)) + { + // just to eliminate + $this->movedpublishingfields->set($nameSingleCode . '.' . $name, true); + } + } + } \ No newline at end of file diff --git a/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/settings.json b/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/settings.json new file mode 100644 index 0000000..b4b9686 --- /dev/null +++ b/src/a0f032db-2242-41df-8e4a-5e9e6f88201d/settings.json @@ -0,0 +1,47 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "a0f032db-2242-41df-8e4a-5e9e6f88201d", + "implements": null, + "load_selection": null, + "name": "Layout", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.Layout", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "66b7b5f8-60d6-427a-9f8c-84c11a3d6780", + "as": "default" + }, + "use_selection2": { + "use": "d645881c-ae8c-4828-a217-6bad98cd3b44", + "as": "default" + }, + "use_selection3": { + "use": "a90a2495-9c26-446c-867e-9ee8f42fb6af", + "as": "BuilderLayout" + }, + "use_selection4": { + "use": "9cdff2af-bd1b-452f-810e-d034b9720d2a", + "as": "default" + }, + "use_selection5": { + "use": "0f141480-afe6-41fb-996c-2a4e566a2f0d", + "as": "default" + }, + "use_selection6": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.Layout", + "description": "Layout Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/a1e551a9-8369-48c9-a076-4e5beb65e0df/README.md b/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/README.md new file mode 100644 index 0000000..96a7529 --- /dev/null +++ b/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class CategoryOtherName (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class CategoryOtherName << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/code.php b/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/code.php new file mode 100644 index 0000000..fa6e47f --- /dev/null +++ b/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Category Other Name Builder Class + * + * @since 3.2.0 + */ +final class CategoryOtherName extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/code.power b/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/settings.json b/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/settings.json new file mode 100644 index 0000000..6003766 --- /dev/null +++ b/src/a1e551a9-8369-48c9-a076-4e5beb65e0df/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "a1e551a9-8369-48c9-a076-4e5beb65e0df", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "CategoryOtherName", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.CategoryOtherName", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.CategoryOtherName", + "description": "Category Other Name Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/a4857c60-680c-4e0c-ae8f-9250a7b5e317/README.md b/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/README.md new file mode 100644 index 0000000..63cd548 --- /dev/null +++ b/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class CustomFieldLinks (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class CustomFieldLinks << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/code.php b/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/code.php new file mode 100644 index 0000000..acf0038 --- /dev/null +++ b/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\ToString; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Custom Field Links Builder Class + * + * @since 3.2.0 + */ +final class CustomFieldLinks extends StorageRegistry implements Storageregistryinterface +{ + /** + * To String Values + * + * @since 3.2.0 + */ + use ToString; +} + diff --git a/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/code.power b/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/code.power new file mode 100644 index 0000000..b9696bb --- /dev/null +++ b/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/code.power @@ -0,0 +1,6 @@ + /** + * To String Values + * + * @since 3.2.0 + */ + use ToString; \ No newline at end of file diff --git a/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/settings.json b/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/settings.json new file mode 100644 index 0000000..421db8f --- /dev/null +++ b/src/a4857c60-680c-4e0c-ae8f-9250a7b5e317/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "a4857c60-680c-4e0c-ae8f-9250a7b5e317", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "CustomFieldLinks", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.CustomFieldLinks", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "7d494d91-ab60-43cd-aecf-d50e07f7f30e", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.CustomFieldLinks", + "description": "Custom Field Links Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/README.md b/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/README.md new file mode 100644 index 0000000..719d88c --- /dev/null +++ b/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ModelBasicField (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ModelBasicField << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/code.php b/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/code.php new file mode 100644 index 0000000..1319485 --- /dev/null +++ b/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Basic Field Model Builder Class + * + * @since 3.2.0 + */ +final class ModelBasicField extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/code.power b/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/settings.json b/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/settings.json new file mode 100644 index 0000000..5c53f64 --- /dev/null +++ b/src/a5189bfe-6d15-4452-9fa5-e3e57f7fa791/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "a5189bfe-6d15-4452-9fa5-e3e57f7fa791", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ModelBasicField", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ModelBasicField", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ModelBasicField", + "description": "Basic Field Model Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/a5734b9e-a72d-494c-bc72-c3bc7506015f/README.md b/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/README.md new file mode 100644 index 0000000..35d2d05 --- /dev/null +++ b/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/README.md @@ -0,0 +1,54 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# abstract class Factory (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power** +```uml +@startuml +abstract Factory #Orange { + # static $container + + {static} _(string $key) : Mixed + + {static} getContainer() : Container + # {static} createContainer() : Container +} + +note right of Factory::_ + Get any class from the package container + + since: 3.2.0 + return: Mixed +end note + +note right of Factory::getContainer + Get the global package container + + since: 3.2.0 + return: Container +end note + +note right of Factory::createContainer + Create a container object + + since: 3.2.0 + return: Container +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/code.php b/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/code.php new file mode 100644 index 0000000..c3ef049 --- /dev/null +++ b/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/code.php @@ -0,0 +1,88 @@ + + * @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\Power; + + +use Joomla\DI\Container; +use VDM\Joomla\Componentbuilder\Power\Service\Power; +use VDM\Joomla\Componentbuilder\Service\Database; +use VDM\Joomla\Componentbuilder\Power\Service\Database as PowerDatabase; +use VDM\Joomla\Componentbuilder\Power\Service\Generator; +use VDM\Joomla\Componentbuilder\Service\Gitea; +use VDM\Joomla\Componentbuilder\Power\Service\Gitea as GiteaPower; +use VDM\Joomla\Gitea\Service\Utilities as GiteaUtilities; +use VDM\Joomla\Interfaces\FactoryInterface; + + +/** + * Power Factory + * + * @since 3.2.0 + */ +abstract class Factory implements FactoryInterface +{ + /** + * Global Package Container + * + * @var Container + * @since 3.2.0 + **/ + protected static $container = null; + + /** + * Get any class from the package container + * + * @param string $key The container class key + * + * @return Mixed + * @since 3.2.0 + */ + public static function _($key) + { + return self::getContainer()->get($key); + } + + /** + * Get the global package container + * + * @return Container + * @since 3.2.0 + */ + public static function getContainer(): Container + { + if (!self::$container) + { + self::$container = self::createContainer(); + } + + return self::$container; + } + + /** + * Create a container object + * + * @return Container + * @since 3.2.0 + */ + protected static function createContainer(): Container + { + return (new Container()) + ->registerServiceProvider(new Power()) + ->registerServiceProvider(new Database()) + ->registerServiceProvider(new PowerDatabase()) + ->registerServiceProvider(new Generator()) + ->registerServiceProvider(new Gitea()) + ->registerServiceProvider(new GiteaPower()) + ->registerServiceProvider(new GiteaUtilities()); + } +} + diff --git a/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/code.power b/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/code.power new file mode 100644 index 0000000..b1fbee3 --- /dev/null +++ b/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/code.power @@ -0,0 +1,54 @@ + /** + * Global Package Container + * + * @var Container + * @since 3.2.0 + **/ + protected static $container = null; + + /** + * Get any class from the package container + * + * @param string $key The container class key + * + * @return Mixed + * @since 3.2.0 + */ + public static function _($key) + { + return self::getContainer()->get($key); + } + + /** + * Get the global package container + * + * @return Container + * @since 3.2.0 + */ + public static function getContainer(): Container + { + if (!self::$container) + { + self::$container = self::createContainer(); + } + + return self::$container; + } + + /** + * Create a container object + * + * @return Container + * @since 3.2.0 + */ + protected static function createContainer(): Container + { + return (new Container()) + ->registerServiceProvider(new Power()) + ->registerServiceProvider(new Database()) + ->registerServiceProvider(new PowerDatabase()) + ->registerServiceProvider(new Generator()) + ->registerServiceProvider(new Gitea()) + ->registerServiceProvider(new GiteaPower()) + ->registerServiceProvider(new GiteaUtilities()); + } \ No newline at end of file diff --git a/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/settings.json b/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/settings.json new file mode 100644 index 0000000..360dc2c --- /dev/null +++ b/src/a5734b9e-a72d-494c-bc72-c3bc7506015f/settings.json @@ -0,0 +1,49 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "0", + "guid": "a5734b9e-a72d-494c-bc72-c3bc7506015f", + "implements": [ + "caf33c5d-858c-4f9a-894f-ab302ec5445a" + ], + "load_selection": null, + "name": "Factory", + "power_version": "1.0.0", + "system_name": "JCB.Power.Factory", + "type": "abstract class", + "use_selection": { + "use_selection0": { + "use": "02bc072b-1e89-46c1-9732-4da77b1a9ac9", + "as": "default" + }, + "use_selection6": { + "use": "4815e1c7-a433-443d-a112-d1e03d7df84b", + "as": "default" + }, + "use_selection1": { + "use": "7243aaf6-b76c-4391-8698-50abbfc98fbe", + "as": "PowerDatabase" + }, + "use_selection2": { + "use": "a7101bbc-3c81-4b52-a4aa-522291f7594b", + "as": "default" + }, + "use_selection3": { + "use": "71acf8d6-32b8-4173-8277-eb9cda29fd64", + "as": "default" + }, + "use_selection4": { + "use": "510dc0f6-da3f-4a78-b43d-3a03e2cb5fae", + "as": "GiteaPower" + }, + "use_selection5": { + "use": "6edf0cf3-c2b0-45c9-84d2-c6ef1c5d434c", + "as": "GiteaUtilities" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Factory", + "description": "Power Factory\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": "use Joomla\\DI\\Container;", + "composer": "" +} \ No newline at end of file diff --git a/src/a601888d-12b6-427f-94ae-95004206e24e/README.md b/src/a601888d-12b6-427f-94ae-95004206e24e/README.md new file mode 100644 index 0000000..b36b3d8 --- /dev/null +++ b/src/a601888d-12b6-427f-94ae-95004206e24e/README.md @@ -0,0 +1,46 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class PermissionGlobalAction (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **MapperDouble** +```uml +@startuml +class PermissionGlobalAction << (F,LightGreen) >> #RoyalBlue { + # firstKey(string $key) : string + # secondKey(string $key) : string +} + +note right of PermissionGlobalAction::firstKey + Model the first key + + since: 3.2.0 + return: string +end note + +note right of PermissionGlobalAction::secondKey + Model the second key + + since: 3.2.0 + return: string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/a601888d-12b6-427f-94ae-95004206e24e/code.php b/src/a601888d-12b6-427f-94ae-95004206e24e/code.php new file mode 100644 index 0000000..dafd411 --- /dev/null +++ b/src/a601888d-12b6-427f-94ae-95004206e24e/code.php @@ -0,0 +1,52 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Componentbuilder\Interfaces\Mapperdoubleinterface; +use VDM\Joomla\Componentbuilder\Abstraction\MapperDouble; + + +/** + * Permission Global Action Builder Class + * + * @since 3.2.0 + */ +final class PermissionGlobalAction extends MapperDouble implements Mapperdoubleinterface +{ + /** + * Model the first key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function firstKey(string $key): string + { + return $key; + } + + /** + * Model the second key + * + * @param string $key The second key to model + * + * @return string + * @since 3.2.0 + */ + protected function secondKey(string $key): string + { + return $key; + } +} + diff --git a/src/a601888d-12b6-427f-94ae-95004206e24e/code.power b/src/a601888d-12b6-427f-94ae-95004206e24e/code.power new file mode 100644 index 0000000..2fc53e5 --- /dev/null +++ b/src/a601888d-12b6-427f-94ae-95004206e24e/code.power @@ -0,0 +1,25 @@ + /** + * Model the first key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function firstKey(string $key): string + { + return $key; + } + + /** + * Model the second key + * + * @param string $key The second key to model + * + * @return string + * @since 3.2.0 + */ + protected function secondKey(string $key): string + { + return $key; + } \ No newline at end of file diff --git a/src/a601888d-12b6-427f-94ae-95004206e24e/settings.json b/src/a601888d-12b6-427f-94ae-95004206e24e/settings.json new file mode 100644 index 0000000..85a2eee --- /dev/null +++ b/src/a601888d-12b6-427f-94ae-95004206e24e/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "4d4e76e9-12d9-4d19-b58c-b88974b2586a", + "guid": "a601888d-12b6-427f-94ae-95004206e24e", + "implements": [ + "fbc58009-fa16-4d49-a0dd-419c3b62d42f" + ], + "load_selection": null, + "name": "PermissionGlobalAction", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.PermissionGlobalAction", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.PermissionGlobalAction", + "description": "Permission Global Action Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/a7101bbc-3c81-4b52-a4aa-522291f7594b/README.md b/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/README.md new file mode 100644 index 0000000..ffcfc4f --- /dev/null +++ b/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/README.md @@ -0,0 +1,93 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# class Generator (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Service** +```uml +@startuml +class Generator #Gold { + + register(Container $container) : void + + getGenerator(Container $container) : PowerGenerator + + getClassInjectorBuilder(Container $container) : ClassInjectorBuilder + + getServiceProviderBuilder(Container $container) : ServiceProviderBuilder + + getSearch(Container $container) : Search + + getClassInjector(Container $container) : ClassInjector + + getServiceProvider(Container $container) : ServiceProvider + + getBucket(Container $container) : Bucket +} + +note right of Generator::register + Registers the service provider with a DI container. + + since: 3.2.0 + return: void +end note + +note left of Generator::getGenerator + Get the Generator + + since: 3.2.0 + return: PowerGenerator +end note + +note right of Generator::getClassInjectorBuilder + Get the Generator Class Injector Builder + + since: 3.2.0 + return: ClassInjectorBuilder +end note + +note left of Generator::getServiceProviderBuilder + Get the Generator Service Provider Builder + + since: 3.2.0 + return: ServiceProviderBuilder +end note + +note right of Generator::getSearch + Get the Generator Search + + since: 3.2.0 + return: Search +end note + +note left of Generator::getClassInjector + Get the Generator Class Injector + + since: 3.2.0 + return: ClassInjector +end note + +note right of Generator::getServiceProvider + Get the Generator Service Provider + + since: 3.2.0 + return: ServiceProvider +end note + +note left of Generator::getBucket + Get the Generator Bucket + + since: 3.2.0 + return: Bucket +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/code.php b/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/code.php new file mode 100644 index 0000000..23a82cd --- /dev/null +++ b/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/code.php @@ -0,0 +1,169 @@ + + * @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\Power\Service; + + +use Joomla\DI\Container; +use Joomla\DI\ServiceProviderInterface; +use VDM\Joomla\Componentbuilder\Power\Generator as PowerGenerator; +use VDM\Joomla\Componentbuilder\Power\Generator\ClassInjectorBuilder; +use VDM\Joomla\Componentbuilder\Power\Generator\ServiceProviderBuilder; +use VDM\Joomla\Componentbuilder\Power\Generator\Search; +use VDM\Joomla\Componentbuilder\Power\Generator\ClassInjector; +use VDM\Joomla\Componentbuilder\Power\Generator\ServiceProvider; +use VDM\Joomla\Componentbuilder\Power\Generator\Bucket; + + +/** + * Generator Service Provider + * + * @since 3.2.0 + */ +class Generator implements ServiceProviderInterface +{ + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(PowerGenerator::class, 'Power.Generator') + ->share('Power.Generator', [$this, 'getGenerator'], true); + + $container->alias(ClassInjectorBuilder::class, 'Power.Generator.Class.Injector.Builder') + ->share('Power.Generator.Class.Injector.Builder', [$this, 'getClassInjectorBuilder'], true); + + $container->alias(ServiceProviderBuilder::class, 'Power.Generator.Service.Provider.Builder') + ->share('Power.Generator.Service.Provider.Builder', [$this, 'getServiceProviderBuilder'], true); + + $container->alias(Search::class, 'Power.Generator.Search') + ->share('Power.Generator.Search', [$this, 'getSearch'], true); + + $container->alias(ClassInjector::class, 'Power.Generator.Class.Injector') + ->share('Power.Generator.Class.Injector', [$this, 'getClassInjector'], true); + + $container->alias(ServiceProvider::class, 'Power.Generator.Service.Provider') + ->share('Power.Generator.Service.Provider', [$this, 'getServiceProvider'], true); + + $container->alias(Bucket::class, 'Power.Generator.Bucket') + ->share('Power.Generator.Bucket', [$this, 'getBucket'], true); + } + + /** + * Get the Generator + * + * @param Container $container The DI container. + * + * @return PowerGenerator + * @since 3.2.0 + */ + public function getGenerator(Container $container): PowerGenerator + { + return new PowerGenerator( + $container->get('Power.Generator.Class.Injector.Builder'), + $container->get('Power.Generator.Service.Provider.Builder') + ); + } + + /** + * Get the Generator Class Injector Builder + * + * @param Container $container The DI container. + * + * @return ClassInjectorBuilder + * @since 3.2.0 + */ + public function getClassInjectorBuilder(Container $container): ClassInjectorBuilder + { + return new ClassInjectorBuilder( + $container->get('Power.Generator.Search'), + $container->get('Power.Generator.Class.Injector') + ); + } + + /** + * Get the Generator Service Provider Builder + * + * @param Container $container The DI container. + * + * @return ServiceProviderBuilder + * @since 3.2.0 + */ + public function getServiceProviderBuilder(Container $container): ServiceProviderBuilder + { + return new ServiceProviderBuilder( + $container->get('Power.Generator.Search'), + $container->get('Power.Generator.Service.Provider') + ); + } + + /** + * Get the Generator Search + * + * @param Container $container The DI container. + * + * @return Search + * @since 3.2.0 + */ + public function getSearch(Container $container): Search + { + return new Search( + $container->get('Power.Database.Load'), + $container->get('Power.Parser'), + $container->get('Power.Generator.Bucket') + ); + } + + /** + * Get the Generator Class Injector + * + * @param Container $container The DI container. + * + * @return ClassInjector + * @since 3.2.0 + */ + public function getClassInjector(Container $container): ClassInjector + { + return new ClassInjector(); + } + + /** + * Get the Generator Service Provider + * + * @param Container $container The DI container. + * + * @return ServiceProvider + * @since 3.2.0 + */ + public function getServiceProvider(Container $container): ServiceProvider + { + return new ServiceProvider(); + } + + /** + * Get the Generator Bucket + * + * @param Container $container The DI container. + * + * @return Bucket + * @since 3.2.0 + */ + public function getBucket(Container $container): Bucket + { + return new Bucket(); + } +} + diff --git a/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/code.power b/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/code.power new file mode 100644 index 0000000..0c83d0a --- /dev/null +++ b/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/code.power @@ -0,0 +1,135 @@ + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * @since 3.2.0 + */ + public function register(Container $container) + { + $container->alias(PowerGenerator::class, 'Power.Generator') + ->share('Power.Generator', [$this, 'getGenerator'], true); + + $container->alias(ClassInjectorBuilder::class, 'Power.Generator.Class.Injector.Builder') + ->share('Power.Generator.Class.Injector.Builder', [$this, 'getClassInjectorBuilder'], true); + + $container->alias(ServiceProviderBuilder::class, 'Power.Generator.Service.Provider.Builder') + ->share('Power.Generator.Service.Provider.Builder', [$this, 'getServiceProviderBuilder'], true); + + $container->alias(Search::class, 'Power.Generator.Search') + ->share('Power.Generator.Search', [$this, 'getSearch'], true); + + $container->alias(ClassInjector::class, 'Power.Generator.Class.Injector') + ->share('Power.Generator.Class.Injector', [$this, 'getClassInjector'], true); + + $container->alias(ServiceProvider::class, 'Power.Generator.Service.Provider') + ->share('Power.Generator.Service.Provider', [$this, 'getServiceProvider'], true); + + $container->alias(Bucket::class, 'Power.Generator.Bucket') + ->share('Power.Generator.Bucket', [$this, 'getBucket'], true); + } + + /** + * Get the Generator + * + * @param Container $container The DI container. + * + * @return PowerGenerator + * @since 3.2.0 + */ + public function getGenerator(Container $container): PowerGenerator + { + return new PowerGenerator( + $container->get('Power.Generator.Class.Injector.Builder'), + $container->get('Power.Generator.Service.Provider.Builder') + ); + } + + /** + * Get the Generator Class Injector Builder + * + * @param Container $container The DI container. + * + * @return ClassInjectorBuilder + * @since 3.2.0 + */ + public function getClassInjectorBuilder(Container $container): ClassInjectorBuilder + { + return new ClassInjectorBuilder( + $container->get('Power.Generator.Search'), + $container->get('Power.Generator.Class.Injector') + ); + } + + /** + * Get the Generator Service Provider Builder + * + * @param Container $container The DI container. + * + * @return ServiceProviderBuilder + * @since 3.2.0 + */ + public function getServiceProviderBuilder(Container $container): ServiceProviderBuilder + { + return new ServiceProviderBuilder( + $container->get('Power.Generator.Search'), + $container->get('Power.Generator.Service.Provider') + ); + } + + /** + * Get the Generator Search + * + * @param Container $container The DI container. + * + * @return Search + * @since 3.2.0 + */ + public function getSearch(Container $container): Search + { + return new Search( + $container->get('Power.Database.Load'), + $container->get('Power.Parser'), + $container->get('Power.Generator.Bucket') + ); + } + + /** + * Get the Generator Class Injector + * + * @param Container $container The DI container. + * + * @return ClassInjector + * @since 3.2.0 + */ + public function getClassInjector(Container $container): ClassInjector + { + return new ClassInjector(); + } + + /** + * Get the Generator Service Provider + * + * @param Container $container The DI container. + * + * @return ServiceProvider + * @since 3.2.0 + */ + public function getServiceProvider(Container $container): ServiceProvider + { + return new ServiceProvider(); + } + + /** + * Get the Generator Bucket + * + * @param Container $container The DI container. + * + * @return Bucket + * @since 3.2.0 + */ + public function getBucket(Container $container): Bucket + { + return new Bucket(); + } \ No newline at end of file diff --git a/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/settings.json b/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/settings.json new file mode 100644 index 0000000..139b603 --- /dev/null +++ b/src/a7101bbc-3c81-4b52-a4aa-522291f7594b/settings.json @@ -0,0 +1,50 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "0", + "guid": "a7101bbc-3c81-4b52-a4aa-522291f7594b", + "implements": [ + "-1" + ], + "load_selection": null, + "name": "Generator", + "power_version": "1.0.0", + "system_name": "JCB.Power.Service.Generator", + "type": "class", + "use_selection": { + "use_selection0": { + "use": "505801ac-d3e2-44c6-a300-9a57a96170c6", + "as": "PowerGenerator" + }, + "use_selection1": { + "use": "9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7", + "as": "default" + }, + "use_selection2": { + "use": "8a2a3ee5-6ce2-4604-91e2-01f770228960", + "as": "default" + }, + "use_selection3": { + "use": "50302fce-62b4-48ae-a692-9cc4595ce74c", + "as": "default" + }, + "use_selection4": { + "use": "c72692b0-0a0f-412a-b05b-80002cbf886a", + "as": "default" + }, + "use_selection5": { + "use": "369ae3f5-90db-43b9-aba9-ce5c83311c4e", + "as": "default" + }, + "use_selection6": { + "use": "5d4278f0-7db2-498f-872a-c974bd8ce334", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Service.Generator", + "description": "Generator Service Provider\r\n\r\n@since 3.2.0", + "implements_custom": "ServiceProviderInterface", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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\\DI\\Container;\r\nuse Joomla\\DI\\ServiceProviderInterface;", + "composer": "" +} \ No newline at end of file diff --git a/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/README.md b/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/README.md new file mode 100644 index 0000000..e9462ac --- /dev/null +++ b/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/README.md @@ -0,0 +1,45 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Permission (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Adminview** +```uml +@startuml +class Permission << (F,LightGreen) >> #RoyalBlue { + # HasPermissions $haspermissions + + __construct(HasPermissions $haspermissions) + + check(array $view, string $nameSingleCode) : bool +} + +note right of Permission::__construct + Constructor. + + since: 3.2.0 +end note + +note right of Permission::check + Check to see if a view has permissions + + since: 3.2.0 + return: bool +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/code.php b/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/code.php new file mode 100644 index 0000000..75b15e0 --- /dev/null +++ b/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/code.php @@ -0,0 +1,123 @@ + + * @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\Compiler\Adminview; + + +use VDM\Joomla\Componentbuilder\Compiler\Builder\HasPermissions; +use VDM\Joomla\Utilities\ArrayHelper; + + +/** + * Admin View Permission Class + * + * @since 3.2.0 + */ +final class Permission +{ + /** + * The HasPermissions Class. + * + * @var HasPermissions + * @since 3.2.0 + */ + protected HasPermissions $haspermissions; + + /** + * Constructor. + * + * @param HasPermissions $haspermissions The HasPermissions Class. + * + * @since 3.2.0 + */ + public function __construct(HasPermissions $haspermissions) + { + $this->haspermissions = $haspermissions; + } + + /** + * Check to see if a view has permissions + * + * @param array $view View details + * @param string $nameSingleCode View Single Code Name + * + * @return bool true if it has permissions + * @since 3.2.0 + */ + public function check(array &$view, string &$nameSingleCode): bool + { + // first check if we have checked this already + if (!$this->haspermissions->exists($nameSingleCode)) + { + // when a view has history, it has permissions + // since it tracks the version access + if (isset($view['history']) && $view['history'] == 1) + { + // set the permission for later + $this->haspermissions->set($nameSingleCode, true); + + // break out here + return true; + } + // check if the view has permissions + if (isset($view['settings']) + && ArrayHelper::check( + $view['settings']->permissions, true + )) + { + foreach ($view['settings']->permissions as $per) + { + // check if the permission targets the view + // 1 = view + // 3 = both view & component + if (isset($per['implementation']) + && ( + $per['implementation'] == 1 + || $per['implementation'] == 3 + )) + { + // set the permission for later + $this->haspermissions->set($nameSingleCode, true); + + // break out here + return true; + } + } + } + // check if the fields has permissions + if (isset($view['settings']) + && ArrayHelper::check( + $view['settings']->fields, true + )) + { + foreach ($view['settings']->fields as $field) + { + // if a field has any permissions + // the a view has permissions + if (isset($field['permission']) + && ArrayHelper::check( + $field['permission'], true + )) + { + // set the permission for later + $this->haspermissions->set($nameSingleCode, true); + + // break out here + return true; + } + } + } + } + + return $this->haspermissions->exists($nameSingleCode); + } +} + diff --git a/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/code.power b/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/code.power new file mode 100644 index 0000000..c1c5ac6 --- /dev/null +++ b/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/code.power @@ -0,0 +1,96 @@ + /** + * The HasPermissions Class. + * + * @var HasPermissions + * @since 3.2.0 + */ + protected HasPermissions $haspermissions; + + /** + * Constructor. + * + * @param HasPermissions $haspermissions The HasPermissions Class. + * + * @since 3.2.0 + */ + public function __construct(HasPermissions $haspermissions) + { + $this->haspermissions = $haspermissions; + } + + /** + * Check to see if a view has permissions + * + * @param array $view View details + * @param string $nameSingleCode View Single Code Name + * + * @return bool true if it has permissions + * @since 3.2.0 + */ + public function check(array &$view, string &$nameSingleCode): bool + { + // first check if we have checked this already + if (!$this->haspermissions->exists($nameSingleCode)) + { + // when a view has history, it has permissions + // since it tracks the version access + if (isset($view['history']) && $view['history'] == 1) + { + // set the permission for later + $this->haspermissions->set($nameSingleCode, true); + + // break out here + return true; + } + // check if the view has permissions + if (isset($view['settings']) + && ArrayHelper::check( + $view['settings']->permissions, true + )) + { + foreach ($view['settings']->permissions as $per) + { + // check if the permission targets the view + // 1 = view + // 3 = both view & component + if (isset($per['implementation']) + && ( + $per['implementation'] == 1 + || $per['implementation'] == 3 + )) + { + // set the permission for later + $this->haspermissions->set($nameSingleCode, true); + + // break out here + return true; + } + } + } + // check if the fields has permissions + if (isset($view['settings']) + && ArrayHelper::check( + $view['settings']->fields, true + )) + { + foreach ($view['settings']->fields as $field) + { + // if a field has any permissions + // the a view has permissions + if (isset($field['permission']) + && ArrayHelper::check( + $field['permission'], true + )) + { + // set the permission for later + $this->haspermissions->set($nameSingleCode, true); + + // break out here + return true; + } + } + } + } + + return $this->haspermissions->exists($nameSingleCode); + } \ No newline at end of file diff --git a/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/settings.json b/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/settings.json new file mode 100644 index 0000000..c996fd7 --- /dev/null +++ b/src/a85451d3-a5c5-446a-90ae-0cf715a16d94/settings.json @@ -0,0 +1,27 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "a85451d3-a5c5-446a-90ae-0cf715a16d94", + "implements": null, + "load_selection": null, + "name": "Permission", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Adminview.Permission", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "e54965e7-34fd-481e-b40c-4da089afec5a", + "as": "default" + }, + "use_selection1": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Adminview.Permission", + "description": "Admin View Permission Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/a8eb2fb1-88ed-4af8-842d-898eb915b588/README.md b/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/README.md index d2c79d1..06a5aca 100644 --- a/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/README.md +++ b/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/README.md @@ -12,23 +12,27 @@ @startuml class Relations #Gold { # Config $config - # Registry $registry # Language $language # Customcode $customcode - + __construct(?Config $config = null, ?Registry $registry = null, ...) + # ListJoin $listjoin + # ListHeadOverride $listheadoverride + # FieldRelations $fieldrelations + + __construct(Config $config, Language $language, ...) + set(object $item) : void } note right of Relations::__construct - Constructor + Constructor. since: 3.2.0 arguments: - ?Config $config = null - ?Registry $registry = null - ?Language $language = null - ?Customcode $customcode = null + Config $config + Language $language + Customcode $customcode + ListJoin $listjoin + ListHeadOverride $listheadoverride + FieldRelations $fieldrelations end note note right of Relations::set diff --git a/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.php b/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.php index 7fe2a89..0512282 100644 --- a/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.php +++ b/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.php @@ -12,11 +12,12 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Model; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Registry; use VDM\Joomla\Componentbuilder\Compiler\Language; use VDM\Joomla\Componentbuilder\Compiler\Customcode; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ListJoin; +use VDM\Joomla\Componentbuilder\Compiler\Builder\ListHeadOverride; +use VDM\Joomla\Componentbuilder\Compiler\Builder\FieldRelations; use VDM\Joomla\Utilities\JsonHelper; use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\StringHelper; @@ -30,54 +31,74 @@ use VDM\Joomla\Utilities\StringHelper; class Relations { /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The Language Class. * - * @var Registry + * @var Language * @since 3.2.0 */ - protected Registry $registry; - - /** - * Compiler Language - * - * @var Language - * @since 3.2.0 - **/ protected Language $language; /** - * Compiler Customcode + * The Customcode Class. * - * @var Customcode + * @var Customcode * @since 3.2.0 */ protected Customcode $customcode; /** - * Constructor + * The ListJoin Class. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param Language|null $language The compiler Language object. - * @param Customcode|null $customcode The compiler customcode object. + * @var ListJoin + * @since 3.2.0 + */ + protected ListJoin $listjoin; + + /** + * The ListHeadOverride Class. + * + * @var ListHeadOverride + * @since 3.2.0 + */ + protected ListHeadOverride $listheadoverride; + + /** + * The FieldRelations Class. + * + * @var FieldRelations + * @since 3.2.0 + */ + protected FieldRelations $fieldrelations; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Language $language The Language Class. + * @param Customcode $customcode The Customcode Class. + * @param ListJoin $listjoin The ListJoin Class. + * @param ListHeadOverride $listheadoverride The ListHeadOverride Class. + * @param FieldRelations $fieldrelations The FieldRelations Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, - ?Language $language = null, ?Customcode $customcode = null) + public function __construct(Config $config, Language $language, Customcode $customcode, ListJoin $listjoin, + ListHeadOverride $listheadoverride, FieldRelations $fieldrelations) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->language = $language ?: Compiler::_('Language'); - $this->customcode = $customcode ?: Compiler::_('Customcode'); + $this->config = $config; + $this->language = $language; + $this->customcode = $customcode; + $this->listjoin = $listjoin; + $this->listheadoverride = $listheadoverride; + $this->fieldrelations = $fieldrelations; } /** @@ -120,8 +141,7 @@ class Relations } // load the field relations - $this->registry->set('builder.field_relations.' - . $item->name_list_code . '.' . (int) $relationsValue['listfield'] + $this->fieldrelations->set($item->name_list_code . '.' . (int) $relationsValue['listfield'] . '.' . (int) $relationsValue['area'], $relationsValue); // load the list joints @@ -132,7 +152,7 @@ class Relations { foreach ($relationsValue['joinfields'] as $join) { - $this->registry->set('builder.list_join.' . $item->name_list_code . '.' . (int) $join, (int) $join); + $this->listjoin->set($item->name_list_code . '.' . (int) $join, (int) $join); } } @@ -159,9 +179,9 @@ class Relations 'admin', $column_name_lang, $relationsValue['column_name'] ); - $this->registry->set('builder.list_head_override.' . - $item->name_list_code . '.' . (int) $relationsValue['listfield'], - $column_name_lang + $this->listheadoverride-> + set($item->name_list_code . '.' . (int) $relationsValue['listfield'], + $column_name_lang ); } @@ -171,7 +191,6 @@ class Relations } unset($item->addrelations); - } - + } } diff --git a/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.power b/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.power index c709302..a2a5235 100644 --- a/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.power +++ b/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/code.power @@ -1,52 +1,72 @@ /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The Language Class. * - * @var Registry + * @var Language * @since 3.2.0 */ - protected Registry $registry; - - /** - * Compiler Language - * - * @var Language - * @since 3.2.0 - **/ protected Language $language; /** - * Compiler Customcode + * The Customcode Class. * - * @var Customcode + * @var Customcode * @since 3.2.0 */ protected Customcode $customcode; /** - * Constructor + * The ListJoin Class. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param Language|null $language The compiler Language object. - * @param Customcode|null $customcode The compiler customcode object. + * @var ListJoin + * @since 3.2.0 + */ + protected ListJoin $listjoin; + + /** + * The ListHeadOverride Class. + * + * @var ListHeadOverride + * @since 3.2.0 + */ + protected ListHeadOverride $listheadoverride; + + /** + * The FieldRelations Class. + * + * @var FieldRelations + * @since 3.2.0 + */ + protected FieldRelations $fieldrelations; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Language $language The Language Class. + * @param Customcode $customcode The Customcode Class. + * @param ListJoin $listjoin The ListJoin Class. + * @param ListHeadOverride $listheadoverride The ListHeadOverride Class. + * @param FieldRelations $fieldrelations The FieldRelations Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, - ?Language $language = null, ?Customcode $customcode = null) + public function __construct(Config $config, Language $language, Customcode $customcode, ListJoin $listjoin, + ListHeadOverride $listheadoverride, FieldRelations $fieldrelations) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->language = $language ?: Compiler::_('Language'); - $this->customcode = $customcode ?: Compiler::_('Customcode'); + $this->config = $config; + $this->language = $language; + $this->customcode = $customcode; + $this->listjoin = $listjoin; + $this->listheadoverride = $listheadoverride; + $this->fieldrelations = $fieldrelations; } /** @@ -89,8 +109,7 @@ } // load the field relations - $this->registry->set('builder.field_relations.' - . $item->name_list_code . '.' . (int) $relationsValue['listfield'] + $this->fieldrelations->set($item->name_list_code . '.' . (int) $relationsValue['listfield'] . '.' . (int) $relationsValue['area'], $relationsValue); // load the list joints @@ -101,7 +120,7 @@ { foreach ($relationsValue['joinfields'] as $join) { - $this->registry->set('builder.list_join.' . $item->name_list_code . '.' . (int) $join, (int) $join); + $this->listjoin->set($item->name_list_code . '.' . (int) $join, (int) $join); } } @@ -128,9 +147,9 @@ 'admin', $column_name_lang, $relationsValue['column_name'] ); - $this->registry->set('builder.list_head_override.' . - $item->name_list_code . '.' . (int) $relationsValue['listfield'], - $column_name_lang + $this->listheadoverride-> + set($item->name_list_code . '.' . (int) $relationsValue['listfield'], + $column_name_lang ); } @@ -140,4 +159,4 @@ } unset($item->addrelations); - } + } \ No newline at end of file diff --git a/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/settings.json b/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/settings.json index 25314cd..304ed09 100644 --- a/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/settings.json +++ b/src/a8eb2fb1-88ed-4af8-842d-898eb915b588/settings.json @@ -11,34 +11,38 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, - "use_selection1": { "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", "as": "default" }, - "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", - "as": "default" - }, - "use_selection3": { + "use_selection1": { "use": "8eee7df5-2775-41a9-9372-c46c5939a252", "as": "default" }, - "use_selection4": { + "use_selection2": { "use": "313b43c4-98c3-4f62-9177-2d73ec8eba31", "as": "default" }, + "use_selection3": { + "use": "597663e1-1c02-43e8-aea5-f2161e38ac7f", + "as": "default" + }, + "use_selection4": { + "use": "7506a35c-fa32-44ab-bd41-363439b20b82", + "as": "default" + }, "use_selection5": { - "use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18", + "use": "a090a472-eb3d-4086-a6d5-4215e1b1851f", "as": "default" }, "use_selection6": { - "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18", "as": "default" }, "use_selection7": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + }, + "use_selection8": { "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", "as": "default" } diff --git a/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/README.md b/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/README.md new file mode 100644 index 0000000..c641bc8 --- /dev/null +++ b/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Layout (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class Layout << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/code.php b/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/code.php new file mode 100644 index 0000000..45597b3 --- /dev/null +++ b/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\Count; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Layout Builder Class + * + * @since 3.2.0 + */ +final class Layout extends StorageRegistry implements Storageregistryinterface +{ + /** + * Count Values + * + * @since 3.2.0 + */ + use Count; +} + diff --git a/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/code.power b/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/code.power new file mode 100644 index 0000000..21bfdb2 --- /dev/null +++ b/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/code.power @@ -0,0 +1,6 @@ + /** + * Count Values + * + * @since 3.2.0 + */ + use Count; \ No newline at end of file diff --git a/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/settings.json b/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/settings.json new file mode 100644 index 0000000..9d608b2 --- /dev/null +++ b/src/a90a2495-9c26-446c-867e-9ee8f42fb6af/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "a90a2495-9c26-446c-867e-9ee8f42fb6af", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "Layout", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.Layout", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "11572d9b-e3d5-4b29-904c-9618d8f2bfd8", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Layout", + "description": "Layout Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/abdb7d20-a15e-42d8-bd91-7b09514df7f2/README.md b/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/README.md new file mode 100644 index 0000000..a21cf79 --- /dev/null +++ b/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class SiteEditView (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class SiteEditView << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/code.php b/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/code.php new file mode 100644 index 0000000..11edfa4 --- /dev/null +++ b/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Site Edit View Builder Class + * + * @since 3.2.0 + */ +final class SiteEditView extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/code.power b/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/settings.json b/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/settings.json new file mode 100644 index 0000000..c5747c8 --- /dev/null +++ b/src/abdb7d20-a15e-42d8-bd91-7b09514df7f2/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "abdb7d20-a15e-42d8-bd91-7b09514df7f2", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "SiteEditView", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.SiteEditView", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.SiteEditView", + "description": "Site Edit View Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/ac691a05-5630-4002-b166-dedec3fb0fcb/README.md b/src/ac691a05-5630-4002-b166-dedec3fb0fcb/README.md new file mode 100644 index 0000000..bed9a7f --- /dev/null +++ b/src/ac691a05-5630-4002-b166-dedec3fb0fcb/README.md @@ -0,0 +1,79 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FieldXML (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class FieldXML << (F,LightGreen) >> #RoyalBlue { + # Config $config + # Language $language + # Field $field + # Groups $groups + # Name $name + # TypeName $typename + # Attributes $attributes + # Xml $xml + # CustomFieldTypeFile $customfieldtypefile + # Counter $counter + + __construct(Config $config, Language $language, ...) + + get(string $setType, array $fieldAttributes, ...) : \stdClass +} + +note right of FieldXML::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + Language $language + Field $field + Groups $groups + Name $name + TypeName $typename + Attributes $attributes + Xml $xml + CustomFieldTypeFile $customfieldtypefile + Counter $counter +end note + +note right of FieldXML::get + Create a field with simpleXMLElement class + + since: 3.2.0 + return: \stdClass + + arguments: + string $setType + array $fieldAttributes + string $name + string $typeName + string $langView + string $nameSingleCode + string $nameListCode + array $placeholders + array|null $optionArray + ?array $custom = null + string $taber = '' +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/ac691a05-5630-4002-b166-dedec3fb0fcb/code.php b/src/ac691a05-5630-4002-b166-dedec3fb0fcb/code.php new file mode 100644 index 0000000..f7eb511 --- /dev/null +++ b/src/ac691a05-5630-4002-b166-dedec3fb0fcb/code.php @@ -0,0 +1,1145 @@ + + * @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\Compiler\Creator; + + +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Language; +use VDM\Joomla\Componentbuilder\Compiler\Field; +use VDM\Joomla\Componentbuilder\Compiler\Field\Groups; +use VDM\Joomla\Componentbuilder\Compiler\Field\Name; +use VDM\Joomla\Componentbuilder\Compiler\Field\TypeName; +use VDM\Joomla\Componentbuilder\Compiler\Field\Attributes; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Xml; +use VDM\Joomla\Componentbuilder\Compiler\Creator\CustomFieldTypeFile; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Counter; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Utilities\String\FieldHelper; +use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Utilities\ObjectHelper; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator\Fieldtypeinterface; + + +/** + * Field Simple XML Creator Class + * + * @since 3.2.0 + */ +final class FieldXML implements Fieldtypeinterface +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The Field Class. + * + * @var Field + * @since 3.2.0 + */ + protected Field $field; + + /** + * The Groups Class. + * + * @var Groups + * @since 3.2.0 + */ + protected Groups $groups; + + /** + * The Name Class. + * + * @var Name + * @since 3.2.0 + */ + protected Name $name; + + /** + * The TypeName Class. + * + * @var TypeName + * @since 3.2.0 + */ + protected TypeName $typename; + + /** + * The Attributes Class. + * + * @var Attributes + * @since 3.2.0 + */ + protected Attributes $attributes; + + /** + * The Xml Class. + * + * @var Xml + * @since 3.2.0 + */ + protected Xml $xml; + + /** + * The CustomFieldTypeFile Class. + * + * @var CustomFieldTypeFile + * @since 3.2.0 + */ + protected CustomFieldTypeFile $customfieldtypefile; + + /** + * The Counter Class. + * + * @var Counter + * @since 3.2.0 + */ + protected Counter $counter; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Language $language The Language Class. + * @param Field $field The Field Class. + * @param Groups $groups The Groups Class. + * @param Name $name The Name Class. + * @param TypeName $typename The TypeName Class. + * @param Attributes $attributes The Attributes Class. + * @param Xml $xml The Xml Class. + * @param CustomFieldTypeFile $customfieldtypefile The CustomFieldTypeFile Class. + * @param Counter $counter The Counter Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Language $language, Field $field, + Groups $groups, Name $name, TypeName $typename, + Attributes $attributes, Xml $xml, + CustomFieldTypeFile $customfieldtypefile, + Counter $counter) + { + $this->config = $config; + $this->language = $language; + $this->field = $field; + $this->groups = $groups; + $this->name = $name; + $this->typename = $typename; + $this->attributes = $attributes; + $this->xml = $xml; + $this->customfieldtypefile = $customfieldtypefile; + $this->counter = $counter; + } + + /** + * Create a field with simpleXMLElement class + * + * @param string $setType The set of fields type + * @param array $fieldAttributes The field values + * @param string $name The field name + * @param string $typeName The field type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The place holder and replace values + * @param array|null $optionArray The option bucket array used to set the field options if needed. + * @param array|null $custom Used when field is from config + * @param string $taber The tabs not used... hmm + * + * @return \stdClass The field in xml object + * @since 3.2.0 + */ + public function get(string $setType, array &$fieldAttributes, string &$name, + string &$typeName, string &$langView, string &$nameSingleCode, string &$nameListCode, + array $placeholders, ?array &$optionArray, ?array $custom = null, string $taber = ''): \stdClass + { + // count the dynamic fields created + $this->counter->field++; + + $field = new \stdClass(); + if ($setType === 'option') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst($name) + . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". (joomla)"; + + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'option') + { + $field->fieldXML->addAttribute($property, $value); + } + elseif ($property === 'option') + { + $this->xml->comment( + $field->fieldXML, + Line::_(__Line__, __Class__) . " Option Set." + ); + if (strtolower($typeName) === 'groupedlist' + && strpos( + (string) $value, ',' + ) !== false + && strpos((string) $value, '@@') !== false) + { + // reset the group temp arrays + $groups_ = array(); + $grouped_ = array('group' => array(), + 'option' => array()); + $order_ = array(); + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '@@') !== false) + { + // set the group label + $valueKeyArray = explode('@@', $option); + if (count((array) $valueKeyArray) == 2) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[0], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[0] + ); + // now add group label + $groups_[$valueKeyArray[1]] = $langValue; + // set order + $order_['group' . $valueKeyArray[1]] + = $valueKeyArray[1]; + } + } + elseif (strpos($option, '|') !== false) + { + // has other value then text + $valueKeyArray = explode('|', $option); + if (count((array) $valueKeyArray) == 3) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['group'][$valueKeyArray[2]][] + = array('value' => $valueKeyArray[0], + 'text' => $langValue); + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['group' . $valueKeyArray[2]] + = $valueKeyArray[2]; + } + else + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['option'][$valueKeyArray[0]] + = array('value' => $valueKeyArray[0], + 'text' => $langValue); + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['option' . $valueKeyArray[0]] + = $valueKeyArray[0]; + } + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $grouped_['option'][$option] + = array('value' => $option, + 'text' => $langValue); + $optionArray[$option] = $langValue; + // set order + $order_['option' . $option] = $option; + } + } + // now build the groups + foreach ($order_ as $pointer_ => $_id) + { + // load the default key + $key_ = 'group'; + if (strpos($pointer_, 'option') !== false) + { + // load the option field + $key_ = 'option'; + } + // check if this is a group loader + if ('group' === $key_ && isset($groups_[$_id]) + && isset($grouped_[$key_][$_id]) + && ArrayHelper::check( + $grouped_[$key_][$_id] + )) + { + // set group label + $groupXML = $field->fieldXML->addChild('group'); + $groupXML->addAttribute( + 'label', $groups_[$_id] + ); + + foreach ($grouped_[$key_][$_id] as $option_) + { + $groupOptionXML = $groupXML->addChild( + 'option' + ); + $groupOptionXML->addAttribute( + 'value', $option_['value'] + ); + $groupOptionXML[] = $option_['text']; + } + unset($groups_[$_id]); + unset($grouped_[$key_][$_id]); + } + elseif (isset($grouped_[$key_][$_id]) + && StringHelper::check( + $grouped_[$key_][$_id] + )) + { + $optionXML = $field->fieldXML->addChild( + 'option' + ); + $optionXML->addAttribute( + 'value', $grouped_[$key_][$_id]['value'] + ); + $optionXML[] = $grouped_[$key_][$_id]['text']; + } + } + } + elseif (strpos((string) $value, ',') !== false) + { + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + $optionXML = $field->fieldXML->addChild('option'); + if (strpos($option, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', $option); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $t + ); + // now add to option set + $optionXML->addAttribute('value', $v); + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $optionXML->addAttribute('value', $option); + $optionArray[$option] = $langValue; + } + $optionXML[] = $langValue; + } + } + else + { + // one option + $optionXML = $field->fieldXML->addChild('option'); + if (strpos((string) $value, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', (string) $value); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set($this->config->lang_target, $langValue, $t); + // now add to option set + $optionXML->addAttribute('value', $v); + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $value, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $value + ); + // now add to option set + $optionXML->addAttribute('value', $value); + $optionArray[$value] = $langValue; + } + $optionXML[] = $langValue; + } + } + } + // if no options found and must have a list of options + if (!$field->fieldXML->count() + && $this->groups->check($typeName, 'list')) + { + $this->xml->comment( + $field->fieldXML, Line::_(__Line__, __Class__) + . " No Manual Options Were Added In Field Settings." + ); + } + } + elseif ($setType === 'plain') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst($name) + . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". (joomla)"; + + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'option') + { + $field->fieldXML->addAttribute($property, $value); + } + } + } + elseif ($setType === 'spacer') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst($name) + . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". A None Database Field. (joomla)"; + + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'option') + { + $field->fieldXML->addAttribute($property, $value); + } + } + } + elseif ($setType === 'special') + { + // set the repeatable field + if ($typeName === 'repeatable') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst( + $name + ) . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". (depreciated)"; + + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'fields') + { + $field->fieldXML->addAttribute($property, $value); + } + } + $fieldsXML = $field->fieldXML->addChild('fields'); + $fieldsXML->addAttribute( + 'name', $fieldAttributes['name'] . '_fields' + ); + $fieldsXML->addAttribute('label', ''); + $fieldSetXML = $fieldsXML->addChild('fieldset'); + $fieldSetXML->addAttribute('hidden', 'true'); + $fieldSetXML->addAttribute( + 'name', $fieldAttributes['name'] . '_modal' + ); + $fieldSetXML->addAttribute('repeat', 'true'); + + if (strpos((string) $fieldAttributes['fields'], ',') !== false) + { + // mulitpal fields + $fieldsSets = (array) explode( + ',', (string) $fieldAttributes['fields'] + ); + } + elseif (is_numeric($fieldAttributes['fields'])) + { + // single field + $fieldsSets[] = (int) $fieldAttributes['fields']; + } + // only continue if we have a field set + if (ArrayHelper::check($fieldsSets)) + { + // set the resolver + $_resolverKey = $fieldAttributes['name']; + // load the field data + $fieldsSets = array_map( + function ($id) use ( + $nameSingleCode, $nameListCode, $_resolverKey + ) { + // start field + $field = array(); + $field['field'] = $id; + // set the field details + $this->field->set( + $field, $nameSingleCode, $nameListCode, + $_resolverKey + ); + + // return field + return $field; + }, array_values($fieldsSets) + ); + // start the build + foreach ($fieldsSets as $fieldData) + { + // if we have settings continue + if (ObjectHelper::check( + $fieldData['settings'] + )) + { + $r_name = $this->name->get( + $fieldData, $nameListCode, $_resolverKey + ); + $r_typeName = $this->typename->get($fieldData); + $r_multiple = false; + $viewType = 0; + $r_langLabel = ''; + // get field values + $r_fieldValues = $this->attributes->set( + $fieldData, $viewType, $r_name, $r_typeName, + $r_multiple, $r_langLabel, $langView, + $nameListCode, $nameSingleCode, + $placeholders, true + ); + // check if values were set + if (ArrayHelper::check( + $r_fieldValues + )) + { + //reset options array + $r_optionArray = array(); + if ($this->groups->check( + $r_typeName, 'option' + )) + { + // now add to the field set + $this->xml->append( + $fieldSetXML, $this->get( + 'option', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + } + elseif (isset($r_fieldValues['custom']) + && ArrayHelper::check( + $r_fieldValues['custom'] + )) + { + // add to custom + $custom = $r_fieldValues['custom']; + unset($r_fieldValues['custom']); + // now add to the field set + $this->xml->append( + $fieldSetXML, $this->get( + 'custom', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + // set lang (just incase) + $r_listLangName = $langView . '_' + . FieldHelper::safe( + $r_name, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $r_listLangName, + StringHelper::safe( + $r_name, 'W' + ) + ); + // if label was set use instead + if (StringHelper::check( + $r_langLabel + )) + { + $r_listLangName = $r_langLabel; + } + // set the custom array + $data = array('type' => $r_typeName, + 'code' => $r_name, + 'lang' => $r_listLangName, + 'custom' => $custom); + // set the custom field file + $this->customfieldtypefile->set( + $data, $nameListCode, + $nameSingleCode + ); + } + else + { + // now add to the field set + $this->xml->append( + $fieldSetXML, $this->get( + 'plain', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + } + } + } + } + } + } + // set the subform fields (it is a repeatable without the modal) + elseif ($typeName === 'subform') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst( + $name + ) . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". (joomla)"; + // add all properties + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'fields' && $property != 'formsource') + { + $field->fieldXML->addAttribute($property, $value); + } + } + // if we detect formsource we do not add the form + if (isset($fieldAttributes['formsource']) + && StringHelper::check( + $fieldAttributes['formsource'] + )) + { + $field->fieldXML->addAttribute( + 'formsource', $fieldAttributes['formsource'] + ); + } + // add the form + else + { + $form = $field->fieldXML->addChild('form'); + $attributes = array( + 'hidden' => 'true', + 'name' => 'list_' . $fieldAttributes['name'] + . '_modal', + 'repeat' => 'true' + ); + $this->xml->attributes( + $form, $attributes + ); + + if (strpos((string) $fieldAttributes['fields'], ',') !== false) + { + // multiple fields + $fieldsSets = (array) explode( + ',', (string) $fieldAttributes['fields'] + ); + } + elseif (is_numeric($fieldAttributes['fields'])) + { + // single field + $fieldsSets[] = (int) $fieldAttributes['fields']; + } + // only continue if we have a field set + if (ArrayHelper::check($fieldsSets)) + { + // set the resolver + $_resolverKey = $fieldAttributes['name']; + // load the field data + $fieldsSets = array_map( + function ($id) use ( + $nameSingleCode, $nameListCode, + $_resolverKey + ) { + // start field + $field = array(); + $field['field'] = $id; + // set the field details + $this->field->set( + $field, $nameSingleCode, $nameListCode, + $_resolverKey + ); + + // return field + return $field; + }, array_values($fieldsSets) + ); + // start the build + foreach ($fieldsSets as $fieldData) + { + // if we have settings continue + if (ObjectHelper::check( + $fieldData['settings'] + )) + { + $r_name = $this->name->get( + $fieldData, $nameListCode, $_resolverKey + ); + $r_typeName = $this->typename->get($fieldData); + $r_multiple = false; + $viewType = 0; + $r_langLabel = ''; + // get field values + $r_fieldValues = $this->attributes->set( + $fieldData, $viewType, $r_name, $r_typeName, + $r_multiple, $r_langLabel, $langView, + $nameListCode, $nameSingleCode, + $placeholders, true + ); + // check if values were set + if (ArrayHelper::check( + $r_fieldValues + )) + { + //reset options array + $r_optionArray = array(); + if ($this->groups->check( + $r_typeName, 'option' + )) + { + // now add to the field set + $this->xml->append( + $form, $this->get( + 'option', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + } + elseif ($r_typeName === 'subform') + { + // set nested depth + if (isset($fieldAttributes['nested_depth'])) + { + $r_fieldValues['nested_depth'] + = ++$fieldAttributes['nested_depth']; + } + else + { + $r_fieldValues['nested_depth'] = 1; + } + // only continue if nest is bellow 20 (this should be a safe limit) + if ($r_fieldValues['nested_depth'] + <= 20) + { + // now add to the field set + $this->xml->append( + $form, $this->get( + 'special', $r_fieldValues, + $r_name, $r_typeName, $langView, + $nameSingleCode, + $nameListCode, $placeholders, + $r_optionArray + ) + ); + } + + } + elseif (isset($r_fieldValues['custom']) + && ArrayHelper::check( + $r_fieldValues['custom'] + )) + { + // add to custom + $custom = $r_fieldValues['custom']; + unset($r_fieldValues['custom']); + // now add to the field set + $this->xml->append( + $form, $this->get( + 'custom', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + // set lang (just incase) + $r_listLangName = $langView . '_' + . FieldHelper::safe( + $r_name, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $r_listLangName, + StringHelper::safe( + $r_name, 'W' + ) + ); + // if label was set use instead + if (StringHelper::check( + $r_langLabel + )) + { + $r_listLangName = $r_langLabel; + } + // set the custom array + $data = array('type' => $r_typeName, + 'code' => $r_name, + 'lang' => $r_listLangName, + 'custom' => $custom); + // set the custom field file + $this->customfieldtypefile->set( + $data, $nameListCode, + $nameSingleCode + ); + } + else + { + // now add to the field set + $this->xml->append( + $form, $this->get( + 'plain', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + } + } + } + } + } + } + } + } + elseif ($setType === 'custom') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst($name) + . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". (custom)"; + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'option') + { + $field->fieldXML->addAttribute($property, $value); + } + elseif ($property === 'option') + { + $this->xml->comment( + $field->fieldXML, + Line::_(__Line__, __Class__) . " Option Set." + ); + if (strtolower($typeName) === 'groupedlist' + && strpos( + (string) $value, ',' + ) !== false + && strpos((string) $value, '@@') !== false) + { + // reset the group temp arrays + $groups_ = array(); + $grouped_ = array('group' => array(), + 'option' => array()); + $order_ = array(); + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '@@') !== false) + { + // set the group label + $valueKeyArray = explode('@@', $option); + if (count((array) $valueKeyArray) == 2) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[0], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[0] + ); + // now add group label + $groups_[$valueKeyArray[1]] = $langValue; + // set order + $order_['group' . $valueKeyArray[1]] + = $valueKeyArray[1]; + } + } + elseif (strpos($option, '|') !== false) + { + // has other value then text + $valueKeyArray = explode('|', $option); + if (count((array) $valueKeyArray) == 3) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['group'][$valueKeyArray[2]][] + = array('value' => $valueKeyArray[0], + 'text' => $langValue); + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['group' . $valueKeyArray[2]] + = $valueKeyArray[2]; + } + else + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['option'][$valueKeyArray[0]] + = array('value' => $valueKeyArray[0], + 'text' => $langValue); + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['option' . $valueKeyArray[0]] + = $valueKeyArray[0]; + } + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $grouped_['option'][$option] + = array('value' => $option, + 'text' => $langValue); + $optionArray[$option] = $langValue; + // set order + $order_['option' . $option] = $option; + } + } + // now build the groups + foreach ($order_ as $pointer_ => $_id) + { + // load the default key + $key_ = 'group'; + if (strpos($pointer_, 'option') !== false) + { + // load the option field + $key_ = 'option'; + } + // check if this is a group loader + if ('group' === $key_ && isset($groups_[$_id]) + && isset($grouped_[$key_][$_id]) + && ArrayHelper::check( + $grouped_[$key_][$_id] + )) + { + // set group label + $groupXML = $field->fieldXML->addChild('group'); + $groupXML->addAttribute( + 'label', $groups_[$_id] + ); + + foreach ($grouped_[$key_][$_id] as $option_) + { + $groupOptionXML = $groupXML->addChild( + 'option' + ); + $groupOptionXML->addAttribute( + 'value', $option_['value'] + ); + $groupOptionXML[] = $option_['text']; + } + unset($groups_[$_id]); + unset($grouped_[$key_][$_id]); + } + elseif (isset($grouped_[$key_][$_id]) + && StringHelper::check( + $grouped_[$key_][$_id] + )) + { + $optionXML = $field->fieldXML->addChild( + 'option' + ); + $optionXML->addAttribute( + 'value', $grouped_[$key_][$_id]['value'] + ); + $optionXML[] = $grouped_[$key_][$_id]['text']; + } + } + } + elseif (strpos((string) $value, ',') !== false) + { + // municipal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + $optionXML = $field->fieldXML->addChild('option'); + if (strpos($option, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', $option); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $t + ); + // now add to option set + $optionXML->addAttribute('value', $v); + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $optionXML->addAttribute('value', $option); + $optionArray[$option] = $langValue; + } + $optionXML[] = $langValue; + } + } + else + { + // one option + $optionXML = $field->fieldXML->addChild('option'); + if (strpos((string) $value, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', (string) $value); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set($this->config->lang_target, $langValue, $t); + // now add to option set + $optionXML->addAttribute('value', $v); + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $value, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $value + ); + // now add to option set + $optionXML->addAttribute('value', $value); + $optionArray[$value] = $langValue; + } + $optionXML[] = $langValue; + } + } + } + // incase the field is in the config and has not been set (or is part of a plugin or module) + if (('config' === $nameSingleCode + && 'configs' === $nameListCode) + || (strpos($nameSingleCode, 'P|uG!n') !== false + || strpos( + $nameSingleCode, 'M0dU|3' + ) !== false)) + { + // set lang (just incase) + $listLangName = $langView . '_' + . StringHelper::safe($name, 'U'); + // set the custom array + $data = array('type' => $typeName, 'code' => $name, + 'lang' => $listLangName, 'custom' => $custom); + // set the custom field file + $this->customfieldtypefile->set( + $data, $nameListCode, $nameSingleCode + ); + } + } + + return $field; + } +} + diff --git a/src/ac691a05-5630-4002-b166-dedec3fb0fcb/code.power b/src/ac691a05-5630-4002-b166-dedec3fb0fcb/code.power new file mode 100644 index 0000000..5f8ea5e --- /dev/null +++ b/src/ac691a05-5630-4002-b166-dedec3fb0fcb/code.power @@ -0,0 +1,1104 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Language Class. + * + * @var Language + * @since 3.2.0 + */ + protected Language $language; + + /** + * The Field Class. + * + * @var Field + * @since 3.2.0 + */ + protected Field $field; + + /** + * The Groups Class. + * + * @var Groups + * @since 3.2.0 + */ + protected Groups $groups; + + /** + * The Name Class. + * + * @var Name + * @since 3.2.0 + */ + protected Name $name; + + /** + * The TypeName Class. + * + * @var TypeName + * @since 3.2.0 + */ + protected TypeName $typename; + + /** + * The Attributes Class. + * + * @var Attributes + * @since 3.2.0 + */ + protected Attributes $attributes; + + /** + * The Xml Class. + * + * @var Xml + * @since 3.2.0 + */ + protected Xml $xml; + + /** + * The CustomFieldTypeFile Class. + * + * @var CustomFieldTypeFile + * @since 3.2.0 + */ + protected CustomFieldTypeFile $customfieldtypefile; + + /** + * The Counter Class. + * + * @var Counter + * @since 3.2.0 + */ + protected Counter $counter; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Language $language The Language Class. + * @param Field $field The Field Class. + * @param Groups $groups The Groups Class. + * @param Name $name The Name Class. + * @param TypeName $typename The TypeName Class. + * @param Attributes $attributes The Attributes Class. + * @param Xml $xml The Xml Class. + * @param CustomFieldTypeFile $customfieldtypefile The CustomFieldTypeFile Class. + * @param Counter $counter The Counter Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Language $language, Field $field, + Groups $groups, Name $name, TypeName $typename, + Attributes $attributes, Xml $xml, + CustomFieldTypeFile $customfieldtypefile, + Counter $counter) + { + $this->config = $config; + $this->language = $language; + $this->field = $field; + $this->groups = $groups; + $this->name = $name; + $this->typename = $typename; + $this->attributes = $attributes; + $this->xml = $xml; + $this->customfieldtypefile = $customfieldtypefile; + $this->counter = $counter; + } + + /** + * Create a field with simpleXMLElement class + * + * @param string $setType The set of fields type + * @param array $fieldAttributes The field values + * @param string $name The field name + * @param string $typeName The field type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The place holder and replace values + * @param array|null $optionArray The option bucket array used to set the field options if needed. + * @param array|null $custom Used when field is from config + * @param string $taber The tabs not used... hmm + * + * @return \stdClass The field in xml object + * @since 3.2.0 + */ + public function get(string $setType, array &$fieldAttributes, string &$name, + string &$typeName, string &$langView, string &$nameSingleCode, string &$nameListCode, + array $placeholders, ?array &$optionArray, ?array $custom = null, string $taber = ''): \stdClass + { + // count the dynamic fields created + $this->counter->field++; + + $field = new \stdClass(); + if ($setType === 'option') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst($name) + . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". (joomla)"; + + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'option') + { + $field->fieldXML->addAttribute($property, $value); + } + elseif ($property === 'option') + { + $this->xml->comment( + $field->fieldXML, + Line::_(__Line__, __Class__) . " Option Set." + ); + if (strtolower($typeName) === 'groupedlist' + && strpos( + (string) $value, ',' + ) !== false + && strpos((string) $value, '@@') !== false) + { + // reset the group temp arrays + $groups_ = array(); + $grouped_ = array('group' => array(), + 'option' => array()); + $order_ = array(); + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '@@') !== false) + { + // set the group label + $valueKeyArray = explode('@@', $option); + if (count((array) $valueKeyArray) == 2) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[0], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[0] + ); + // now add group label + $groups_[$valueKeyArray[1]] = $langValue; + // set order + $order_['group' . $valueKeyArray[1]] + = $valueKeyArray[1]; + } + } + elseif (strpos($option, '|') !== false) + { + // has other value then text + $valueKeyArray = explode('|', $option); + if (count((array) $valueKeyArray) == 3) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['group'][$valueKeyArray[2]][] + = array('value' => $valueKeyArray[0], + 'text' => $langValue); + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['group' . $valueKeyArray[2]] + = $valueKeyArray[2]; + } + else + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['option'][$valueKeyArray[0]] + = array('value' => $valueKeyArray[0], + 'text' => $langValue); + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['option' . $valueKeyArray[0]] + = $valueKeyArray[0]; + } + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $grouped_['option'][$option] + = array('value' => $option, + 'text' => $langValue); + $optionArray[$option] = $langValue; + // set order + $order_['option' . $option] = $option; + } + } + // now build the groups + foreach ($order_ as $pointer_ => $_id) + { + // load the default key + $key_ = 'group'; + if (strpos($pointer_, 'option') !== false) + { + // load the option field + $key_ = 'option'; + } + // check if this is a group loader + if ('group' === $key_ && isset($groups_[$_id]) + && isset($grouped_[$key_][$_id]) + && ArrayHelper::check( + $grouped_[$key_][$_id] + )) + { + // set group label + $groupXML = $field->fieldXML->addChild('group'); + $groupXML->addAttribute( + 'label', $groups_[$_id] + ); + + foreach ($grouped_[$key_][$_id] as $option_) + { + $groupOptionXML = $groupXML->addChild( + 'option' + ); + $groupOptionXML->addAttribute( + 'value', $option_['value'] + ); + $groupOptionXML[] = $option_['text']; + } + unset($groups_[$_id]); + unset($grouped_[$key_][$_id]); + } + elseif (isset($grouped_[$key_][$_id]) + && StringHelper::check( + $grouped_[$key_][$_id] + )) + { + $optionXML = $field->fieldXML->addChild( + 'option' + ); + $optionXML->addAttribute( + 'value', $grouped_[$key_][$_id]['value'] + ); + $optionXML[] = $grouped_[$key_][$_id]['text']; + } + } + } + elseif (strpos((string) $value, ',') !== false) + { + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + $optionXML = $field->fieldXML->addChild('option'); + if (strpos($option, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', $option); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $t + ); + // now add to option set + $optionXML->addAttribute('value', $v); + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $optionXML->addAttribute('value', $option); + $optionArray[$option] = $langValue; + } + $optionXML[] = $langValue; + } + } + else + { + // one option + $optionXML = $field->fieldXML->addChild('option'); + if (strpos((string) $value, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', (string) $value); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set($this->config->lang_target, $langValue, $t); + // now add to option set + $optionXML->addAttribute('value', $v); + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $value, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $value + ); + // now add to option set + $optionXML->addAttribute('value', $value); + $optionArray[$value] = $langValue; + } + $optionXML[] = $langValue; + } + } + } + // if no options found and must have a list of options + if (!$field->fieldXML->count() + && $this->groups->check($typeName, 'list')) + { + $this->xml->comment( + $field->fieldXML, Line::_(__Line__, __Class__) + . " No Manual Options Were Added In Field Settings." + ); + } + } + elseif ($setType === 'plain') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst($name) + . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". (joomla)"; + + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'option') + { + $field->fieldXML->addAttribute($property, $value); + } + } + } + elseif ($setType === 'spacer') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst($name) + . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". A None Database Field. (joomla)"; + + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'option') + { + $field->fieldXML->addAttribute($property, $value); + } + } + } + elseif ($setType === 'special') + { + // set the repeatable field + if ($typeName === 'repeatable') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst( + $name + ) . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". (depreciated)"; + + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'fields') + { + $field->fieldXML->addAttribute($property, $value); + } + } + $fieldsXML = $field->fieldXML->addChild('fields'); + $fieldsXML->addAttribute( + 'name', $fieldAttributes['name'] . '_fields' + ); + $fieldsXML->addAttribute('label', ''); + $fieldSetXML = $fieldsXML->addChild('fieldset'); + $fieldSetXML->addAttribute('hidden', 'true'); + $fieldSetXML->addAttribute( + 'name', $fieldAttributes['name'] . '_modal' + ); + $fieldSetXML->addAttribute('repeat', 'true'); + + if (strpos((string) $fieldAttributes['fields'], ',') !== false) + { + // mulitpal fields + $fieldsSets = (array) explode( + ',', (string) $fieldAttributes['fields'] + ); + } + elseif (is_numeric($fieldAttributes['fields'])) + { + // single field + $fieldsSets[] = (int) $fieldAttributes['fields']; + } + // only continue if we have a field set + if (ArrayHelper::check($fieldsSets)) + { + // set the resolver + $_resolverKey = $fieldAttributes['name']; + // load the field data + $fieldsSets = array_map( + function ($id) use ( + $nameSingleCode, $nameListCode, $_resolverKey + ) { + // start field + $field = array(); + $field['field'] = $id; + // set the field details + $this->field->set( + $field, $nameSingleCode, $nameListCode, + $_resolverKey + ); + + // return field + return $field; + }, array_values($fieldsSets) + ); + // start the build + foreach ($fieldsSets as $fieldData) + { + // if we have settings continue + if (ObjectHelper::check( + $fieldData['settings'] + )) + { + $r_name = $this->name->get( + $fieldData, $nameListCode, $_resolverKey + ); + $r_typeName = $this->typename->get($fieldData); + $r_multiple = false; + $viewType = 0; + $r_langLabel = ''; + // get field values + $r_fieldValues = $this->attributes->set( + $fieldData, $viewType, $r_name, $r_typeName, + $r_multiple, $r_langLabel, $langView, + $nameListCode, $nameSingleCode, + $placeholders, true + ); + // check if values were set + if (ArrayHelper::check( + $r_fieldValues + )) + { + //reset options array + $r_optionArray = array(); + if ($this->groups->check( + $r_typeName, 'option' + )) + { + // now add to the field set + $this->xml->append( + $fieldSetXML, $this->get( + 'option', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + } + elseif (isset($r_fieldValues['custom']) + && ArrayHelper::check( + $r_fieldValues['custom'] + )) + { + // add to custom + $custom = $r_fieldValues['custom']; + unset($r_fieldValues['custom']); + // now add to the field set + $this->xml->append( + $fieldSetXML, $this->get( + 'custom', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + // set lang (just incase) + $r_listLangName = $langView . '_' + . FieldHelper::safe( + $r_name, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $r_listLangName, + StringHelper::safe( + $r_name, 'W' + ) + ); + // if label was set use instead + if (StringHelper::check( + $r_langLabel + )) + { + $r_listLangName = $r_langLabel; + } + // set the custom array + $data = array('type' => $r_typeName, + 'code' => $r_name, + 'lang' => $r_listLangName, + 'custom' => $custom); + // set the custom field file + $this->customfieldtypefile->set( + $data, $nameListCode, + $nameSingleCode + ); + } + else + { + // now add to the field set + $this->xml->append( + $fieldSetXML, $this->get( + 'plain', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + } + } + } + } + } + } + // set the subform fields (it is a repeatable without the modal) + elseif ($typeName === 'subform') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst( + $name + ) . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". (joomla)"; + // add all properties + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'fields' && $property != 'formsource') + { + $field->fieldXML->addAttribute($property, $value); + } + } + // if we detect formsource we do not add the form + if (isset($fieldAttributes['formsource']) + && StringHelper::check( + $fieldAttributes['formsource'] + )) + { + $field->fieldXML->addAttribute( + 'formsource', $fieldAttributes['formsource'] + ); + } + // add the form + else + { + $form = $field->fieldXML->addChild('form'); + $attributes = array( + 'hidden' => 'true', + 'name' => 'list_' . $fieldAttributes['name'] + . '_modal', + 'repeat' => 'true' + ); + $this->xml->attributes( + $form, $attributes + ); + + if (strpos((string) $fieldAttributes['fields'], ',') !== false) + { + // multiple fields + $fieldsSets = (array) explode( + ',', (string) $fieldAttributes['fields'] + ); + } + elseif (is_numeric($fieldAttributes['fields'])) + { + // single field + $fieldsSets[] = (int) $fieldAttributes['fields']; + } + // only continue if we have a field set + if (ArrayHelper::check($fieldsSets)) + { + // set the resolver + $_resolverKey = $fieldAttributes['name']; + // load the field data + $fieldsSets = array_map( + function ($id) use ( + $nameSingleCode, $nameListCode, + $_resolverKey + ) { + // start field + $field = array(); + $field['field'] = $id; + // set the field details + $this->field->set( + $field, $nameSingleCode, $nameListCode, + $_resolverKey + ); + + // return field + return $field; + }, array_values($fieldsSets) + ); + // start the build + foreach ($fieldsSets as $fieldData) + { + // if we have settings continue + if (ObjectHelper::check( + $fieldData['settings'] + )) + { + $r_name = $this->name->get( + $fieldData, $nameListCode, $_resolverKey + ); + $r_typeName = $this->typename->get($fieldData); + $r_multiple = false; + $viewType = 0; + $r_langLabel = ''; + // get field values + $r_fieldValues = $this->attributes->set( + $fieldData, $viewType, $r_name, $r_typeName, + $r_multiple, $r_langLabel, $langView, + $nameListCode, $nameSingleCode, + $placeholders, true + ); + // check if values were set + if (ArrayHelper::check( + $r_fieldValues + )) + { + //reset options array + $r_optionArray = array(); + if ($this->groups->check( + $r_typeName, 'option' + )) + { + // now add to the field set + $this->xml->append( + $form, $this->get( + 'option', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + } + elseif ($r_typeName === 'subform') + { + // set nested depth + if (isset($fieldAttributes['nested_depth'])) + { + $r_fieldValues['nested_depth'] + = ++$fieldAttributes['nested_depth']; + } + else + { + $r_fieldValues['nested_depth'] = 1; + } + // only continue if nest is bellow 20 (this should be a safe limit) + if ($r_fieldValues['nested_depth'] + <= 20) + { + // now add to the field set + $this->xml->append( + $form, $this->get( + 'special', $r_fieldValues, + $r_name, $r_typeName, $langView, + $nameSingleCode, + $nameListCode, $placeholders, + $r_optionArray + ) + ); + } + + } + elseif (isset($r_fieldValues['custom']) + && ArrayHelper::check( + $r_fieldValues['custom'] + )) + { + // add to custom + $custom = $r_fieldValues['custom']; + unset($r_fieldValues['custom']); + // now add to the field set + $this->xml->append( + $form, $this->get( + 'custom', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + // set lang (just incase) + $r_listLangName = $langView . '_' + . FieldHelper::safe( + $r_name, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $r_listLangName, + StringHelper::safe( + $r_name, 'W' + ) + ); + // if label was set use instead + if (StringHelper::check( + $r_langLabel + )) + { + $r_listLangName = $r_langLabel; + } + // set the custom array + $data = array('type' => $r_typeName, + 'code' => $r_name, + 'lang' => $r_listLangName, + 'custom' => $custom); + // set the custom field file + $this->customfieldtypefile->set( + $data, $nameListCode, + $nameSingleCode + ); + } + else + { + // now add to the field set + $this->xml->append( + $form, $this->get( + 'plain', $r_fieldValues, $r_name, + $r_typeName, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $r_optionArray + ) + ); + } + } + } + } + } + } + } + } + elseif ($setType === 'custom') + { + // now add to the field set + $field->fieldXML = new \SimpleXMLElement(''); + $field->comment = Line::_(__Line__, __Class__) . " " . ucfirst($name) + . " Field. Type: " . StringHelper::safe( + $typeName, 'F' + ) . ". (custom)"; + foreach ($fieldAttributes as $property => $value) + { + if ($property != 'option') + { + $field->fieldXML->addAttribute($property, $value); + } + elseif ($property === 'option') + { + $this->xml->comment( + $field->fieldXML, + Line::_(__Line__, __Class__) . " Option Set." + ); + if (strtolower($typeName) === 'groupedlist' + && strpos( + (string) $value, ',' + ) !== false + && strpos((string) $value, '@@') !== false) + { + // reset the group temp arrays + $groups_ = array(); + $grouped_ = array('group' => array(), + 'option' => array()); + $order_ = array(); + // mulitpal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + if (strpos($option, '@@') !== false) + { + // set the group label + $valueKeyArray = explode('@@', $option); + if (count((array) $valueKeyArray) == 2) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[0], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[0] + ); + // now add group label + $groups_[$valueKeyArray[1]] = $langValue; + // set order + $order_['group' . $valueKeyArray[1]] + = $valueKeyArray[1]; + } + } + elseif (strpos($option, '|') !== false) + { + // has other value then text + $valueKeyArray = explode('|', $option); + if (count((array) $valueKeyArray) == 3) + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['group'][$valueKeyArray[2]][] + = array('value' => $valueKeyArray[0], + 'text' => $langValue); + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['group' . $valueKeyArray[2]] + = $valueKeyArray[2]; + } + else + { + $langValue = $langView . '_' + . FieldHelper::safe( + $valueKeyArray[1], true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, + $valueKeyArray[1] + ); + // now add to option set + $grouped_['option'][$valueKeyArray[0]] + = array('value' => $valueKeyArray[0], + 'text' => $langValue); + $optionArray[$valueKeyArray[0]] + = $langValue; + // set order + $order_['option' . $valueKeyArray[0]] + = $valueKeyArray[0]; + } + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $grouped_['option'][$option] + = array('value' => $option, + 'text' => $langValue); + $optionArray[$option] = $langValue; + // set order + $order_['option' . $option] = $option; + } + } + // now build the groups + foreach ($order_ as $pointer_ => $_id) + { + // load the default key + $key_ = 'group'; + if (strpos($pointer_, 'option') !== false) + { + // load the option field + $key_ = 'option'; + } + // check if this is a group loader + if ('group' === $key_ && isset($groups_[$_id]) + && isset($grouped_[$key_][$_id]) + && ArrayHelper::check( + $grouped_[$key_][$_id] + )) + { + // set group label + $groupXML = $field->fieldXML->addChild('group'); + $groupXML->addAttribute( + 'label', $groups_[$_id] + ); + + foreach ($grouped_[$key_][$_id] as $option_) + { + $groupOptionXML = $groupXML->addChild( + 'option' + ); + $groupOptionXML->addAttribute( + 'value', $option_['value'] + ); + $groupOptionXML[] = $option_['text']; + } + unset($groups_[$_id]); + unset($grouped_[$key_][$_id]); + } + elseif (isset($grouped_[$key_][$_id]) + && StringHelper::check( + $grouped_[$key_][$_id] + )) + { + $optionXML = $field->fieldXML->addChild( + 'option' + ); + $optionXML->addAttribute( + 'value', $grouped_[$key_][$_id]['value'] + ); + $optionXML[] = $grouped_[$key_][$_id]['text']; + } + } + } + elseif (strpos((string) $value, ',') !== false) + { + // municipal options + $options = explode(',', (string) $value); + foreach ($options as $option) + { + $optionXML = $field->fieldXML->addChild('option'); + if (strpos($option, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', $option); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $t + ); + // now add to option set + $optionXML->addAttribute('value', $v); + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $option, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $option + ); + // now add to option set + $optionXML->addAttribute('value', $option); + $optionArray[$option] = $langValue; + } + $optionXML[] = $langValue; + } + } + else + { + // one option + $optionXML = $field->fieldXML->addChild('option'); + if (strpos((string) $value, '|') !== false) + { + // has other value then text + list($v, $t) = explode('|', (string) $value); + $langValue = $langView . '_' + . FieldHelper::safe( + $t, true + ); + // add to lang array + $this->language->set($this->config->lang_target, $langValue, $t); + // now add to option set + $optionXML->addAttribute('value', $v); + $optionArray[$v] = $langValue; + } + else + { + // text is also the value + $langValue = $langView . '_' + . FieldHelper::safe( + $value, true + ); + // add to lang array + $this->language->set( + $this->config->lang_target, $langValue, $value + ); + // now add to option set + $optionXML->addAttribute('value', $value); + $optionArray[$value] = $langValue; + } + $optionXML[] = $langValue; + } + } + } + // incase the field is in the config and has not been set (or is part of a plugin or module) + if (('config' === $nameSingleCode + && 'configs' === $nameListCode) + || (strpos($nameSingleCode, 'P|uG!n') !== false + || strpos( + $nameSingleCode, 'M0dU|3' + ) !== false)) + { + // set lang (just incase) + $listLangName = $langView . '_' + . StringHelper::safe($name, 'U'); + // set the custom array + $data = array('type' => $typeName, 'code' => $name, + 'lang' => $listLangName, 'custom' => $custom); + // set the custom field file + $this->customfieldtypefile->set( + $data, $nameListCode, $nameSingleCode + ); + } + } + + return $field; + } \ No newline at end of file diff --git a/src/ac691a05-5630-4002-b166-dedec3fb0fcb/settings.json b/src/ac691a05-5630-4002-b166-dedec3fb0fcb/settings.json new file mode 100644 index 0000000..e71c704 --- /dev/null +++ b/src/ac691a05-5630-4002-b166-dedec3fb0fcb/settings.json @@ -0,0 +1,81 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "ac691a05-5630-4002-b166-dedec3fb0fcb", + "implements": [ + "2d27c436-4d8e-4692-8382-d9e97af2231c" + ], + "load_selection": null, + "name": "FieldXML", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.FieldXML", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "8eee7df5-2775-41a9-9372-c46c5939a252", + "as": "default" + }, + "use_selection2": { + "use": "d7ba2d5d-10b6-470d-978d-9f91ea65ee75", + "as": "default" + }, + "use_selection3": { + "use": "12df35ad-2d44-4c4c-a7d5-a3350932a520", + "as": "default" + }, + "use_selection4": { + "use": "9387215f-a965-4421-acf3-5e8f9d11382f", + "as": "default" + }, + "use_selection5": { + "use": "eb33420d-359d-44a5-852e-613aef1feaae", + "as": "default" + }, + "use_selection6": { + "use": "7f515c18-d019-4d2d-9852-b2dc970985b3", + "as": "default" + }, + "use_selection7": { + "use": "f6ba34a2-0cd7-4dc1-ab67-75e962a5045b", + "as": "default" + }, + "use_selection8": { + "use": "6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96", + "as": "default" + }, + "use_selection9": { + "use": "e6d871a6-bbe7-497d-af01-68f6bb9a87f4", + "as": "default" + }, + "use_selection10": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection11": { + "use": "9ef0eb24-aae4-4f5a-99af-d724db44808f", + "as": "default" + }, + "use_selection12": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + }, + "use_selection13": { + "use": "91004529-94a9-4590-b842-e7c6b624ecf5", + "as": "default" + }, + "use_selection14": { + "use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.FieldXML", + "description": "Field Simple XML Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/code.php b/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/code.php deleted file mode 100644 index d00fc58..0000000 --- a/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/code.php +++ /dev/null @@ -1,79 +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\Interfaces; - - -/** - * Database Insert Interface - * - * @since 3.2.0 - */ -interface InsertInterface -{ - /** - * Switch to prevent/allow defaults from being added. - * - * @param bool $trigger toggle the defaults - * - * @return void - * @since 3.2.0 - **/ - public function defaults(bool $trigger = true); - - /** - * Insert rows to the database (with remapping and filtering columns option) - * - * @param array $data Dataset to store in database [array of arrays (key => value)] - * @param string $table The table where the data is being added - * @param array $columns Data columns for remapping and filtering - * - * @return bool - * @since 3.2.0 - **/ - public function rows(array $data, string $table, array $columns = []): bool; - - /** - * Insert items to the database (with remapping and filtering columns option) - * - * @param array $data Data to store in database (array of objects) - * @param string $table The table where the data is being added - * @param array $columns Data columns for remapping and filtering - * - * @return bool - * @since 3.2.0 - **/ - public function items(array $data, string $table, array $columns = []): bool; - - /** - * Insert row to the database - * - * @param array $data Dataset to store in database (key => value) - * @param string $table The table where the data is being added - * - * @return bool - * @since 3.2.0 - **/ - public function row(array $data, string $table): bool; - - /** - * Insert item to the database - * - * @param object $data Dataset to store in database (key => value) - * @param string $table The table where the data is being added - * - * @return bool - * @since 3.2.0 - **/ - public function item(object $data, string $table): bool; - -} - diff --git a/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/code.power b/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/code.power deleted file mode 100644 index 8d6c7c5..0000000 --- a/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/code.power +++ /dev/null @@ -1,55 +0,0 @@ - /** - * Switch to prevent/allow defaults from being added. - * - * @param bool $trigger toggle the defaults - * - * @return void - * @since 3.2.0 - **/ - public function defaults(bool $trigger = true); - - /** - * Insert rows to the database (with remapping and filtering columns option) - * - * @param array $data Dataset to store in database [array of arrays (key => value)] - * @param string $table The table where the data is being added - * @param array $columns Data columns for remapping and filtering - * - * @return bool - * @since 3.2.0 - **/ - public function rows(array $data, string $table, array $columns = []): bool; - - /** - * Insert items to the database (with remapping and filtering columns option) - * - * @param array $data Data to store in database (array of objects) - * @param string $table The table where the data is being added - * @param array $columns Data columns for remapping and filtering - * - * @return bool - * @since 3.2.0 - **/ - public function items(array $data, string $table, array $columns = []): bool; - - /** - * Insert row to the database - * - * @param array $data Dataset to store in database (key => value) - * @param string $table The table where the data is being added - * - * @return bool - * @since 3.2.0 - **/ - public function row(array $data, string $table): bool; - - /** - * Insert item to the database - * - * @param object $data Dataset to store in database (key => value) - * @param string $table The table where the data is being added - * - * @return bool - * @since 3.2.0 - **/ - public function item(object $data, string $table): bool; diff --git a/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/README.md b/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/README.md index 8e0ebb3..3808af3 100644 --- a/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/README.md +++ b/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/README.md @@ -8,6 +8,7 @@ ``` # class Content (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler** +> extends: **Mapper** ```uml @startuml class Content #Gold { diff --git a/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/code.php b/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/code.php index bbde8a2..3dcac15 100644 --- a/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/code.php +++ b/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/code.php @@ -13,7 +13,7 @@ namespace VDM\Joomla\Componentbuilder\Compiler; use VDM\Joomla\Componentbuilder\Compiler\Utilities\Placefix; -use VDM\Joomla\Componentbuilder\Interfaces\Mapperdoubleinterface; +use VDM\Joomla\Componentbuilder\Interfaces\Mapperdoublejoininterface; use VDM\Joomla\Componentbuilder\Interfaces\Mappersingleinterface; use VDM\Joomla\Componentbuilder\Abstraction\Mapper; @@ -23,7 +23,7 @@ use VDM\Joomla\Componentbuilder\Abstraction\Mapper; * * @since 3.2.0 */ -class Content extends Mapper implements Mapperdoubleinterface, Mappersingleinterface +class Content extends Mapper implements Mapperdoublejoininterface, Mappersingleinterface { /** * Model the key diff --git a/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/settings.json b/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/settings.json index 1e6be49..86e658d 100644 --- a/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/settings.json +++ b/src/adfbe68a-6d22-43e5-aee8-2787e8c47e75/settings.json @@ -4,7 +4,7 @@ "extends": "44a3367c-f9e4-406b-b396-0f452bde0f03", "guid": "adfbe68a-6d22-43e5-aee8-2787e8c47e75", "implements": [ - "fbc58009-fa16-4d49-a0dd-419c3b62d42f", + "7921a2b3-b58c-4184-af3f-f58094f695a8", "78527c29-24ad-4735-ad4c-ec33a4952d9b" ], "load_selection": null, diff --git a/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/README.md b/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/README.md index 270c08d..5d1cebc 100644 --- a/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/README.md +++ b/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/README.md @@ -6,11 +6,11 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Placeholder (Details) +# final class Placeholder (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler\Component** ```uml @startuml -class Placeholder #Gold { +class Placeholder << (F,LightGreen) >> #RoyalBlue { # $placeholders # $config # $db diff --git a/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/code.php b/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/code.php index 59040d1..39cc7e5 100644 --- a/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/code.php +++ b/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/code.php @@ -28,7 +28,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Component\PlaceholderInterfa * * @since 3.2.0 */ -class Placeholder implements PlaceholderInterface +final class Placeholder implements PlaceholderInterface { /** * Placeholders @@ -139,7 +139,6 @@ class Placeholder implements PlaceholderInterface $this->placeholders = $bucket; return $bucket; - } - + } } diff --git a/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/code.power b/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/code.power index a8991d6..2b6727a 100644 --- a/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/code.power +++ b/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/code.power @@ -107,4 +107,4 @@ $this->placeholders = $bucket; return $bucket; - } + } \ No newline at end of file diff --git a/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/settings.json b/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/settings.json index 295fd20..dd4fcb9 100644 --- a/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/settings.json +++ b/src/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb/settings.json @@ -10,7 +10,7 @@ "name": "Placeholder", "power_version": "1.0.0", "system_name": "JCB.Compiler.Component.Placeholder", - "type": "class", + "type": "final class", "use_selection": { "use_selection0": { "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", diff --git a/src/b0b26749-5e2c-4b56-8982-48172f2531fa/README.md b/src/b0b26749-5e2c-4b56-8982-48172f2531fa/README.md new file mode 100644 index 0000000..07c3e6e --- /dev/null +++ b/src/b0b26749-5e2c-4b56-8982-48172f2531fa/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ModelMediumField (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ModelMediumField << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/b0b26749-5e2c-4b56-8982-48172f2531fa/code.php b/src/b0b26749-5e2c-4b56-8982-48172f2531fa/code.php new file mode 100644 index 0000000..d45a3ac --- /dev/null +++ b/src/b0b26749-5e2c-4b56-8982-48172f2531fa/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Medium Field Model Builder Class + * + * @since 3.2.0 + */ +final class ModelMediumField extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/b0b26749-5e2c-4b56-8982-48172f2531fa/code.power b/src/b0b26749-5e2c-4b56-8982-48172f2531fa/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/b0b26749-5e2c-4b56-8982-48172f2531fa/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/b0b26749-5e2c-4b56-8982-48172f2531fa/settings.json b/src/b0b26749-5e2c-4b56-8982-48172f2531fa/settings.json new file mode 100644 index 0000000..b4c63cf --- /dev/null +++ b/src/b0b26749-5e2c-4b56-8982-48172f2531fa/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "b0b26749-5e2c-4b56-8982-48172f2531fa", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ModelMediumField", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ModelMediumField", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ModelMediumField", + "description": "Medium Field Model Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/b24f5184-7e7c-448d-9475-ff3f998f70c3/README.md b/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/README.md new file mode 100644 index 0000000..0bd087c --- /dev/null +++ b/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class CategoryCode (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class CategoryCode << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/code.php b/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/code.php new file mode 100644 index 0000000..9c73ae0 --- /dev/null +++ b/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\GetString; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Category Code Builder Class + * + * @since 3.2.0 + */ +final class CategoryCode extends StorageRegistry implements Storageregistryinterface +{ + /** + * Get String Values + * + * @since 3.2.0 + */ + use GetString; +} + diff --git a/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/code.power b/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/code.power new file mode 100644 index 0000000..15c7b7f --- /dev/null +++ b/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/code.power @@ -0,0 +1,6 @@ + /** + * Get String Values + * + * @since 3.2.0 + */ + use GetString; \ No newline at end of file diff --git a/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/settings.json b/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/settings.json new file mode 100644 index 0000000..bb56279 --- /dev/null +++ b/src/b24f5184-7e7c-448d-9475-ff3f998f70c3/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "b24f5184-7e7c-448d-9475-ff3f998f70c3", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "CategoryCode", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.CategoryCode", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "59b1a2ea-d77e-4040-ac8c-e65cd8743e9b", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.CategoryCode", + "description": "Category Code Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/README.md b/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/README.md new file mode 100644 index 0000000..56fa151 --- /dev/null +++ b/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class DatabaseTables (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class DatabaseTables << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/code.php b/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/code.php new file mode 100644 index 0000000..425b137 --- /dev/null +++ b/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Database Tables Builder Class + * + * @since 3.2.0 + */ +final class DatabaseTables extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/code.power b/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/settings.json b/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/settings.json new file mode 100644 index 0000000..aeacd3d --- /dev/null +++ b/src/b3c36de1-9b18-4ea8-8383-6ab8f0e33996/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "b3c36de1-9b18-4ea8-8383-6ab8f0e33996", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "DatabaseTables", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.DatabaseTables", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.DatabaseTables", + "description": "Database Tables Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/README.md b/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/README.md new file mode 100644 index 0000000..59e03e6 --- /dev/null +++ b/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/README.md @@ -0,0 +1,55 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FieldsetDynamic (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class FieldsetDynamic << (F,LightGreen) >> #RoyalBlue { + # FieldAsString $fieldasstring + + __construct(FieldAsString $fieldasstring) + + get(array $fields, string $langView, ...) : mixed +} + +note right of FieldsetDynamic::__construct + Constructor. + + since: 3.2.0 +end note + +note right of FieldsetDynamic::get + build field set + + since: 3.2.0 + return: mixed + + arguments: + array $fields + string $langView + string $nameSingleCode + string $nameListCode + array $placeholders + string $dbkey + bool $build = false + int $returnType = 1 +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/code.php b/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/code.php new file mode 100644 index 0000000..611e8c8 --- /dev/null +++ b/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/code.php @@ -0,0 +1,107 @@ + + * @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\Compiler\Creator; + + +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldAsString; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Utilities\ArrayHelper; + + +/** + * Fieldset Dynamic Creator Class + * + * @since 3.2.0 + */ +final class FieldsetDynamic +{ + /** + * The FieldAsString Class. + * + * @var FieldAsString + * @since 3.2.0 + */ + protected FieldAsString $fieldasstring; + + /** + * Constructor. + * + * @param FieldAsString $fieldasstring The FieldAsString Class. + * + * @since 3.2.0 + */ + public function __construct(FieldAsString $fieldasstring) + { + $this->fieldasstring = $fieldasstring; + } + + /** + * build field set + * + * @param array $fields The fields data + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The placeholder and replace values + * @param string $dbkey The custom table key + * @param boolean $build The switch to set the build option + * @param int $return_type The return type 1 = string, 2 = array + * + * @return mixed The complete field in string or array + * @since 3.2.0 + */ + public function get(array &$fields, string &$langView, string &$nameSingleCode, + string &$nameListCode, array &$placeholders, string &$dbkey, bool $build = false, + int $returnType = 1) + { + // set some defaults + $view = []; + $view_type = 0; + // build the fieldset + if ($returnType == 1) + { + $fieldset = ''; + } + else + { + $fieldset = []; + } + // loop over the fields to build + if (ArrayHelper::check($fields)) + { + foreach ($fields as $field) + { + // get the field + $field_xml_string = $this->fieldasstring->get( + $field, $view, $view_type, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $dbkey, $build + ); + // make sure the xml is set and a string + if (StringHelper::check($field_xml_string)) + { + if ($returnType == 1) + { + $fieldset .= $field_xml_string; + } + else + { + $fieldset[] = $field_xml_string; + } + } + } + } + + return $fieldset; + } +} + diff --git a/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/code.power b/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/code.power new file mode 100644 index 0000000..846b439 --- /dev/null +++ b/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/code.power @@ -0,0 +1,79 @@ + /** + * The FieldAsString Class. + * + * @var FieldAsString + * @since 3.2.0 + */ + protected FieldAsString $fieldasstring; + + /** + * Constructor. + * + * @param FieldAsString $fieldasstring The FieldAsString Class. + * + * @since 3.2.0 + */ + public function __construct(FieldAsString $fieldasstring) + { + $this->fieldasstring = $fieldasstring; + } + + /** + * build field set + * + * @param array $fields The fields data + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The placeholder and replace values + * @param string $dbkey The custom table key + * @param boolean $build The switch to set the build option + * @param int $return_type The return type 1 = string, 2 = array + * + * @return mixed The complete field in string or array + * @since 3.2.0 + */ + public function get(array &$fields, string &$langView, string &$nameSingleCode, + string &$nameListCode, array &$placeholders, string &$dbkey, bool $build = false, + int $returnType = 1) + { + // set some defaults + $view = []; + $view_type = 0; + // build the fieldset + if ($returnType == 1) + { + $fieldset = ''; + } + else + { + $fieldset = []; + } + // loop over the fields to build + if (ArrayHelper::check($fields)) + { + foreach ($fields as $field) + { + // get the field + $field_xml_string = $this->fieldasstring->get( + $field, $view, $view_type, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $dbkey, $build + ); + // make sure the xml is set and a string + if (StringHelper::check($field_xml_string)) + { + if ($returnType == 1) + { + $fieldset .= $field_xml_string; + } + else + { + $fieldset[] = $field_xml_string; + } + } + } + } + + return $fieldset; + } \ No newline at end of file diff --git a/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/settings.json b/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/settings.json new file mode 100644 index 0000000..ea6513b --- /dev/null +++ b/src/b5986fab-17ca-4236-8c0c-81ebd2bb82ba/settings.json @@ -0,0 +1,31 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "b5986fab-17ca-4236-8c0c-81ebd2bb82ba", + "implements": null, + "load_selection": null, + "name": "FieldsetDynamic", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.FieldsetDynamic", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "f48764e0-16c6-459c-8576-af7616f3b720", + "as": "default" + }, + "use_selection1": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection2": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.FieldsetDynamic", + "description": "Fieldset Dynamic Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/README.md b/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/README.md index a000c3c..e59fb6e 100644 --- a/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/README.md +++ b/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/README.md @@ -6,11 +6,11 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Structuremultiple (Details) +# final class Structuremultiple (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler\Component** ```uml @startuml -class Structuremultiple #Gold { +class Structuremultiple << (F,LightGreen) >> #RoyalBlue { # Config $config # Registry $registry # Settings $settings diff --git a/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/code.php b/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/code.php index 7042d97..4bd1fc9 100644 --- a/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/code.php +++ b/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/code.php @@ -29,7 +29,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Utilities\Placefix; * * @since 3.2.0 */ -class Structuremultiple +final class Structuremultiple { /** * Compiler Config @@ -349,7 +349,6 @@ class Structuremultiple $view_type = ($view['settings']->main_get->gettype == 1) ? 'single' : 'list'; $this->structure->build($target, $view_type, false, $config); - } - + } } diff --git a/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/code.power b/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/code.power index c2f0b4b..c642148 100644 --- a/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/code.power +++ b/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/code.power @@ -316,4 +316,4 @@ $view_type = ($view['settings']->main_get->gettype == 1) ? 'single' : 'list'; $this->structure->build($target, $view_type, false, $config); - } + } \ No newline at end of file diff --git a/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/settings.json b/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/settings.json index 52e3699..9e26352 100644 --- a/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/settings.json +++ b/src/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c/settings.json @@ -8,7 +8,7 @@ "name": "Structuremultiple", "power_version": "1.0.0", "system_name": "JCB.Compiler.Component.Structuremultiple", - "type": "class", + "type": "final class", "use_selection": { "use_selection0": { "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", diff --git a/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/README.md b/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/README.md index 102efb6..4a5539f 100644 --- a/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/README.md +++ b/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/README.md @@ -39,7 +39,7 @@ class Power #Gold { - setImplements(string $guid, array $use) : void - setExtend(string $guid, array $use) : void - setUseAs(string $guid, array $use, ...) : void - - getCleanNamespace(string $namespace, bool $removeNumbers = true) : string + - getCleanNamespace(string $namespace) : string - getUseNamespace(string $namespace, string $as = 'default') : string - addToHeader(string $guid, string $string) : void - setLicensingTemplate(string $guid, array $guiMapper) : void diff --git a/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/code.php b/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/code.php index 79baa13..314ae6a 100644 --- a/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/code.php +++ b/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/code.php @@ -69,6 +69,14 @@ class Power implements PowerInterface **/ public array $superpowers = []; + /** + * Old super powers found in the local repos + * + * @var array + * @since 3.2.0 + **/ + public array $old_superpowers = []; + /** * The url to the power, if there is an error. * @@ -668,12 +676,12 @@ class Power implements PowerInterface { $as = trim(trim($namespace_as[1], ';')); } - $namespace = $this->getCleanNamespace($namespace_as[0], false); + $namespace = $this->getCleanNamespace($namespace_as[0]); } else { // trim possible use or ; added to the namespace - $namespace = $this->getCleanNamespace($_namespace['use'], false); + $namespace = $this->getCleanNamespace($_namespace['use']); } // check if still valid @@ -841,10 +849,10 @@ class Power implements PowerInterface * @return string * @since 3.2.0 */ - private function getCleanNamespace(string $namespace, bool $removeNumbers = true): string + private function getCleanNamespace(string $namespace): string { // trim possible (use) or (;) or (starting or ending \) added to the namespace - return NamespaceHelper::safe(str_replace(['use ', ';'], '', $namespace), $removeNumbers); + return NamespaceHelper::safe(str_replace(['use ', ';'], '', $namespace)); } /** @@ -994,6 +1002,11 @@ class Power implements PowerInterface $guiMapper ); } + else + { + $this->active[$guid]->unchanged_main_class_code = ''; + $this->active[$guid]->main_class_code = ''; + } } /** @@ -1030,6 +1043,9 @@ class Power implements PowerInterface // set the repo path $repo = $global_path . '/' . $path; + // set SuperPowerKey (spk) + $spk = 'Super_'.'_' . str_replace('-', '_', $guid) . '_'.'_Power'; + // set the global super power $this->superpowers[$repo][$guid] = [ 'name' => $this->active[$guid]->code_name, @@ -1039,6 +1055,7 @@ class Power implements PowerInterface 'power' => 'src/' . $guid . '/code.power', 'settings' => 'src/' . $guid . '/settings.json', 'path' => 'src/' . $guid, + 'spk' => $spk, 'guid' => $guid ]; diff --git a/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/code.power b/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/code.power index 0bd010a..f9fa9a6 100644 --- a/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/code.power +++ b/src/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1/code.power @@ -30,6 +30,14 @@ **/ public array $superpowers = []; + /** + * Old super powers found in the local repos + * + * @var array + * @since 3.2.0 + **/ + public array $old_superpowers = []; + /** * The url to the power, if there is an error. * @@ -629,12 +637,12 @@ { $as = trim(trim($namespace_as[1], ';')); } - $namespace = $this->getCleanNamespace($namespace_as[0], false); + $namespace = $this->getCleanNamespace($namespace_as[0]); } else { // trim possible use or ; added to the namespace - $namespace = $this->getCleanNamespace($_namespace['use'], false); + $namespace = $this->getCleanNamespace($_namespace['use']); } // check if still valid @@ -802,10 +810,10 @@ * @return string * @since 3.2.0 */ - private function getCleanNamespace(string $namespace, bool $removeNumbers = true): string + private function getCleanNamespace(string $namespace): string { // trim possible (use) or (;) or (starting or ending \) added to the namespace - return NamespaceHelper::safe(str_replace(['use ', ';'], '', $namespace), $removeNumbers); + return NamespaceHelper::safe(str_replace(['use ', ';'], '', $namespace)); } /** @@ -955,6 +963,11 @@ $guiMapper ); } + else + { + $this->active[$guid]->unchanged_main_class_code = ''; + $this->active[$guid]->main_class_code = ''; + } } /** @@ -991,6 +1004,9 @@ // set the repo path $repo = $global_path . '/' . $path; + // set SuperPowerKey (spk) + $spk = 'Super_'.'_' . str_replace('-', '_', $guid) . '_'.'_Power'; + // set the global super power $this->superpowers[$repo][$guid] = [ 'name' => $this->active[$guid]->code_name, @@ -1000,6 +1016,7 @@ 'power' => 'src/' . $guid . '/code.power', 'settings' => 'src/' . $guid . '/settings.json', 'path' => 'src/' . $guid, + 'spk' => $spk, 'guid' => $guid ]; diff --git a/src/b8a92303-8543-4d88-a83c-ece300eaba6d/README.md b/src/b8a92303-8543-4d88-a83c-ece300eaba6d/README.md new file mode 100644 index 0000000..07027dc --- /dev/null +++ b/src/b8a92303-8543-4d88-a83c-ece300eaba6d/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ModelExpertField (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ModelExpertField << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/b8a92303-8543-4d88-a83c-ece300eaba6d/code.php b/src/b8a92303-8543-4d88-a83c-ece300eaba6d/code.php new file mode 100644 index 0000000..ea865ff --- /dev/null +++ b/src/b8a92303-8543-4d88-a83c-ece300eaba6d/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Expert Field Model Builder Class + * + * @since 3.2.0 + */ +final class ModelExpertField extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/b8a92303-8543-4d88-a83c-ece300eaba6d/code.power b/src/b8a92303-8543-4d88-a83c-ece300eaba6d/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/b8a92303-8543-4d88-a83c-ece300eaba6d/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/b8a92303-8543-4d88-a83c-ece300eaba6d/settings.json b/src/b8a92303-8543-4d88-a83c-ece300eaba6d/settings.json new file mode 100644 index 0000000..77df266 --- /dev/null +++ b/src/b8a92303-8543-4d88-a83c-ece300eaba6d/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "b8a92303-8543-4d88-a83c-ece300eaba6d", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ModelExpertField", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ModelExpertField", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ModelExpertField", + "description": "Expert Field Model Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/b8b474d4-30e3-4b5a-9988-3adb3450998c/README.md b/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/README.md new file mode 100644 index 0000000..ef62c90 --- /dev/null +++ b/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class BaseSixFour (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class BaseSixFour << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/code.php b/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/code.php new file mode 100644 index 0000000..3f1abae --- /dev/null +++ b/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Base64 Builder Class + * + * @since 3.2.0 + */ +final class BaseSixFour extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/code.power b/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/settings.json b/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/settings.json new file mode 100644 index 0000000..5f22f03 --- /dev/null +++ b/src/b8b474d4-30e3-4b5a-9988-3adb3450998c/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "b8b474d4-30e3-4b5a-9988-3adb3450998c", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "BaseSixFour", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.BaseSixFour", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.BaseSixFour", + "description": "Base64 Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/bb26cf63-69a5-4c43-b2df-43284c9d907d/README.md b/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/README.md new file mode 100644 index 0000000..2df12fe --- /dev/null +++ b/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class JsonString (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class JsonString << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/code.php b/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/code.php new file mode 100644 index 0000000..861b8c9 --- /dev/null +++ b/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Json String Builder Class + * + * @since 3.2.0 + */ +final class JsonString extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/code.power b/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/settings.json b/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/settings.json new file mode 100644 index 0000000..e41e13d --- /dev/null +++ b/src/bb26cf63-69a5-4c43-b2df-43284c9d907d/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "bb26cf63-69a5-4c43-b2df-43284c9d907d", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "JsonString", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.JsonString", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.JsonString", + "description": "Json String Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/README.md b/src/bb29a833-73f7-4283-9327-bc7e41f0723b/README.md similarity index 57% rename from src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/README.md rename to src/bb29a833-73f7-4283-9327-bc7e41f0723b/README.md index f17b3ba..14009c0 100644 --- a/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/README.md +++ b/src/bb29a833-73f7-4283-9327-bc7e41f0723b/README.md @@ -6,61 +6,60 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# interface InsertInterface (Details) -> namespace: **VDM\Joomla\Componentbuilder\Interfaces** +# final class Load (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Model** +> extends: **AbstractionModel** ```uml @startuml -interface InsertInterface #Lavender { - + defaults(bool $trigger = true) : void - + rows(array $data, string $table, ...) : bool - + items(array $data, string $table, ...) : bool - + row(array $data, string $table) : bool - + item(object $data, string $table) : bool +class Load << (F,LightGreen) >> #RoyalBlue { + + value(mixed $value, string $field, ...) : mixed + # validateBefore(mixed $value, ?string $field = null, ...) : bool + # validateAfter(mixed $value, ?string $field = null, ...) : bool + # getTable() : string } -note right of InsertInterface::defaults - Switch to prevent/allow defaults from being added. +note right of Load::value + Model the value +Example: $this->value(value, 'field_key', 'table_name'); since: 3.2.0 - return: void + return: mixed + + arguments: + mixed $value + string $field + ?string $table = null end note -note right of InsertInterface::rows - Insert rows to the database (with remapping and filtering columns option) +note right of Load::validateBefore + Validate before the value is modelled since: 3.2.0 return: bool arguments: - array $data - string $table - array $columns = [] + mixed $value + ?string $field = null + ?string $table = null end note -note right of InsertInterface::items - Insert items to the database (with remapping and filtering columns option) +note right of Load::validateAfter + Validate after the value is modelled since: 3.2.0 return: bool arguments: - array $data - string $table - array $columns = [] + mixed $value + ?string $field = null + ?string $table = null end note -note right of InsertInterface::row - Insert row to the database +note right of Load::getTable + Get the current active table since: 3.2.0 - return: bool -end note - -note right of InsertInterface::item - Insert item to the database - - since: 3.2.0 - return: bool + return: string end note @enduml diff --git a/src/bb29a833-73f7-4283-9327-bc7e41f0723b/code.php b/src/bb29a833-73f7-4283-9327-bc7e41f0723b/code.php new file mode 100644 index 0000000..0463790 --- /dev/null +++ b/src/bb29a833-73f7-4283-9327-bc7e41f0723b/code.php @@ -0,0 +1,119 @@ + + * @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\Power\Model; + + +use VDM\Joomla\Abstraction\Model as AbstractionModel; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Utilities\ArrayHelper; +use VDM\Joomla\Utilities\ObjectHelper; +use VDM\Joomla\Interfaces\ModelInterface; + + +/** + * Power Model Load + * + * @since 3.2.0 + */ +final class Load extends AbstractionModel implements ModelInterface +{ + /** + * Model the value + * Example: $this->value(value, 'field_key', 'table_name'); + * + * @param mixed $value The value to model + * @param string $field The field key + * @param string|null $table The table + * + * @return mixed + * @since 3.2.0 + */ + public function value($value, string $field, ?string $table = null) + { + // set the table name + if (empty($table)) + { + $table = $this->getTable(); + } + + // check if this is a valid table + if (($store = $this->table->get($table, $field, 'store')) !== null) + { + // open the value based on the store method + switch($store) + { + case 'base64': + $value = base64_decode((string) $value); + break; + case 'json': + $value = json_decode($value); + break; + } + } + + return $value; + } + + /** + * Validate before the value is modelled + * + * @param mixed $value The field value + * @param string|null $field The field key + * @param string|null $table The table + * + * @return bool + * @since 3.2.0 + */ + protected function validateBefore(&$value, ?string $field = null, ?string $table = null): bool + { + // only strings or numbers allowed + if (StringHelper::check($value) || is_numeric($value)) + { + return true; + } + // remove empty values + return false; + } + + /** + * Validate after the value is modelled + * + * @param mixed $value The field value + * @param string|null $field The field key + * @param string|null $table The table + * + * @return bool + * @since 3.2.0 + */ + protected function validateAfter(&$value, ?string $field = null, ?string $table = null): bool + { + // only strings or numbers allowed + if (StringHelper::check($value) || ArrayHelper::check($value, true) || ObjectHelper::check($value) || is_numeric($value)) + { + return true; + } + // remove empty values + return false; + } + + /** + * Get the current active table + * + * @return string + * @since 3.2.0 + */ + protected function getTable(): string + { + return 'power'; + } +} + diff --git a/src/bb29a833-73f7-4283-9327-bc7e41f0723b/code.power b/src/bb29a833-73f7-4283-9327-bc7e41f0723b/code.power new file mode 100644 index 0000000..9a722c8 --- /dev/null +++ b/src/bb29a833-73f7-4283-9327-bc7e41f0723b/code.power @@ -0,0 +1,89 @@ + /** + * Model the value + * Example: $this->value(value, 'field_key', 'table_name'); + * + * @param mixed $value The value to model + * @param string $field The field key + * @param string|null $table The table + * + * @return mixed + * @since 3.2.0 + */ + public function value($value, string $field, ?string $table = null) + { + // set the table name + if (empty($table)) + { + $table = $this->getTable(); + } + + // check if this is a valid table + if (($store = $this->table->get($table, $field, 'store')) !== null) + { + // open the value based on the store method + switch($store) + { + case 'base64': + $value = base64_decode((string) $value); + break; + case 'json': + $value = json_decode($value); + break; + } + } + + return $value; + } + + /** + * Validate before the value is modelled + * + * @param mixed $value The field value + * @param string|null $field The field key + * @param string|null $table The table + * + * @return bool + * @since 3.2.0 + */ + protected function validateBefore(&$value, ?string $field = null, ?string $table = null): bool + { + // only strings or numbers allowed + if (StringHelper::check($value) || is_numeric($value)) + { + return true; + } + // remove empty values + return false; + } + + /** + * Validate after the value is modelled + * + * @param mixed $value The field value + * @param string|null $field The field key + * @param string|null $table The table + * + * @return bool + * @since 3.2.0 + */ + protected function validateAfter(&$value, ?string $field = null, ?string $table = null): bool + { + // only strings or numbers allowed + if (StringHelper::check($value) || ArrayHelper::check($value, true) || ObjectHelper::check($value) || is_numeric($value)) + { + return true; + } + // remove empty values + return false; + } + + /** + * Get the current active table + * + * @return string + * @since 3.2.0 + */ + protected function getTable(): string + { + return 'power'; + } \ No newline at end of file diff --git a/src/bb29a833-73f7-4283-9327-bc7e41f0723b/settings.json b/src/bb29a833-73f7-4283-9327-bc7e41f0723b/settings.json new file mode 100644 index 0000000..583eac9 --- /dev/null +++ b/src/bb29a833-73f7-4283-9327-bc7e41f0723b/settings.json @@ -0,0 +1,38 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "-1", + "guid": "bb29a833-73f7-4283-9327-bc7e41f0723b", + "implements": [ + "8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff" + ], + "load_selection": null, + "name": "Load", + "power_version": "1.0.0", + "system_name": "JCB.Power.Model.Load", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "584747d1-3a86-453d-b7a3-a2219de8d777", + "as": "AbstractionModel" + }, + "use_selection1": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection2": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + }, + "use_selection3": { + "use": "91004529-94a9-4590-b842-e7c6b624ecf5", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Model.Load", + "description": "Power Model Load\r\n\r\n@since 3.2.0", + "extends_custom": "AbstractionModel", + "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/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/README.md b/src/be4ccfae-65a9-401e-bdbe-637d8c226954/README.md similarity index 51% rename from src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/README.md rename to src/be4ccfae-65a9-401e-bdbe-637d8c226954/README.md index 9cc1960..5062a56 100644 --- a/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/README.md +++ b/src/be4ccfae-65a9-401e-bdbe-637d8c226954/README.md @@ -6,72 +6,82 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# interface Tableinterface (Details) -> namespace: **VDM\Joomla\Componentbuilder\Interfaces** +# class Config (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power** +> extends: **BaseConfig** ```uml @startuml -interface Tableinterface #Lavender { - + get(string $table, ?string $field = null, ...) : mixed - + title(string $table) : ?array - + titleName(string $table) : string - + tables() : array - + exist(string $table, ?string $field = null) : bool - + fields(string $table, bool $default = false) : ?array +class Config #Gold { + # JoomlaRegistry $config + + __construct(?Input $input = null, ?JoomlaRegistry $params = null, ...) + # getGiteatoken() : ?string + # getAddcustomgiteaurl() : int + # getCustomgiteaurl() : ?string + # getCustomgiteatoken() : ?string + # getTmppath() : string + # getLocalpowersrepositorypath() : string + # getApprovedpaths() : array } -note right of Tableinterface::get - Get any value from a item/field/column of an area/view/table -Example: $this->get('table_name', 'field_name', 'value_key'); -Get an item/field/column of an area/view/table -Example: $this->get('table_name', 'field_name'); -Get all items/fields/columns of an area/view/table -Example: $this->get('table_name'); -Get all areas/views/tables with all their item/field/column details -Example: $this->get(); +note right of Config::__construct + Constructor since: 3.2.0 - return: mixed arguments: - string $table - ?string $field = null - ?string $key = null + ?Input $input = null + ?JoomlaRegistry $params = null + ?JoomlaRegistry $config = null end note -note right of Tableinterface::title - Get title field from an area/view/table +note left of Config::getGiteatoken + get Gitea Access Token since: 3.2.0 - return: ?array + return: ?string end note -note right of Tableinterface::titleName - Get title field name +note right of Config::getAddcustomgiteaurl + get Add Custom Gitea URL + + since: 3.2.0 + return: int +end note + +note left of Config::getCustomgiteaurl + get Custom Gitea URL + + since: 3.2.0 + return: ?string +end note + +note right of Config::getCustomgiteatoken + get Custom Gitea Access Token + + since: 3.2.0 + return: ?string +end note + +note left of Config::getTmppath + get temporary path since: 3.2.0 return: string end note -note right of Tableinterface::tables - Get all tables +note right of Config::getLocalpowersrepositorypath + Get local super powers repository path + + since: 3.2.0 + return: string +end note + +note left of Config::getApprovedpaths + Get super power approved paths since: 3.2.0 return: array end note - -note right of Tableinterface::exist - Check if a table (and field) exist - - since: 3.2.0 - return: bool -end note - -note right of Tableinterface::fields - Get all fields of an area/view/table - - since: 3.2.0 - return: ?array -end note @enduml ``` diff --git a/src/be4ccfae-65a9-401e-bdbe-637d8c226954/code.php b/src/be4ccfae-65a9-401e-bdbe-637d8c226954/code.php new file mode 100644 index 0000000..be5dae8 --- /dev/null +++ b/src/be4ccfae-65a9-401e-bdbe-637d8c226954/code.php @@ -0,0 +1,188 @@ + + * @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\Power; + + +use Joomla\Registry\Registry as JoomlaRegistry; +use Joomla\CMS\Factory as JoomlaFactory; +use VDM\Joomla\Utilities\GetHelper; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Componentbuilder\Abstraction\BaseConfig; + + +/** + * Compiler Configurations + * + * All these functions are accessed via the direct name without the get: + * example: $this->component_code_name calls: $this->getComponentcodename() + * + * All values once called are cached, yet can be updated directly: + * example: $this->component_code_name = 'new_code_name'; // be warned! + * + * @since 3.2.0 + */ +class Config extends BaseConfig +{ + /** + * The Global Joomla Configuration + * + * @var JoomlaRegistry + * @since 3.2.0 + */ + protected JoomlaRegistry $config; + + /** + * Constructor + * + * @param Input|null $input Input + * @param Registry|null $params The component parameters + * @param Registry|null $config The Joomla configuration + * + * @throws \Exception + * @since 3.2.0 + */ + public function __construct(?Input $input = null, ?JoomlaRegistry $params = null, ?JoomlaRegistry $config = null) + { + parent::__construct($input, $params); + + $this->config = $config ?: JoomlaFactory::getConfig(); + } + + /** + * get Gitea Access Token + * + * @return string the access token + * @since 3.2.0 + */ + protected function getGiteatoken(): ?string + { + return $this->custom_gitea_token ?? $this->params->get('gitea_token'); + } + + /** + * get Add Custom Gitea URL + * + * @return int the add switch + * @since 3.2.0 + */ + protected function getAddcustomgiteaurl(): int + { + return $this->params->get('add_custom_gitea_url', 1); + } + + /** + * get Custom Gitea URL + * + * @return string the custom gitea url + * @since 3.2.0 + */ + protected function getCustomgiteaurl(): ?string + { + if ($this->add_custom_gitea_url == 2) + { + return $this->params->get('custom_gitea_url'); + } + + return null; + } + + /** + * get Custom Gitea Access Token + * + * @return string the custom access token + * @since 3.2.0 + */ + protected function getCustomgiteatoken(): ?string + { + if ($this->add_custom_gitea_url == 2) + { + return $this->params->get('custom_gitea_token'); + } + + return null; + } + + /** + * get temporary path + * + * @return string The temporary path + * @since 3.2.0 + */ + protected function getTmppath(): string + { + // get the temporary path + return $this->config->get('tmp_path'); + } + + /** + * Get local super powers repository path + * + * @return string The path to the local repository + * @since 3.2.0 + */ + protected function getLocalpowersrepositorypath(): string + { + $default = $this->tmp_path . '/super_powers'; + + if (!$this->add_super_powers) + { + return $default; + } + + $global = $this->params->get('local_powers_repository_path', $default); + + if (!$this->show_advanced_options) + { + return $global; + } + + $value = $this->input->post->get('powers_repository', 2, 'INT'); + + return $value == 1 + ? $this->input->post->get('local_powers_repository_path', $global, 'PATH') + : $global; + } + + /** + * Get super power approved paths + * + * @return array The approved paths to the repositories on Gitea + * @since 3.2.0 + */ + protected function getApprovedpaths(): array + { + $default = (object) ['owner' => 'joomla', 'repo' => 'super-powers', 'branch' => 'master']; + + if (!$this->add_own_powers) + { + return [$default]; + } + + $paths = $this->params->get('approved_paths'); + + $approved = []; + if (!empty($paths)) + { + foreach ($paths as $path) + { + // we make sure to get only the objects + $approved[] = $path; + } + } + + // finally we add the default + $approved[] = $default; + + return $approved; + } +} + diff --git a/src/be4ccfae-65a9-401e-bdbe-637d8c226954/code.power b/src/be4ccfae-65a9-401e-bdbe-637d8c226954/code.power new file mode 100644 index 0000000..534a725 --- /dev/null +++ b/src/be4ccfae-65a9-401e-bdbe-637d8c226954/code.power @@ -0,0 +1,152 @@ + /** + * The Global Joomla Configuration + * + * @var JoomlaRegistry + * @since 3.2.0 + */ + protected JoomlaRegistry $config; + + /** + * Constructor + * + * @param Input|null $input Input + * @param Registry|null $params The component parameters + * @param Registry|null $config The Joomla configuration + * + * @throws \Exception + * @since 3.2.0 + */ + public function __construct(?Input $input = null, ?JoomlaRegistry $params = null, ?JoomlaRegistry $config = null) + { + parent::__construct($input, $params); + + $this->config = $config ?: JoomlaFactory::getConfig(); + } + + /** + * get Gitea Access Token + * + * @return string the access token + * @since 3.2.0 + */ + protected function getGiteatoken(): ?string + { + return $this->custom_gitea_token ?? $this->params->get('gitea_token'); + } + + /** + * get Add Custom Gitea URL + * + * @return int the add switch + * @since 3.2.0 + */ + protected function getAddcustomgiteaurl(): int + { + return $this->params->get('add_custom_gitea_url', 1); + } + + /** + * get Custom Gitea URL + * + * @return string the custom gitea url + * @since 3.2.0 + */ + protected function getCustomgiteaurl(): ?string + { + if ($this->add_custom_gitea_url == 2) + { + return $this->params->get('custom_gitea_url'); + } + + return null; + } + + /** + * get Custom Gitea Access Token + * + * @return string the custom access token + * @since 3.2.0 + */ + protected function getCustomgiteatoken(): ?string + { + if ($this->add_custom_gitea_url == 2) + { + return $this->params->get('custom_gitea_token'); + } + + return null; + } + + /** + * get temporary path + * + * @return string The temporary path + * @since 3.2.0 + */ + protected function getTmppath(): string + { + // get the temporary path + return $this->config->get('tmp_path'); + } + + /** + * Get local super powers repository path + * + * @return string The path to the local repository + * @since 3.2.0 + */ + protected function getLocalpowersrepositorypath(): string + { + $default = $this->tmp_path . '/super_powers'; + + if (!$this->add_super_powers) + { + return $default; + } + + $global = $this->params->get('local_powers_repository_path', $default); + + if (!$this->show_advanced_options) + { + return $global; + } + + $value = $this->input->post->get('powers_repository', 2, 'INT'); + + return $value == 1 + ? $this->input->post->get('local_powers_repository_path', $global, 'PATH') + : $global; + } + + /** + * Get super power approved paths + * + * @return array The approved paths to the repositories on Gitea + * @since 3.2.0 + */ + protected function getApprovedpaths(): array + { + $default = (object) ['owner' => 'joomla', 'repo' => 'super-powers', 'branch' => 'master']; + + if (!$this->add_own_powers) + { + return [$default]; + } + + $paths = $this->params->get('approved_paths'); + + $approved = []; + if (!empty($paths)) + { + foreach ($paths as $path) + { + // we make sure to get only the objects + $approved[] = $path; + } + } + + // finally we add the default + $approved[] = $default; + + return $approved; + } \ No newline at end of file diff --git a/src/be4ccfae-65a9-401e-bdbe-637d8c226954/settings.json b/src/be4ccfae-65a9-401e-bdbe-637d8c226954/settings.json new file mode 100644 index 0000000..5129e11 --- /dev/null +++ b/src/be4ccfae-65a9-401e-bdbe-637d8c226954/settings.json @@ -0,0 +1,27 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "9769f3b2-17bf-4f20-b54b-3a4ebe572b36", + "guid": "be4ccfae-65a9-401e-bdbe-637d8c226954", + "implements": null, + "load_selection": null, + "name": "Config", + "power_version": "1.0.0", + "system_name": "JCB.Power.Config", + "type": "class", + "use_selection": { + "use_selection0": { + "use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc", + "as": "default" + }, + "use_selection1": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Config", + "description": "Compiler Configurations\r\n\r\n\tAll these functions are accessed via the direct name without the get:\r\n\texample: $this->component_code_name calls: $this->getComponentcodename()\r\n\r\n\tAll values once called are cached, yet can be updated directly:\r\n\texample: $this->component_code_name = 'new_code_name'; \/\/ be warned!\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": "use Joomla\\Registry\\Registry as JoomlaRegistry;\r\nuse Joomla\\CMS\\Factory as JoomlaFactory;", + "composer": "" +} \ No newline at end of file diff --git a/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/README.md b/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/README.md new file mode 100644 index 0000000..ee9454b --- /dev/null +++ b/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class OtherGroup (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class OtherGroup << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/code.php b/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/code.php similarity index 50% rename from src/caf33c5d-858c-4f9a-894f-ab302ec5445a/code.php rename to src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/code.php index aff5406..a363c7c 100644 --- a/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/code.php +++ b/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/code.php @@ -9,34 +9,19 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ -namespace VDM\Joomla\Componentbuilder\Interfaces; +namespace VDM\Joomla\Componentbuilder\Compiler\Builder; -use Joomla\DI\Container; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; /** - * The Container Factory Interface + * Other Group Builder Class + * + * @since 3.2.0 */ -interface FactoryInterface +final class OtherGroup extends StorageRegistry implements Storageregistryinterface { - /** - * Get any class from the container - * - * @param string $key The container class key - * - * @return Mixed - * @since 3.2.0 - */ - public static function _(string $key); - - /** - * Get the global container - * - * @return Container - * @since 3.2.0 - */ - public static function getContainer(): Container; - } diff --git a/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/code.power b/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/settings.json b/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/settings.json new file mode 100644 index 0000000..1cdca08 --- /dev/null +++ b/src/bf92e1c1-3d5e-4e9d-a585-c79e1468df33/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "bf92e1c1-3d5e-4e9d-a585-c79e1468df33", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "OtherGroup", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.OtherGroup", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.OtherGroup", + "description": "Other Group Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/c0e46033-5ade-4829-88b7-ca160d36a4d1/README.md b/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/README.md new file mode 100644 index 0000000..44c9cb0 --- /dev/null +++ b/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class SiteDecrypt (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class SiteDecrypt << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/code.php b/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/code.php new file mode 100644 index 0000000..91f0dfd --- /dev/null +++ b/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Site Decrypt Builder Class + * + * @since 3.2.0 + */ +final class SiteDecrypt extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/code.power b/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/settings.json b/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/settings.json new file mode 100644 index 0000000..8c1cfc6 --- /dev/null +++ b/src/c0e46033-5ade-4829-88b7-ca160d36a4d1/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "c0e46033-5ade-4829-88b7-ca160d36a4d1", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "SiteDecrypt", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.SiteDecrypt", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.SiteDecrypt", + "description": "Site Decrypt Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/c600f58c-3fe2-4d2d-b711-2660eab6effe/README.md b/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/README.md new file mode 100644 index 0000000..508867b --- /dev/null +++ b/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/README.md @@ -0,0 +1,52 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class InputButton (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Field** +```uml +@startuml +class InputButton << (F,LightGreen) >> #RoyalBlue { + # Config $config + # Placeholder $placeholder + # Permission $permission + + __construct(Config $config, Placeholder $placeholder, ...) + + get(array $fieldData) : string +} + +note right of InputButton::__construct + Constructor. + + since: 3.2.0 + + arguments: + Config $config + Placeholder $placeholder + Permission $permission +end note + +note right of InputButton::get + get Add Button To List Field Input (getInput tweak) + + since: 3.2.0 + return: string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/code.php b/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/code.php new file mode 100644 index 0000000..d8754d2 --- /dev/null +++ b/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/code.php @@ -0,0 +1,338 @@ + + * @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\Compiler\Field; + + +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Placeholder; +use VDM\Joomla\Componentbuilder\Compiler\Creator\Permission; +use VDM\Joomla\Utilities\StringHelper; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Placefix; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line; + + +/** + * Compiler Field Input Button + * + * @since 3.2.0 + */ +final class InputButton +{ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Permission Class. + * + * @var Permission + * @since 3.2.0 + */ + protected Permission $permission; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Permission $permission The Permission Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Placeholder $placeholder, + Permission $permission) + { + $this->config = $config; + $this->placeholder = $placeholder; + $this->permission = $permission; + } + + /** + * get Add Button To List Field Input (getInput tweak) + * + * @param array $fieldData The field custom data + * + * @return string of getInput class on success empty string otherwise + * @since 3.2.0 + */ + public function get(array $fieldData): string + { + // make sure hte view values are set + if (isset($fieldData['add_button']) + && ($fieldData['add_button'] === 'true' + || 1 == $fieldData['add_button']) + && isset($fieldData['view']) + && isset($fieldData['views']) + && StringHelper::check($fieldData['view']) + && StringHelper::check($fieldData['views'])) + { + // set local component + $local_component = "com_" . $this->config->component_code_name; + // check that the component value is set + if (!isset($fieldData['component']) + || !StringHelper::check( + $fieldData['component'] + )) + { + $fieldData['component'] = $local_component; + } + // check that the component has the com_ value in it + if (strpos((string) $fieldData['component'], 'com_') === false + || strpos((string) $fieldData['component'], '=') !== false) + { + $fieldData['component'] = "com_" . $fieldData['component']; + } + // make sure the component is update if # # # or [ [ [ component placeholder is used + if (strpos((string) $fieldData['component'], (string) Placefix::h()) !== false + || strpos((string) $fieldData['component'], (string) Placefix::b()) !== false) // should not be needed... but + { + $fieldData['component'] = $this->placeholder->update_( + $fieldData['component'] + ); + } + // get core permissions + $coreLoad = false; + // add ref tags + $refLoad = true; + // fall back on the field component + $component = $fieldData['component']; + // check if we should add ref tags (since it only works well on local views) + if ($local_component !== $component) + { + // do not add ref tags + $refLoad = false; + } + // start building the add buttons/s + $addButton = array(); + $addButton[] = PHP_EOL . PHP_EOL . Indent::_(1) . "/**"; + $addButton[] = Indent::_(1) . " * Override to add new button"; + $addButton[] = Indent::_(1) . " *"; + $addButton[] = Indent::_(1) + . " * @return string The field input markup."; + $addButton[] = Indent::_(1) . " *"; + $addButton[] = Indent::_(1) . " * @since 3.2"; + $addButton[] = Indent::_(1) . " */"; + $addButton[] = Indent::_(1) . "protected function getInput()"; + $addButton[] = Indent::_(1) . "{"; + $addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " see if we should add buttons"; + $addButton[] = Indent::_(2) + . "\$set_button = \$this->getAttribute('button');"; + $addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " get html"; + $addButton[] = Indent::_(2) . "\$html = parent::getInput();"; + $addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " if true set button"; + $addButton[] = Indent::_(2) . "if (\$set_button === 'true')"; + $addButton[] = Indent::_(2) . "{"; + $addButton[] = Indent::_(3) . "\$button = array();"; + $addButton[] = Indent::_(3) . "\$script = array();"; + $addButton[] = Indent::_(3) + . "\$button_code_name = \$this->getAttribute('name');"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " get the input from url"; + $addButton[] = Indent::_(3) . "\$app = JFactory::getApplication();"; + $addButton[] = Indent::_(3) . "\$jinput = \$app->input;"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " get the view name & id"; + $addButton[] = Indent::_(3) + . "\$values = \$jinput->getArray(array("; + $addButton[] = Indent::_(4) . "'id' => 'int',"; + $addButton[] = Indent::_(4) . "'view' => 'word'"; + $addButton[] = Indent::_(3) . "));"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " check if new item"; + $addButton[] = Indent::_(3) . "\$ref = '';"; + $addButton[] = Indent::_(3) . "\$refJ = '';"; + if ($refLoad) + { + $addButton[] = Indent::_(3) + . "if (!is_null(\$values['id']) && strlen(\$values['view']))"; + $addButton[] = Indent::_(3) . "{"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " only load referral if not new item."; + $addButton[] = Indent::_(4) + . "\$ref = '&ref=' . \$values['view'] . '&refid=' . \$values['id'];"; + $addButton[] = Indent::_(4) + . "\$refJ = '&ref=' . \$values['view'] . '&refid=' . \$values['id'];"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " get the return value."; + $addButton[] = Indent::_(4) + . "\$_uri = (string) JUri::getInstance();"; + $addButton[] = Indent::_(4) + . "\$_return = urlencode(base64_encode(\$_uri));"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " load return value."; + $addButton[] = Indent::_(4) + . "\$ref .= '&return=' . \$_return;"; + $addButton[] = Indent::_(4) + . "\$refJ .= '&return=' . \$_return;"; + $addButton[] = Indent::_(3) . "}"; + } + else + { + $addButton[] = Indent::_(3) + . "if (!is_null(\$values['id']) && strlen(\$values['view']))"; + $addButton[] = Indent::_(3) . "{"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " only load field details if not new item."; + $addButton[] = Indent::_(4) + . "\$ref = '&field=' . \$values['view'] . '&field_id=' . \$values['id'];"; + $addButton[] = Indent::_(4) + . "\$refJ = '&field=' . \$values['view'] . '&field_id=' . \$values['id'];"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " get the return value."; + $addButton[] = Indent::_(4) + . "\$_uri = (string) JUri::getInstance();"; + $addButton[] = Indent::_(4) + . "\$_return = urlencode(base64_encode(\$_uri));"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " load return value."; + $addButton[] = Indent::_(4) + . "\$ref = '&return=' . \$_return;"; + $addButton[] = Indent::_(4) + . "\$refJ = '&return=' . \$_return;"; + $addButton[] = Indent::_(3) . "}"; + } + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " get button label"; + $addButton[] = Indent::_(3) + . "\$button_label = trim(\$button_code_name);"; + $addButton[] = Indent::_(3) + . "\$button_label = preg_replace('/_+/', ' ', \$button_label);"; + $addButton[] = Indent::_(3) + . "\$button_label = preg_replace('/\s+/', ' ', \$button_label);"; + $addButton[] = Indent::_(3) + . "\$button_label = preg_replace(\"/[^A-Za-z ]/\", '', \$button_label);"; + $addButton[] = Indent::_(3) + . "\$button_label = ucfirst(strtolower(\$button_label));"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " get user object"; + $addButton[] = Indent::_(3) . "\$user = JFactory::getUser();"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " only add if user allowed to create " . $fieldData['view']; + // check if the item has permissions. + $addButton[] = Indent::_(3) . "if (\$user->authorise('" + . $this->permission->getGlobal($fieldData['view'], 'core.create') + . "', '" . $component . "') && \$app->isAdmin()) // TODO for now only in admin area."; + $addButton[] = Indent::_(3) . "{"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " build Create button"; + $addButton[] = Indent::_(4) + . "\$button[] = '
config->lang_prefix + . "_CREATE_NEW_S', \$button_label).'\" style=\"border-radius: 0px 4px 4px 0px; padding: 4px 4px 4px 7px;\""; + $addButton[] = Indent::_(5) . "href=\"index.php?option=" + . $fieldData['component'] . "&view=" . $fieldData['view'] + . "&layout=edit'.\$ref.'\" >"; + $addButton[] = Indent::_(5) + . "';"; + $addButton[] = Indent::_(3) . "}"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " only add if user allowed to edit " . $fieldData['view']; + // check if the item has permissions. + $addButton[] = Indent::_(3) . "if (\$user->authorise('" + . $this->permission->getGlobal($fieldData['view'], 'core.edit') + . "', '" . $component . "') && \$app->isAdmin()) // TODO for now only in admin area."; + $addButton[] = Indent::_(3) . "{"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " build edit button"; + $addButton[] = Indent::_(4) + . "\$button[] = 'config->lang_prefix + . "_EDIT_S', \$button_label).'\" style=\"display: none; padding: 4px 4px 4px 7px;\" href=\"#\" >"; + $addButton[] = Indent::_(5) + . "';"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " build script"; + $addButton[] = Indent::_(4) . "\$script[] = \""; + $addButton[] = Indent::_(5) . "jQuery(document).ready(function() {"; + $addButton[] = Indent::_(6) + . "jQuery('#adminForm').on('change', '#jform_\".\$button_code_name.\"',function (e) {"; + $addButton[] = Indent::_(7) . "e.preventDefault();"; + $addButton[] = Indent::_(7) + . "var \".\$button_code_name.\"Value = jQuery('#jform_\".\$button_code_name.\"').val();"; + $addButton[] = Indent::_(7) + . "\".\$button_code_name.\"Button(\".\$button_code_name.\"Value);"; + $addButton[] = Indent::_(6) . "});"; + $addButton[] = Indent::_(6) + . "var \".\$button_code_name.\"Value = jQuery('#jform_\".\$button_code_name.\"').val();"; + $addButton[] = Indent::_(6) + . "\".\$button_code_name.\"Button(\".\$button_code_name.\"Value);"; + $addButton[] = Indent::_(5) . "});"; + $addButton[] = Indent::_(5) + . "function \".\$button_code_name.\"Button(value) {"; + $addButton[] = Indent::_(6) + . "if (value > 0) {"; // TODO not ideal since value may not be an (int) + $addButton[] = Indent::_(7) . "// hide the create button"; + $addButton[] = Indent::_(7) + . "jQuery('#\".\$button_code_name.\"Create').hide();"; + $addButton[] = Indent::_(7) . "// show edit button"; + $addButton[] = Indent::_(7) + . "jQuery('#\".\$button_code_name.\"Edit').show();"; + $addButton[] = Indent::_(7) . "var url = 'index.php?option=" + . $fieldData['component'] . "&view=" . $fieldData['views'] + . "&task=" . $fieldData['view'] + . ".edit&id='+value+'\".\$refJ.\"';"; // TODO this value may not be the ID + $addButton[] = Indent::_(7) + . "jQuery('#\".\$button_code_name.\"Edit').attr('href', url);"; + $addButton[] = Indent::_(6) . "} else {"; + $addButton[] = Indent::_(7) . "// show the create button"; + $addButton[] = Indent::_(7) + . "jQuery('#\".\$button_code_name.\"Create').show();"; + $addButton[] = Indent::_(7) . "// hide edit button"; + $addButton[] = Indent::_(7) + . "jQuery('#\".\$button_code_name.\"Edit').hide();"; + $addButton[] = Indent::_(6) . "}"; + $addButton[] = Indent::_(5) . "}\";"; + $addButton[] = Indent::_(3) . "}"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " check if button was created for " . $fieldData['view'] + . " field."; + $addButton[] = Indent::_(3) + . "if (is_array(\$button) && count(\$button) > 0)"; + $addButton[] = Indent::_(3) . "{"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " Load the needed script."; + $addButton[] = Indent::_(4) + . "\$document = JFactory::getDocument();"; + $addButton[] = Indent::_(4) + . "\$document->addScriptDeclaration(implode(' ',\$script));"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " return the button attached to input field."; + $addButton[] = Indent::_(4) + . "return '
' .\$html . implode('',\$button).'
';"; + $addButton[] = Indent::_(3) . "}"; + $addButton[] = Indent::_(2) . "}"; + $addButton[] = Indent::_(2) . "return \$html;"; + $addButton[] = Indent::_(1) . "}"; + + return implode(PHP_EOL, $addButton); + } + + return ''; + } +} + diff --git a/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/code.power b/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/code.power new file mode 100644 index 0000000..4ec7fcc --- /dev/null +++ b/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/code.power @@ -0,0 +1,306 @@ + /** + * The Config Class. + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * The Placeholder Class. + * + * @var Placeholder + * @since 3.2.0 + */ + protected Placeholder $placeholder; + + /** + * The Permission Class. + * + * @var Permission + * @since 3.2.0 + */ + protected Permission $permission; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Permission $permission The Permission Class. + * + * @since 3.2.0 + */ + public function __construct(Config $config, Placeholder $placeholder, + Permission $permission) + { + $this->config = $config; + $this->placeholder = $placeholder; + $this->permission = $permission; + } + + /** + * get Add Button To List Field Input (getInput tweak) + * + * @param array $fieldData The field custom data + * + * @return string of getInput class on success empty string otherwise + * @since 3.2.0 + */ + public function get(array $fieldData): string + { + // make sure hte view values are set + if (isset($fieldData['add_button']) + && ($fieldData['add_button'] === 'true' + || 1 == $fieldData['add_button']) + && isset($fieldData['view']) + && isset($fieldData['views']) + && StringHelper::check($fieldData['view']) + && StringHelper::check($fieldData['views'])) + { + // set local component + $local_component = "com_" . $this->config->component_code_name; + // check that the component value is set + if (!isset($fieldData['component']) + || !StringHelper::check( + $fieldData['component'] + )) + { + $fieldData['component'] = $local_component; + } + // check that the component has the com_ value in it + if (strpos((string) $fieldData['component'], 'com_') === false + || strpos((string) $fieldData['component'], '=') !== false) + { + $fieldData['component'] = "com_" . $fieldData['component']; + } + // make sure the component is update if # # # or [ [ [ component placeholder is used + if (strpos((string) $fieldData['component'], (string) Placefix::h()) !== false + || strpos((string) $fieldData['component'], (string) Placefix::b()) !== false) // should not be needed... but + { + $fieldData['component'] = $this->placeholder->update_( + $fieldData['component'] + ); + } + // get core permissions + $coreLoad = false; + // add ref tags + $refLoad = true; + // fall back on the field component + $component = $fieldData['component']; + // check if we should add ref tags (since it only works well on local views) + if ($local_component !== $component) + { + // do not add ref tags + $refLoad = false; + } + // start building the add buttons/s + $addButton = array(); + $addButton[] = PHP_EOL . PHP_EOL . Indent::_(1) . "/**"; + $addButton[] = Indent::_(1) . " * Override to add new button"; + $addButton[] = Indent::_(1) . " *"; + $addButton[] = Indent::_(1) + . " * @return string The field input markup."; + $addButton[] = Indent::_(1) . " *"; + $addButton[] = Indent::_(1) . " * @since 3.2"; + $addButton[] = Indent::_(1) . " */"; + $addButton[] = Indent::_(1) . "protected function getInput()"; + $addButton[] = Indent::_(1) . "{"; + $addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " see if we should add buttons"; + $addButton[] = Indent::_(2) + . "\$set_button = \$this->getAttribute('button');"; + $addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " get html"; + $addButton[] = Indent::_(2) . "\$html = parent::getInput();"; + $addButton[] = Indent::_(2) . "//" . Line::_(__Line__, __Class__) + . " if true set button"; + $addButton[] = Indent::_(2) . "if (\$set_button === 'true')"; + $addButton[] = Indent::_(2) . "{"; + $addButton[] = Indent::_(3) . "\$button = array();"; + $addButton[] = Indent::_(3) . "\$script = array();"; + $addButton[] = Indent::_(3) + . "\$button_code_name = \$this->getAttribute('name');"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " get the input from url"; + $addButton[] = Indent::_(3) . "\$app = JFactory::getApplication();"; + $addButton[] = Indent::_(3) . "\$jinput = \$app->input;"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " get the view name & id"; + $addButton[] = Indent::_(3) + . "\$values = \$jinput->getArray(array("; + $addButton[] = Indent::_(4) . "'id' => 'int',"; + $addButton[] = Indent::_(4) . "'view' => 'word'"; + $addButton[] = Indent::_(3) . "));"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " check if new item"; + $addButton[] = Indent::_(3) . "\$ref = '';"; + $addButton[] = Indent::_(3) . "\$refJ = '';"; + if ($refLoad) + { + $addButton[] = Indent::_(3) + . "if (!is_null(\$values['id']) && strlen(\$values['view']))"; + $addButton[] = Indent::_(3) . "{"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " only load referral if not new item."; + $addButton[] = Indent::_(4) + . "\$ref = '&ref=' . \$values['view'] . '&refid=' . \$values['id'];"; + $addButton[] = Indent::_(4) + . "\$refJ = '&ref=' . \$values['view'] . '&refid=' . \$values['id'];"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " get the return value."; + $addButton[] = Indent::_(4) + . "\$_uri = (string) JUri::getInstance();"; + $addButton[] = Indent::_(4) + . "\$_return = urlencode(base64_encode(\$_uri));"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " load return value."; + $addButton[] = Indent::_(4) + . "\$ref .= '&return=' . \$_return;"; + $addButton[] = Indent::_(4) + . "\$refJ .= '&return=' . \$_return;"; + $addButton[] = Indent::_(3) . "}"; + } + else + { + $addButton[] = Indent::_(3) + . "if (!is_null(\$values['id']) && strlen(\$values['view']))"; + $addButton[] = Indent::_(3) . "{"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " only load field details if not new item."; + $addButton[] = Indent::_(4) + . "\$ref = '&field=' . \$values['view'] . '&field_id=' . \$values['id'];"; + $addButton[] = Indent::_(4) + . "\$refJ = '&field=' . \$values['view'] . '&field_id=' . \$values['id'];"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " get the return value."; + $addButton[] = Indent::_(4) + . "\$_uri = (string) JUri::getInstance();"; + $addButton[] = Indent::_(4) + . "\$_return = urlencode(base64_encode(\$_uri));"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " load return value."; + $addButton[] = Indent::_(4) + . "\$ref = '&return=' . \$_return;"; + $addButton[] = Indent::_(4) + . "\$refJ = '&return=' . \$_return;"; + $addButton[] = Indent::_(3) . "}"; + } + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " get button label"; + $addButton[] = Indent::_(3) + . "\$button_label = trim(\$button_code_name);"; + $addButton[] = Indent::_(3) + . "\$button_label = preg_replace('/_+/', ' ', \$button_label);"; + $addButton[] = Indent::_(3) + . "\$button_label = preg_replace('/\s+/', ' ', \$button_label);"; + $addButton[] = Indent::_(3) + . "\$button_label = preg_replace(\"/[^A-Za-z ]/\", '', \$button_label);"; + $addButton[] = Indent::_(3) + . "\$button_label = ucfirst(strtolower(\$button_label));"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " get user object"; + $addButton[] = Indent::_(3) . "\$user = JFactory::getUser();"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " only add if user allowed to create " . $fieldData['view']; + // check if the item has permissions. + $addButton[] = Indent::_(3) . "if (\$user->authorise('" + . $this->permission->getGlobal($fieldData['view'], 'core.create') + . "', '" . $component . "') && \$app->isAdmin()) // TODO for now only in admin area."; + $addButton[] = Indent::_(3) . "{"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " build Create button"; + $addButton[] = Indent::_(4) + . "\$button[] = 'config->lang_prefix + . "_CREATE_NEW_S', \$button_label).'\" style=\"border-radius: 0px 4px 4px 0px; padding: 4px 4px 4px 7px;\""; + $addButton[] = Indent::_(5) . "href=\"index.php?option=" + . $fieldData['component'] . "&view=" . $fieldData['view'] + . "&layout=edit'.\$ref.'\" >"; + $addButton[] = Indent::_(5) + . "';"; + $addButton[] = Indent::_(3) . "}"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " only add if user allowed to edit " . $fieldData['view']; + // check if the item has permissions. + $addButton[] = Indent::_(3) . "if (\$user->authorise('" + . $this->permission->getGlobal($fieldData['view'], 'core.edit') + . "', '" . $component . "') && \$app->isAdmin()) // TODO for now only in admin area."; + $addButton[] = Indent::_(3) . "{"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " build edit button"; + $addButton[] = Indent::_(4) + . "\$button[] = 'config->lang_prefix + . "_EDIT_S', \$button_label).'\" style=\"display: none; padding: 4px 4px 4px 7px;\" href=\"#\" >"; + $addButton[] = Indent::_(5) + . "';"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " build script"; + $addButton[] = Indent::_(4) . "\$script[] = \""; + $addButton[] = Indent::_(5) . "jQuery(document).ready(function() {"; + $addButton[] = Indent::_(6) + . "jQuery('#adminForm').on('change', '#jform_\".\$button_code_name.\"',function (e) {"; + $addButton[] = Indent::_(7) . "e.preventDefault();"; + $addButton[] = Indent::_(7) + . "var \".\$button_code_name.\"Value = jQuery('#jform_\".\$button_code_name.\"').val();"; + $addButton[] = Indent::_(7) + . "\".\$button_code_name.\"Button(\".\$button_code_name.\"Value);"; + $addButton[] = Indent::_(6) . "});"; + $addButton[] = Indent::_(6) + . "var \".\$button_code_name.\"Value = jQuery('#jform_\".\$button_code_name.\"').val();"; + $addButton[] = Indent::_(6) + . "\".\$button_code_name.\"Button(\".\$button_code_name.\"Value);"; + $addButton[] = Indent::_(5) . "});"; + $addButton[] = Indent::_(5) + . "function \".\$button_code_name.\"Button(value) {"; + $addButton[] = Indent::_(6) + . "if (value > 0) {"; // TODO not ideal since value may not be an (int) + $addButton[] = Indent::_(7) . "// hide the create button"; + $addButton[] = Indent::_(7) + . "jQuery('#\".\$button_code_name.\"Create').hide();"; + $addButton[] = Indent::_(7) . "// show edit button"; + $addButton[] = Indent::_(7) + . "jQuery('#\".\$button_code_name.\"Edit').show();"; + $addButton[] = Indent::_(7) . "var url = 'index.php?option=" + . $fieldData['component'] . "&view=" . $fieldData['views'] + . "&task=" . $fieldData['view'] + . ".edit&id='+value+'\".\$refJ.\"';"; // TODO this value may not be the ID + $addButton[] = Indent::_(7) + . "jQuery('#\".\$button_code_name.\"Edit').attr('href', url);"; + $addButton[] = Indent::_(6) . "} else {"; + $addButton[] = Indent::_(7) . "// show the create button"; + $addButton[] = Indent::_(7) + . "jQuery('#\".\$button_code_name.\"Create').show();"; + $addButton[] = Indent::_(7) . "// hide edit button"; + $addButton[] = Indent::_(7) + . "jQuery('#\".\$button_code_name.\"Edit').hide();"; + $addButton[] = Indent::_(6) . "}"; + $addButton[] = Indent::_(5) . "}\";"; + $addButton[] = Indent::_(3) . "}"; + $addButton[] = Indent::_(3) . "//" . Line::_(__Line__, __Class__) + . " check if button was created for " . $fieldData['view'] + . " field."; + $addButton[] = Indent::_(3) + . "if (is_array(\$button) && count(\$button) > 0)"; + $addButton[] = Indent::_(3) . "{"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " Load the needed script."; + $addButton[] = Indent::_(4) + . "\$document = JFactory::getDocument();"; + $addButton[] = Indent::_(4) + . "\$document->addScriptDeclaration(implode(' ',\$script));"; + $addButton[] = Indent::_(4) . "//" . Line::_(__Line__, __Class__) + . " return the button attached to input field."; + $addButton[] = Indent::_(4) + . "return '
' .\$html . implode('',\$button).'
';"; + $addButton[] = Indent::_(3) . "}"; + $addButton[] = Indent::_(2) . "}"; + $addButton[] = Indent::_(2) . "return \$html;"; + $addButton[] = Indent::_(1) . "}"; + + return implode(PHP_EOL, $addButton); + } + + return ''; + } \ No newline at end of file diff --git a/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/settings.json b/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/settings.json new file mode 100644 index 0000000..258665d --- /dev/null +++ b/src/c600f58c-3fe2-4d2d-b711-2660eab6effe/settings.json @@ -0,0 +1,55 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "c600f58c-3fe2-4d2d-b711-2660eab6effe", + "implements": null, + "load_selection": null, + "name": "InputButton", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Field.InputButton", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection1": { + "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", + "as": "default" + }, + "use_selection2": { + "use": "7f01622a-74c9-4e67-b111-3eb488035206", + "as": "default" + }, + "use_selection3": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection4": { + "use": "500f3a7f-c16d-4dd4-81b2-2df6776b5388", + "as": "default" + }, + "use_selection5": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + }, + "use_selection6": { + "use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222", + "as": "default" + }, + "use_selection7": { + "use": "0", + "as": "default" + }, + "use_selection8": { + "use": "0", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Field.InputButton", + "description": "Compiler Field Input Button\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/c6c30d66-3106-44eb-9272-b2cf7ec74613/README.md b/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/README.md index 1530b2c..4a8a979 100644 --- a/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/README.md +++ b/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/README.md @@ -15,6 +15,8 @@ class Field #Gold { + register(Container $container) : void + getField(Container $container) : CompilerField + getData(Container $container) : Data + + getGroups(Container $container) : Groups + + getAttributes(Container $container) : Attributes + getValidation(Container $container) : Validation + getJ3CoreValidation(Container $container) : J3CoreValidation + getCoreValidation(Container $container) : CoreValidationInterface @@ -23,6 +25,7 @@ class Field #Gold { + getFieldTypeName(Container $container) : TypeName + getFieldUniqueName(Container $container) : UniqueName + getFieldDatabaseName(Container $container) : DatabaseName + + getInputButton(Container $container) : InputButton } note right of Field::register @@ -46,6 +49,20 @@ note right of Field::getData return: Data end note +note left of Field::getGroups + Get the Compiler Field Groups + + since: 3.2.0 + return: Groups +end note + +note right of Field::getAttributes + Get the Compiler Field Attributes + + since: 3.2.0 + return: Attributes +end note + note left of Field::getValidation Get the Compiler Field Validation @@ -101,6 +118,13 @@ note right of Field::getFieldDatabaseName since: 3.2.0 return: DatabaseName end note + +note left of Field::getInputButton + Get The InputButton Class. + + since: 3.2.0 + return: InputButton +end note @enduml ``` diff --git a/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/code.php b/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/code.php index 5bbd6ac..e3ba24d 100644 --- a/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/code.php +++ b/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/code.php @@ -16,12 +16,15 @@ use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use VDM\Joomla\Componentbuilder\Compiler\Field as CompilerField; use VDM\Joomla\Componentbuilder\Compiler\Field\Data; +use VDM\Joomla\Componentbuilder\Compiler\Field\Groups; +use VDM\Joomla\Componentbuilder\Compiler\Field\Attributes; use VDM\Joomla\Componentbuilder\Compiler\Field\Name; use VDM\Joomla\Componentbuilder\Compiler\Field\TypeName; use VDM\Joomla\Componentbuilder\Compiler\Field\UniqueName; use VDM\Joomla\Componentbuilder\Compiler\Field\Validation; use VDM\Joomla\Componentbuilder\Compiler\Field\Customcode; use VDM\Joomla\Componentbuilder\Compiler\Field\DatabaseName; +use VDM\Joomla\Componentbuilder\Compiler\Field\InputButton; use VDM\Joomla\Componentbuilder\Compiler\Field\JoomlaThree\CoreValidation as J3CoreValidation; use VDM\Joomla\Componentbuilder\Compiler\Interfaces\Field\CoreValidationInterface; @@ -57,6 +60,12 @@ class Field implements ServiceProviderInterface $container->alias(Data::class, 'Field.Data') ->share('Field.Data', [$this, 'getData'], true); + $container->alias(Groups::class, 'Field.Groups') + ->share('Field.Groups', [$this, 'getGroups'], true); + + $container->alias(Attributes::class, 'Field.Attributes') + ->share('Field.Attributes', [$this, 'getAttributes'], true); + $container->alias(Validation::class, 'Field.Validation') ->share('Field.Validation', [$this, 'getValidation'], true); @@ -80,6 +89,9 @@ class Field implements ServiceProviderInterface $container->alias(DatabaseName::class, 'Field.Database.Name') ->share('Field.Database.Name', [$this, 'getFieldDatabaseName'], true); + + $container->alias(InputButton::class, 'Field.Input.Button') + ->share('Field.Input.Button', [$this, 'getInputButton'], true); } /** @@ -121,6 +133,41 @@ class Field implements ServiceProviderInterface ); } + /** + * Get the Compiler Field Groups + * + * @param Container $container The DI container. + * + * @return Groups + * @since 3.2.0 + */ + public function getGroups(Container $container): Groups + { + return new Groups(); + } + + /** + * Get the Compiler Field Attributes + * + * @param Container $container The DI container. + * + * @return Attributes + * @since 3.2.0 + */ + public function getAttributes(Container $container): Attributes + { + return new Attributes( + $container->get('Config'), + $container->get('Registry'), + $container->get('Compiler.Builder.List.Field.Class'), + $container->get('Compiler.Builder.Do.Not.Escape'), + $container->get('Placeholder'), + $container->get('Customcode'), + $container->get('Language'), + $container->get('Field.Groups') + ); + } + /** * Get the Compiler Field Validation * @@ -199,7 +246,7 @@ class Field implements ServiceProviderInterface return new Name( $container->get('Placeholder'), $container->get('Field.Unique.Name'), - $container->get('Registry') + $container->get('Compiler.Builder.Category.Other.Name') ); } @@ -242,9 +289,26 @@ class Field implements ServiceProviderInterface public function getFieldDatabaseName(Container $container): DatabaseName { return new DatabaseName( + $container->get('Compiler.Builder.Lists'), $container->get('Registry') ); } - + + /** + * Get The InputButton Class. + * + * @param Container $container The DI container. + * + * @return InputButton + * @since 3.2.0 + */ + public function getInputButton(Container $container): InputButton + { + return new InputButton( + $container->get('Config'), + $container->get('Placeholder'), + $container->get('Compiler.Creator.Permission') + ); + } } diff --git a/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/code.power b/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/code.power index 37cc1ed..c532ffa 100644 --- a/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/code.power +++ b/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/code.power @@ -22,6 +22,12 @@ $container->alias(Data::class, 'Field.Data') ->share('Field.Data', [$this, 'getData'], true); + $container->alias(Groups::class, 'Field.Groups') + ->share('Field.Groups', [$this, 'getGroups'], true); + + $container->alias(Attributes::class, 'Field.Attributes') + ->share('Field.Attributes', [$this, 'getAttributes'], true); + $container->alias(Validation::class, 'Field.Validation') ->share('Field.Validation', [$this, 'getValidation'], true); @@ -45,6 +51,9 @@ $container->alias(DatabaseName::class, 'Field.Database.Name') ->share('Field.Database.Name', [$this, 'getFieldDatabaseName'], true); + + $container->alias(InputButton::class, 'Field.Input.Button') + ->share('Field.Input.Button', [$this, 'getInputButton'], true); } /** @@ -86,6 +95,41 @@ ); } + /** + * Get the Compiler Field Groups + * + * @param Container $container The DI container. + * + * @return Groups + * @since 3.2.0 + */ + public function getGroups(Container $container): Groups + { + return new Groups(); + } + + /** + * Get the Compiler Field Attributes + * + * @param Container $container The DI container. + * + * @return Attributes + * @since 3.2.0 + */ + public function getAttributes(Container $container): Attributes + { + return new Attributes( + $container->get('Config'), + $container->get('Registry'), + $container->get('Compiler.Builder.List.Field.Class'), + $container->get('Compiler.Builder.Do.Not.Escape'), + $container->get('Placeholder'), + $container->get('Customcode'), + $container->get('Language'), + $container->get('Field.Groups') + ); + } + /** * Get the Compiler Field Validation * @@ -164,7 +208,7 @@ return new Name( $container->get('Placeholder'), $container->get('Field.Unique.Name'), - $container->get('Registry') + $container->get('Compiler.Builder.Category.Other.Name') ); } @@ -207,6 +251,24 @@ public function getFieldDatabaseName(Container $container): DatabaseName { return new DatabaseName( + $container->get('Compiler.Builder.Lists'), $container->get('Registry') ); } + + /** + * Get The InputButton Class. + * + * @param Container $container The DI container. + * + * @return InputButton + * @since 3.2.0 + */ + public function getInputButton(Container $container): InputButton + { + return new InputButton( + $container->get('Config'), + $container->get('Placeholder'), + $container->get('Compiler.Creator.Permission') + ); + } \ No newline at end of file diff --git a/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/settings.json b/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/settings.json index a375595..63bbd13 100644 --- a/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/settings.json +++ b/src/c6c30d66-3106-44eb-9272-b2cf7ec74613/settings.json @@ -21,34 +21,46 @@ "as": "default" }, "use_selection2": { - "use": "9387215f-a965-4421-acf3-5e8f9d11382f", + "use": "12df35ad-2d44-4c4c-a7d5-a3350932a520", "as": "default" }, "use_selection3": { - "use": "eb33420d-359d-44a5-852e-613aef1feaae", + "use": "7f515c18-d019-4d2d-9852-b2dc970985b3", "as": "default" }, "use_selection4": { - "use": "8c018533-e967-4bf2-9bd9-9e92966fcb5e", + "use": "9387215f-a965-4421-acf3-5e8f9d11382f", "as": "default" }, "use_selection5": { - "use": "c871fb4a-4c33-4302-bb79-a9cd7ef4a557", + "use": "eb33420d-359d-44a5-852e-613aef1feaae", "as": "default" }, "use_selection6": { - "use": "a356d103-74f3-49ca-8e4f-3bd37746f089", + "use": "8c018533-e967-4bf2-9bd9-9e92966fcb5e", "as": "default" }, "use_selection7": { - "use": "99368a6f-2f64-4d4e-ad3a-544d4020ecc6", + "use": "c871fb4a-4c33-4302-bb79-a9cd7ef4a557", "as": "default" }, "use_selection8": { + "use": "a356d103-74f3-49ca-8e4f-3bd37746f089", + "as": "default" + }, + "use_selection9": { + "use": "99368a6f-2f64-4d4e-ad3a-544d4020ecc6", + "as": "default" + }, + "use_selection10": { + "use": "c600f58c-3fe2-4d2d-b711-2660eab6effe", + "as": "default" + }, + "use_selection11": { "use": "24da9672-e47f-4bb1-b6c0-0ebfc17f0957", "as": "J3CoreValidation" }, - "use_selection9": { + "use_selection12": { "use": "b9f05dc4-d23a-499a-a826-9749b81818ed", "as": "default" } diff --git a/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/README.md b/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/README.md new file mode 100644 index 0000000..9961565 --- /dev/null +++ b/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class MainTextField (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class MainTextField << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/code.php b/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/code.php new file mode 100644 index 0000000..d67e9b8 --- /dev/null +++ b/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Main Text Field Builder Class + * + * @since 3.2.0 + */ +final class MainTextField extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/code.power b/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/settings.json b/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/settings.json new file mode 100644 index 0000000..8056148 --- /dev/null +++ b/src/c6de9da0-1a73-4c73-b355-7fe02efe4c9d/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "c6de9da0-1a73-4c73-b355-7fe02efe4c9d", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "MainTextField", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.MainTextField", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.MainTextField", + "description": "Main Text Field Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/c72692b0-0a0f-412a-b05b-80002cbf886a/README.md b/src/c72692b0-0a0f-412a-b05b-80002cbf886a/README.md new file mode 100644 index 0000000..8364607 --- /dev/null +++ b/src/c72692b0-0a0f-412a-b05b-80002cbf886a/README.md @@ -0,0 +1,110 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ClassInjector (Details) +> namespace: **VDM\Joomla\Componentbuilder\Power\Generator** +```uml +@startuml +class ClassInjector << (F,LightGreen) >> #RoyalBlue { + # string $version + # array $properties + # array $comments + # array $arguments + # array $assignments + + getCode() : ?string + + setVersion(string $version) : void + + setProperty(string $classname, string $ClassName, ...) : void + + setComment(string $classname, string $ClassName, ...) : void + + setArgument(string $classname, string $ClassName) : void + + setAssignment(string $classname) : void + - getComments() : string + - getArguments() : string +} + +note right of ClassInjector::getCode + Get the generated class code + + since: 3.2.0 + return: ?string +end note + +note left of ClassInjector::setVersion + Set the class since version + + since: 3.2.0 + return: void +end note + +note right of ClassInjector::setProperty + Set the class property + + since: 3.2.0 + return: void + + arguments: + string $classname + string $ClassName + string $description +end note + +note left of ClassInjector::setComment + Set the comment for the constructor parameter. + + since: 3.2.0 + return: void + + arguments: + string $classname + string $ClassName + string $description +end note + +note right of ClassInjector::setArgument + Set the constructor argument. + + since: 3.2.0 + return: void +end note + +note left of ClassInjector::setAssignment + Set the assignment code inside the constructor. + + since: 3.2.0 + return: void +end note + +note right of ClassInjector::getComments + Get the comments for the constructor parameter. + + since: 3.2.0 + return: string +end note + +note left of ClassInjector::getArguments + Format the arguments to ensure they fit within a specified line length. +Arguments are added to the line until the max length is reached. +Then, they are pushed to a new line with appropriate indentation. + + since: 3.2.0 + return: string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/c72692b0-0a0f-412a-b05b-80002cbf886a/code.php b/src/c72692b0-0a0f-412a-b05b-80002cbf886a/code.php new file mode 100644 index 0000000..8f2f419 --- /dev/null +++ b/src/c72692b0-0a0f-412a-b05b-80002cbf886a/code.php @@ -0,0 +1,246 @@ + + * @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\Power\Generator; + + +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; + + +/** + * Power code Generator for the Class Injection of JCB + * + * @since 3.2.0 + */ +final class ClassInjector +{ + /** + * The version + * + * @var string + * @since 3.2.0 + **/ + protected string $version; + + /** + * The properties + * + * @var array + * @since 3.2.0 + **/ + protected array $properties = []; + + /** + * The comments + * + * @var array + * @since 3.2.0 + **/ + protected array $comments = []; + + /** + * The arguments + * + * @var array + * @since 3.2.0 + **/ + protected array $arguments = []; + + /** + * The assignments + * + * @var array + * @since 3.2.0 + **/ + protected array $assignments = []; + + /** + * Get the generated class code + * + * @return string|null + * @since 3.2.0 + */ + public function getCode(): ?string + { + if ($this->properties === []) + { + return null; + } + + $code = []; + + $code[] = implode(PHP_EOL . PHP_EOL, $this->properties) . PHP_EOL; + $code[] = Indent::_(1) . "/**"; + $code[] = Indent::_(1) . " * Constructor."; + $code[] = Indent::_(1) . " *"; + $code[] = $this->getComments(); + $code[] = Indent::_(1) . " *"; + $code[] = Indent::_(1) . " * @since {$this->version}"; + $code[] = Indent::_(1) . " */"; + $code[] = Indent::_(1) . "public function __construct(" . $this->getArguments() . ")"; + $code[] = Indent::_(1) . "{"; + $code[] = implode(PHP_EOL, $this->assignments); + $code[] = Indent::_(1) . "}"; + + $this->properties = []; + $this->comments = []; + $this->arguments = []; + $this->assignments = []; + + return implode(PHP_EOL, $code); + } + + /** + * Set the class since version + * + * @param string $version The variable version format. + * + * @return void + * @since 3.2.0 + */ + public function setVersion(string $version): void + { + $this->version = $version; + } + + /** + * Set the class property + * + * @param string $classname The variable name in lowerCamelCase format. + * @param string $ClassName The type hint in PascalCase format. + * @param string $description The variable description format. + * + * @return void + * @since 3.2.0 + */ + public function setProperty(string $classname, string $ClassName, string $description): void + { + $this->properties[] = implode(PHP_EOL, [ + Indent::_(1) . "/**", + Indent::_(1) . " * {$description}", + Indent::_(1) . " *", + Indent::_(1) . " * @var {$ClassName}", + Indent::_(1) . " * @since {$this->version}", + Indent::_(1) . " */", + Indent::_(1) . "protected {$ClassName} \${$classname};" + ]); + } + + /** + * Set the comment for the constructor parameter. + * + * @param string $classname The variable name in lowerCamelCase format. + * @param string $ClassName The type hint in PascalCase format. + * @param string $description The variable description format. + * + * @return void + * @since 3.2.0 + */ + public function setComment(string $classname, string $ClassName, string $description): void + { + $this->comments[] = [$ClassName, $classname, $description]; + } + + /** + * Set the constructor argument. + * + * @param string $classname The variable name in lowerCamelCase format. + * @param string $ClassName The type hint in PascalCase format. + * + * @return void + * @since 3.2.0 + */ + public function setArgument(string $classname, string $ClassName): void + { + $this->arguments[] = "{$ClassName} \${$classname}"; + } + + /** + * Set the assignment code inside the constructor. + * + * @param string $classname The variable name in lowerCamelCase format. + * + * @return void + * @since 3.2.0 + */ + public function setAssignment(string $classname): void + { + $this->assignments[] = Indent::_(2) . "\$this->{$classname} = \${$classname};"; + } + + /** + * Get the comments for the constructor parameter. + * + * @return string + * @since 3.2.0 + */ + private function getComments(): string + { + $max_lengths = array_reduce($this->comments, function($carry, $comment) { + foreach ($comment as $index => $part) + { + $carry[$index] = max($carry[$index] ?? 0, strlen($part)); + } + return $carry; + }, []); + + $max_lengths[0] = $max_lengths[0] + 2; + $max_lengths[1] = $max_lengths[1] + 2; + + $comments = array_map(function($comment) use ($max_lengths) { + return Indent::_(1) . " * @param " . + str_pad($comment[0], $max_lengths[0]) . " $" . + str_pad($comment[1], $max_lengths[1]) . " " . + $comment[2]; + }, $this->comments); + + return implode(PHP_EOL, $comments); + } + + /** + * Format the arguments to ensure they fit within a specified line length. + * Arguments are added to the line until the max length is reached. + * Then, they are pushed to a new line with appropriate indentation. + * + * @return string Formatted arguments + * @since 3.2.0 + */ + private function getArguments(): string + { + $maxLength = 60; // or any other preferred line length + $lines = []; + $currentLineContent = ''; + + foreach ($this->arguments as $argument) + { + $proposedContent = $currentLineContent ? $currentLineContent . ', ' . $argument : $argument; + + if (strlen($proposedContent) >= $maxLength) + { + $lines[] = $currentLineContent; + $currentLineContent = Indent::_(2) . $argument; + } + else + { + $currentLineContent = $proposedContent; + } + } + + // Append the last line if it has content + if ($currentLineContent) + { + $lines[] = $currentLineContent; + } + + return implode(',' . PHP_EOL, $lines); + } +} + diff --git a/src/c72692b0-0a0f-412a-b05b-80002cbf886a/code.power b/src/c72692b0-0a0f-412a-b05b-80002cbf886a/code.power new file mode 100644 index 0000000..f023e67 --- /dev/null +++ b/src/c72692b0-0a0f-412a-b05b-80002cbf886a/code.power @@ -0,0 +1,220 @@ + /** + * The version + * + * @var string + * @since 3.2.0 + **/ + protected string $version; + + /** + * The properties + * + * @var array + * @since 3.2.0 + **/ + protected array $properties = []; + + /** + * The comments + * + * @var array + * @since 3.2.0 + **/ + protected array $comments = []; + + /** + * The arguments + * + * @var array + * @since 3.2.0 + **/ + protected array $arguments = []; + + /** + * The assignments + * + * @var array + * @since 3.2.0 + **/ + protected array $assignments = []; + + /** + * Get the generated class code + * + * @return string|null + * @since 3.2.0 + */ + public function getCode(): ?string + { + if ($this->properties === []) + { + return null; + } + + $code = []; + + $code[] = implode(PHP_EOL . PHP_EOL, $this->properties) . PHP_EOL; + $code[] = Indent::_(1) . "/**"; + $code[] = Indent::_(1) . " * Constructor."; + $code[] = Indent::_(1) . " *"; + $code[] = $this->getComments(); + $code[] = Indent::_(1) . " *"; + $code[] = Indent::_(1) . " * @since {$this->version}"; + $code[] = Indent::_(1) . " */"; + $code[] = Indent::_(1) . "public function __construct(" . $this->getArguments() . ")"; + $code[] = Indent::_(1) . "{"; + $code[] = implode(PHP_EOL, $this->assignments); + $code[] = Indent::_(1) . "}"; + + $this->properties = []; + $this->comments = []; + $this->arguments = []; + $this->assignments = []; + + return implode(PHP_EOL, $code); + } + + /** + * Set the class since version + * + * @param string $version The variable version format. + * + * @return void + * @since 3.2.0 + */ + public function setVersion(string $version): void + { + $this->version = $version; + } + + /** + * Set the class property + * + * @param string $classname The variable name in lowerCamelCase format. + * @param string $ClassName The type hint in PascalCase format. + * @param string $description The variable description format. + * + * @return void + * @since 3.2.0 + */ + public function setProperty(string $classname, string $ClassName, string $description): void + { + $this->properties[] = implode(PHP_EOL, [ + Indent::_(1) . "/**", + Indent::_(1) . " * {$description}", + Indent::_(1) . " *", + Indent::_(1) . " * @var {$ClassName}", + Indent::_(1) . " * @since {$this->version}", + Indent::_(1) . " */", + Indent::_(1) . "protected {$ClassName} \${$classname};" + ]); + } + + /** + * Set the comment for the constructor parameter. + * + * @param string $classname The variable name in lowerCamelCase format. + * @param string $ClassName The type hint in PascalCase format. + * @param string $description The variable description format. + * + * @return void + * @since 3.2.0 + */ + public function setComment(string $classname, string $ClassName, string $description): void + { + $this->comments[] = [$ClassName, $classname, $description]; + } + + /** + * Set the constructor argument. + * + * @param string $classname The variable name in lowerCamelCase format. + * @param string $ClassName The type hint in PascalCase format. + * + * @return void + * @since 3.2.0 + */ + public function setArgument(string $classname, string $ClassName): void + { + $this->arguments[] = "{$ClassName} \${$classname}"; + } + + /** + * Set the assignment code inside the constructor. + * + * @param string $classname The variable name in lowerCamelCase format. + * + * @return void + * @since 3.2.0 + */ + public function setAssignment(string $classname): void + { + $this->assignments[] = Indent::_(2) . "\$this->{$classname} = \${$classname};"; + } + + /** + * Get the comments for the constructor parameter. + * + * @return string + * @since 3.2.0 + */ + private function getComments(): string + { + $max_lengths = array_reduce($this->comments, function($carry, $comment) { + foreach ($comment as $index => $part) + { + $carry[$index] = max($carry[$index] ?? 0, strlen($part)); + } + return $carry; + }, []); + + $max_lengths[0] = $max_lengths[0] + 2; + $max_lengths[1] = $max_lengths[1] + 2; + + $comments = array_map(function($comment) use ($max_lengths) { + return Indent::_(1) . " * @param " . + str_pad($comment[0], $max_lengths[0]) . " $" . + str_pad($comment[1], $max_lengths[1]) . " " . + $comment[2]; + }, $this->comments); + + return implode(PHP_EOL, $comments); + } + + /** + * Format the arguments to ensure they fit within a specified line length. + * Arguments are added to the line until the max length is reached. + * Then, they are pushed to a new line with appropriate indentation. + * + * @return string Formatted arguments + * @since 3.2.0 + */ + private function getArguments(): string + { + $maxLength = 60; // or any other preferred line length + $lines = []; + $currentLineContent = ''; + + foreach ($this->arguments as $argument) + { + $proposedContent = $currentLineContent ? $currentLineContent . ', ' . $argument : $argument; + + if (strlen($proposedContent) >= $maxLength) + { + $lines[] = $currentLineContent; + $currentLineContent = Indent::_(2) . $argument; + } + else + { + $currentLineContent = $proposedContent; + } + } + + // Append the last line if it has content + if ($currentLineContent) + { + $lines[] = $currentLineContent; + } + + return implode(',' . PHP_EOL, $lines); + } \ No newline at end of file diff --git a/src/c72692b0-0a0f-412a-b05b-80002cbf886a/settings.json b/src/c72692b0-0a0f-412a-b05b-80002cbf886a/settings.json new file mode 100644 index 0000000..6ec3b11 --- /dev/null +++ b/src/c72692b0-0a0f-412a-b05b-80002cbf886a/settings.json @@ -0,0 +1,23 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "c72692b0-0a0f-412a-b05b-80002cbf886a", + "implements": null, + "load_selection": null, + "name": "ClassInjector", + "power_version": "1.0.0", + "system_name": "JCB.Power.Generator.ClassInjector", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Power.Generator.ClassInjector", + "description": "Power code Generator for the Class Injection of JCB\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": "" +} \ No newline at end of file diff --git a/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/README.md b/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/README.md new file mode 100644 index 0000000..22ac9b2 --- /dev/null +++ b/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class GetModule (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class GetModule << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/code.php b/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/code.php new file mode 100644 index 0000000..499b745 --- /dev/null +++ b/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Get Module Builder Class + * + * @since 3.2.0 + */ +final class GetModule extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/code.power b/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/settings.json b/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/settings.json new file mode 100644 index 0000000..1b638df --- /dev/null +++ b/src/c7b6f0d5-ec47-4166-915c-e78d49b4fb63/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "c7b6f0d5-ec47-4166-915c-e78d49b4fb63", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "GetModule", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.GetModule", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.GetModule", + "description": "Get Module Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/README.md b/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/README.md new file mode 100644 index 0000000..f8e8290 --- /dev/null +++ b/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ListFieldClass (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ListFieldClass << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/code.php b/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/code.php new file mode 100644 index 0000000..8584f37 --- /dev/null +++ b/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * List Field Class Builder Class + * + * @since 3.2.0 + */ +final class ListFieldClass extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/code.power b/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/settings.json b/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/settings.json new file mode 100644 index 0000000..ed49546 --- /dev/null +++ b/src/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ListFieldClass", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ListFieldClass", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ListFieldClass", + "description": "List Field Class Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/c902743e-8c6e-4a50-a4a3-8c955ef2960f/README.md b/src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/README.md new file mode 100644 index 0000000..3f938aa --- /dev/null +++ b/src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/README.md @@ -0,0 +1,48 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# interface Fielddynamicinterface (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator** +```uml +@startuml +interface Fielddynamicinterface #Lavender { + + get(array $field, array $view, ...) : mixed +} + +note right of Fielddynamicinterface::get + Get the Dynamic field and build all it needs + + since: 3.2.0 + return: mixed + + arguments: + array $field + array $view + int $viewType + string $langView + string $nameSingleCode + string $nameListCode + array $placeholders + string $dbkey + bool $build +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/code.php b/src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/code.php new file mode 100644 index 0000000..9e954a9 --- /dev/null +++ b/src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/code.php @@ -0,0 +1,41 @@ + + * @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\Compiler\Interfaces\Creator; + + +/** + * Field Creator Interface (needed for the container) + * + * @since 3.2.0 + */ +interface Fielddynamicinterface +{ + /** + * Get the Dynamic field and build all it needs + * + * @param array $field The field data + * @param array $view The view data + * @param int $viewType The view type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The place holder and replace values + * @param string $dbkey The the custom table key + * @param boolean $build The switch to set the build option + * + * @return mixed The complete field + * @since 3.2.0 + */ + public function get(array &$field, array &$view, int &$viewType, string &$langView, string &$nameSingleCode, + string &$nameListCode, array &$placeholders, string &$dbkey, bool $build); +} + diff --git a/src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/code.power b/src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/code.power new file mode 100644 index 0000000..d5c3927 --- /dev/null +++ b/src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/code.power @@ -0,0 +1,18 @@ + /** + * Get the Dynamic field and build all it needs + * + * @param array $field The field data + * @param array $view The view data + * @param int $viewType The view type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The place holder and replace values + * @param string $dbkey The the custom table key + * @param boolean $build The switch to set the build option + * + * @return mixed The complete field + * @since 3.2.0 + */ + public function get(array &$field, array &$view, int &$viewType, string &$langView, string &$nameSingleCode, + string &$nameListCode, array &$placeholders, string &$dbkey, bool $build); \ No newline at end of file diff --git a/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/settings.json b/src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/settings.json similarity index 66% rename from src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/settings.json rename to src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/settings.json index b4148c4..5dfdacb 100644 --- a/src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/settings.json +++ b/src/c902743e-8c6e-4a50-a4a3-8c955ef2960f/settings.json @@ -2,16 +2,16 @@ "add_head": "0", "add_licensing_template": "2", "extends": "0", - "guid": "ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48", + "guid": "c902743e-8c6e-4a50-a4a3-8c955ef2960f", "implements": null, "load_selection": null, - "name": "InsertInterface", + "name": "Fielddynamicinterface", "power_version": "1.0.0", - "system_name": "JCB.Interfaces.InsertInterface", + "system_name": "JCB.Compiler.Interfaces.Creator.Fielddynamicinterf", "type": "interface", "use_selection": null, - "namespace": "VDM\\Joomla\\Componentbuilder.Interfaces.InsertInterface", - "description": "Database Insert Interface\r\n\r\n@since 3.2.0", + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Interfaces.Creator.Fielddynamicinterface", + "description": "Field Creator Interface (needed for the container)\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/caf33c5d-858c-4f9a-894f-ab302ec5445a/code.power b/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/code.power deleted file mode 100644 index 5a394fe..0000000 --- a/src/caf33c5d-858c-4f9a-894f-ab302ec5445a/code.power +++ /dev/null @@ -1,17 +0,0 @@ - /** - * Get any class from the container - * - * @param string $key The container class key - * - * @return Mixed - * @since 3.2.0 - */ - public static function _(string $key); - - /** - * Get the global container - * - * @return Container - * @since 3.2.0 - */ - public static function getContainer(): Container; diff --git a/src/ce0899a9-6271-4fc4-800a-697c122bb112/README.md b/src/ce0899a9-6271-4fc4-800a-697c122bb112/README.md new file mode 100644 index 0000000..bcb1fab --- /dev/null +++ b/src/ce0899a9-6271-4fc4-800a-697c122bb112/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class DatabaseUniqueKeys (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class DatabaseUniqueKeys << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/ce0899a9-6271-4fc4-800a-697c122bb112/code.php b/src/ce0899a9-6271-4fc4-800a-697c122bb112/code.php new file mode 100644 index 0000000..2cbc426 --- /dev/null +++ b/src/ce0899a9-6271-4fc4-800a-697c122bb112/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Database Unique Keys Builder Class + * + * @since 3.2.0 + */ +final class DatabaseUniqueKeys extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/ce0899a9-6271-4fc4-800a-697c122bb112/code.power b/src/ce0899a9-6271-4fc4-800a-697c122bb112/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/ce0899a9-6271-4fc4-800a-697c122bb112/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/ce0899a9-6271-4fc4-800a-697c122bb112/settings.json b/src/ce0899a9-6271-4fc4-800a-697c122bb112/settings.json new file mode 100644 index 0000000..208d1af --- /dev/null +++ b/src/ce0899a9-6271-4fc4-800a-697c122bb112/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "ce0899a9-6271-4fc4-800a-697c122bb112", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "DatabaseUniqueKeys", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.DatabaseUniqueKeys", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.DatabaseUniqueKeys", + "description": "Database Unique Keys Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/cebdcccb-24c5-46db-92de-63453852dcb8/README.md b/src/cebdcccb-24c5-46db-92de-63453852dcb8/README.md index 60f7172..8baabd9 100644 --- a/src/cebdcccb-24c5-46db-92de-63453852dcb8/README.md +++ b/src/cebdcccb-24c5-46db-92de-63453852dcb8/README.md @@ -11,22 +11,24 @@ ```uml @startuml class Adminviews #Gold { - # Adminview $admin - # Registry $registry # Config $config - + __construct(?Adminview $admin = null, ?Registry $registry = null, ...) + # Admin $admin + # SiteEditView $siteeditview + # AdminFilterType $adminfiltertype + + __construct(Config $config, Admin $admin, ...) + set(object $item) : void } note right of Adminviews::__construct - Constructor + Constructor. since: 3.2.0 arguments: - ?Adminview $admin = null - ?Registry $registry = null - ?Config $config = null + Config $config + Admin $admin + SiteEditView $siteeditview + AdminFilterType $adminfiltertype end note note right of Adminviews::set diff --git a/src/cebdcccb-24c5-46db-92de-63453852dcb8/code.php b/src/cebdcccb-24c5-46db-92de-63453852dcb8/code.php index edb322b..73cd0fb 100644 --- a/src/cebdcccb-24c5-46db-92de-63453852dcb8/code.php +++ b/src/cebdcccb-24c5-46db-92de-63453852dcb8/code.php @@ -12,10 +12,10 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Model; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; -use VDM\Joomla\Componentbuilder\Compiler\Adminview\Data as Adminview; -use VDM\Joomla\Componentbuilder\Compiler\Registry; use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Adminview\Data as Admin; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteEditView; +use VDM\Joomla\Componentbuilder\Compiler\Builder\AdminFilterType; use VDM\Joomla\Utilities\JsonHelper; use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ObjectHelper; @@ -29,43 +29,53 @@ use VDM\Joomla\Utilities\ObjectHelper; class Adminviews { /** - * Component Admin view Data + * The Config Class. * - * @var Adminview - * @since 3.2.0 - **/ - protected Adminview $admin; - - /** - * Compiler registry - * - * @var Registry + * @var Config * @since 3.2.0 */ - protected Registry $registry; - - /** - * Compiler Config - * - * @var Config - * @since 3.2.0 - **/ protected Config $config; /** - * Constructor + * The Data Class. * - * @param Adminview|null $admin The admin view data object. - * @param Registry|null $registry The compiler registry object. - * @param Config|null $config The compiler config object. + * @var Admin + * @since 3.2.0 + */ + protected Admin $admin; + + /** + * The SiteEditView Class. + * + * @var SiteEditView + * @since 3.2.0 + */ + protected SiteEditView $siteeditview; + + /** + * The AdminFilterType Class. + * + * @var AdminFilterType + * @since 3.2.0 + */ + protected AdminFilterType $adminfiltertype; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Admin $admin The Data Class. + * @param SiteEditView $siteeditview The SiteEditView Class. + * @param AdminFilterType $adminfiltertype The AdminFilterType Class. * * @since 3.2.0 */ - public function __construct(?Adminview $admin = null, ?Registry $registry = null, ?Config $config = null) + public function __construct(Config $config, Admin $admin, SiteEditView $siteeditview, AdminFilterType $adminfiltertype) { - $this->admin = $admin ?: Compiler::_('Adminview.Data'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->config = $config ?: Compiler::_('Config'); + $this->config = $config; + $this->admin = $admin; + $this->siteeditview = $siteeditview; + $this->adminfiltertype = $adminfiltertype; } /** @@ -92,7 +102,7 @@ class Adminviews $item->addadmin_views, function ($a, $b) { if ($a['order'] != 0 && $b['order'] != 0) { - return $a['order'] - $b['order']; + return $a['order'] <=> $b['order']; } elseif ($b['order'] != 0 && $a['order'] == 0) { @@ -125,11 +135,10 @@ class Adminviews // check if we must add to site if (isset($array['edit_create_site_view']) - && is_numeric( - $array['edit_create_site_view'] - ) && $array['edit_create_site_view'] > 0) + && is_numeric($array['edit_create_site_view']) + && $array['edit_create_site_view'] > 0) { - $this->registry->set('builder.site_edit_view.' . $array['adminview'], true); + $this->siteeditview->set($array['adminview'], true); $this->config->lang_target = 'both'; } @@ -159,17 +168,15 @@ class Adminviews $array['view'] ); - // set the filter option for this view - $this->registry-> // Side (old) [default for now] - set('builder.admin_filter_type.' . $array['settings']->name_list_code, 1); + // set the filter option for this view | Side (old) [default for now] + $this->adminfiltertype->set($array['settings']->name_list_code, 1); if (isset($array['filter']) && is_numeric( $array['filter'] ) && $array['filter'] > 0) { - $this->registry-> - set('builder.admin_filter_type.' . $array['settings']->name_list_code, + $this->adminfiltertype->set($array['settings']->name_list_code, (int) $array['filter']); } @@ -178,7 +185,6 @@ class Adminviews }, array_values($item->addadmin_views) ); } - } - + } } diff --git a/src/cebdcccb-24c5-46db-92de-63453852dcb8/code.power b/src/cebdcccb-24c5-46db-92de-63453852dcb8/code.power index 0cc9452..b184bc0 100644 --- a/src/cebdcccb-24c5-46db-92de-63453852dcb8/code.power +++ b/src/cebdcccb-24c5-46db-92de-63453852dcb8/code.power @@ -1,41 +1,51 @@ /** - * Component Admin view Data + * The Config Class. * - * @var Adminview - * @since 3.2.0 - **/ - protected Adminview $admin; - - /** - * Compiler registry - * - * @var Registry + * @var Config * @since 3.2.0 */ - protected Registry $registry; - - /** - * Compiler Config - * - * @var Config - * @since 3.2.0 - **/ protected Config $config; /** - * Constructor + * The Data Class. * - * @param Adminview|null $admin The admin view data object. - * @param Registry|null $registry The compiler registry object. - * @param Config|null $config The compiler config object. + * @var Admin + * @since 3.2.0 + */ + protected Admin $admin; + + /** + * The SiteEditView Class. + * + * @var SiteEditView + * @since 3.2.0 + */ + protected SiteEditView $siteeditview; + + /** + * The AdminFilterType Class. + * + * @var AdminFilterType + * @since 3.2.0 + */ + protected AdminFilterType $adminfiltertype; + + /** + * Constructor. + * + * @param Config $config The Config Class. + * @param Admin $admin The Data Class. + * @param SiteEditView $siteeditview The SiteEditView Class. + * @param AdminFilterType $adminfiltertype The AdminFilterType Class. * * @since 3.2.0 */ - public function __construct(?Adminview $admin = null, ?Registry $registry = null, ?Config $config = null) + public function __construct(Config $config, Admin $admin, SiteEditView $siteeditview, AdminFilterType $adminfiltertype) { - $this->admin = $admin ?: Compiler::_('Adminview.Data'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->config = $config ?: Compiler::_('Config'); + $this->config = $config; + $this->admin = $admin; + $this->siteeditview = $siteeditview; + $this->adminfiltertype = $adminfiltertype; } /** @@ -62,7 +72,7 @@ $item->addadmin_views, function ($a, $b) { if ($a['order'] != 0 && $b['order'] != 0) { - return $a['order'] - $b['order']; + return $a['order'] <=> $b['order']; } elseif ($b['order'] != 0 && $a['order'] == 0) { @@ -95,11 +105,10 @@ // check if we must add to site if (isset($array['edit_create_site_view']) - && is_numeric( - $array['edit_create_site_view'] - ) && $array['edit_create_site_view'] > 0) + && is_numeric($array['edit_create_site_view']) + && $array['edit_create_site_view'] > 0) { - $this->registry->set('builder.site_edit_view.' . $array['adminview'], true); + $this->siteeditview->set($array['adminview'], true); $this->config->lang_target = 'both'; } @@ -129,17 +138,15 @@ $array['view'] ); - // set the filter option for this view - $this->registry-> // Side (old) [default for now] - set('builder.admin_filter_type.' . $array['settings']->name_list_code, 1); + // set the filter option for this view | Side (old) [default for now] + $this->adminfiltertype->set($array['settings']->name_list_code, 1); if (isset($array['filter']) && is_numeric( $array['filter'] ) && $array['filter'] > 0) { - $this->registry-> - set('builder.admin_filter_type.' . $array['settings']->name_list_code, + $this->adminfiltertype->set($array['settings']->name_list_code, (int) $array['filter']); } @@ -148,4 +155,4 @@ }, array_values($item->addadmin_views) ); } - } + } \ No newline at end of file diff --git a/src/cebdcccb-24c5-46db-92de-63453852dcb8/settings.json b/src/cebdcccb-24c5-46db-92de-63453852dcb8/settings.json index 54bb8b0..7869b12 100644 --- a/src/cebdcccb-24c5-46db-92de-63453852dcb8/settings.json +++ b/src/cebdcccb-24c5-46db-92de-63453852dcb8/settings.json @@ -11,19 +11,19 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" }, "use_selection1": { "use": "cef2815b-f72b-402a-b769-f028f676692d", - "as": "Adminview" + "as": "Admin" }, "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "use": "abdb7d20-a15e-42d8-bd91-7b09514df7f2", "as": "default" }, "use_selection3": { - "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "use": "9481caa2-6d04-4598-8320-543a93927243", "as": "default" }, "use_selection4": { diff --git a/src/cef2815b-f72b-402a-b769-f028f676692d/README.md b/src/cef2815b-f72b-402a-b769-f028f676692d/README.md index 72eefcf..4f9f9b2 100644 --- a/src/cef2815b-f72b-402a-b769-f028f676692d/README.md +++ b/src/cef2815b-f72b-402a-b769-f028f676692d/README.md @@ -11,62 +11,61 @@ ```uml @startuml class Data #Gold { - # array $data # Config $config - # Registry $registry - # EventInterface $event + # Event $event # Placeholder $placeholder # Dispenser $dispenser # Customtabs $customtabs # Tabs $tabs # Fields $fields - # Historyadminview $history + # History $history # Permissions $permissions # Conditions $conditions # Relations $relations # Linkedviews $linkedviews - # Javascriptadminview $javascript - # Cssadminview $css - # Phpadminview $php + # Javascript $javascript + # Css $css + # Php $php # Custombuttons $custombuttons # Customimportscripts $customimportscripts - # Ajaxadmin $ajax + # Ajax $ajax # Customalias $customalias # Sql $sql # Mysqlsettings $mysqlsettings + # SiteEditView $siteeditview # \JDatabaseDriver $db - + __construct(?Config $config = null, ?Registry $registry = null, ...) + + __construct(Config $config, Event $event, ...) + get(int $id) : ?object } note right of Data::__construct - Constructor + Constructor. since: 3.2.0 arguments: - ?Config $config = null - ?Registry $registry = null - ?EventInterface $event = null - ?Placeholder $placeholder = null - ?Dispenser $dispenser = null - ?Customtabs $customtabs = null - ?Tabs $tabs = null - ?Fields $fields = null - ?Historyadminview $history = null - ?Permissions $permissions = null - ?Conditions $conditions = null - Relations $relations = null - ?Linkedviews $linkedviews = null - ?Javascriptadminview $javascript = null - ?Cssadminview $css = null - ?Phpadminview $php = null - ?Custombuttons $custombuttons = null - ?Customimportscripts $customimportscripts = null - ?Ajaxadmin $ajax = null - ?Customalias $customalias = null - ?Sql $sql = null - ?Mysqlsettings $mysqlsettings = null + Config $config + Event $event + Placeholder $placeholder + Dispenser $dispenser + Customtabs $customtabs + Tabs $tabs + Fields $fields + History $history + Permissions $permissions + Conditions $conditions + Relations $relations + Linkedviews $linkedviews + Javascript $javascript + Css $css + Php $php + Custombuttons $custombuttons + Customimportscripts $customimportscripts + Ajax $ajax + Customalias $customalias + Sql $sql + Mysqlsettings $mysqlsettings + SiteEditView $siteeditview ?\JDatabaseDriver $db = null end note diff --git a/src/cef2815b-f72b-402a-b769-f028f676692d/code.php b/src/cef2815b-f72b-402a-b769-f028f676692d/code.php index b71ed54..bda82d8 100644 --- a/src/cef2815b-f72b-402a-b769-f028f676692d/code.php +++ b/src/cef2815b-f72b-402a-b769-f028f676692d/code.php @@ -13,29 +13,28 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Adminview; use Joomla\CMS\Factory; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Registry; -use VDM\Joomla\Componentbuilder\Compiler\Interfaces\EventInterface; +use VDM\Joomla\Componentbuilder\Compiler\Interfaces\EventInterface as Event; use VDM\Joomla\Componentbuilder\Compiler\Placeholder; use VDM\Joomla\Componentbuilder\Compiler\Customcode\Dispenser; use VDM\Joomla\Componentbuilder\Compiler\Model\Customtabs; use VDM\Joomla\Componentbuilder\Compiler\Model\Tabs; use VDM\Joomla\Componentbuilder\Compiler\Model\Fields; -use VDM\Joomla\Componentbuilder\Compiler\Model\Historyadminview; +use VDM\Joomla\Componentbuilder\Compiler\Model\Historyadminview as History; use VDM\Joomla\Componentbuilder\Compiler\Model\Permissions; use VDM\Joomla\Componentbuilder\Compiler\Model\Conditions; use VDM\Joomla\Componentbuilder\Compiler\Model\Relations; use VDM\Joomla\Componentbuilder\Compiler\Model\Linkedviews; -use VDM\Joomla\Componentbuilder\Compiler\Model\Javascriptadminview; -use VDM\Joomla\Componentbuilder\Compiler\Model\Cssadminview; -use VDM\Joomla\Componentbuilder\Compiler\Model\Phpadminview; +use VDM\Joomla\Componentbuilder\Compiler\Model\Javascriptadminview as Javascript; +use VDM\Joomla\Componentbuilder\Compiler\Model\Cssadminview as Css; +use VDM\Joomla\Componentbuilder\Compiler\Model\Phpadminview as Php; use VDM\Joomla\Componentbuilder\Compiler\Model\Custombuttons; use VDM\Joomla\Componentbuilder\Compiler\Model\Customimportscripts; -use VDM\Joomla\Componentbuilder\Compiler\Model\Ajaxadmin; +use VDM\Joomla\Componentbuilder\Compiler\Model\Ajaxadmin as Ajax; use VDM\Joomla\Componentbuilder\Compiler\Model\Customalias; use VDM\Joomla\Componentbuilder\Compiler\Model\Sql; use VDM\Joomla\Componentbuilder\Compiler\Model\Mysqlsettings; +use VDM\Joomla\Componentbuilder\Compiler\Builder\SiteEditView; use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\JsonHelper; use VDM\Joomla\Utilities\ArrayHelper; @@ -49,189 +48,181 @@ use VDM\Joomla\Utilities\ArrayHelper; class Data { /** - * Admin views + * The Config Class. * - * @var array - * @since 3.2.0 - */ - protected array $data; - - /** - * Compiler Config - * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The EventInterface Class. * - * @var Registry + * @var Event * @since 3.2.0 */ - protected Registry $registry; + protected Event $event; /** - * Compiler Event + * The Placeholder Class. * - * @var EventInterface - * @since 3.2.0 - */ - protected EventInterface $event; - - /** - * Compiler Placeholder - * - * @var Placeholder + * @var Placeholder * @since 3.2.0 */ protected Placeholder $placeholder; /** - * Compiler Customcode Dispenser + * The Dispenser Class. * - * @var Dispenser + * @var Dispenser * @since 3.2.0 */ protected Dispenser $dispenser; /** - * The modelling customtabs + * The Customtabs Class. * - * @var Customtabs + * @var Customtabs * @since 3.2.0 */ protected Customtabs $customtabs; /** - * The modelling tabs + * The Tabs Class. * - * @var Tabs + * @var Tabs * @since 3.2.0 */ protected Tabs $tabs; /** - * The modelling fields + * The Fields Class. * - * @var Fields + * @var Fields * @since 3.2.0 */ protected Fields $fields; /** - * The modelling admin view history + * The Historyadminview Class. * - * @var Historyadminview + * @var History * @since 3.2.0 */ - protected Historyadminview $history; + protected History $history; /** - * The modelling permissions + * The Permissions Class. * - * @var Permissions + * @var Permissions * @since 3.2.0 */ protected Permissions $permissions; /** - * The modelling conditions + * The Conditions Class. * - * @var Conditions + * @var Conditions * @since 3.2.0 */ protected Conditions $conditions; /** - * The modelling relations + * The Relations Class. * - * @var Relations + * @var Relations * @since 3.2.0 */ protected Relations $relations; /** - * The modelling linked views + * The Linkedviews Class. * - * @var Linkedviews + * @var Linkedviews * @since 3.2.0 */ protected Linkedviews $linkedviews; /** - * The modelling javascript + * The Javascriptadminview Class. * - * @var Javascriptadminview + * @var Javascript * @since 3.2.0 */ - protected Javascriptadminview $javascript; + protected Javascript $javascript; /** - * The modelling css + * The Cssadminview Class. * - * @var Cssadminview + * @var Css * @since 3.2.0 */ - protected Cssadminview $css; + protected Css $css; /** - * The modelling php admin view + * The Phpadminview Class. * - * @var Phpadminview + * @var Php * @since 3.2.0 */ - protected Phpadminview $php; + protected Php $php; /** - * The modelling custom buttons + * The Custombuttons Class. * - * @var Custombuttons + * @var Custombuttons * @since 3.2.0 */ protected Custombuttons $custombuttons; /** - * The modelling custom import scripts + * The Customimportscripts Class. * - * @var Customimportscripts + * @var Customimportscripts * @since 3.2.0 */ protected Customimportscripts $customimportscripts; /** - * The modelling ajax + * The Ajaxadmin Class. * - * @var Ajaxadmin + * @var Ajax * @since 3.2.0 */ - protected Ajaxadmin $ajax; + protected Ajax $ajax; /** - * The modelling custom alias + * The Customalias Class. * - * @var Customalias + * @var Customalias * @since 3.2.0 */ protected Customalias $customalias; /** - * The modelling sql + * The Sql Class. * - * @var Sql + * @var Sql * @since 3.2.0 */ protected Sql $sql; /** - * The modelling mysql settings + * The Mysqlsettings Class. * - * @var Mysqlsettings + * @var Mysqlsettings * @since 3.2.0 */ protected Mysqlsettings $mysqlsettings; + /** + * The SiteEditView Class. + * + * @var SiteEditView + * @since 3.2.0 + */ + protected SiteEditView $siteeditview; + /** * Database object to query local DB * @@ -241,66 +232,61 @@ class Data protected \JDatabaseDriver $db; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param EventInterface|null $event The compiler event api object. - * @param Placeholder|null $placeholder The compiler placeholder object. - * @param Dispenser|null $dispenser The compiler customcode dispenser object. - * @param Customtabs|null $customtabs The modelling customtabs object. - * @param Tabs|null $tabs The modelling tabs object. - * @param Fields|null $fields The modelling fields object. - * @param Historyadminview|null $history The modelling admin view history object. - * @param Permissions|null $permissions The modelling permissions object. - * @param Conditions|null $conditions The modelling conditions object. - * @param Relations|null $relations The modelling relations object. - * @param Linkedviews|null $linkedviews The modelling linked views object. - * @param Javascriptadminview|null $javascript The modelling javascript object. - * @param Cssadminview|null $css The modelling css object. - * @param Phpadminview|null $php The modelling php admin view object. - * @param Custombuttons|null $custombuttons The modelling custom buttons object. - * @param Customimportscripts|null $customimportscripts The modelling custom import scripts object. - * @param Ajaxadmin|null $ajax The modelling ajax object. - * @param Customalias|null $customalias The modelling custom alias object. - * @param Sql|null $sql The modelling sql object. - * @param Mysqlsettings|null $mysqlsettings The modelling mysql settings object. - * @param \JDatabaseDriver|null $db The database object. + * @param Config $config The Config Class. + * @param Event $event The EventInterface Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Dispenser $dispenser The Dispenser Class. + * @param Customtabs $customtabs The Customtabs Class. + * @param Tabs $tabs The Tabs Class. + * @param Fields $fields The Fields Class. + * @param History $history The Historyadminview Class. + * @param Permissions $permissions The Permissions Class. + * @param Conditions $conditions The Conditions Class. + * @param Relations $relations The Relations Class. + * @param Linkedviews $linkedviews The Linkedviews Class. + * @param Javascript $javascript The Javascriptadminview Class. + * @param Css $css The Cssadminview Class. + * @param Php $php The Phpadminview Class. + * @param Custombuttons $custombuttons The Custombuttons Class. + * @param Customimportscripts $customimportscripts The Customimportscripts Class. + * @param Ajax $ajax The Ajaxadmin Class. + * @param Customalias $customalias The Customalias Class. + * @param Sql $sql The Sql Class. + * @param Mysqlsettings $mysqlsettings The Mysqlsettings Class. + * @param SiteEditView $siteeditview The SiteEditView Class. + * @param \JDatabaseDriver|null $db The Database Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, - ?EventInterface $event = null, ?Placeholder $placeholder = null, ?Dispenser $dispenser = null, - ?Customtabs $customtabs = null, ?Tabs $tabs = null, ?Fields $fields = null, - ?Historyadminview $history = null, ?Permissions $permissions = null, - ?Conditions $conditions = null, Relations $relations = null, ?Linkedviews $linkedviews = null, - ?Javascriptadminview $javascript = null, ?Cssadminview $css = null, ?Phpadminview $php = null, - ?Custombuttons $custombuttons = null, ?Customimportscripts $customimportscripts = null, - ?Ajaxadmin $ajax = null, ?Customalias $customalias = null, ?Sql $sql = null, - ?Mysqlsettings $mysqlsettings = null, ?\JDatabaseDriver $db = null) + public function __construct(Config $config, Event $event, Placeholder $placeholder, Dispenser $dispenser, Customtabs $customtabs, Tabs $tabs, Fields $fields, + History $history, Permissions $permissions, Conditions $conditions, Relations $relations, Linkedviews $linkedviews, Javascript $javascript, + Css $css, Php $php, Custombuttons $custombuttons, Customimportscripts $customimportscripts, Ajax $ajax, Customalias $customalias, Sql $sql, + Mysqlsettings $mysqlsettings, SiteEditView $siteeditview, ?\JDatabaseDriver $db = null) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->event = $event ?: Compiler::_('Event'); - $this->placeholder = $placeholder ?: Compiler::_('Placeholder'); - $this->dispenser = $dispenser ?: Compiler::_('Customcode.Dispenser'); - $this->customtabs = $customtabs ?: Compiler::_('Model.Customtabs'); - $this->tabs = $tabs ?: Compiler::_('Model.Tabs'); - $this->fields = $fields ?: Compiler::_('Model.Fields'); - $this->history = $history ?: Compiler::_('Model.Historyadminview'); - $this->permissions = $permissions ?: Compiler::_('Model.Permissions'); - $this->conditions = $conditions ?: Compiler::_('Model.Conditions'); - $this->relations = $relations ?: Compiler::_('Model.Relations'); - $this->linkedviews = $linkedviews ?: Compiler::_('Model.Linkedviews'); - $this->javascript = $javascript ?: Compiler::_('Model.Javascriptadminview'); - $this->css = $css ?: Compiler::_('Model.Cssadminview'); - $this->php = $php ?: Compiler::_('Model.Phpadminview'); - $this->custombuttons = $custombuttons ?: Compiler::_('Model.Custombuttons'); - $this->customimportscripts = $customimportscripts ?: Compiler::_('Model.Customimportscripts'); - $this->ajax = $ajax ?: Compiler::_('Model.Ajaxadmin'); - $this->customalias = $customalias ?: Compiler::_('Model.Customalias'); - $this->sql = $sql ?: Compiler::_('Model.Sql'); - $this->mysqlsettings = $mysqlsettings ?: Compiler::_('Model.Mysqlsettings'); + $this->config = $config; + $this->event = $event; + $this->placeholder = $placeholder; + $this->dispenser = $dispenser; + $this->customtabs = $customtabs; + $this->tabs = $tabs; + $this->fields = $fields; + $this->history = $history; + $this->permissions = $permissions; + $this->conditions = $conditions; + $this->relations = $relations; + $this->linkedviews = $linkedviews; + $this->javascript = $javascript; + $this->css = $css; + $this->php = $php; + $this->custombuttons = $custombuttons; + $this->customimportscripts = $customimportscripts; + $this->ajax = $ajax; + $this->customalias = $customalias; + $this->sql = $sql; + $this->mysqlsettings = $mysqlsettings; + $this->siteeditview = $siteeditview; $this->db = $db ?: Factory::getDbo(); } @@ -484,7 +470,7 @@ class Data // set the lang target $this->config->lang_target = 'admin'; - if ($this->registry->get('builder.site_edit_view.' . $id, false)) + if ($this->siteeditview->exists($id)) { $this->config->lang_target = 'both'; } @@ -539,7 +525,6 @@ class Data // return the found view data return $this->data[$id]; - } - + } } diff --git a/src/cef2815b-f72b-402a-b769-f028f676692d/code.power b/src/cef2815b-f72b-402a-b769-f028f676692d/code.power index ba94cf1..d328554 100644 --- a/src/cef2815b-f72b-402a-b769-f028f676692d/code.power +++ b/src/cef2815b-f72b-402a-b769-f028f676692d/code.power @@ -1,187 +1,179 @@ /** - * Admin views + * The Config Class. * - * @var array - * @since 3.2.0 - */ - protected array $data; - - /** - * Compiler Config - * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The EventInterface Class. * - * @var Registry + * @var Event * @since 3.2.0 */ - protected Registry $registry; + protected Event $event; /** - * Compiler Event + * The Placeholder Class. * - * @var EventInterface - * @since 3.2.0 - */ - protected EventInterface $event; - - /** - * Compiler Placeholder - * - * @var Placeholder + * @var Placeholder * @since 3.2.0 */ protected Placeholder $placeholder; /** - * Compiler Customcode Dispenser + * The Dispenser Class. * - * @var Dispenser + * @var Dispenser * @since 3.2.0 */ protected Dispenser $dispenser; /** - * The modelling customtabs + * The Customtabs Class. * - * @var Customtabs + * @var Customtabs * @since 3.2.0 */ protected Customtabs $customtabs; /** - * The modelling tabs + * The Tabs Class. * - * @var Tabs + * @var Tabs * @since 3.2.0 */ protected Tabs $tabs; /** - * The modelling fields + * The Fields Class. * - * @var Fields + * @var Fields * @since 3.2.0 */ protected Fields $fields; /** - * The modelling admin view history + * The Historyadminview Class. * - * @var Historyadminview + * @var History * @since 3.2.0 */ - protected Historyadminview $history; + protected History $history; /** - * The modelling permissions + * The Permissions Class. * - * @var Permissions + * @var Permissions * @since 3.2.0 */ protected Permissions $permissions; /** - * The modelling conditions + * The Conditions Class. * - * @var Conditions + * @var Conditions * @since 3.2.0 */ protected Conditions $conditions; /** - * The modelling relations + * The Relations Class. * - * @var Relations + * @var Relations * @since 3.2.0 */ protected Relations $relations; /** - * The modelling linked views + * The Linkedviews Class. * - * @var Linkedviews + * @var Linkedviews * @since 3.2.0 */ protected Linkedviews $linkedviews; /** - * The modelling javascript + * The Javascriptadminview Class. * - * @var Javascriptadminview + * @var Javascript * @since 3.2.0 */ - protected Javascriptadminview $javascript; + protected Javascript $javascript; /** - * The modelling css + * The Cssadminview Class. * - * @var Cssadminview + * @var Css * @since 3.2.0 */ - protected Cssadminview $css; + protected Css $css; /** - * The modelling php admin view + * The Phpadminview Class. * - * @var Phpadminview + * @var Php * @since 3.2.0 */ - protected Phpadminview $php; + protected Php $php; /** - * The modelling custom buttons + * The Custombuttons Class. * - * @var Custombuttons + * @var Custombuttons * @since 3.2.0 */ protected Custombuttons $custombuttons; /** - * The modelling custom import scripts + * The Customimportscripts Class. * - * @var Customimportscripts + * @var Customimportscripts * @since 3.2.0 */ protected Customimportscripts $customimportscripts; /** - * The modelling ajax + * The Ajaxadmin Class. * - * @var Ajaxadmin + * @var Ajax * @since 3.2.0 */ - protected Ajaxadmin $ajax; + protected Ajax $ajax; /** - * The modelling custom alias + * The Customalias Class. * - * @var Customalias + * @var Customalias * @since 3.2.0 */ protected Customalias $customalias; /** - * The modelling sql + * The Sql Class. * - * @var Sql + * @var Sql * @since 3.2.0 */ protected Sql $sql; /** - * The modelling mysql settings + * The Mysqlsettings Class. * - * @var Mysqlsettings + * @var Mysqlsettings * @since 3.2.0 */ protected Mysqlsettings $mysqlsettings; + /** + * The SiteEditView Class. + * + * @var SiteEditView + * @since 3.2.0 + */ + protected SiteEditView $siteeditview; + /** * Database object to query local DB * @@ -191,66 +183,61 @@ protected \JDatabaseDriver $db; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param EventInterface|null $event The compiler event api object. - * @param Placeholder|null $placeholder The compiler placeholder object. - * @param Dispenser|null $dispenser The compiler customcode dispenser object. - * @param Customtabs|null $customtabs The modelling customtabs object. - * @param Tabs|null $tabs The modelling tabs object. - * @param Fields|null $fields The modelling fields object. - * @param Historyadminview|null $history The modelling admin view history object. - * @param Permissions|null $permissions The modelling permissions object. - * @param Conditions|null $conditions The modelling conditions object. - * @param Relations|null $relations The modelling relations object. - * @param Linkedviews|null $linkedviews The modelling linked views object. - * @param Javascriptadminview|null $javascript The modelling javascript object. - * @param Cssadminview|null $css The modelling css object. - * @param Phpadminview|null $php The modelling php admin view object. - * @param Custombuttons|null $custombuttons The modelling custom buttons object. - * @param Customimportscripts|null $customimportscripts The modelling custom import scripts object. - * @param Ajaxadmin|null $ajax The modelling ajax object. - * @param Customalias|null $customalias The modelling custom alias object. - * @param Sql|null $sql The modelling sql object. - * @param Mysqlsettings|null $mysqlsettings The modelling mysql settings object. - * @param \JDatabaseDriver|null $db The database object. + * @param Config $config The Config Class. + * @param Event $event The EventInterface Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Dispenser $dispenser The Dispenser Class. + * @param Customtabs $customtabs The Customtabs Class. + * @param Tabs $tabs The Tabs Class. + * @param Fields $fields The Fields Class. + * @param History $history The Historyadminview Class. + * @param Permissions $permissions The Permissions Class. + * @param Conditions $conditions The Conditions Class. + * @param Relations $relations The Relations Class. + * @param Linkedviews $linkedviews The Linkedviews Class. + * @param Javascript $javascript The Javascriptadminview Class. + * @param Css $css The Cssadminview Class. + * @param Php $php The Phpadminview Class. + * @param Custombuttons $custombuttons The Custombuttons Class. + * @param Customimportscripts $customimportscripts The Customimportscripts Class. + * @param Ajax $ajax The Ajaxadmin Class. + * @param Customalias $customalias The Customalias Class. + * @param Sql $sql The Sql Class. + * @param Mysqlsettings $mysqlsettings The Mysqlsettings Class. + * @param SiteEditView $siteeditview The SiteEditView Class. + * @param \JDatabaseDriver|null $db The Database Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, - ?EventInterface $event = null, ?Placeholder $placeholder = null, ?Dispenser $dispenser = null, - ?Customtabs $customtabs = null, ?Tabs $tabs = null, ?Fields $fields = null, - ?Historyadminview $history = null, ?Permissions $permissions = null, - ?Conditions $conditions = null, Relations $relations = null, ?Linkedviews $linkedviews = null, - ?Javascriptadminview $javascript = null, ?Cssadminview $css = null, ?Phpadminview $php = null, - ?Custombuttons $custombuttons = null, ?Customimportscripts $customimportscripts = null, - ?Ajaxadmin $ajax = null, ?Customalias $customalias = null, ?Sql $sql = null, - ?Mysqlsettings $mysqlsettings = null, ?\JDatabaseDriver $db = null) + public function __construct(Config $config, Event $event, Placeholder $placeholder, Dispenser $dispenser, Customtabs $customtabs, Tabs $tabs, Fields $fields, + History $history, Permissions $permissions, Conditions $conditions, Relations $relations, Linkedviews $linkedviews, Javascript $javascript, + Css $css, Php $php, Custombuttons $custombuttons, Customimportscripts $customimportscripts, Ajax $ajax, Customalias $customalias, Sql $sql, + Mysqlsettings $mysqlsettings, SiteEditView $siteeditview, ?\JDatabaseDriver $db = null) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->event = $event ?: Compiler::_('Event'); - $this->placeholder = $placeholder ?: Compiler::_('Placeholder'); - $this->dispenser = $dispenser ?: Compiler::_('Customcode.Dispenser'); - $this->customtabs = $customtabs ?: Compiler::_('Model.Customtabs'); - $this->tabs = $tabs ?: Compiler::_('Model.Tabs'); - $this->fields = $fields ?: Compiler::_('Model.Fields'); - $this->history = $history ?: Compiler::_('Model.Historyadminview'); - $this->permissions = $permissions ?: Compiler::_('Model.Permissions'); - $this->conditions = $conditions ?: Compiler::_('Model.Conditions'); - $this->relations = $relations ?: Compiler::_('Model.Relations'); - $this->linkedviews = $linkedviews ?: Compiler::_('Model.Linkedviews'); - $this->javascript = $javascript ?: Compiler::_('Model.Javascriptadminview'); - $this->css = $css ?: Compiler::_('Model.Cssadminview'); - $this->php = $php ?: Compiler::_('Model.Phpadminview'); - $this->custombuttons = $custombuttons ?: Compiler::_('Model.Custombuttons'); - $this->customimportscripts = $customimportscripts ?: Compiler::_('Model.Customimportscripts'); - $this->ajax = $ajax ?: Compiler::_('Model.Ajaxadmin'); - $this->customalias = $customalias ?: Compiler::_('Model.Customalias'); - $this->sql = $sql ?: Compiler::_('Model.Sql'); - $this->mysqlsettings = $mysqlsettings ?: Compiler::_('Model.Mysqlsettings'); + $this->config = $config; + $this->event = $event; + $this->placeholder = $placeholder; + $this->dispenser = $dispenser; + $this->customtabs = $customtabs; + $this->tabs = $tabs; + $this->fields = $fields; + $this->history = $history; + $this->permissions = $permissions; + $this->conditions = $conditions; + $this->relations = $relations; + $this->linkedviews = $linkedviews; + $this->javascript = $javascript; + $this->css = $css; + $this->php = $php; + $this->custombuttons = $custombuttons; + $this->customimportscripts = $customimportscripts; + $this->ajax = $ajax; + $this->customalias = $customalias; + $this->sql = $sql; + $this->mysqlsettings = $mysqlsettings; + $this->siteeditview = $siteeditview; $this->db = $db ?: Factory::getDbo(); } @@ -434,7 +421,7 @@ // set the lang target $this->config->lang_target = 'admin'; - if ($this->registry->get('builder.site_edit_view.' . $id, false)) + if ($this->siteeditview->exists($id)) { $this->config->lang_target = 'both'; } @@ -489,4 +476,4 @@ // return the found view data return $this->data[$id]; - } + } \ No newline at end of file diff --git a/src/cef2815b-f72b-402a-b769-f028f676692d/settings.json b/src/cef2815b-f72b-402a-b769-f028f676692d/settings.json index 7a0c6c0..efe1c5f 100644 --- a/src/cef2815b-f72b-402a-b769-f028f676692d/settings.json +++ b/src/cef2815b-f72b-402a-b769-f028f676692d/settings.json @@ -11,97 +11,93 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, - "use_selection1": { "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", "as": "default" }, "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", - "as": "default" + "use": "20ed72b0-fcac-4344-aee1-8a65e3bf221d", + "as": "Event" }, "use_selection3": { - "use": "20ed72b0-fcac-4344-aee1-8a65e3bf221d", - "as": "default" - }, - "use_selection4": { "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", "as": "default" }, - "use_selection5": { + "use_selection4": { "use": "f1dc6430-fb54-452e-aa53-ce32ae93db88", "as": "default" }, - "use_selection6": { + "use_selection5": { "use": "fa8c1125-d370-4cb6-a7ff-eb32193c198c", "as": "default" }, - "use_selection7": { + "use_selection6": { "use": "143ac6ea-b64f-4331-9a97-31e3fce2bb69", "as": "default" }, - "use_selection8": { + "use_selection7": { "use": "e6a64c41-405e-4bbc-9722-27402c22bbea", "as": "default" }, - "use_selection9": { + "use_selection8": { "use": "6dfbf568-f3cd-4ea7-af04-6859447b5462", - "as": "default" + "as": "History" }, - "use_selection10": { + "use_selection9": { "use": "0dabc67c-abec-4541-82bf-279abd3c9be1", "as": "default" }, - "use_selection11": { + "use_selection10": { "use": "55e61314-ba10-4e2b-92dd-b44adebabce9", "as": "default" }, - "use_selection12": { + "use_selection11": { "use": "a8eb2fb1-88ed-4af8-842d-898eb915b588", "as": "default" }, - "use_selection13": { + "use_selection12": { "use": "ae1fa148-91be-4f80-89a9-69d91ba9d575", "as": "default" }, - "use_selection14": { + "use_selection13": { "use": "dfd3c893-0296-46eb-9ae4-a0348713cd8f", - "as": "default" + "as": "Javascript" + }, + "use_selection14": { + "use": "e79842d3-51b7-4282-93c7-3487cd8b61ab", + "as": "Css" }, "use_selection15": { - "use": "e79842d3-51b7-4282-93c7-3487cd8b61ab", - "as": "default" + "use": "c20a63e0-0eeb-4424-9d08-b1bf0f049dfe", + "as": "Php" }, "use_selection16": { - "use": "c20a63e0-0eeb-4424-9d08-b1bf0f049dfe", - "as": "default" - }, - "use_selection17": { "use": "ebe3287d-bfa0-4519-b663-f442f4dea432", "as": "default" }, - "use_selection18": { + "use_selection17": { "use": "037c7274-fb16-455d-989a-bf1da022620b", "as": "default" }, - "use_selection19": { + "use_selection18": { "use": "4f575bd6-de97-41f8-80d6-259c8a6dd9ad", - "as": "default" + "as": "Ajax" }, - "use_selection20": { + "use_selection19": { "use": "5f8e8fa6-3793-44af-882d-9cfb209434e9", "as": "default" }, - "use_selection21": { + "use_selection20": { "use": "d4b418a7-bf9b-4768-969d-e07c36916fd2", "as": "default" }, - "use_selection22": { + "use_selection21": { "use": "35191b0c-f7f3-44d6-8ec1-c816b997bd4e", "as": "default" }, + "use_selection22": { + "use": "abdb7d20-a15e-42d8-bd91-7b09514df7f2", + "as": "default" + }, "use_selection23": { "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", "as": "default" diff --git a/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/README.md b/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/README.md index 7d209ba..3950edc 100644 --- a/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/README.md +++ b/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/README.md @@ -6,11 +6,11 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Dashboard (Details) +# final class Dashboard (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler\Component** ```uml @startuml -class Dashboard #Gold { +class Dashboard << (F,LightGreen) >> #RoyalBlue { # Registry $registry # Component $component # CMSApplication $app diff --git a/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/code.php b/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/code.php index 80ff344..12a0ba2 100644 --- a/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/code.php +++ b/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/code.php @@ -27,7 +27,7 @@ use VDM\Joomla\Utilities\ArrayHelper; * * @since 3.2.0 */ -class Dashboard +final class Dashboard { /** * The compiler registry @@ -207,7 +207,6 @@ class Dashboard $this->component->remove('php_dashboard_methods'); } } - } - + } } diff --git a/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/code.power b/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/code.power index c1bca51..4287057 100644 --- a/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/code.power +++ b/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/code.power @@ -176,4 +176,4 @@ $this->component->remove('php_dashboard_methods'); } } - } + } \ No newline at end of file diff --git a/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/settings.json b/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/settings.json index c9f38af..78336cc 100644 --- a/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/settings.json +++ b/src/cfe62a32-8818-4bfb-8751-2f1e109b5336/settings.json @@ -8,7 +8,7 @@ "name": "Dashboard", "power_version": "1.0.0", "system_name": "JCB.Compiler.Component.Dashboard", - "type": "class", + "type": "final class", "use_selection": { "use_selection0": { "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", diff --git a/src/d33b9278-c409-4aec-a047-b72f56712391/README.md b/src/d33b9278-c409-4aec-a047-b72f56712391/README.md index a32d6dd..ef9773f 100644 --- a/src/d33b9278-c409-4aec-a047-b72f56712391/README.md +++ b/src/d33b9278-c409-4aec-a047-b72f56712391/README.md @@ -15,9 +15,9 @@ class Extractor #Gold { + array $langMismatch + array $langMatch # Config $config - # Placeholder $placeholder # Language $language - + __construct(?Config $config = null, ?Language $language = null, ...) + # Placeholder $placeholder + + __construct(Config $config, Language $language, ...) + engine(string $content) : string } @@ -27,9 +27,9 @@ note right of Extractor::__construct since: 3.2.0 arguments: - ?Config $config = null - ?Language $language = null - ?Placeholder $placeholder = null + Config $config + Language $language + Placeholder $placeholder end note note right of Extractor::engine diff --git a/src/d33b9278-c409-4aec-a047-b72f56712391/code.php b/src/d33b9278-c409-4aec-a047-b72f56712391/code.php index 6d47abc..567e9af 100644 --- a/src/d33b9278-c409-4aec-a047-b72f56712391/code.php +++ b/src/d33b9278-c409-4aec-a047-b72f56712391/code.php @@ -12,13 +12,12 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Language; +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Compiler\Language; +use VDM\Joomla\Componentbuilder\Compiler\Placeholder; use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\GetHelper; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; -use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Placeholder; -use VDM\Joomla\Componentbuilder\Compiler\Language; /** @@ -53,43 +52,44 @@ class Extractor public array $langMatch = []; /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 - **/ + */ protected Config $config; /** - * Compiler Placeholder + * The Language Class. * - * @var Placeholder + * @var Language * @since 3.2.0 - **/ - protected Placeholder $placeholder; + */ + protected Language $language; /** - * Compiler Language + * The Placeholder Class. * - * @var Language + * @var Placeholder * @since 3.2.0 - **/ - protected Language $language; + */ + protected Placeholder $placeholder; /** * Constructor. * - * @param Config|null $config The compiler config object. - * @param Language|null $language The compiler Language object. - * @param Placeholder|null $placeholder The compiler placeholder object. + * @param Config $config The Config Class. + * @param Language $language The Language Class. + * @param Placeholder $placeholder The Placeholder Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Language $language = null, ?Placeholder $placeholder = null) + public function __construct(Config $config, Language $language, + Placeholder $placeholder) { - $this->config = $config ?: Compiler::_('Config'); - $this->language = $language ?: Compiler::_('Language'); - $this->placeholder = $placeholder ?: Compiler::_('Placeholder'); + $this->config = $config; + $this->language = $language; + $this->placeholder = $placeholder; } /** @@ -241,7 +241,6 @@ class Extractor } return $content; - } - + } } diff --git a/src/d33b9278-c409-4aec-a047-b72f56712391/code.power b/src/d33b9278-c409-4aec-a047-b72f56712391/code.power index 8084592..37f04b1 100644 --- a/src/d33b9278-c409-4aec-a047-b72f56712391/code.power +++ b/src/d33b9278-c409-4aec-a047-b72f56712391/code.power @@ -23,43 +23,44 @@ public array $langMatch = []; /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 - **/ + */ protected Config $config; /** - * Compiler Placeholder + * The Language Class. * - * @var Placeholder + * @var Language * @since 3.2.0 - **/ - protected Placeholder $placeholder; + */ + protected Language $language; /** - * Compiler Language + * The Placeholder Class. * - * @var Language + * @var Placeholder * @since 3.2.0 - **/ - protected Language $language; + */ + protected Placeholder $placeholder; /** * Constructor. * - * @param Config|null $config The compiler config object. - * @param Language|null $language The compiler Language object. - * @param Placeholder|null $placeholder The compiler placeholder object. + * @param Config $config The Config Class. + * @param Language $language The Language Class. + * @param Placeholder $placeholder The Placeholder Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Language $language = null, ?Placeholder $placeholder = null) + public function __construct(Config $config, Language $language, + Placeholder $placeholder) { - $this->config = $config ?: Compiler::_('Config'); - $this->language = $language ?: Compiler::_('Language'); - $this->placeholder = $placeholder ?: Compiler::_('Placeholder'); + $this->config = $config; + $this->language = $language; + $this->placeholder = $placeholder; } /** @@ -211,4 +212,4 @@ } return $content; - } + } \ No newline at end of file diff --git a/src/d33b9278-c409-4aec-a047-b72f56712391/settings.json b/src/d33b9278-c409-4aec-a047-b72f56712391/settings.json index afd3a30..ff1cdd6 100644 --- a/src/d33b9278-c409-4aec-a047-b72f56712391/settings.json +++ b/src/d33b9278-c409-4aec-a047-b72f56712391/settings.json @@ -11,31 +11,27 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", - "as": "default" - }, - "use_selection1": { - "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", - "as": "default" - }, - "use_selection2": { - "use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc", - "as": "default" - }, - "use_selection3": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, - "use_selection4": { "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", "as": "default" }, - "use_selection5": { + "use_selection1": { + "use": "8eee7df5-2775-41a9-9372-c46c5939a252", + "as": "default" + }, + "use_selection2": { "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", "as": "default" }, - "use_selection6": { - "use": "8eee7df5-2775-41a9-9372-c46c5939a252", + "use_selection3": { + "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", + "as": "default" + }, + "use_selection4": { + "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", + "as": "default" + }, + "use_selection5": { + "use": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc", "as": "default" } }, diff --git a/src/d393c946-4481-43fa-b737-449119dd0a63/README.md b/src/d393c946-4481-43fa-b737-449119dd0a63/README.md new file mode 100644 index 0000000..d9177f7 --- /dev/null +++ b/src/d393c946-4481-43fa-b737-449119dd0a63/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class SiteFieldDecodeFilter (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class SiteFieldDecodeFilter << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/d393c946-4481-43fa-b737-449119dd0a63/code.php b/src/d393c946-4481-43fa-b737-449119dd0a63/code.php new file mode 100644 index 0000000..f651e67 --- /dev/null +++ b/src/d393c946-4481-43fa-b737-449119dd0a63/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Site Field Decode Filter Builder Class + * + * @since 3.2.0 + */ +final class SiteFieldDecodeFilter extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/d393c946-4481-43fa-b737-449119dd0a63/code.power b/src/d393c946-4481-43fa-b737-449119dd0a63/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/d393c946-4481-43fa-b737-449119dd0a63/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/d393c946-4481-43fa-b737-449119dd0a63/settings.json b/src/d393c946-4481-43fa-b737-449119dd0a63/settings.json new file mode 100644 index 0000000..d8b60d6 --- /dev/null +++ b/src/d393c946-4481-43fa-b737-449119dd0a63/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "d393c946-4481-43fa-b737-449119dd0a63", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "SiteFieldDecodeFilter", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.SiteFieldDecodeFilter", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.SiteFieldDecodeFilter", + "description": "Site Field Decode Filter Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/d44f3294-6b68-4d85-a617-15fb772b7d14/README.md b/src/d44f3294-6b68-4d85-a617-15fb772b7d14/README.md new file mode 100644 index 0000000..7ddf868 --- /dev/null +++ b/src/d44f3294-6b68-4d85-a617-15fb772b7d14/README.md @@ -0,0 +1,43 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# interface Fieldsetinterface (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Interfaces\Creator** +```uml +@startuml +interface Fieldsetinterface #Lavender { + + get(array $view, string $component, ...) : string +} + +note right of Fieldsetinterface::get + Get a fieldset + + since: 3.2.0 + return: string + + arguments: + array $view + string $component + string $nameSingleCode + string $nameListCode +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/d44f3294-6b68-4d85-a617-15fb772b7d14/code.php b/src/d44f3294-6b68-4d85-a617-15fb772b7d14/code.php new file mode 100644 index 0000000..7a8c06d --- /dev/null +++ b/src/d44f3294-6b68-4d85-a617-15fb772b7d14/code.php @@ -0,0 +1,35 @@ + + * @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\Compiler\Interfaces\Creator; + + +/** + * Fieldset Creator Interface (needed for the container) + * + * @since 3.2.0 + */ +interface Fieldsetinterface +{ + /** + * Get a fieldset + * + * @param array $view The view data + * @param string $component The component name + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * + * @return string The fields set as a string + * @since 3.2.0 + */ + public function get(array $view, string $component, string $nameSingleCode, string $nameListCode): string; +} + diff --git a/src/d44f3294-6b68-4d85-a617-15fb772b7d14/code.power b/src/d44f3294-6b68-4d85-a617-15fb772b7d14/code.power new file mode 100644 index 0000000..d6a47cb --- /dev/null +++ b/src/d44f3294-6b68-4d85-a617-15fb772b7d14/code.power @@ -0,0 +1,12 @@ + /** + * Get a fieldset + * + * @param array $view The view data + * @param string $component The component name + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * + * @return string The fields set as a string + * @since 3.2.0 + */ + public function get(array $view, string $component, string $nameSingleCode, string $nameListCode): string; \ No newline at end of file diff --git a/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/settings.json b/src/d44f3294-6b68-4d85-a617-15fb772b7d14/settings.json similarity index 66% rename from src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/settings.json rename to src/d44f3294-6b68-4d85-a617-15fb772b7d14/settings.json index 3c3f56b..d52c21a 100644 --- a/src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/settings.json +++ b/src/d44f3294-6b68-4d85-a617-15fb772b7d14/settings.json @@ -2,16 +2,16 @@ "add_head": "0", "add_licensing_template": "2", "extends": "0", - "guid": "2da6d6c4-eb29-4d69-8bc2-36d96e916adf", + "guid": "d44f3294-6b68-4d85-a617-15fb772b7d14", "implements": null, "load_selection": null, - "name": "Tableinterface", + "name": "Fieldsetinterface", "power_version": "1.0.0", - "system_name": "JCB.Interfaces.Tableinterface", + "system_name": "JCB.Compiler.Interfaces.Creator.Fieldsetinterface", "type": "interface", "use_selection": null, - "namespace": "VDM\\Joomla\\Componentbuilder.Interfaces.Tableinterface", - "description": "The Core JCB Table Interface", + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Interfaces.Creator.Fieldsetinterface", + "description": "Fieldset Creator Interface (needed for the container)\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/d5530adf-c809-45a9-87fc-7cecd3d972d8/README.md b/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/README.md new file mode 100644 index 0000000..1a37105 --- /dev/null +++ b/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FieldGroupControl (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class FieldGroupControl << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/code.php b/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/code.php new file mode 100644 index 0000000..6dfec73 --- /dev/null +++ b/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Field Group Control Builder Class + * + * @since 3.2.0 + */ +final class FieldGroupControl extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/code.power b/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/settings.json b/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/settings.json new file mode 100644 index 0000000..baeee72 --- /dev/null +++ b/src/d5530adf-c809-45a9-87fc-7cecd3d972d8/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "d5530adf-c809-45a9-87fc-7cecd3d972d8", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "FieldGroupControl", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.FieldGroupControl", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.FieldGroupControl", + "description": "Field Group Control Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/d645881c-ae8c-4828-a217-6bad98cd3b44/README.md b/src/d645881c-ae8c-4828-a217-6bad98cd3b44/README.md new file mode 100644 index 0000000..fe8cc7a --- /dev/null +++ b/src/d645881c-ae8c-4828-a217-6bad98cd3b44/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class TabCounter (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class TabCounter << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/d645881c-ae8c-4828-a217-6bad98cd3b44/code.php b/src/d645881c-ae8c-4828-a217-6bad98cd3b44/code.php new file mode 100644 index 0000000..adce577 --- /dev/null +++ b/src/d645881c-ae8c-4828-a217-6bad98cd3b44/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Tab Counter Builder Class + * + * @since 3.2.0 + */ +final class TabCounter extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/d645881c-ae8c-4828-a217-6bad98cd3b44/code.power b/src/d645881c-ae8c-4828-a217-6bad98cd3b44/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/d645881c-ae8c-4828-a217-6bad98cd3b44/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/d645881c-ae8c-4828-a217-6bad98cd3b44/settings.json b/src/d645881c-ae8c-4828-a217-6bad98cd3b44/settings.json new file mode 100644 index 0000000..bdd5c26 --- /dev/null +++ b/src/d645881c-ae8c-4828-a217-6bad98cd3b44/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "d645881c-ae8c-4828-a217-6bad98cd3b44", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "TabCounter", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.TabCounter", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.TabCounter", + "description": "Tab Counter Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/README.md b/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/README.md new file mode 100644 index 0000000..b3a86b1 --- /dev/null +++ b/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class SelectionTranslation (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class SelectionTranslation << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/code.php b/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/code.php new file mode 100644 index 0000000..5defc8c --- /dev/null +++ b/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Selection Translation Builder Class + * + * @since 3.2.0 + */ +final class SelectionTranslation extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/code.power b/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/settings.json b/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/settings.json new file mode 100644 index 0000000..d5ff4dc --- /dev/null +++ b/src/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "d8e46d2c-d63e-4b92-80a2-d17638a7ae9e", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "SelectionTranslation", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.SelectionTranslation", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.SelectionTranslation", + "description": "Selection Translation Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/code.php b/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/code.php index 6bdd6ce..4240db7 100644 --- a/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/code.php +++ b/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/code.php @@ -15,7 +15,7 @@ namespace VDM\Joomla\Componentbuilder\Compiler; use Joomla\DI\Container; use VDM\Joomla\Componentbuilder\Service\Crypt; use VDM\Joomla\Componentbuilder\Service\Server; -use VDM\Joomla\Componentbuilder\Compiler\Service\Database; +use VDM\Joomla\Componentbuilder\Service\Database; use VDM\Joomla\Componentbuilder\Compiler\Service\Model; use VDM\Joomla\Componentbuilder\Compiler\Service\Mapper; use VDM\Joomla\Componentbuilder\Compiler\Service\Compiler; @@ -36,6 +36,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Service\Joomlamodule; use VDM\Joomla\Componentbuilder\Compiler\Service\Joomlaplugin; use VDM\Joomla\Componentbuilder\Compiler\Service\Utilities; use VDM\Joomla\Componentbuilder\Compiler\Service\Builder; +use VDM\Joomla\Componentbuilder\Compiler\Service\Creator; use VDM\Joomla\Componentbuilder\Service\Gitea; use VDM\Joomla\Gitea\Service\Utilities as GiteaUtilities; use VDM\Joomla\Gitea\Service\Settings as GiteaSettings; @@ -47,7 +48,7 @@ use VDM\Joomla\Gitea\Service\Issue as GiteaIssue; use VDM\Joomla\Gitea\Service\Notifications as GiteNotifi; use VDM\Joomla\Gitea\Service\Miscellaneous as GiteaMisc; use VDM\Joomla\Gitea\Service\Admin as GiteaAdmin; -use VDM\Joomla\Componentbuilder\Interfaces\FactoryInterface; +use VDM\Joomla\Interfaces\FactoryInterface; /** @@ -152,6 +153,7 @@ abstract class Factory implements FactoryInterface ->registerServiceProvider(new Joomlaplugin()) ->registerServiceProvider(new Utilities()) ->registerServiceProvider(new Builder()) + ->registerServiceProvider(new Creator()) ->registerServiceProvider(new Gitea()) ->registerServiceProvider(new GiteaUtilities()) ->registerServiceProvider(new GiteaSettings()) @@ -163,7 +165,6 @@ abstract class Factory implements FactoryInterface ->registerServiceProvider(new GiteNotifi()) ->registerServiceProvider(new GiteaMisc()) ->registerServiceProvider(new GiteaAdmin()); - } - + } } diff --git a/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/code.power b/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/code.power index 218164c..bb527cb 100644 --- a/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/code.power +++ b/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/code.power @@ -93,6 +93,7 @@ ->registerServiceProvider(new Joomlaplugin()) ->registerServiceProvider(new Utilities()) ->registerServiceProvider(new Builder()) + ->registerServiceProvider(new Creator()) ->registerServiceProvider(new Gitea()) ->registerServiceProvider(new GiteaUtilities()) ->registerServiceProvider(new GiteaSettings()) @@ -104,4 +105,4 @@ ->registerServiceProvider(new GiteNotifi()) ->registerServiceProvider(new GiteaMisc()) ->registerServiceProvider(new GiteaAdmin()); - } + } \ No newline at end of file diff --git a/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/settings.json b/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/settings.json index 04526c9..fb80c27 100644 --- a/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/settings.json +++ b/src/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac/settings.json @@ -104,11 +104,15 @@ "use": "2c76c06e-a371-4b73-9fbe-b4d9b4df55d7", "as": "default" }, - "use_selection24": { - "use": "71acf8d6-32b8-4173-8277-eb9cda29fd64", + "use_selection34": { + "use": "8fdd604f-53e7-4a91-9935-afcfd2f6ac1b", "as": "default" }, "use_selection23": { + "use": "71acf8d6-32b8-4173-8277-eb9cda29fd64", + "as": "default" + }, + "use_selection24": { "use": "6edf0cf3-c2b0-45c9-84d2-c6ef1c5d434c", "as": "GiteaUtilities" }, diff --git a/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/README.md b/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/README.md new file mode 100644 index 0000000..152f12c --- /dev/null +++ b/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FootableScripts (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class FootableScripts << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/code.php b/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/code.php new file mode 100644 index 0000000..7255ba2 --- /dev/null +++ b/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Footable Scripts Builder Class + * + * @since 3.2.0 + */ +final class FootableScripts extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/code.power b/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/settings.json b/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/settings.json new file mode 100644 index 0000000..8702ba5 --- /dev/null +++ b/src/dba0776e-e582-4f73-af3e-e7ed17bc34b3/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "dba0776e-e582-4f73-af3e-e7ed17bc34b3", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "FootableScripts", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.FootableScripts", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.FootableScripts", + "description": "Footable Scripts Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/de01527a-6586-46ea-92e7-11ea3de1cedb/README.md b/src/de01527a-6586-46ea-92e7-11ea3de1cedb/README.md index b979c3d..cfd1d8b 100644 --- a/src/de01527a-6586-46ea-92e7-11ea3de1cedb/README.md +++ b/src/de01527a-6586-46ea-92e7-11ea3de1cedb/README.md @@ -24,7 +24,7 @@ class Power #Gold { + getReposReadme(Container $container) : ReposReadme + getExtractor(Container $container) : Extractor + getInjector(Container $container) : Injector - + getModel(Container $container) : Model + + getModelUpsert(Container $container) : Upsert + getInsert(Container $container) : Insert + getUpdate(Container $container) : Update } @@ -120,11 +120,11 @@ note right of Power::getInjector return: Injector end note -note left of Power::getModel - Get the Power Model +note left of Power::getModelUpsert + Get the Power Model Upsert since: 3.2.0 - return: Model + return: Upsert end note note right of Power::getInsert diff --git a/src/de01527a-6586-46ea-92e7-11ea3de1cedb/code.php b/src/de01527a-6586-46ea-92e7-11ea3de1cedb/code.php index 2222e5a..630ab6b 100644 --- a/src/de01527a-6586-46ea-92e7-11ea3de1cedb/code.php +++ b/src/de01527a-6586-46ea-92e7-11ea3de1cedb/code.php @@ -26,7 +26,7 @@ use VDM\Joomla\Componentbuilder\Compiler\Power\Repo\Readme as RepoReadme; use VDM\Joomla\Componentbuilder\Compiler\Power\Repos\Readme as ReposReadme; use VDM\Joomla\Componentbuilder\Compiler\Power\Extractor; use VDM\Joomla\Componentbuilder\Compiler\Power\Injector; -use VDM\Joomla\Componentbuilder\Power\Model; +use VDM\Joomla\Componentbuilder\Power\Model\Upsert; use VDM\Joomla\Componentbuilder\Power\Database\Insert; use VDM\Joomla\Componentbuilder\Power\Database\Update; @@ -84,8 +84,8 @@ class Power implements ServiceProviderInterface $container->alias(Injector::class, 'Power.Injector') ->share('Power.Injector', [$this, 'getInjector'], true); - $container->alias(Model::class, 'Power.Model') - ->share('Power.Model', [$this, 'getModel'], true); + $container->alias(Upsert::class, 'Power.Model.Upsert') + ->share('Power.Model.Upsert', [$this, 'getModelUpsert'], true); $container->alias(Insert::class, 'Power.Insert') ->share('Power.Insert', [$this, 'getInsert'], true); @@ -299,16 +299,16 @@ class Power implements ServiceProviderInterface } /** - * Get the Power Model + * Get the Power Model Upsert * * @param Container $container The DI container. * - * @return Model + * @return Upsert * @since 3.2.0 */ - public function getModel(Container $container): Model + public function getModelUpsert(Container $container): Upsert { - return new Model( + return new Upsert( $container->get('Table') ); } @@ -324,7 +324,7 @@ class Power implements ServiceProviderInterface public function getInsert(Container $container): Insert { return new Insert( - $container->get('Power.Model'), + $container->get('Power.Model.Upsert'), $container->get('Insert') ); } @@ -340,7 +340,7 @@ class Power implements ServiceProviderInterface public function getUpdate(Container $container): Update { return new Update( - $container->get('Power.Model'), + $container->get('Power.Model.Upsert'), $container->get('Update') ); } diff --git a/src/de01527a-6586-46ea-92e7-11ea3de1cedb/code.power b/src/de01527a-6586-46ea-92e7-11ea3de1cedb/code.power index e219141..1cb9234 100644 --- a/src/de01527a-6586-46ea-92e7-11ea3de1cedb/code.power +++ b/src/de01527a-6586-46ea-92e7-11ea3de1cedb/code.power @@ -44,8 +44,8 @@ $container->alias(Injector::class, 'Power.Injector') ->share('Power.Injector', [$this, 'getInjector'], true); - $container->alias(Model::class, 'Power.Model') - ->share('Power.Model', [$this, 'getModel'], true); + $container->alias(Upsert::class, 'Power.Model.Upsert') + ->share('Power.Model.Upsert', [$this, 'getModelUpsert'], true); $container->alias(Insert::class, 'Power.Insert') ->share('Power.Insert', [$this, 'getInsert'], true); @@ -259,16 +259,16 @@ } /** - * Get the Power Model + * Get the Power Model Upsert * * @param Container $container The DI container. * - * @return Model + * @return Upsert * @since 3.2.0 */ - public function getModel(Container $container): Model + public function getModelUpsert(Container $container): Upsert { - return new Model( + return new Upsert( $container->get('Table') ); } @@ -284,7 +284,7 @@ public function getInsert(Container $container): Insert { return new Insert( - $container->get('Power.Model'), + $container->get('Power.Model.Upsert'), $container->get('Insert') ); } @@ -300,7 +300,7 @@ public function getUpdate(Container $container): Update { return new Update( - $container->get('Power.Model'), + $container->get('Power.Model.Upsert'), $container->get('Update') ); } \ No newline at end of file diff --git a/src/e046b530-47fe-406f-b45a-b5eec8cbb238/README.md b/src/e046b530-47fe-406f-b45a-b5eec8cbb238/README.md new file mode 100644 index 0000000..c5048b8 --- /dev/null +++ b/src/e046b530-47fe-406f-b45a-b5eec8cbb238/README.md @@ -0,0 +1,46 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class PermissionDashboard (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **MapperDouble** +```uml +@startuml +class PermissionDashboard << (F,LightGreen) >> #RoyalBlue { + # firstKey(string $key) : string + # secondKey(string $key) : string +} + +note right of PermissionDashboard::firstKey + Model the first key + + since: 3.2.0 + return: string +end note + +note right of PermissionDashboard::secondKey + Model the second key + + since: 3.2.0 + return: string +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/e046b530-47fe-406f-b45a-b5eec8cbb238/code.php b/src/e046b530-47fe-406f-b45a-b5eec8cbb238/code.php new file mode 100644 index 0000000..19ab356 --- /dev/null +++ b/src/e046b530-47fe-406f-b45a-b5eec8cbb238/code.php @@ -0,0 +1,52 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Componentbuilder\Interfaces\Mapperdoubleinterface; +use VDM\Joomla\Componentbuilder\Abstraction\MapperDouble; + + +/** + * Permission Dashboard Builder Class + * + * @since 3.2.0 + */ +final class PermissionDashboard extends MapperDouble implements Mapperdoubleinterface +{ + /** + * Model the first key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function firstKey(string $key): string + { + return $key; + } + + /** + * Model the second key + * + * @param string $key The second key to model + * + * @return string + * @since 3.2.0 + */ + protected function secondKey(string $key): string + { + return $key; + } +} + diff --git a/src/e046b530-47fe-406f-b45a-b5eec8cbb238/code.power b/src/e046b530-47fe-406f-b45a-b5eec8cbb238/code.power new file mode 100644 index 0000000..2fc53e5 --- /dev/null +++ b/src/e046b530-47fe-406f-b45a-b5eec8cbb238/code.power @@ -0,0 +1,25 @@ + /** + * Model the first key + * + * @param string $key The first key to model + * + * @return string + * @since 3.2.0 + */ + protected function firstKey(string $key): string + { + return $key; + } + + /** + * Model the second key + * + * @param string $key The second key to model + * + * @return string + * @since 3.2.0 + */ + protected function secondKey(string $key): string + { + return $key; + } \ No newline at end of file diff --git a/src/e046b530-47fe-406f-b45a-b5eec8cbb238/settings.json b/src/e046b530-47fe-406f-b45a-b5eec8cbb238/settings.json new file mode 100644 index 0000000..99925a2 --- /dev/null +++ b/src/e046b530-47fe-406f-b45a-b5eec8cbb238/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "4d4e76e9-12d9-4d19-b58c-b88974b2586a", + "guid": "e046b530-47fe-406f-b45a-b5eec8cbb238", + "implements": [ + "fbc58009-fa16-4d49-a0dd-419c3b62d42f" + ], + "load_selection": null, + "name": "PermissionDashboard", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.PermissionDashboard", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.PermissionDashboard", + "description": "Permission Dashboard Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/README.md b/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/README.md index ec68a23..36bbbda 100644 --- a/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/README.md +++ b/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/README.md @@ -6,11 +6,12 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Component (Details) +# final class Component (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler** +> extends: **BaseRegistry** ```uml @startuml -class Component #Gold { +class Component << (F,LightGreen) >> #RoyalBlue { + __construct(?Data $component = null) + __get(string $path) } diff --git a/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/code.php b/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/code.php index 5715aae..211abf2 100644 --- a/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/code.php +++ b/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/code.php @@ -22,7 +22,7 @@ use VDM\Joomla\Componentbuilder\Abstraction\BaseRegistry; * * @since 3.2.0 */ -class Component extends BaseRegistry +final class Component extends BaseRegistry { /** * Constructor diff --git a/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/settings.json b/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/settings.json index 7a53fdf..807f506 100644 --- a/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/settings.json +++ b/src/e2472b22-a329-44d8-b4a2-ae3ba99e17a0/settings.json @@ -8,7 +8,7 @@ "name": "Component", "power_version": "1.0.0", "system_name": "JCB.Compiler.Component", - "type": "class", + "type": "final class", "use_selection": { "use_selection0": { "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", diff --git a/src/e38a5276-6664-4bc6-8002-0562fcc248f8/README.md b/src/e38a5276-6664-4bc6-8002-0562fcc248f8/README.md new file mode 100644 index 0000000..d659377 --- /dev/null +++ b/src/e38a5276-6664-4bc6-8002-0562fcc248f8/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class AccessSwitch (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class AccessSwitch << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/e38a5276-6664-4bc6-8002-0562fcc248f8/code.php b/src/e38a5276-6664-4bc6-8002-0562fcc248f8/code.php new file mode 100644 index 0000000..0d59cd2 --- /dev/null +++ b/src/e38a5276-6664-4bc6-8002-0562fcc248f8/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Access Switch Builder Class + * + * @since 3.2.0 + */ +final class AccessSwitch extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/e38a5276-6664-4bc6-8002-0562fcc248f8/code.power b/src/e38a5276-6664-4bc6-8002-0562fcc248f8/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/e38a5276-6664-4bc6-8002-0562fcc248f8/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/e38a5276-6664-4bc6-8002-0562fcc248f8/settings.json b/src/e38a5276-6664-4bc6-8002-0562fcc248f8/settings.json new file mode 100644 index 0000000..58e7892 --- /dev/null +++ b/src/e38a5276-6664-4bc6-8002-0562fcc248f8/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "e38a5276-6664-4bc6-8002-0562fcc248f8", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "AccessSwitch", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.AccessSwitch", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.AccessSwitch", + "description": "Access Switch Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/e4e65c5b-00ec-439c-96bf-3153c3a73398/README.md b/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/README.md new file mode 100644 index 0000000..9495066 --- /dev/null +++ b/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Filter (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class Filter << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/code.php b/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/code.php new file mode 100644 index 0000000..ecdf35d --- /dev/null +++ b/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Filter Builder Class + * + * @since 3.2.0 + */ +final class Filter extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/code.power b/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/settings.json b/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/settings.json new file mode 100644 index 0000000..d0bd6fa --- /dev/null +++ b/src/e4e65c5b-00ec-439c-96bf-3153c3a73398/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "e4e65c5b-00ec-439c-96bf-3153c3a73398", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "Filter", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.Filter", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Filter", + "description": "Filter Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/README.md b/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/README.md index d8cb88f..eaddb33 100644 --- a/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/README.md +++ b/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/README.md @@ -10,7 +10,7 @@ > namespace: **VDM\Joomla\Componentbuilder\Power\Database** ```uml @startuml -class Update << (F,LightGreen) >> #Green { +class Update << (F,LightGreen) >> #RoyalBlue { # Model $model # Database $database + __construct(Model $model, Database $database) diff --git a/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/code.php b/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/code.php index 2d5f0e7..c2e65a5 100644 --- a/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/code.php +++ b/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/code.php @@ -12,8 +12,8 @@ namespace VDM\Joomla\Componentbuilder\Power\Database; -use VDM\Joomla\Componentbuilder\Power\Model as Model; -use VDM\Joomla\Componentbuilder\Database\Update as Database; +use VDM\Joomla\Componentbuilder\Power\Model\Upsert as Model; +use VDM\Joomla\Database\Update as Database; /** @@ -154,7 +154,6 @@ final class Update return $this->database->items($items, 'guid', 'power'); } return false; - } - + } } diff --git a/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/code.power b/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/code.power index e64b8b9..875838e 100644 --- a/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/code.power +++ b/src/e543c123-b1d9-4a0b-83b2-a9d371da5ff3/code.power @@ -129,4 +129,4 @@ return $this->database->items($items, 'guid', 'power'); } return false; - } + } \ No newline at end of file diff --git a/src/e54965e7-34fd-481e-b40c-4da089afec5a/README.md b/src/e54965e7-34fd-481e-b40c-4da089afec5a/README.md new file mode 100644 index 0000000..bc15f63 --- /dev/null +++ b/src/e54965e7-34fd-481e-b40c-4da089afec5a/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class HasPermissions (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class HasPermissions << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/e54965e7-34fd-481e-b40c-4da089afec5a/code.php b/src/e54965e7-34fd-481e-b40c-4da089afec5a/code.php new file mode 100644 index 0000000..726b1df --- /dev/null +++ b/src/e54965e7-34fd-481e-b40c-4da089afec5a/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Has Permissions Builder Class + * + * @since 3.2.0 + */ +final class HasPermissions extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/e54965e7-34fd-481e-b40c-4da089afec5a/code.power b/src/e54965e7-34fd-481e-b40c-4da089afec5a/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/e54965e7-34fd-481e-b40c-4da089afec5a/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/e54965e7-34fd-481e-b40c-4da089afec5a/settings.json b/src/e54965e7-34fd-481e-b40c-4da089afec5a/settings.json new file mode 100644 index 0000000..8568601 --- /dev/null +++ b/src/e54965e7-34fd-481e-b40c-4da089afec5a/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "e54965e7-34fd-481e-b40c-4da089afec5a", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "HasPermissions", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.HasPermissions", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.HasPermissions", + "description": "Has Permissions Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/README.md b/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/README.md index 9fbe8f7..d855901 100644 --- a/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/README.md +++ b/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/README.md @@ -8,27 +8,11 @@ ``` # class Registry (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler** +> extends: **BaseRegistry** ```uml @startuml class Registry #Gold { - # $indent - + varExport(string $path, int $default = 2) : ?string - # convertIndent(array $matches) : string } - -note right of Registry::varExport - Method to export a set of values to a PHP array - - since: 3.4.0 - return: ?string -end note - -note right of Registry::convertIndent - Method to convert found of grouped spaces to system indentation - - since: 3.4.0 - return: string -end note @enduml ``` diff --git a/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/code.php b/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/code.php index 925727b..eb6c3c3 100644 --- a/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/code.php +++ b/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/code.php @@ -12,7 +12,6 @@ namespace VDM\Joomla\Componentbuilder\Compiler; -use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; use VDM\Joomla\Componentbuilder\Abstraction\BaseRegistry; @@ -23,79 +22,5 @@ use VDM\Joomla\Componentbuilder\Abstraction\BaseRegistry; */ class Registry extends BaseRegistry { - /** - * Default indentation value - * - * @var int - * @since 1.0 - */ - protected $indent = 2; - - /** - * Method to export a set of values to a PHP array - * - * @param string $path Registry path (e.g. joomla.content.showauthor) - * @param int $default The default indentation - * - * @return ?string The var set being exported as a PHP array - * - * @since 3.4.0 - */ - public function varExport(string $path, int $default = 2): ?string - { - // check if we have data - if (($data = $this->extract($path)) !== null) - { - // set the default indentation value - $this->indent = $default; - - // convert to array - $data = $data->toArray(); - - // convert to string - $data = var_export($data, true); - - // replace all space with system indentation - $data = preg_replace_callback("/^(\s{2})(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(.*)/m", [$this, 'convertIndent'], $data); - - // convert all array to [] - $array = preg_split("/\r\n|\n|\r/", $data); - $array = preg_replace(["/\s*array\s\($/", "/\)(,)?$/", "/\s=>\s$/"], [NULL, ']$1', ' => ['], $array); - $data = implode(PHP_EOL, array_filter(["["] + $array)); - - // add needed indentation to the last ] - $data = preg_replace("/^(\])/m", Indent::_($default) . '$1', $data); - - return $data; - } - return null; - } - - /** - * Method to convert found of grouped spaces to system indentation - * - * @param array $matches The regex array of matching values - * - * @return string The resulting string. - * - * @since 3.4.0 - */ - protected function convertIndent(array $matches): string - { - // set number to indent by default - $indent = Indent::_($this->indent); - - // update each found space (group) with one indentation - foreach (range(1, 11) as $space) - { - if (strlen((string) $matches[$space]) > 0) - { - $indent .= Indent::_(1); - } - } - - return $indent . $matches[12]; - } - } diff --git a/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/code.power b/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/code.power index 3b30afe..69309b0 100644 --- a/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/code.power +++ b/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/code.power @@ -1,73 +1 @@ - /** - * Default indentation value - * - * @var int - * @since 1.0 - */ - protected $indent = 2; - - /** - * Method to export a set of values to a PHP array - * - * @param string $path Registry path (e.g. joomla.content.showauthor) - * @param int $default The default indentation - * - * @return ?string The var set being exported as a PHP array - * - * @since 3.4.0 - */ - public function varExport(string $path, int $default = 2): ?string - { - // check if we have data - if (($data = $this->extract($path)) !== null) - { - // set the default indentation value - $this->indent = $default; - - // convert to array - $data = $data->toArray(); - - // convert to string - $data = var_export($data, true); - - // replace all space with system indentation - $data = preg_replace_callback("/^(\s{2})(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(\s{2})?(.*)/m", [$this, 'convertIndent'], $data); - - // convert all array to [] - $array = preg_split("/\r\n|\n|\r/", $data); - $array = preg_replace(["/\s*array\s\($/", "/\)(,)?$/", "/\s=>\s$/"], [NULL, ']$1', ' => ['], $array); - $data = implode(PHP_EOL, array_filter(["["] + $array)); - - // add needed indentation to the last ] - $data = preg_replace("/^(\])/m", Indent::_($default) . '$1', $data); - - return $data; - } - return null; - } - - /** - * Method to convert found of grouped spaces to system indentation - * - * @param array $matches The regex array of matching values - * - * @return string The resulting string. - * - * @since 3.4.0 - */ - protected function convertIndent(array $matches): string - { - // set number to indent by default - $indent = Indent::_($this->indent); - - // update each found space (group) with one indentation - foreach (range(1, 11) as $space) - { - if (strlen((string) $matches[$space]) > 0) - { - $indent .= Indent::_(1); - } - } - - return $indent . $matches[12]; - } +###CODEPOWER### \ No newline at end of file diff --git a/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/settings.json b/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/settings.json index f66986a..4f7a179 100644 --- a/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/settings.json +++ b/src/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6/settings.json @@ -9,12 +9,7 @@ "power_version": "1.0.0", "system_name": "JCB.Compiler.Registry", "type": "class", - "use_selection": { - "use_selection0": { - "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", - "as": "default" - } - }, + "use_selection": null, "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Registry", "description": "Compiler Registry\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", diff --git a/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/README.md b/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/README.md new file mode 100644 index 0000000..80a416c --- /dev/null +++ b/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class LibraryManager (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class LibraryManager << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/code.php b/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/code.php new file mode 100644 index 0000000..6cbd66f --- /dev/null +++ b/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Library Manager Builder Class + * + * @since 3.2.0 + */ +final class LibraryManager extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/code.power b/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/settings.json b/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/settings.json new file mode 100644 index 0000000..3685357 --- /dev/null +++ b/src/e696927b-e8f4-4cfc-9d25-215db4e3c7a8/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "e696927b-e8f4-4cfc-9d25-215db4e3c7a8", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "LibraryManager", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.LibraryManager", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.LibraryManager", + "description": "Library Manager Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/e6a64c41-405e-4bbc-9722-27402c22bbea/README.md b/src/e6a64c41-405e-4bbc-9722-27402c22bbea/README.md index 01483f0..9e884b3 100644 --- a/src/e6a64c41-405e-4bbc-9722-27402c22bbea/README.md +++ b/src/e6a64c41-405e-4bbc-9722-27402c22bbea/README.md @@ -17,6 +17,7 @@ class Fields #Gold { # Customcode $customcode # Field $field # FieldName $fieldName + # FieldGroups $fieldGroups # UpdateSql $updateSql # CMSApplication $app + __construct(?Config $config = null, ?Registry $registry = null, ...) @@ -35,6 +36,7 @@ note right of Fields::__construct ?Customcode $customcode = null ?Field $field = null ?FieldName $fieldName = null + ?FieldGroups $fieldGroups = null ?UpdateSql $updateSql = null ?CMSApplication $app = null end note diff --git a/src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.php b/src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.php index d7fe61d..42c4e2c 100644 --- a/src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.php +++ b/src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.php @@ -22,8 +22,8 @@ use VDM\Joomla\Componentbuilder\Compiler\Interfaces\HistoryInterface; use VDM\Joomla\Componentbuilder\Compiler\Customcode; use VDM\Joomla\Componentbuilder\Compiler\Field; use VDM\Joomla\Componentbuilder\Compiler\Field\Name as FieldName; +use VDM\Joomla\Componentbuilder\Compiler\Field\Groups as FieldGroups; use VDM\Joomla\Componentbuilder\Compiler\Model\Updatesql; -use VDM\Joomla\Componentbuilder\Compiler\Utilities\FieldHelper; use VDM\Joomla\Utilities\JsonHelper; use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ObjectHelper; @@ -84,6 +84,14 @@ class Fields */ protected FieldName $fieldName; + /** + * Compiler Field Groups + * + * @var FieldGroups + * @since 3.2.0 + */ + protected FieldGroups $fieldGroups; + /** * Compiler Update Sql * @@ -109,6 +117,7 @@ class Fields * @param Customcode|null $customcode The compiler customcode object. * @param Field|null $field The compiler field object. * @param FieldName|null $fieldName The compiler field name object. + * @param FieldGroups|null $fieldGroups The compiler field groups object. * @param UpdateSql|null $updateSql The compiler field name object. * @param CMSApplication|null $app The app object. * @@ -116,7 +125,7 @@ class Fields */ public function __construct(?Config $config = null, ?Registry $registry = null, ?HistoryInterface $history = null, ?Customcode $customcode = null, - ?Field $field = null, ?FieldName $fieldName = null, + ?Field $field = null, ?FieldName $fieldName = null, ?FieldGroups $fieldGroups = null, ?UpdateSql $updateSql = null, ?CMSApplication $app = null) { $this->config = $config ?: Compiler::_('Config'); @@ -125,6 +134,7 @@ class Fields $this->customcode = $customcode ?: Compiler::_('Customcode'); $this->field = $field ?: Compiler::_('Field'); $this->fieldName = $fieldName ?: Compiler::_('Field.Name'); + $this->fieldGroups = $fieldGroups ?: Compiler::_('Field.Groups'); $this->updateSql = $updateSql ?: Compiler::_('Model.Updatesql'); $this->app = $app ?: Factory::getApplication(); } @@ -164,7 +174,7 @@ class Fields // check if this field is a default field OR // check if this is none database related field if (in_array($field['base_name'], $default_fields) - || FieldHelper::check($field['type_name'], 'spacer') + || $this->fieldGroups->check($field['type_name'], 'spacer') || (isset($field['list']) && $field['list'] == 2)) // 2 = none database { $ignore_fields[$field['field']] = $field['field']; @@ -204,7 +214,7 @@ class Fields { if ($a['order_list'] != 0 && $b['order_list'] != 0) { - return $a['order_list'] - $b['order_list']; + return $a['order_list'] <=> $b['order_list']; } elseif ($b['order_list'] != 0 && $a['order_list'] == 0) { @@ -212,7 +222,7 @@ class Fields } elseif ($a['order_list'] != 0 && $b['order_list'] == 0) { - return 0; + return -1; } return 1; diff --git a/src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.power b/src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.power index 91e0be4..691b7f8 100644 --- a/src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.power +++ b/src/e6a64c41-405e-4bbc-9722-27402c22bbea/code.power @@ -46,6 +46,14 @@ */ protected FieldName $fieldName; + /** + * Compiler Field Groups + * + * @var FieldGroups + * @since 3.2.0 + */ + protected FieldGroups $fieldGroups; + /** * Compiler Update Sql * @@ -71,6 +79,7 @@ * @param Customcode|null $customcode The compiler customcode object. * @param Field|null $field The compiler field object. * @param FieldName|null $fieldName The compiler field name object. + * @param FieldGroups|null $fieldGroups The compiler field groups object. * @param UpdateSql|null $updateSql The compiler field name object. * @param CMSApplication|null $app The app object. * @@ -78,7 +87,7 @@ */ public function __construct(?Config $config = null, ?Registry $registry = null, ?HistoryInterface $history = null, ?Customcode $customcode = null, - ?Field $field = null, ?FieldName $fieldName = null, + ?Field $field = null, ?FieldName $fieldName = null, ?FieldGroups $fieldGroups = null, ?UpdateSql $updateSql = null, ?CMSApplication $app = null) { $this->config = $config ?: Compiler::_('Config'); @@ -87,6 +96,7 @@ $this->customcode = $customcode ?: Compiler::_('Customcode'); $this->field = $field ?: Compiler::_('Field'); $this->fieldName = $fieldName ?: Compiler::_('Field.Name'); + $this->fieldGroups = $fieldGroups ?: Compiler::_('Field.Groups'); $this->updateSql = $updateSql ?: Compiler::_('Model.Updatesql'); $this->app = $app ?: Factory::getApplication(); } @@ -126,7 +136,7 @@ // check if this field is a default field OR // check if this is none database related field if (in_array($field['base_name'], $default_fields) - || FieldHelper::check($field['type_name'], 'spacer') + || $this->fieldGroups->check($field['type_name'], 'spacer') || (isset($field['list']) && $field['list'] == 2)) // 2 = none database { $ignore_fields[$field['field']] = $field['field']; @@ -166,7 +176,7 @@ { if ($a['order_list'] != 0 && $b['order_list'] != 0) { - return $a['order_list'] - $b['order_list']; + return $a['order_list'] <=> $b['order_list']; } elseif ($b['order_list'] != 0 && $a['order_list'] == 0) { @@ -174,7 +184,7 @@ } elseif ($a['order_list'] != 0 && $b['order_list'] == 0) { - return 0; + return -1; } return 1; diff --git a/src/e6a64c41-405e-4bbc-9722-27402c22bbea/settings.json b/src/e6a64c41-405e-4bbc-9722-27402c22bbea/settings.json index ed6685b..86d20ef 100644 --- a/src/e6a64c41-405e-4bbc-9722-27402c22bbea/settings.json +++ b/src/e6a64c41-405e-4bbc-9722-27402c22bbea/settings.json @@ -38,14 +38,14 @@ "use": "9387215f-a965-4421-acf3-5e8f9d11382f", "as": "FieldName" }, + "use_selection8": { + "use": "12df35ad-2d44-4c4c-a7d5-a3350932a520", + "as": "FieldGroups" + }, "use_selection7": { "use": "b80296eb-4718-4ed3-894d-69f3ac293733", "as": "default" }, - "use_selection8": { - "use": "7a5fd3f3-199e-43ba-a8e8-f473d6c030ec", - "as": "default" - }, "use_selection9": { "use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18", "as": "default" diff --git a/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/README.md b/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/README.md index ccb2e4d..1d05488 100644 --- a/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/README.md +++ b/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/README.md @@ -16,6 +16,7 @@ class Counter #Gold { + int $page + int $line + int $field + + int $accessSize # int $seconds # float $actualSeconds # int $folderSeconds diff --git a/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/code.php b/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/code.php index 37e878b..a72af3f 100644 --- a/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/code.php +++ b/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/code.php @@ -63,6 +63,14 @@ class Counter */ public int $field = 0; + /** + * The access size + * + * @var int + * @since 3.2.0 + */ + public int $accessSize = 0; + /** * The seconds counter * @@ -397,7 +405,6 @@ class Counter // calculate the projects actual time frame of completion $this->projectWeekTime = round($this->actualTotalDays / 5, 1); $this->projectMonthTime = round($this->actualTotalDays / 24, 1); - } - + } } diff --git a/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/code.power b/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/code.power index e27efc8..c2d5dc3 100644 --- a/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/code.power +++ b/src/e6d871a6-bbe7-497d-af01-68f6bb9a87f4/code.power @@ -38,6 +38,14 @@ */ public int $field = 0; + /** + * The access size + * + * @var int + * @since 3.2.0 + */ + public int $accessSize = 0; + /** * The seconds counter * @@ -372,4 +380,4 @@ // calculate the projects actual time frame of completion $this->projectWeekTime = round($this->actualTotalDays / 5, 1); $this->projectMonthTime = round($this->actualTotalDays / 24, 1); - } + } \ No newline at end of file diff --git a/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/README.md b/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/README.md new file mode 100644 index 0000000..3c5af14 --- /dev/null +++ b/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class ExtensionCustomFields (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class ExtensionCustomFields << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/code.php b/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/code.php new file mode 100644 index 0000000..1509300 --- /dev/null +++ b/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Extension Custom Fields Builder Class + * + * @since 3.2.0 + */ +final class ExtensionCustomFields extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/code.power b/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/settings.json b/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/settings.json new file mode 100644 index 0000000..f0e8dc1 --- /dev/null +++ b/src/e9b6b06b-f600-4f9d-984d-79c70ae7ae92/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "e9b6b06b-f600-4f9d-984d-79c70ae7ae92", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "ExtensionCustomFields", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.ExtensionCustomFields", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.ExtensionCustomFields", + "description": "Extension Custom Fields Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/eb33420d-359d-44a5-852e-613aef1feaae/README.md b/src/eb33420d-359d-44a5-852e-613aef1feaae/README.md index d6e2387..8976ff6 100644 --- a/src/eb33420d-359d-44a5-852e-613aef1feaae/README.md +++ b/src/eb33420d-359d-44a5-852e-613aef1feaae/README.md @@ -11,7 +11,7 @@ ```uml @startuml class TypeName #Gold { - + get(object $field) : string + + get(array $field) : string } note right of TypeName::get diff --git a/src/eb33420d-359d-44a5-852e-613aef1feaae/code.php b/src/eb33420d-359d-44a5-852e-613aef1feaae/code.php index 2397481..4f6555a 100644 --- a/src/eb33420d-359d-44a5-852e-613aef1feaae/code.php +++ b/src/eb33420d-359d-44a5-852e-613aef1feaae/code.php @@ -29,12 +29,12 @@ class TypeName /** * Get the field's actual type * - * @param object $field The field object + * @param array $field The field object * * @return string Success returns field type * @since 3.2.0 */ - public function get(&$field) + public function get(array &$field): string { // check if we have done this already if (isset($field['type_name'])) @@ -44,13 +44,9 @@ class TypeName // check that we have the properties if (isset($field['settings']) - && ObjectHelper::check( - $field['settings'] - ) + && ObjectHelper::check($field['settings']) && isset($field['settings']->properties) - && ArrayHelper::check( - $field['settings']->properties - )) + && ArrayHelper::check($field['settings']->properties)) { // search for own custom fields if (strpos((string) $field['settings']->type_name, '@') !== false) diff --git a/src/eb33420d-359d-44a5-852e-613aef1feaae/code.power b/src/eb33420d-359d-44a5-852e-613aef1feaae/code.power index 1468483..4a82be1 100644 --- a/src/eb33420d-359d-44a5-852e-613aef1feaae/code.power +++ b/src/eb33420d-359d-44a5-852e-613aef1feaae/code.power @@ -1,12 +1,12 @@ /** * Get the field's actual type * - * @param object $field The field object + * @param array $field The field object * * @return string Success returns field type * @since 3.2.0 */ - public function get(&$field) + public function get(array &$field): string { // check if we have done this already if (isset($field['type_name'])) @@ -16,13 +16,9 @@ // check that we have the properties if (isset($field['settings']) - && ObjectHelper::check( - $field['settings'] - ) + && ObjectHelper::check($field['settings']) && isset($field['settings']->properties) - && ArrayHelper::check( - $field['settings']->properties - )) + && ArrayHelper::check($field['settings']->properties)) { // search for own custom fields if (strpos((string) $field['settings']->type_name, '@') !== false) diff --git a/src/ec0682ee-9166-48f8-951b-9b763792c1d1/README.md b/src/ec0682ee-9166-48f8-951b-9b763792c1d1/README.md new file mode 100644 index 0000000..916c21d --- /dev/null +++ b/src/ec0682ee-9166-48f8-951b-9b763792c1d1/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class SiteDynamicGet (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class SiteDynamicGet << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/ec0682ee-9166-48f8-951b-9b763792c1d1/code.php b/src/ec0682ee-9166-48f8-951b-9b763792c1d1/code.php new file mode 100644 index 0000000..0711baa --- /dev/null +++ b/src/ec0682ee-9166-48f8-951b-9b763792c1d1/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Site Dynamic Get Builder Class + * + * @since 3.2.0 + */ +final class SiteDynamicGet extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/ec0682ee-9166-48f8-951b-9b763792c1d1/code.power b/src/ec0682ee-9166-48f8-951b-9b763792c1d1/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/ec0682ee-9166-48f8-951b-9b763792c1d1/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/ec0682ee-9166-48f8-951b-9b763792c1d1/settings.json b/src/ec0682ee-9166-48f8-951b-9b763792c1d1/settings.json new file mode 100644 index 0000000..33ea272 --- /dev/null +++ b/src/ec0682ee-9166-48f8-951b-9b763792c1d1/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "ec0682ee-9166-48f8-951b-9b763792c1d1", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "SiteDynamicGet", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.SiteDynamicGet", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.SiteDynamicGet", + "description": "Site Dynamic Get Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/eeb03266-22fd-45bb-953a-961bb6be3a54/README.md b/src/eeb03266-22fd-45bb-953a-961bb6be3a54/README.md index 4291790..c105d7d 100644 --- a/src/eeb03266-22fd-45bb-953a-961bb6be3a54/README.md +++ b/src/eeb03266-22fd-45bb-953a-961bb6be3a54/README.md @@ -10,7 +10,7 @@ > namespace: **VDM\Joomla\Componentbuilder\Compiler\Power** ```uml @startuml -class Extractor << (F,LightGreen) >> #Green { +class Extractor << (F,LightGreen) >> #RoyalBlue { # array $powers # \JDatabaseDriver $db + __construct(?\JDatabaseDriver $db = null) diff --git a/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/README.md b/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/README.md index c404491..83b6936 100644 --- a/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/README.md +++ b/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/README.md @@ -6,11 +6,11 @@ ██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ``` -# class Data (Details) +# final class Data (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler\Component** ```uml @startuml -class Data #Gold { +class Data << (F,LightGreen) >> #RoyalBlue { # Config $config # EventInterface $event # Placeholder $placeholder diff --git a/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/code.php b/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/code.php index e9aad59..e4d2927 100644 --- a/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/code.php +++ b/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/code.php @@ -45,7 +45,7 @@ use VDM\Joomla\Utilities\GetHelper; * * @since 3.2.0 */ -class Data +final class Data { /** * Compiler Config diff --git a/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/settings.json b/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/settings.json index 61f6e32..073d5f7 100644 --- a/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/settings.json +++ b/src/ef9578e5-4c9d-46bf-866f-3a94bdc7b753/settings.json @@ -8,7 +8,7 @@ "name": "Data", "power_version": "1.0.0", "system_name": "JCB.Compiler.Component.Data", - "type": "class", + "type": "final class", "use_selection": { "use_selection0": { "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", diff --git a/src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.php b/src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.php index c3eb0e1..dd6e8be 100644 --- a/src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.php +++ b/src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.php @@ -77,6 +77,10 @@ class Readme { $readme[] = "# " . $power->type . " " . $power->code_name . " (Details)"; $readme[] = "> namespace: **" . $power->_namespace . "**"; + if ($power->extends != 0) + { + $readme[] = "> extends: **" . $power->extends_name . "**"; + } $readme[] = "```uml\n@startuml" . $this->plantuml->classDetailedDiagram( ['name' => $power->code_name, 'type' => $power->type], $power->parsed_class_code @@ -84,7 +88,15 @@ class Readme } else { - $readme[] = "> Error adding class diagram"; + $readme[] = "# " . $power->type . " " . $power->code_name . " (Details)"; + $readme[] = "> namespace: **" . $power->_namespace . "**"; + if ($power->extends != 0) + { + $readme[] = "> extends: **" . $power->extends_name . "**"; + } + $readme[] = "```uml\n@startuml" . $this->plantuml->classDetailedDiagram( + ['name' => $power->code_name, 'type' => $power->type], [] + ) . " \n@enduml\n```"; } // yes you can remove this, but why? diff --git a/src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.power b/src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.power index 066a878..09e33e2 100644 --- a/src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.power +++ b/src/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5/code.power @@ -52,6 +52,10 @@ { $readme[] = "# " . $power->type . " " . $power->code_name . " (Details)"; $readme[] = "> namespace: **" . $power->_namespace . "**"; + if ($power->extends != 0) + { + $readme[] = "> extends: **" . $power->extends_name . "**"; + } $readme[] = "```uml\n@startuml" . $this->plantuml->classDetailedDiagram( ['name' => $power->code_name, 'type' => $power->type], $power->parsed_class_code @@ -59,7 +63,15 @@ } else { - $readme[] = "> Error adding class diagram"; + $readme[] = "# " . $power->type . " " . $power->code_name . " (Details)"; + $readme[] = "> namespace: **" . $power->_namespace . "**"; + if ($power->extends != 0) + { + $readme[] = "> extends: **" . $power->extends_name . "**"; + } + $readme[] = "```uml\n@startuml" . $this->plantuml->classDetailedDiagram( + ['name' => $power->code_name, 'type' => $power->type], [] + ) . " \n@enduml\n```"; } // yes you can remove this, but why? diff --git a/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/README.md b/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/README.md new file mode 100644 index 0000000..637f53f --- /dev/null +++ b/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class MetaData (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class MetaData << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/code.php b/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/code.php new file mode 100644 index 0000000..83d176e --- /dev/null +++ b/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/code.php @@ -0,0 +1,34 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Abstraction\StorageRegistry\Traits\IsString; +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Meta Data Builder Class + * + * @since 3.2.0 + */ +final class MetaData extends StorageRegistry implements Storageregistryinterface +{ + /** + * Is String Values + * + * @since 3.2.0 + */ + use IsString; +} + diff --git a/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/code.power b/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/code.power new file mode 100644 index 0000000..2f3dba0 --- /dev/null +++ b/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/code.power @@ -0,0 +1,6 @@ + /** + * Is String Values + * + * @since 3.2.0 + */ + use IsString; \ No newline at end of file diff --git a/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/settings.json b/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/settings.json new file mode 100644 index 0000000..34c6a89 --- /dev/null +++ b/src/f052eeef-5112-4efe-98c8-8c7db69dc2d1/settings.json @@ -0,0 +1,25 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "f052eeef-5112-4efe-98c8-8c7db69dc2d1", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "MetaData", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.MetaData", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "ff7d0111-8f79-42aa-ac14-b53ba2c49369", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.MetaData", + "description": "Meta Data Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/f48764e0-16c6-459c-8576-af7616f3b720/README.md b/src/f48764e0-16c6-459c-8576-af7616f3b720/README.md new file mode 100644 index 0000000..7e31781 --- /dev/null +++ b/src/f48764e0-16c6-459c-8576-af7616f3b720/README.md @@ -0,0 +1,57 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class FieldAsString (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Creator** +```uml +@startuml +class FieldAsString << (F,LightGreen) >> #RoyalBlue { + # FieldDynamic $fielddynamic + # Xml $xml + + __construct(FieldDynamic $fielddynamic, Xml $xml) + + get(array $field, array $view, ...) : string +} + +note right of FieldAsString::__construct + Constructor. + + since: 3.2.0 +end note + +note right of FieldAsString::get + Get field as a string (no matter the build type) + + since: 3.2.0 + return: string + + arguments: + array $field + array $view + int $viewType + string $langView + string $nameSingleCode + string $nameListCode + array $placeholders + string $dbkey + bool $build = false +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/f48764e0-16c6-459c-8576-af7616f3b720/code.php b/src/f48764e0-16c6-459c-8576-af7616f3b720/code.php new file mode 100644 index 0000000..b95c512 --- /dev/null +++ b/src/f48764e0-16c6-459c-8576-af7616f3b720/code.php @@ -0,0 +1,102 @@ + + * @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\Compiler\Creator; + + +use VDM\Joomla\Componentbuilder\Compiler\Creator\FieldDynamic; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Xml; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; +use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line; + + +/** + * Get any field as a string Creator Class + * + * @since 3.2.0 + */ +final class FieldAsString +{ + /** + * The FieldDynamic Class. + * + * @var FieldDynamic + * @since 3.2.0 + */ + protected FieldDynamic $fielddynamic; + + /** + * The Xml Class. + * + * @var Xml + * @since 3.2.0 + */ + protected Xml $xml; + + /** + * Constructor. + * + * @param FieldDynamic $fielddynamic The FieldDynamic Class. + * @param Xml $xml The Xml Class. + * + * @since 3.2.0 + */ + public function __construct(FieldDynamic $fielddynamic, Xml $xml) + { + $this->fielddynamic = $fielddynamic; + $this->xml = $xml; + } + + /** + * Get field as a string (no matter the build type) + * + * @param array $field The field data + * @param array $view The view data + * @param int $viewType The view type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The placeholder and replace values + * @param string $dbkey The custom table key + * @param boolean $build The switch to set the build option + * + * @return string The complete field in xml-string + * @since 3.2.0 + */ + public function get(array &$field, array &$view, int $viewType, string $langView, + string $nameSingleCode, string $nameListCode, array &$placeholders, + string &$dbkey, bool $build = false): string + { + // get field + $field_xml = $this->fielddynamic->get( + $field, $view, $viewType, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $dbkey, $build + ); + + if (is_string($field_xml)) + { + return $field_xml; + } + elseif (is_object($field_xml) && isset($field_xml->fieldXML)) + { + return PHP_EOL . Indent::_(2) . "' . PHP_EOL + . Indent::_(1) . $this->xml->pretty( + $field_xml->fieldXML, 'field' + ); + } + + return ''; + } +} + diff --git a/src/f48764e0-16c6-459c-8576-af7616f3b720/code.power b/src/f48764e0-16c6-459c-8576-af7616f3b720/code.power new file mode 100644 index 0000000..5d8b57b --- /dev/null +++ b/src/f48764e0-16c6-459c-8576-af7616f3b720/code.power @@ -0,0 +1,73 @@ + /** + * The FieldDynamic Class. + * + * @var FieldDynamic + * @since 3.2.0 + */ + protected FieldDynamic $fielddynamic; + + /** + * The Xml Class. + * + * @var Xml + * @since 3.2.0 + */ + protected Xml $xml; + + /** + * Constructor. + * + * @param FieldDynamic $fielddynamic The FieldDynamic Class. + * @param Xml $xml The Xml Class. + * + * @since 3.2.0 + */ + public function __construct(FieldDynamic $fielddynamic, Xml $xml) + { + $this->fielddynamic = $fielddynamic; + $this->xml = $xml; + } + + /** + * Get field as a string (no matter the build type) + * + * @param array $field The field data + * @param array $view The view data + * @param int $viewType The view type + * @param string $langView The language string of the view + * @param string $nameSingleCode The single view name + * @param string $nameListCode The list view name + * @param array $placeholders The placeholder and replace values + * @param string $dbkey The custom table key + * @param boolean $build The switch to set the build option + * + * @return string The complete field in xml-string + * @since 3.2.0 + */ + public function get(array &$field, array &$view, int $viewType, string $langView, + string $nameSingleCode, string $nameListCode, array &$placeholders, + string &$dbkey, bool $build = false): string + { + // get field + $field_xml = $this->fielddynamic->get( + $field, $view, $viewType, $langView, + $nameSingleCode, $nameListCode, + $placeholders, $dbkey, $build + ); + + if (is_string($field_xml)) + { + return $field_xml; + } + elseif (is_object($field_xml) && isset($field_xml->fieldXML)) + { + return PHP_EOL . Indent::_(2) . "' . PHP_EOL + . Indent::_(1) . $this->xml->pretty( + $field_xml->fieldXML, 'field' + ); + } + + return ''; + } \ No newline at end of file diff --git a/src/f48764e0-16c6-459c-8576-af7616f3b720/settings.json b/src/f48764e0-16c6-459c-8576-af7616f3b720/settings.json new file mode 100644 index 0000000..e6ae4e2 --- /dev/null +++ b/src/f48764e0-16c6-459c-8576-af7616f3b720/settings.json @@ -0,0 +1,35 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "0", + "guid": "f48764e0-16c6-459c-8576-af7616f3b720", + "implements": null, + "load_selection": null, + "name": "FieldAsString", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Creator.FieldAsString", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "4801f8b0-4a4a-4eda-8f0e-cf77f042c35e", + "as": "default" + }, + "use_selection1": { + "use": "f6ba34a2-0cd7-4dc1-ab67-75e962a5045b", + "as": "default" + }, + "use_selection2": { + "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "as": "default" + }, + "use_selection3": { + "use": "4e6ff11d-bebf-42f5-8fd7-b2f882857222", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Creator.FieldAsString", + "description": "Get any field as a string Creator Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/README.md b/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/README.md new file mode 100644 index 0000000..0d22228 --- /dev/null +++ b/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/README.md @@ -0,0 +1,103 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Xml (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Utilities** +```uml +@startuml +class Xml << (F,LightGreen) >> #RoyalBlue { + # Config $config + # CMSApplication $app + + __construct(?Config $config = null, ?CMSApplication $app = null) + + get(array $attributes, ?array $options = null) : ?\SimpleXMLElement + + append(\SimpleXMLElement $xml, mixed $node) : void + + comment(\SimpleXMLElement $xml, string $comment) : void + + attributes(\SimpleXMLElement $xml, array $attributes = []) : void + + options(\SimpleXMLElement $xml, array $options = []) : void + + pretty(\SimpleXMLElement $xml, string $nodename) : string + + indent(string $string, string $char = ' ', ...) : string +} + +note right of Xml::__construct + Constructor + + since: 3.2.0 +end note + +note left of Xml::get + get the field xml + + since: 3.2.0 + return: ?\SimpleXMLElement +end note + +note right of Xml::append + xmlAppend +or a stdClass object containing a comment attribute to be injected +before the XML node and a fieldXML attribute containing a SimpleXMLElement + + since: 3.2.0 + return: void +end note + +note left of Xml::comment + xmlComment + + since: 3.2.0 + return: void +end note + +note right of Xml::attributes + xmlAddAttributes + + since: 3.2.0 + return: void +end note + +note left of Xml::options + xmlAddOptions + + since: 3.2.0 + return: void +end note + +note right of Xml::pretty + XML Pretty Print + + since: 3.2.0 + return: string +end note + +note left of Xml::indent + xmlIndent + + since: 3.2.0 + return: string + + arguments: + string $string + string $char = ' ' + int $depth + bool $skipfirst = false + bool $skiplast = false +end note + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/code.php b/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/code.php new file mode 100644 index 0000000..7dfedbd --- /dev/null +++ b/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/code.php @@ -0,0 +1,213 @@ + + * @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\Compiler\Utilities; + + +use Joomla\CMS\Factory; +use Joomla\CMS\Application\CMSApplication; +use Joomla\CMS\Language\Text; +use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; +use VDM\Joomla\Componentbuilder\Compiler\Config; +use VDM\Joomla\Componentbuilder\Utilities\FormHelper; + + +/** + * Compiler Utilities Xml + * + * @since 3.2.0 + */ +final class Xml +{ + /** + * Compiler Config + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * Application object. + * + * @var CMSApplication + * @since 3.2.0 + **/ + protected CMSApplication $app; + + /** + * Constructor + * + * @param Config|null $config The compiler config object. + * @param CMSApplication|null $app The CMS Application object. + * + * @since 3.2.0 + */ + public function __construct(?Config $config = null, ?CMSApplication $app = null) + { + $this->config = $config ?: Compiler::_('Config'); + $this->app = $app ?: Factory::getApplication(); + } + + /** + * get the field xml + * + * @param array $attributes The array of attributes + * @param array $options The options to apply to the XML element + * + * @return \SimpleXMLElement|null + * @since 3.2.0 + */ + public function get(array $attributes, ?array $options = null): ?\SimpleXMLElement + { + return FormHelper::xml($attributes, $options); + } + + /** + * xmlAppend + * + * @param \SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param mixed $node A SimpleXMLElement node to append to the XML element reference, + * or a stdClass object containing a comment attribute to be injected + * before the XML node and a fieldXML attribute containing a SimpleXMLElement + * + * @return void + * @since 3.2.0 + */ + public function append(\SimpleXMLElement &$xml, $node) + { + FormHelper::append($xml, $node); + } + + /** + * xmlComment + * + * @param \SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param string $comment The comment to inject + * + * @return void + * @since 3.2.0 + */ + public function comment(\SimpleXMLElement &$xml, string $comment) + { + FormHelper::comment($xml, $comment); + } + + /** + * xmlAddAttributes + * + * @param \SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param array $attributes The attributes to apply to the XML element + * + * @return void + * @since 3.2.0 + */ + public function attributes(\SimpleXMLElement &$xml, array $attributes = []) + { + FormHelper::attributes($xml, $attributes); + } + + /** + * xmlAddOptions + * + * @param \SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param array $options The options to apply to the XML element + * + * @return void + * @since 3.2.0 + */ + public function options(\SimpleXMLElement &$xml, array $options = []) + { + FormHelper::options($xml, $options); + } + + /** + * XML Pretty Print + * + * @param \SimpleXMLElement $xml The XML element containing a node to be output + * @param string $nodename node name of the input xml element to print out. this is done to omit the ownerDocument; + $dom->formatOutput = true; + $xmlString = $dom->saveXML( + $dom->getElementsByTagName($nodename)->item(0) + ); + // make sure Tidy is enabled + if ($this->config->get('tidy', false)) + { + $tidy = new \Tidy(); + $tidy->parseString( + $xmlString, [ + 'indent' => true, + 'indent-spaces' => 8, + 'input-xml' => true, + 'output-xml' => true, + 'indent-attributes' => true, + 'wrap-attributes' => true, + 'wrap' => false + ] + ); + $tidy->cleanRepair(); + + return $this->indent((string) $tidy, ' ', 8, true, false); + } + // set tidy warning only once + elseif ($this->config->set_tidy_warning) + { + // set the warning only once + $this->config->set('set_tidy_warning', false); + // now set the warning + $this->app->enqueueMessage( + Text::_('COM_COMPONENTBUILDER_HR_HTHREETIDY_ERRORHTHREE'), 'Error' + ); + $this->app->enqueueMessage( + Text::sprintf('COM_COMPONENTBUILDER_YOU_MUST_ENABLE_THE_BTIDYB_EXTENSION_IN_YOUR_PHPINI_FILE_SO_WE_CAN_TIDY_UP_YOUR_XML_IF_YOU_NEED_HELP_PLEASE_A_SSTART_HEREA', 'href="https://github.com/vdm-io/Joomla-Component-Builder/issues/197#issuecomment-351181754" target="_blank"'), 'Error' + ); + } + + return $xmlString; + } + + /** + * xmlIndent + * + * @param string $string The XML input + * @param string $char Character or characters to use as the repeated indent + * @param int $depth number of times to repeat the indent character + * @param bool $skipfirst Skip the first line of the input. + * @param bool $skiplast Skip the last line of the input; + * + * @return string XML output + * @since 3.2.0 + */ + public function indent(string $string, string $char = ' ', int $depth = 0, + bool $skipfirst = false, bool $skiplast = false): string + { + $output = array(); + $lines = explode("\n", $string); + $first = true; + $last = count($lines) - 1; + foreach ($lines as $i => $line) + { + $output[] = (($first && $skipfirst) || $i === $last && $skiplast) + ? $line : str_repeat($char, $depth) . $line; + $first = false; + } + + return implode("\n", $output); + } +} + diff --git a/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/code.power b/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/code.power new file mode 100644 index 0000000..b25061f --- /dev/null +++ b/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/code.power @@ -0,0 +1,182 @@ + /** + * Compiler Config + * + * @var Config + * @since 3.2.0 + */ + protected Config $config; + + /** + * Application object. + * + * @var CMSApplication + * @since 3.2.0 + **/ + protected CMSApplication $app; + + /** + * Constructor + * + * @param Config|null $config The compiler config object. + * @param CMSApplication|null $app The CMS Application object. + * + * @since 3.2.0 + */ + public function __construct(?Config $config = null, ?CMSApplication $app = null) + { + $this->config = $config ?: Compiler::_('Config'); + $this->app = $app ?: Factory::getApplication(); + } + + /** + * get the field xml + * + * @param array $attributes The array of attributes + * @param array $options The options to apply to the XML element + * + * @return \SimpleXMLElement|null + * @since 3.2.0 + */ + public function get(array $attributes, ?array $options = null): ?\SimpleXMLElement + { + return FormHelper::xml($attributes, $options); + } + + /** + * xmlAppend + * + * @param \SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param mixed $node A SimpleXMLElement node to append to the XML element reference, + * or a stdClass object containing a comment attribute to be injected + * before the XML node and a fieldXML attribute containing a SimpleXMLElement + * + * @return void + * @since 3.2.0 + */ + public function append(\SimpleXMLElement &$xml, $node) + { + FormHelper::append($xml, $node); + } + + /** + * xmlComment + * + * @param \SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param string $comment The comment to inject + * + * @return void + * @since 3.2.0 + */ + public function comment(\SimpleXMLElement &$xml, string $comment) + { + FormHelper::comment($xml, $comment); + } + + /** + * xmlAddAttributes + * + * @param \SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param array $attributes The attributes to apply to the XML element + * + * @return void + * @since 3.2.0 + */ + public function attributes(\SimpleXMLElement &$xml, array $attributes = []) + { + FormHelper::attributes($xml, $attributes); + } + + /** + * xmlAddOptions + * + * @param \SimpleXMLElement $xml The XML element reference in which to inject a comment + * @param array $options The options to apply to the XML element + * + * @return void + * @since 3.2.0 + */ + public function options(\SimpleXMLElement &$xml, array $options = []) + { + FormHelper::options($xml, $options); + } + + /** + * XML Pretty Print + * + * @param \SimpleXMLElement $xml The XML element containing a node to be output + * @param string $nodename node name of the input xml element to print out. this is done to omit the ownerDocument; + $dom->formatOutput = true; + $xmlString = $dom->saveXML( + $dom->getElementsByTagName($nodename)->item(0) + ); + // make sure Tidy is enabled + if ($this->config->get('tidy', false)) + { + $tidy = new \Tidy(); + $tidy->parseString( + $xmlString, [ + 'indent' => true, + 'indent-spaces' => 8, + 'input-xml' => true, + 'output-xml' => true, + 'indent-attributes' => true, + 'wrap-attributes' => true, + 'wrap' => false + ] + ); + $tidy->cleanRepair(); + + return $this->indent((string) $tidy, ' ', 8, true, false); + } + // set tidy warning only once + elseif ($this->config->set_tidy_warning) + { + // set the warning only once + $this->config->set('set_tidy_warning', false); + // now set the warning + $this->app->enqueueMessage( + Text::_('

Tidy Error

'), 'Error' + ); + $this->app->enqueueMessage( + Text::sprintf('You must enable the Tidy extension in your php.ini file so we can tidy up your xml! If you need help please start here!', 'href="https://github.com/vdm-io/Joomla-Component-Builder/issues/197#issuecomment-351181754" target="_blank"'), 'Error' + ); + } + + return $xmlString; + } + + /** + * xmlIndent + * + * @param string $string The XML input + * @param string $char Character or characters to use as the repeated indent + * @param int $depth number of times to repeat the indent character + * @param bool $skipfirst Skip the first line of the input. + * @param bool $skiplast Skip the last line of the input; + * + * @return string XML output + * @since 3.2.0 + */ + public function indent(string $string, string $char = ' ', int $depth = 0, + bool $skipfirst = false, bool $skiplast = false): string + { + $output = array(); + $lines = explode("\n", $string); + $first = true; + $last = count($lines) - 1; + foreach ($lines as $i => $line) + { + $output[] = (($first && $skipfirst) || $i === $last && $skiplast) + ? $line : str_repeat($char, $depth) . $line; + $first = false; + } + + return implode("\n", $output); + } \ No newline at end of file diff --git a/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/settings.json b/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/settings.json new file mode 100644 index 0000000..3e578ff --- /dev/null +++ b/src/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b/settings.json @@ -0,0 +1,31 @@ +{ + "add_head": "1", + "add_licensing_template": "2", + "extends": "0", + "guid": "f6ba34a2-0cd7-4dc1-ab67-75e962a5045b", + "implements": null, + "load_selection": null, + "name": "Xml", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Utilities.Xml", + "type": "final class", + "use_selection": { + "use_selection0": { + "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", + "as": "Compiler" + }, + "use_selection1": { + "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "as": "default" + }, + "use_selection2": { + "use": "1198aecf-84c6-45d2-aea8-d531aa4afdfa", + "as": "default" + } + }, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Utilities.Xml", + "description": "Compiler Utilities Xml\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": "use Joomla\\CMS\\Factory;\r\nuse Joomla\\CMS\\Application\\CMSApplication;\r\nuse Joomla\\CMS\\Language\\Text;", + "composer": "" +} \ No newline at end of file diff --git a/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/README.md b/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/README.md index c0d2767..55aacb3 100644 --- a/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/README.md +++ b/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/README.md @@ -8,12 +8,16 @@ ``` # class Config (Details) > namespace: **VDM\Joomla\Componentbuilder\Compiler** +> extends: **BaseConfig** ```uml @startuml class Config #Gold { # JoomlaRegistry $config + __construct(?Input $input = null, ?JoomlaRegistry $params = null, ...) # getGiteatoken() : ?string + # getAddcustomgiteaurl() : int + # getCustomgiteaurl() : ?string + # getCustomgiteatoken() : ?string # getAddcontributors() : bool # getAddajax() : bool # getAddsiteajax() : bool @@ -93,413 +97,434 @@ note left of Config::getGiteatoken return: ?string end note -note right of Config::getAddcontributors +note right of Config::getAddcustomgiteaurl + get Add Custom Gitea URL + + since: 3.2.0 + return: int +end note + +note left of Config::getCustomgiteaurl + get Custom Gitea URL + + since: 3.2.0 + return: ?string +end note + +note right of Config::getCustomgiteatoken + get Custom Gitea Access Token + + since: 3.2.0 + return: ?string +end note + +note left of Config::getAddcontributors get add contributors switch since: 3.2.0 return: bool end note -note left of Config::getAddajax +note right of Config::getAddajax get Add Ajax Switch since: 3.2.0 return: bool end note -note right of Config::getAddsiteajax +note left of Config::getAddsiteajax get Add Site Ajax Switch since: 3.2.0 return: bool end note -note left of Config::getAddeximport +note right of Config::getAddeximport get add eximport since: 3.2.0 return: bool end note -note right of Config::getAddcheckin +note left of Config::getAddcheckin get add checkin since: 3.2.0 return: bool end note -note left of Config::getComponentid +note right of Config::getComponentid get posted component id since: 3.2.0 return: int end note -note right of Config::getComponentversion +note left of Config::getComponentversion get component version since: 3.2.0 return: string end note -note left of Config::getComponentcodename +note right of Config::getComponentcodename get components code name since: 3.2.0 return: string end note -note right of Config::getComponentcontext +note left of Config::getComponentcontext get component context since: 3.2.0 return: string end note -note left of Config::getComponentcodenamelength +note right of Config::getComponentcodenamelength get component code name length since: 3.2.0 return: int end note -note right of Config::getJoomlaversion +note left of Config::getJoomlaversion get posted Joomla version since: 3.2.0 return: int end note -note left of Config::getJoomlaversions +note right of Config::getJoomlaversions get Joomla versions since: 3.2.0 return: array end note -note right of Config::getJoomlaversionname +note left of Config::getJoomlaversionname get posted Joomla version name since: 3.2.0 return: string end note -note left of Config::getSetjoomlafields +note right of Config::getSetjoomlafields set joomla fields since: 3.2.0 return: bool end note -note right of Config::getShowadvancedoptions +note left of Config::getShowadvancedoptions get show advanced options switch since: 3.2.0 return: bool end note -note left of Config::getIndentationvalue +note right of Config::getIndentationvalue get indentation value since: 3.2.0 return: string end note -note right of Config::getAddbuilddate +note left of Config::getAddbuilddate get add build date switch since: 3.2.0 return: int end note -note left of Config::getBuilddate +note right of Config::getBuilddate get build date since: 3.2.0 return: string end note -note right of Config::getBackup +note left of Config::getBackup get posted backup switch since: 3.2.0 return: int end note -note left of Config::getRepository +note right of Config::getRepository get posted repository switch since: 3.2.0 return: int end note -note right of Config::getDebuglinenr +note left of Config::getDebuglinenr get posted debuglinenr switch since: 3.2.0 return: int end note -note left of Config::getMinify +note right of Config::getMinify get posted minify switch since: 3.2.0 return: int end note -note right of Config::getRemovelinebreaks +note left of Config::getRemovelinebreaks get posted remove line breaks switch since: 3.2.0 return: bool end note -note left of Config::getTidy +note right of Config::getTidy get system tidy state since: 3.2.0 return: bool end note -note right of Config::getSettidywarning +note left of Config::getSettidywarning add tidy warning since: 3.2.0 return: bool end note -note left of Config::getSettaghistory +note right of Config::getSettaghistory get history tag switch since: 3.2.0 return: bool end note -note right of Config::getLangtag +note left of Config::getLangtag get language tag since: 3.2.0 return: string end note -note left of Config::getLangprefix +note right of Config::getLangprefix get language prefix since: 3.2.0 return: string end note -note right of Config::getLangtarget +note left of Config::getLangtarget get language target since: 3.2.0 return: string end note -note left of Config::getLangstringtargets +note right of Config::getLangstringtargets get language string targets since: 3.2.0 return: array end note -note right of Config::getLangstringkeytargets +note left of Config::getLangstringkeytargets get language string targets (by key name) since: 3.2.0 return: array end note -note left of Config::getFieldbuildertype +note right of Config::getFieldbuildertype get field builder type since: 3.2.0 return: int end note -note right of Config::getDefaultfields +note left of Config::getDefaultfields get default fields since: 3.2.0 return: array end note -note left of Config::getTmppath +note right of Config::getTmppath get temporary path since: 3.2.0 return: string end note -note right of Config::getCompilerpath +note left of Config::getCompilerpath get compiler path since: 3.2.0 return: string end note -note left of Config::getJcbpowerspath +note right of Config::getJcbpowerspath get jcb powers path since: 3.2.0 return: string end note -note right of Config::getLocalpowersrepositorypath +note left of Config::getLocalpowersrepositorypath Get local super powers repository path since: 3.2.0 return: string end note -note left of Config::getApprovedpaths +note right of Config::getApprovedpaths Get super power approved paths since: 3.2.0 return: array end note -note right of Config::getBompath +note left of Config::getBompath get bom path since: 3.2.0 return: string end note -note left of Config::getCustomfolderpath +note right of Config::getCustomfolderpath get custom folder path since: 3.2.0 return: string end note -note right of Config::getAddassetstablefix +note left of Config::getAddassetstablefix get switch to add assets table fix since: 3.2.0 return: int end note -note left of Config::getAddassetstablenamefix +note right of Config::getAddassetstablenamefix get switch to add assets table name fix since: 3.2.0 return: bool end note -note right of Config::getAccessworsecase +note left of Config::getAccessworsecase get access worse case size since: 3.2.0 return: int end note -note left of Config::getMysqltablekeys +note right of Config::getMysqltablekeys get mysql table keys since: 3.2.0 return: array end note -note right of Config::getAddplaceholders +note left of Config::getAddplaceholders get switch add placeholders since: 3.2.0 return: bool end note -note left of Config::getAddpower +note right of Config::getAddpower get switch add power since: 3.2.0 return: bool end note -note right of Config::getAddsuperpowers +note left of Config::getAddsuperpowers Get switch to add super powers since: 3.2.0 return: bool end note -note left of Config::getAddownpowers +note right of Config::getAddownpowers Get switch to add own super powers since: 3.2.0 return: bool end note -note right of Config::getBuildtarget +note left of Config::getBuildtarget get switch build target switch since: 3.2.0 return: string end note -note left of Config::getCryptiontypes +note right of Config::getCryptiontypes get encryption types since: 3.2.0 return: array end note -note right of Config::getBasicencryption +note left of Config::getBasicencryption get basic encryption switch since: 3.2.0 return: bool end note -note left of Config::getMediumencryption +note right of Config::getMediumencryption get medium encryption switch since: 3.2.0 return: bool end note -note right of Config::getWhmcsencryption +note left of Config::getWhmcsencryption get whmcs encryption switch since: 3.2.0 return: bool end note -note left of Config::getRemovesitefolder +note right of Config::getRemovesitefolder Should we remove the site folder since: 3.2.0 return: bool end note -note right of Config::getRemovesiteeditfolder +note left of Config::getRemovesiteeditfolder Should we remove the site edit folder since: 3.2.0 return: bool end note -note left of Config::getUikit +note right of Config::getUikit The Uikit switch since: 3.2.0 return: int end note -note right of Config::getGooglechart +note left of Config::getGooglechart The google chart switch since: 3.2.0 return: bool end note -note left of Config::getFootable +note right of Config::getFootable The footable switch since: 3.2.0 return: bool end note -note right of Config::getFootableversion +note left of Config::getFootableversion The footable version since: 3.2.0 diff --git a/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/code.php b/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/code.php index e55249d..f707577 100644 --- a/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/code.php +++ b/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/code.php @@ -65,7 +65,50 @@ class Config extends BaseConfig */ protected function getGiteatoken(): ?string { - return $this->params->get('access.token'); + return $this->custom_gitea_token ?? $this->params->get('gitea_token'); + } + + /** + * get Add Custom Gitea URL + * + * @return int the add switch + * @since 3.2.0 + */ + protected function getAddcustomgiteaurl(): int + { + return $this->params->get('add_custom_gitea_url', 1); + } + + /** + * get Custom Gitea URL + * + * @return string the custom gitea url + * @since 3.2.0 + */ + protected function getCustomgiteaurl(): ?string + { + if ($this->add_custom_gitea_url == 2) + { + return $this->params->get('custom_gitea_url'); + } + + return null; + } + + /** + * get Custom Gitea Access Token + * + * @return string the custom access token + * @since 3.2.0 + */ + protected function getCustomgiteatoken(): ?string + { + if ($this->add_custom_gitea_url == 2) + { + return $this->params->get('custom_gitea_token'); + } + + return null; } /** diff --git a/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/code.power b/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/code.power index 6afccda..c112c14 100644 --- a/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/code.power +++ b/src/fa4bf18e-301e-42e3-91fb-6e0096c07adc/code.power @@ -31,7 +31,50 @@ */ protected function getGiteatoken(): ?string { - return $this->params->get('access.token'); + return $this->custom_gitea_token ?? $this->params->get('gitea_token'); + } + + /** + * get Add Custom Gitea URL + * + * @return int the add switch + * @since 3.2.0 + */ + protected function getAddcustomgiteaurl(): int + { + return $this->params->get('add_custom_gitea_url', 1); + } + + /** + * get Custom Gitea URL + * + * @return string the custom gitea url + * @since 3.2.0 + */ + protected function getCustomgiteaurl(): ?string + { + if ($this->add_custom_gitea_url == 2) + { + return $this->params->get('custom_gitea_url'); + } + + return null; + } + + /** + * get Custom Gitea Access Token + * + * @return string the custom access token + * @since 3.2.0 + */ + protected function getCustomgiteatoken(): ?string + { + if ($this->add_custom_gitea_url == 2) + { + return $this->params->get('custom_gitea_token'); + } + + return null; } /** diff --git a/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/README.md b/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/README.md index 13f957d..2e1b236 100644 --- a/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/README.md +++ b/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/README.md @@ -12,25 +12,25 @@ @startuml class Customtabs #Gold { # Config $config - # Registry $registry + # BuilderCustomTabs $buildercustomtabs # Language $language # Placeholder $placeholder # Customcode $customcode - + __construct(?Config $config = null, ?Registry $registry = null, ...) + + __construct(Config $config, BuilderCustomTabs $buildercustomtabs, ...) + set(object $item) : void } note right of Customtabs::__construct - Constructor + Constructor. since: 3.2.0 arguments: - ?Config $config = null - ?Registry $registry = null - ?Language $language = null - ?Placeholder $placeholder = null - ?Customcode $customcode = null + Config $config + BuilderCustomTabs $buildercustomtabs + Language $language + Placeholder $placeholder + Customcode $customcode end note note right of Customtabs::set diff --git a/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.php b/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.php index 9b7ec15..00fecb9 100644 --- a/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.php +++ b/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.php @@ -12,9 +12,8 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Model; -use VDM\Joomla\Componentbuilder\Compiler\Factory as Compiler; use VDM\Joomla\Componentbuilder\Compiler\Config; -use VDM\Joomla\Componentbuilder\Compiler\Registry; +use VDM\Joomla\Componentbuilder\Compiler\Builder\CustomTabs as BuilderCustomTabs; use VDM\Joomla\Componentbuilder\Compiler\Language; use VDM\Joomla\Componentbuilder\Compiler\Placeholder; use VDM\Joomla\Componentbuilder\Compiler\Customcode; @@ -32,64 +31,63 @@ use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent; class Customtabs { /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The CustomTabs Class. * - * @var Registry + * @var BuilderCustomTabs * @since 3.2.0 */ - protected Registry $registry; + protected BuilderCustomTabs $buildercustomtabs; /** - * Compiler Language + * The Language Class. * - * @var Language + * @var Language * @since 3.2.0 - **/ + */ protected Language $language; /** - * Compiler Placeholder + * The Placeholder Class. * - * @var Placeholder + * @var Placeholder * @since 3.2.0 */ protected Placeholder $placeholder; /** - * Compiler Customcode + * The Customcode Class. * - * @var Customcode + * @var Customcode * @since 3.2.0 */ protected Customcode $customcode; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param Language|null $language The compiler Language object. - * @param Placeholder|null $placeholder The compiler placeholder object. - * @param Customcode|null $customcode The compiler customcode object. + * @param Config $config The Config Class. + * @param BuilderCustomTabs $buildercustomtabs The CustomTabs Class. + * @param Language $language The Language Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Customcode $customcode The Customcode Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, - ?Language $language = null, ?Placeholder $placeholder = null, ?Customcode $customcode = null) + public function __construct(Config $config, BuilderCustomTabs $buildercustomtabs, Language $language, Placeholder $placeholder, Customcode $customcode) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->language = $language ?: Compiler::_('Language'); - $this->placeholder = $placeholder ?: Compiler::_('Placeholder'); - $this->customcode = $customcode ?: Compiler::_('Customcode'); + $this->config = $config; + $this->buildercustomtabs = $buildercustomtabs; + $this->language = $language; + $this->placeholder = $placeholder; + $this->customcode = $customcode; } /** @@ -112,7 +110,7 @@ class Customtabs $name = $item->name_single_code; // setup custom tabs to global data sets - $this->registry->set('builder.custom_tabs.' . $name, + $this->buildercustomtabs->set($name, array_map( function ($tab) use (&$name) { @@ -208,7 +206,7 @@ class Customtabs $tab['lang_permission_desc'] = $tab['lang'] . '_TAB_PERMISSION_DESC'; $tab['lang_permission_title'] - = $this->placeholder->get('Views') . ' View ' + = $this->placeholder->get('Views') . ' View ' . $tab['name'] . ' Tab'; $this->language->set( 'both', $tab['lang_permission'], @@ -236,7 +234,6 @@ class Customtabs } unset($item->customtabs); - } - + } } diff --git a/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.power b/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.power index 15c9256..55ba7c8 100644 --- a/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.power +++ b/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/code.power @@ -1,62 +1,61 @@ /** - * Compiler Config + * The Config Class. * - * @var Config + * @var Config * @since 3.2.0 */ protected Config $config; /** - * The compiler registry + * The CustomTabs Class. * - * @var Registry + * @var BuilderCustomTabs * @since 3.2.0 */ - protected Registry $registry; + protected BuilderCustomTabs $buildercustomtabs; /** - * Compiler Language + * The Language Class. * - * @var Language + * @var Language * @since 3.2.0 - **/ + */ protected Language $language; /** - * Compiler Placeholder + * The Placeholder Class. * - * @var Placeholder + * @var Placeholder * @since 3.2.0 */ protected Placeholder $placeholder; /** - * Compiler Customcode + * The Customcode Class. * - * @var Customcode + * @var Customcode * @since 3.2.0 */ protected Customcode $customcode; /** - * Constructor + * Constructor. * - * @param Config|null $config The compiler config object. - * @param Registry|null $registry The compiler registry object. - * @param Language|null $language The compiler Language object. - * @param Placeholder|null $placeholder The compiler placeholder object. - * @param Customcode|null $customcode The compiler customcode object. + * @param Config $config The Config Class. + * @param BuilderCustomTabs $buildercustomtabs The CustomTabs Class. + * @param Language $language The Language Class. + * @param Placeholder $placeholder The Placeholder Class. + * @param Customcode $customcode The Customcode Class. * * @since 3.2.0 */ - public function __construct(?Config $config = null, ?Registry $registry = null, - ?Language $language = null, ?Placeholder $placeholder = null, ?Customcode $customcode = null) + public function __construct(Config $config, BuilderCustomTabs $buildercustomtabs, Language $language, Placeholder $placeholder, Customcode $customcode) { - $this->config = $config ?: Compiler::_('Config'); - $this->registry = $registry ?: Compiler::_('Registry'); - $this->language = $language ?: Compiler::_('Language'); - $this->placeholder = $placeholder ?: Compiler::_('Placeholder'); - $this->customcode = $customcode ?: Compiler::_('Customcode'); + $this->config = $config; + $this->buildercustomtabs = $buildercustomtabs; + $this->language = $language; + $this->placeholder = $placeholder; + $this->customcode = $customcode; } /** @@ -79,7 +78,7 @@ $name = $item->name_single_code; // setup custom tabs to global data sets - $this->registry->set('builder.custom_tabs.' . $name, + $this->buildercustomtabs->set($name, array_map( function ($tab) use (&$name) { @@ -175,7 +174,7 @@ $tab['lang_permission_desc'] = $tab['lang'] . '_TAB_PERMISSION_DESC'; $tab['lang_permission_title'] - = $this->placeholder->get('Views') . ' View ' + = $this->placeholder->get('Views') . ' View ' . $tab['name'] . ' Tab'; $this->language->set( 'both', $tab['lang_permission'], @@ -203,4 +202,4 @@ } unset($item->customtabs); - } + } \ No newline at end of file diff --git a/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/settings.json b/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/settings.json index e17d05c..f21b878 100644 --- a/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/settings.json +++ b/src/fa8c1125-d370-4cb6-a7ff-eb32193c198c/settings.json @@ -11,42 +11,38 @@ "type": "class", "use_selection": { "use_selection0": { - "use": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "as": "Compiler" - }, - "use_selection1": { "use": "fa4bf18e-301e-42e3-91fb-6e0096c07adc", "as": "default" }, - "use_selection2": { - "use": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", - "as": "default" + "use_selection1": { + "use": "9551b683-67b6-4367-bb14-4b016def37e3", + "as": "BuilderCustomTabs" }, - "use_selection3": { + "use_selection2": { "use": "8eee7df5-2775-41a9-9372-c46c5939a252", "as": "default" }, - "use_selection4": { + "use_selection3": { "use": "06453ada-e370-49f0-b262-e3f5a8ed0c2c", "as": "default" }, - "use_selection5": { + "use_selection4": { "use": "313b43c4-98c3-4f62-9177-2d73ec8eba31", "as": "default" }, - "use_selection6": { + "use_selection5": { "use": "4b225c51-d293-48e4-b3f6-5136cf5c3f18", "as": "default" }, - "use_selection7": { + "use_selection6": { "use": "0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a", "as": "default" }, - "use_selection8": { + "use_selection7": { "use": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef", "as": "default" }, - "use_selection9": { + "use_selection8": { "use": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6", "as": "default" } diff --git a/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/README.md b/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/README.md index e921860..13bb56e 100644 --- a/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/README.md +++ b/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/README.md @@ -11,22 +11,22 @@ ```uml @startuml interface Mapperdoubleinterface #Lavender { - + isActive_(string $firstKey = null) : bool - + set_(string $firstKey, string $secondKey, ...) : void - + get_(string $firstKey, ?string $secondKey = null) : mixed - + exist_(string $firstKey, ?string $secondKey = null) : bool - + add_(string $firstKey, string $secondKey, ...) : void - + remove_(string $firstKey, ?string $secondKey = null) : void + + isActive(string $firstKey = null) : bool + + set(string $firstKey, string $secondKey, ...) : void + + get(string $firstKey, ?string $secondKey = null) : mixed + + exist(string $firstKey, ?string $secondKey = null) : bool + + add(string $firstKey, string $secondKey, ...) : void + + remove(string $firstKey, ?string $secondKey = null) : void } -note right of Mapperdoubleinterface::isActive_ +note right of Mapperdoubleinterface::isActive Check if any values are set in the active array. since: 3.2.0 return: bool end note -note right of Mapperdoubleinterface::set_ +note right of Mapperdoubleinterface::set Set dynamic content since: 3.2.0 @@ -38,21 +38,21 @@ note right of Mapperdoubleinterface::set_ mixed $value end note -note right of Mapperdoubleinterface::get_ +note right of Mapperdoubleinterface::get Get dynamic content since: 3.2.0 return: mixed end note -note right of Mapperdoubleinterface::exist_ +note right of Mapperdoubleinterface::exist Does keys exist since: 3.2.0 return: bool end note -note right of Mapperdoubleinterface::add_ +note right of Mapperdoubleinterface::add Add dynamic content since: 3.2.0 @@ -62,9 +62,10 @@ note right of Mapperdoubleinterface::add_ string $firstKey string $secondKey mixed $value + bool $array = false end note -note right of Mapperdoubleinterface::remove_ +note right of Mapperdoubleinterface::remove Remove dynamic content since: 3.2.0 diff --git a/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/code.php b/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/code.php index 1975ac8..1a4cd72 100644 --- a/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/code.php +++ b/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/code.php @@ -17,6 +17,7 @@ namespace VDM\Joomla\Componentbuilder\Interfaces; */ interface Mapperdoubleinterface { + /** * Check if any values are set in the active array. * @@ -25,7 +26,7 @@ interface Mapperdoubleinterface * @return bool True if the active array or the specified subarray is not empty, false otherwise. * @since 3.2.0 */ - public function isActive_(string $firstKey = null): bool; + public function isActive(string $firstKey = null): bool; /** * Set dynamic content @@ -37,18 +38,18 @@ interface Mapperdoubleinterface * @return void * @since 3.2.0 */ - public function set_(string $firstKey, string $secondKey, $value); + public function set(string $firstKey, string $secondKey, $value): void; /** * Get dynamic content * - * @param string $firstKey The first key - * @param string $secondKey The second key + * @param string $firstKey The first key + * @param string|null $secondKey The second key * * @return mixed * @since 3.2.0 */ - public function get_(string $firstKey, ?string $secondKey = null); + public function get(string $firstKey, ?string $secondKey = null); /** * Does keys exist @@ -59,7 +60,7 @@ interface Mapperdoubleinterface * @return bool * @since 3.2.0 */ - public function exist_(string $firstKey, ?string $secondKey = null): bool; + public function exist(string $firstKey, ?string $secondKey = null): bool; /** * Add dynamic content @@ -67,11 +68,12 @@ interface Mapperdoubleinterface * @param string $firstKey The first key * @param string $secondKey The second key * @param mixed $value The values to set + * @param bool $array The is array switch * * @return void * @since 3.2.0 */ - public function add_(string $firstKey, string $secondKey, $value); + public function add(string $firstKey, string $secondKey, $value, bool $array = false): void; /** * Remove dynamic content @@ -82,7 +84,6 @@ interface Mapperdoubleinterface * @return void * @since 3.2.0 */ - public function remove_(string $firstKey, ?string $secondKey = null); - + public function remove(string $firstKey, ?string $secondKey = null): void; } diff --git a/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/code.power b/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/code.power index 064b36f..c244feb 100644 --- a/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/code.power +++ b/src/fbc58009-fa16-4d49-a0dd-419c3b62d42f/code.power @@ -1,66 +1 @@ - /** - * Check if any values are set in the active array. - * - * @param string|null $firstKey Optional. The first key to check for values. - * - * @return bool True if the active array or the specified subarray is not empty, false otherwise. - * @since 3.2.0 - */ - public function isActive_(string $firstKey = null): bool; - - /** - * Set dynamic content - * - * @param string $firstKey The first key - * @param string $secondKey The second key - * @param mixed $value The values to set - * - * @return void - * @since 3.2.0 - */ - public function set_(string $firstKey, string $secondKey, $value); - - /** - * Get dynamic content - * - * @param string $firstKey The first key - * @param string $secondKey The second key - * - * @return mixed - * @since 3.2.0 - */ - public function get_(string $firstKey, ?string $secondKey = null); - - /** - * Does keys exist - * - * @param string $firstKey The first key - * @param string|null $secondKey The second key - * - * @return bool - * @since 3.2.0 - */ - public function exist_(string $firstKey, ?string $secondKey = null): bool; - - /** - * Add dynamic content - * - * @param string $firstKey The first key - * @param string $secondKey The second key - * @param mixed $value The values to set - * - * @return void - * @since 3.2.0 - */ - public function add_(string $firstKey, string $secondKey, $value); - - /** - * Remove dynamic content - * - * @param string $firstKey The first key - * @param string|null $secondKey The second key - * - * @return void - * @since 3.2.0 - */ - public function remove_(string $firstKey, ?string $secondKey = null); +[CUSTOMCODE=interfacesMapperDouble+,] \ No newline at end of file diff --git a/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/README.md b/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/README.md new file mode 100644 index 0000000..b1f9360 --- /dev/null +++ b/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class OtherWhere (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class OtherWhere << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/code.php b/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/code.php new file mode 100644 index 0000000..1e3534d --- /dev/null +++ b/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Other Where Builder Class + * + * @since 3.2.0 + */ +final class OtherWhere extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/code.power b/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/settings.json b/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/settings.json new file mode 100644 index 0000000..140e4a7 --- /dev/null +++ b/src/fd885c23-88dd-440a-9b05-d02a2b2962f9/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "fd885c23-88dd-440a-9b05-d02a2b2962f9", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "OtherWhere", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.OtherWhere", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.OtherWhere", + "description": "Other Where Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/fe87df7f-b65f-4778-8875-6122ab6b025f/README.md b/src/fe87df7f-b65f-4778-8875-6122ab6b025f/README.md new file mode 100644 index 0000000..d208435 --- /dev/null +++ b/src/fe87df7f-b65f-4778-8875-6122ab6b025f/README.md @@ -0,0 +1,30 @@ +``` +██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗ +██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝ +██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗ +██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║ +╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ +``` +# final class Alias (Details) +> namespace: **VDM\Joomla\Componentbuilder\Compiler\Builder** +> extends: **StorageRegistry** +```uml +@startuml +class Alias << (F,LightGreen) >> #RoyalBlue { +} + +@enduml +``` + +--- +``` + ██╗ ██████╗██████╗ + ██║██╔════╝██╔══██╗ + ██║██║ ██████╔╝ +██ ██║██║ ██╔══██╗ +╚█████╔╝╚██████╗██████╔╝ + ╚════╝ ╚═════╝╚═════╝ +``` +> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder) + diff --git a/src/fe87df7f-b65f-4778-8875-6122ab6b025f/code.php b/src/fe87df7f-b65f-4778-8875-6122ab6b025f/code.php new file mode 100644 index 0000000..7f4efc3 --- /dev/null +++ b/src/fe87df7f-b65f-4778-8875-6122ab6b025f/code.php @@ -0,0 +1,27 @@ + + * @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\Compiler\Builder; + + +use VDM\Joomla\Interfaces\Storageregistryinterface; +use VDM\Joomla\Abstraction\StorageRegistry; + + +/** + * Alias Builder Class + * + * @since 3.2.0 + */ +final class Alias extends StorageRegistry implements Storageregistryinterface +{ +} + diff --git a/src/fe87df7f-b65f-4778-8875-6122ab6b025f/code.power b/src/fe87df7f-b65f-4778-8875-6122ab6b025f/code.power new file mode 100644 index 0000000..69309b0 --- /dev/null +++ b/src/fe87df7f-b65f-4778-8875-6122ab6b025f/code.power @@ -0,0 +1 @@ +###CODEPOWER### \ No newline at end of file diff --git a/src/fe87df7f-b65f-4778-8875-6122ab6b025f/settings.json b/src/fe87df7f-b65f-4778-8875-6122ab6b025f/settings.json new file mode 100644 index 0000000..bf63fc6 --- /dev/null +++ b/src/fe87df7f-b65f-4778-8875-6122ab6b025f/settings.json @@ -0,0 +1,20 @@ +{ + "add_head": "0", + "add_licensing_template": "2", + "extends": "7e822c03-1b20-41d1-9427-f5b8d5836af7", + "guid": "fe87df7f-b65f-4778-8875-6122ab6b025f", + "implements": [ + "64e291c2-11f1-423d-a44d-837cc12cc017" + ], + "load_selection": null, + "name": "Alias", + "power_version": "1.0.0", + "system_name": "JCB.Compiler.Builder.Alias", + "type": "final class", + "use_selection": null, + "namespace": "VDM\\Joomla\\Componentbuilder.Compiler.Builder.Alias", + "description": "Alias Builder Class\r\n\r\n@since 3.2.0", + "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe \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/ff5e9e63-86d0-4691-ab59-d4b9d9154096/code.php b/src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/code.php index 27ed05d..a3f606f 100644 --- a/src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/code.php +++ b/src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/code.php @@ -419,7 +419,7 @@ class Plantuml { $class_colors = [ 'class' => 'Gold', - 'final' => 'RoyalBlue', + 'final class' => 'RoyalBlue', 'abstract class' => 'Orange', 'interface' => 'Lavender', 'trait' => 'Turquoise' diff --git a/src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/code.power b/src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/code.power index 3ed7c97..e3ee15a 100644 --- a/src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/code.power +++ b/src/ff5e9e63-86d0-4691-ab59-d4b9d9154096/code.power @@ -399,7 +399,7 @@ { $class_colors = [ 'class' => 'Gold', - 'final' => 'RoyalBlue', + 'final class' => 'RoyalBlue', 'abstract class' => 'Orange', 'interface' => 'Lavender', 'trait' => 'Turquoise' diff --git a/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/README.md b/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/README.md index d929dfb..67b8b24 100644 --- a/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/README.md +++ b/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/README.md @@ -24,14 +24,14 @@ note right of Templatelayout::register end note note right of Templatelayout::getTemplatelayoutData - Get the Compiler Templatelayout Data + Get The Data Class. since: 3.2.0 return: TemplatelayoutData end note note right of Templatelayout::getAliasData - Get the Compiler Alias Data + Get The Data Class. since: 3.2.0 return: AliasData diff --git a/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/code.php b/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/code.php index 16cb913..e066bff 100644 --- a/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/code.php +++ b/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/code.php @@ -14,7 +14,7 @@ namespace VDM\Joomla\Componentbuilder\Compiler\Service; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; -use VDM\Joomla\Componentbuilder\Compiler\Templatelayout\Data as TemplatelayoutData ; +use VDM\Joomla\Componentbuilder\Compiler\Templatelayout\Data as TemplatelayoutData; use VDM\Joomla\Componentbuilder\Compiler\Alias\Data as AliasData; @@ -43,7 +43,7 @@ class Templatelayout implements ServiceProviderInterface } /** - * Get the Compiler Templatelayout Data + * Get The Data Class. * * @param Container $container The DI container. * @@ -54,13 +54,14 @@ class Templatelayout implements ServiceProviderInterface { return new TemplatelayoutData( $container->get('Config'), - $container->get('Registry'), + $container->get('Compiler.Builder.Layout.Data'), + $container->get('Compiler.Builder.Template.Data'), $container->get('Alias.Data') ); } /** - * Get the Compiler Alias Data + * Get The Data Class. * * @param Container $container The DI container. * @@ -77,7 +78,6 @@ class Templatelayout implements ServiceProviderInterface $container->get('Model.Loader'), $container->get('Model.Libraries') ); - } - + } } diff --git a/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/code.power b/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/code.power index bf28863..1feb93e 100644 --- a/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/code.power +++ b/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/code.power @@ -16,7 +16,7 @@ } /** - * Get the Compiler Templatelayout Data + * Get The Data Class. * * @param Container $container The DI container. * @@ -27,13 +27,14 @@ { return new TemplatelayoutData( $container->get('Config'), - $container->get('Registry'), + $container->get('Compiler.Builder.Layout.Data'), + $container->get('Compiler.Builder.Template.Data'), $container->get('Alias.Data') ); } /** - * Get the Compiler Alias Data + * Get The Data Class. * * @param Container $container The DI container. * @@ -50,4 +51,4 @@ $container->get('Model.Loader'), $container->get('Model.Libraries') ); - } + } \ No newline at end of file diff --git a/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/settings.json b/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/settings.json index 94c7c4e..d5a0460 100644 --- a/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/settings.json +++ b/src/fff3255d-c493-4c21-a48f-73b3ebf8ba05/settings.json @@ -14,7 +14,7 @@ "use_selection": { "use_selection0": { "use": "39ea8150-f124-4e47-909d-641bf1c96d5e", - "as": "TemplatelayoutData " + "as": "TemplatelayoutData" }, "use_selection1": { "use": "f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c", diff --git a/super-powers.json b/super-powers.json index 6b837db..ee0d69a 100644 --- a/super-powers.json +++ b/super-powers.json @@ -1,1053 +1,14 @@ { - "caf33c5d-858c-4f9a-894f-ab302ec5445a": { - "name": "FactoryInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", - "code": "src\/caf33c5d-858c-4f9a-894f-ab302ec5445a\/code.php", - "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", - "guid": "caf33c5d-858c-4f9a-894f-ab302ec5445a" - }, - "81de8f57-dd9c-4a17-964f-848cd4a0743b": { - "name": "Cryptinterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", - "code": "src\/81de8f57-dd9c-4a17-964f-848cd4a0743b\/code.php", - "power": "src\/81de8f57-dd9c-4a17-964f-848cd4a0743b\/code.power", - "settings": "src\/81de8f57-dd9c-4a17-964f-848cd4a0743b\/settings.json", - "path": "src\/81de8f57-dd9c-4a17-964f-848cd4a0743b", - "guid": "81de8f57-dd9c-4a17-964f-848cd4a0743b" - }, - "2ad31f74-f579-499d-b98b-c4f54fd615dd": { - "name": "LoadInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", - "code": "src\/2ad31f74-f579-499d-b98b-c4f54fd615dd\/code.php", - "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", - "guid": "2ad31f74-f579-499d-b98b-c4f54fd615dd" - }, - "ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48": { - "name": "InsertInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", - "code": "src\/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\/code.php", - "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", - "guid": "ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48" - }, - "2da6d6c4-eb29-4d69-8bc2-36d96e916adf": { - "name": "Tableinterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", - "code": "src\/2da6d6c4-eb29-4d69-8bc2-36d96e916adf\/code.php", - "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", - "guid": "2da6d6c4-eb29-4d69-8bc2-36d96e916adf" - }, - "4815e1c7-a433-443d-a112-d1e03d7df84b": { - "name": "Database", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/4815e1c7-a433-443d-a112-d1e03d7df84b\/code.php", - "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", - "guid": "4815e1c7-a433-443d-a112-d1e03d7df84b" - }, - "fa4bf18e-301e-42e3-91fb-6e0096c07adc": { - "name": "Config", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", - "code": "src\/fa4bf18e-301e-42e3-91fb-6e0096c07adc\/code.php", - "power": "src\/fa4bf18e-301e-42e3-91fb-6e0096c07adc\/code.power", - "settings": "src\/fa4bf18e-301e-42e3-91fb-6e0096c07adc\/settings.json", - "path": "src\/fa4bf18e-301e-42e3-91fb-6e0096c07adc", - "guid": "fa4bf18e-301e-42e3-91fb-6e0096c07adc" - }, - "33bdc535-0ff1-40c8-bb22-b5d44f1731c4": { - "name": "CustomcodeInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", - "code": "src\/33bdc535-0ff1-40c8-bb22-b5d44f1731c4\/code.php", - "power": "src\/33bdc535-0ff1-40c8-bb22-b5d44f1731c4\/code.power", - "settings": "src\/33bdc535-0ff1-40c8-bb22-b5d44f1731c4\/settings.json", - "path": "src\/33bdc535-0ff1-40c8-bb22-b5d44f1731c4", - "guid": "33bdc535-0ff1-40c8-bb22-b5d44f1731c4" - }, - "a6cdd935-c038-4a54-8446-54bed87f003c": { - "name": "PlaceholderInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", - "code": "src\/a6cdd935-c038-4a54-8446-54bed87f003c\/code.php", - "power": "src\/a6cdd935-c038-4a54-8446-54bed87f003c\/code.power", - "settings": "src\/a6cdd935-c038-4a54-8446-54bed87f003c\/settings.json", - "path": "src\/a6cdd935-c038-4a54-8446-54bed87f003c", - "guid": "a6cdd935-c038-4a54-8446-54bed87f003c" - }, - "500f3a7f-c16d-4dd4-81b2-2df6776b5388": { - "name": "Placefix", - "type": "abstract class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/500f3a7f-c16d-4dd4-81b2-2df6776b5388\/code.php", - "power": "src\/500f3a7f-c16d-4dd4-81b2-2df6776b5388\/code.power", - "settings": "src\/500f3a7f-c16d-4dd4-81b2-2df6776b5388\/settings.json", - "path": "src\/500f3a7f-c16d-4dd4-81b2-2df6776b5388", - "guid": "500f3a7f-c16d-4dd4-81b2-2df6776b5388" - }, - "06453ada-e370-49f0-b262-e3f5a8ed0c2c": { - "name": "Placeholder", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", - "code": "src\/06453ada-e370-49f0-b262-e3f5a8ed0c2c\/code.php", - "power": "src\/06453ada-e370-49f0-b262-e3f5a8ed0c2c\/code.power", - "settings": "src\/06453ada-e370-49f0-b262-e3f5a8ed0c2c\/settings.json", - "path": "src\/06453ada-e370-49f0-b262-e3f5a8ed0c2c", - "guid": "06453ada-e370-49f0-b262-e3f5a8ed0c2c" - }, - "d6592c9b-93a6-41b3-83c7-c43a0a80cb83": { - "name": "LanguageInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", - "code": "src\/d6592c9b-93a6-41b3-83c7-c43a0a80cb83\/code.php", - "power": "src\/d6592c9b-93a6-41b3-83c7-c43a0a80cb83\/code.power", - "settings": "src\/d6592c9b-93a6-41b3-83c7-c43a0a80cb83\/settings.json", - "path": "src\/d6592c9b-93a6-41b3-83c7-c43a0a80cb83", - "guid": "d6592c9b-93a6-41b3-83c7-c43a0a80cb83" - }, - "8eee7df5-2775-41a9-9372-c46c5939a252": { - "name": "Language", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", - "code": "src\/8eee7df5-2775-41a9-9372-c46c5939a252\/code.php", - "power": "src\/8eee7df5-2775-41a9-9372-c46c5939a252\/code.power", - "settings": "src\/8eee7df5-2775-41a9-9372-c46c5939a252\/settings.json", - "path": "src\/8eee7df5-2775-41a9-9372-c46c5939a252", - "guid": "8eee7df5-2775-41a9-9372-c46c5939a252" - }, - "d33b9278-c409-4aec-a047-b72f56712391": { - "name": "Extractor", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Language", - "code": "src\/d33b9278-c409-4aec-a047-b72f56712391\/code.php", - "power": "src\/d33b9278-c409-4aec-a047-b72f56712391\/code.power", - "settings": "src\/d33b9278-c409-4aec-a047-b72f56712391\/settings.json", - "path": "src\/d33b9278-c409-4aec-a047-b72f56712391", - "guid": "d33b9278-c409-4aec-a047-b72f56712391" - }, - "eeb03266-22fd-45bb-953a-961bb6be3a54": { - "name": "Extractor", + "007177eb-d39d-4093-8840-07a38811c502": { + "name": "Category", "type": "final class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", - "code": "src\/eeb03266-22fd-45bb-953a-961bb6be3a54\/code.php", - "power": "src\/eeb03266-22fd-45bb-953a-961bb6be3a54\/code.power", - "settings": "src\/eeb03266-22fd-45bb-953a-961bb6be3a54\/settings.json", - "path": "src\/eeb03266-22fd-45bb-953a-961bb6be3a54", - "guid": "eeb03266-22fd-45bb-953a-961bb6be3a54" - }, - "1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a": { - "name": "ExternalInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Customcode", - "code": "src\/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a\/code.php", - "power": "src\/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a\/code.power", - "settings": "src\/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a\/settings.json", - "path": "src\/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a", - "guid": "1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a" - }, - "1cef0266-99e2-40d8-919f-c2ce32226b0a": { - "name": "External", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode", - "code": "src\/1cef0266-99e2-40d8-919f-c2ce32226b0a\/code.php", - "power": "src\/1cef0266-99e2-40d8-919f-c2ce32226b0a\/code.power", - "settings": "src\/1cef0266-99e2-40d8-919f-c2ce32226b0a\/settings.json", - "path": "src\/1cef0266-99e2-40d8-919f-c2ce32226b0a", - "guid": "1cef0266-99e2-40d8-919f-c2ce32226b0a" - }, - "313b43c4-98c3-4f62-9177-2d73ec8eba31": { - "name": "Customcode", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", - "code": "src\/313b43c4-98c3-4f62-9177-2d73ec8eba31\/code.php", - "power": "src\/313b43c4-98c3-4f62-9177-2d73ec8eba31\/code.power", - "settings": "src\/313b43c4-98c3-4f62-9177-2d73ec8eba31\/settings.json", - "path": "src\/313b43c4-98c3-4f62-9177-2d73ec8eba31", - "guid": "313b43c4-98c3-4f62-9177-2d73ec8eba31" - }, - "2cc8517d-1105-4697-9743-048b4b7c089c": { - "name": "GuiInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Customcode", - "code": "src\/2cc8517d-1105-4697-9743-048b4b7c089c\/code.php", - "power": "src\/2cc8517d-1105-4697-9743-048b4b7c089c\/code.power", - "settings": "src\/2cc8517d-1105-4697-9743-048b4b7c089c\/settings.json", - "path": "src\/2cc8517d-1105-4697-9743-048b4b7c089c", - "guid": "2cc8517d-1105-4697-9743-048b4b7c089c" - }, - "ca111518-e47c-4049-b1b2-cb010f23866f": { - "name": "Reverse", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Placeholder", - "code": "src\/ca111518-e47c-4049-b1b2-cb010f23866f\/code.php", - "power": "src\/ca111518-e47c-4049-b1b2-cb010f23866f\/code.power", - "settings": "src\/ca111518-e47c-4049-b1b2-cb010f23866f\/settings.json", - "path": "src\/ca111518-e47c-4049-b1b2-cb010f23866f", - "guid": "ca111518-e47c-4049-b1b2-cb010f23866f" - }, - "95d0e03f-24fd-4412-bc2e-f0899fcc3205": { - "name": "Parser", - "type": "final class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", - "code": "src\/95d0e03f-24fd-4412-bc2e-f0899fcc3205\/code.php", - "power": "src\/95d0e03f-24fd-4412-bc2e-f0899fcc3205\/code.power", - "settings": "src\/95d0e03f-24fd-4412-bc2e-f0899fcc3205\/settings.json", - "path": "src\/95d0e03f-24fd-4412-bc2e-f0899fcc3205", - "guid": "95d0e03f-24fd-4412-bc2e-f0899fcc3205" - }, - "1bd48df2-4f7e-4581-9fe9-4b54e59105e3": { - "name": "Gui", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode", - "code": "src\/1bd48df2-4f7e-4581-9fe9-4b54e59105e3\/code.php", - "power": "src\/1bd48df2-4f7e-4581-9fe9-4b54e59105e3\/code.power", - "settings": "src\/1bd48df2-4f7e-4581-9fe9-4b54e59105e3\/settings.json", - "path": "src\/1bd48df2-4f7e-4581-9fe9-4b54e59105e3", - "guid": "1bd48df2-4f7e-4581-9fe9-4b54e59105e3" - }, - "20ed72b0-fcac-4344-aee1-8a65e3bf221d": { - "name": "EventInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", - "code": "src\/20ed72b0-fcac-4344-aee1-8a65e3bf221d\/code.php", - "power": "src\/20ed72b0-fcac-4344-aee1-8a65e3bf221d\/code.power", - "settings": "src\/20ed72b0-fcac-4344-aee1-8a65e3bf221d\/settings.json", - "path": "src\/20ed72b0-fcac-4344-aee1-8a65e3bf221d", - "guid": "20ed72b0-fcac-4344-aee1-8a65e3bf221d" - }, - "4325745f-da1f-4d4d-a591-3189fe8c06e5": { - "name": "HistoryInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", - "code": "src\/4325745f-da1f-4d4d-a591-3189fe8c06e5\/code.php", - "power": "src\/4325745f-da1f-4d4d-a591-3189fe8c06e5\/code.power", - "settings": "src\/4325745f-da1f-4d4d-a591-3189fe8c06e5\/settings.json", - "path": "src\/4325745f-da1f-4d4d-a591-3189fe8c06e5", - "guid": "4325745f-da1f-4d4d-a591-3189fe8c06e5" - }, - "ef687e42-dc25-4423-9dd4-ec6e9743cfb0": { - "name": "DispenserInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Customcode", - "code": "src\/ef687e42-dc25-4423-9dd4-ec6e9743cfb0\/code.php", - "power": "src\/ef687e42-dc25-4423-9dd4-ec6e9743cfb0\/code.power", - "settings": "src\/ef687e42-dc25-4423-9dd4-ec6e9743cfb0\/settings.json", - "path": "src\/ef687e42-dc25-4423-9dd4-ec6e9743cfb0", - "guid": "ef687e42-dc25-4423-9dd4-ec6e9743cfb0" - }, - "797579e8-b272-41ed-91de-428cb0b3e089": { - "name": "Hash", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode", - "code": "src\/797579e8-b272-41ed-91de-428cb0b3e089\/code.php", - "power": "src\/797579e8-b272-41ed-91de-428cb0b3e089\/code.power", - "settings": "src\/797579e8-b272-41ed-91de-428cb0b3e089\/settings.json", - "path": "src\/797579e8-b272-41ed-91de-428cb0b3e089", - "guid": "797579e8-b272-41ed-91de-428cb0b3e089" - }, - "a3c515f5-4adf-4eb3-b637-0a1add550da6": { - "name": "LockBaseInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Customcode", - "code": "src\/a3c515f5-4adf-4eb3-b637-0a1add550da6\/code.php", - "power": "src\/a3c515f5-4adf-4eb3-b637-0a1add550da6\/code.power", - "settings": "src\/a3c515f5-4adf-4eb3-b637-0a1add550da6\/settings.json", - "path": "src\/a3c515f5-4adf-4eb3-b637-0a1add550da6", - "guid": "a3c515f5-4adf-4eb3-b637-0a1add550da6" - }, - "a68c010b-e92e-47d5-8a44-d23cfddeb6c6": { - "name": "Indent", - "type": "abstract class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/a68c010b-e92e-47d5-8a44-d23cfddeb6c6\/code.php", - "power": "src\/a68c010b-e92e-47d5-8a44-d23cfddeb6c6\/code.power", - "settings": "src\/a68c010b-e92e-47d5-8a44-d23cfddeb6c6\/settings.json", - "path": "src\/a68c010b-e92e-47d5-8a44-d23cfddeb6c6", - "guid": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6" - }, - "7c07c9d6-34cd-4491-934a-ef0a83f414c0": { - "name": "LockBase", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode", - "code": "src\/7c07c9d6-34cd-4491-934a-ef0a83f414c0\/code.php", - "power": "src\/7c07c9d6-34cd-4491-934a-ef0a83f414c0\/code.power", - "settings": "src\/7c07c9d6-34cd-4491-934a-ef0a83f414c0\/settings.json", - "path": "src\/7c07c9d6-34cd-4491-934a-ef0a83f414c0", - "guid": "7c07c9d6-34cd-4491-934a-ef0a83f414c0" - }, - "f1dc6430-fb54-452e-aa53-ce32ae93db88": { - "name": "Dispenser", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode", - "code": "src\/f1dc6430-fb54-452e-aa53-ce32ae93db88\/code.php", - "power": "src\/f1dc6430-fb54-452e-aa53-ce32ae93db88\/code.power", - "settings": "src\/f1dc6430-fb54-452e-aa53-ce32ae93db88\/settings.json", - "path": "src\/f1dc6430-fb54-452e-aa53-ce32ae93db88", - "guid": "f1dc6430-fb54-452e-aa53-ce32ae93db88" - }, - "a356d103-74f3-49ca-8e4f-3bd37746f089": { - "name": "Customcode", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", - "code": "src\/a356d103-74f3-49ca-8e4f-3bd37746f089\/code.php", - "power": "src\/a356d103-74f3-49ca-8e4f-3bd37746f089\/code.power", - "settings": "src\/a356d103-74f3-49ca-8e4f-3bd37746f089\/settings.json", - "path": "src\/a356d103-74f3-49ca-8e4f-3bd37746f089", - "guid": "a356d103-74f3-49ca-8e4f-3bd37746f089" - }, - "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6": { - "name": "Registry", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", - "code": "src\/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6\/code.php", - "power": "src\/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6\/code.power", - "settings": "src\/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6\/settings.json", - "path": "src\/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", - "guid": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6" - }, - "b9f05dc4-d23a-499a-a826-9749b81818ed": { - "name": "CoreValidationInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Field", - "code": "src\/b9f05dc4-d23a-499a-a826-9749b81818ed\/code.php", - "power": "src\/b9f05dc4-d23a-499a-a826-9749b81818ed\/code.power", - "settings": "src\/b9f05dc4-d23a-499a-a826-9749b81818ed\/settings.json", - "path": "src\/b9f05dc4-d23a-499a-a826-9749b81818ed", - "guid": "b9f05dc4-d23a-499a-a826-9749b81818ed" - }, - "c871fb4a-4c33-4302-bb79-a9cd7ef4a557": { - "name": "Validation", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", - "code": "src\/c871fb4a-4c33-4302-bb79-a9cd7ef4a557\/code.php", - "power": "src\/c871fb4a-4c33-4302-bb79-a9cd7ef4a557\/code.power", - "settings": "src\/c871fb4a-4c33-4302-bb79-a9cd7ef4a557\/settings.json", - "path": "src\/c871fb4a-4c33-4302-bb79-a9cd7ef4a557", - "guid": "c871fb4a-4c33-4302-bb79-a9cd7ef4a557" - }, - "ce826b66-0f2d-43da-8005-41b8e4cb21ee": { - "name": "Data", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", - "code": "src\/ce826b66-0f2d-43da-8005-41b8e4cb21ee\/code.php", - "power": "src\/ce826b66-0f2d-43da-8005-41b8e4cb21ee\/code.power", - "settings": "src\/ce826b66-0f2d-43da-8005-41b8e4cb21ee\/settings.json", - "path": "src\/ce826b66-0f2d-43da-8005-41b8e4cb21ee", - "guid": "ce826b66-0f2d-43da-8005-41b8e4cb21ee" - }, - "8c018533-e967-4bf2-9bd9-9e92966fcb5e": { - "name": "UniqueName", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", - "code": "src\/8c018533-e967-4bf2-9bd9-9e92966fcb5e\/code.php", - "power": "src\/8c018533-e967-4bf2-9bd9-9e92966fcb5e\/code.power", - "settings": "src\/8c018533-e967-4bf2-9bd9-9e92966fcb5e\/settings.json", - "path": "src\/8c018533-e967-4bf2-9bd9-9e92966fcb5e", - "guid": "8c018533-e967-4bf2-9bd9-9e92966fcb5e" - }, - "9387215f-a965-4421-acf3-5e8f9d11382f": { - "name": "Name", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", - "code": "src\/9387215f-a965-4421-acf3-5e8f9d11382f\/code.php", - "power": "src\/9387215f-a965-4421-acf3-5e8f9d11382f\/code.power", - "settings": "src\/9387215f-a965-4421-acf3-5e8f9d11382f\/settings.json", - "path": "src\/9387215f-a965-4421-acf3-5e8f9d11382f", - "guid": "9387215f-a965-4421-acf3-5e8f9d11382f" - }, - "eb33420d-359d-44a5-852e-613aef1feaae": { - "name": "TypeName", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", - "code": "src\/eb33420d-359d-44a5-852e-613aef1feaae\/code.php", - "power": "src\/eb33420d-359d-44a5-852e-613aef1feaae\/code.power", - "settings": "src\/eb33420d-359d-44a5-852e-613aef1feaae\/settings.json", - "path": "src\/eb33420d-359d-44a5-852e-613aef1feaae", - "guid": "eb33420d-359d-44a5-852e-613aef1feaae" - }, - "d7ba2d5d-10b6-470d-978d-9f91ea65ee75": { - "name": "Field", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", - "code": "src\/d7ba2d5d-10b6-470d-978d-9f91ea65ee75\/code.php", - "power": "src\/d7ba2d5d-10b6-470d-978d-9f91ea65ee75\/code.power", - "settings": "src\/d7ba2d5d-10b6-470d-978d-9f91ea65ee75\/settings.json", - "path": "src\/d7ba2d5d-10b6-470d-978d-9f91ea65ee75", - "guid": "d7ba2d5d-10b6-470d-978d-9f91ea65ee75" - }, - "f4578c04-a81e-4218-b80d-b0612196eaf0": { - "name": "Filesfolders", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/f4578c04-a81e-4218-b80d-b0612196eaf0\/code.php", - "power": "src\/f4578c04-a81e-4218-b80d-b0612196eaf0\/code.power", - "settings": "src\/f4578c04-a81e-4218-b80d-b0612196eaf0\/settings.json", - "path": "src\/f4578c04-a81e-4218-b80d-b0612196eaf0", - "guid": "f4578c04-a81e-4218-b80d-b0612196eaf0" - }, - "766a9524-37df-4604-91a7-b98a6150ee26": { - "name": "Data", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Joomlaplugin", - "code": "src\/766a9524-37df-4604-91a7-b98a6150ee26\/code.php", - "power": "src\/766a9524-37df-4604-91a7-b98a6150ee26\/code.power", - "settings": "src\/766a9524-37df-4604-91a7-b98a6150ee26\/settings.json", - "path": "src\/766a9524-37df-4604-91a7-b98a6150ee26", - "guid": "766a9524-37df-4604-91a7-b98a6150ee26" - }, - "ef97b03e-1018-447a-8d7e-30401b0257bb": { - "name": "Joomlaplugins", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/ef97b03e-1018-447a-8d7e-30401b0257bb\/code.php", - "power": "src\/ef97b03e-1018-447a-8d7e-30401b0257bb\/code.power", - "settings": "src\/ef97b03e-1018-447a-8d7e-30401b0257bb\/settings.json", - "path": "src\/ef97b03e-1018-447a-8d7e-30401b0257bb", - "guid": "ef97b03e-1018-447a-8d7e-30401b0257bb" - }, - "7175c1cd-2071-4cd7-b499-23881e168c3f": { - "name": "Data", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Library", - "code": "src\/7175c1cd-2071-4cd7-b499-23881e168c3f\/code.php", - "power": "src\/7175c1cd-2071-4cd7-b499-23881e168c3f\/code.power", - "settings": "src\/7175c1cd-2071-4cd7-b499-23881e168c3f\/settings.json", - "path": "src\/7175c1cd-2071-4cd7-b499-23881e168c3f", - "guid": "7175c1cd-2071-4cd7-b499-23881e168c3f" - }, - "59895f37-50c8-4af3-9dad-230e18841953": { - "name": "Libraries", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/59895f37-50c8-4af3-9dad-230e18841953\/code.php", - "power": "src\/59895f37-50c8-4af3-9dad-230e18841953\/code.power", - "settings": "src\/59895f37-50c8-4af3-9dad-230e18841953\/settings.json", - "path": "src\/59895f37-50c8-4af3-9dad-230e18841953", - "guid": "59895f37-50c8-4af3-9dad-230e18841953" - }, - "5b021139-dad0-4e9b-882a-2b4d807795af": { - "name": "Selection", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Dynamicget", - "code": "src\/5b021139-dad0-4e9b-882a-2b4d807795af\/code.php", - "power": "src\/5b021139-dad0-4e9b-882a-2b4d807795af\/code.power", - "settings": "src\/5b021139-dad0-4e9b-882a-2b4d807795af\/settings.json", - "path": "src\/5b021139-dad0-4e9b-882a-2b4d807795af", - "guid": "5b021139-dad0-4e9b-882a-2b4d807795af" - }, - "79740ee8-4d10-4b51-9ff5-18e1386ec1c6": { - "name": "Dynamicget", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/79740ee8-4d10-4b51-9ff5-18e1386ec1c6\/code.php", - "power": "src\/79740ee8-4d10-4b51-9ff5-18e1386ec1c6\/code.power", - "settings": "src\/79740ee8-4d10-4b51-9ff5-18e1386ec1c6\/settings.json", - "path": "src\/79740ee8-4d10-4b51-9ff5-18e1386ec1c6", - "guid": "79740ee8-4d10-4b51-9ff5-18e1386ec1c6" - }, - "05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46": { - "name": "Data", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Dynamicget", - "code": "src\/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46\/code.php", - "power": "src\/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46\/code.power", - "settings": "src\/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46\/settings.json", - "path": "src\/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46", - "guid": "05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46" - }, - "cb11e8d9-69c2-4095-831c-59908ea402e7": { - "name": "Data", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Joomlamodule", - "code": "src\/cb11e8d9-69c2-4095-831c-59908ea402e7\/code.php", - "power": "src\/cb11e8d9-69c2-4095-831c-59908ea402e7\/code.power", - "settings": "src\/cb11e8d9-69c2-4095-831c-59908ea402e7\/settings.json", - "path": "src\/cb11e8d9-69c2-4095-831c-59908ea402e7", - "guid": "cb11e8d9-69c2-4095-831c-59908ea402e7" - }, - "bfdc4ce5-cb12-4fc6-9023-51cede25edd0": { - "name": "Joomlamodules", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/bfdc4ce5-cb12-4fc6-9023-51cede25edd0\/code.php", - "power": "src\/bfdc4ce5-cb12-4fc6-9023-51cede25edd0\/code.power", - "settings": "src\/bfdc4ce5-cb12-4fc6-9023-51cede25edd0\/settings.json", - "path": "src\/bfdc4ce5-cb12-4fc6-9023-51cede25edd0", - "guid": "bfdc4ce5-cb12-4fc6-9023-51cede25edd0" - }, - "b80296eb-4718-4ed3-894d-69f3ac293733": { - "name": "Updatesql", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/b80296eb-4718-4ed3-894d-69f3ac293733\/code.php", - "power": "src\/b80296eb-4718-4ed3-894d-69f3ac293733\/code.power", - "settings": "src\/b80296eb-4718-4ed3-894d-69f3ac293733\/settings.json", - "path": "src\/b80296eb-4718-4ed3-894d-69f3ac293733", - "guid": "b80296eb-4718-4ed3-894d-69f3ac293733" - }, - "17a728e9-d6cf-4060-9efb-241b0ff2f981": { - "name": "Historycomponent", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/17a728e9-d6cf-4060-9efb-241b0ff2f981\/code.php", - "power": "src\/17a728e9-d6cf-4060-9efb-241b0ff2f981\/code.power", - "settings": "src\/17a728e9-d6cf-4060-9efb-241b0ff2f981\/settings.json", - "path": "src\/17a728e9-d6cf-4060-9efb-241b0ff2f981", - "guid": "17a728e9-d6cf-4060-9efb-241b0ff2f981" - }, - "0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7": { - "name": "Loader", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7\/code.php", - "power": "src\/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7\/code.power", - "settings": "src\/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7\/settings.json", - "path": "src\/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7", - "guid": "0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7" - }, - "f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c": { - "name": "Data", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Alias", - "code": "src\/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c\/code.php", - "power": "src\/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c\/code.power", - "settings": "src\/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c\/settings.json", - "path": "src\/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c", - "guid": "f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c" - }, - "39ea8150-f124-4e47-909d-641bf1c96d5e": { - "name": "Data", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Templatelayout", - "code": "src\/39ea8150-f124-4e47-909d-641bf1c96d5e\/code.php", - "power": "src\/39ea8150-f124-4e47-909d-641bf1c96d5e\/code.power", - "settings": "src\/39ea8150-f124-4e47-909d-641bf1c96d5e\/settings.json", - "path": "src\/39ea8150-f124-4e47-909d-641bf1c96d5e", - "guid": "39ea8150-f124-4e47-909d-641bf1c96d5e" - }, - "29455d3b-df2b-4e41-8684-1608060e37a4": { - "name": "Javascriptcustomview", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/29455d3b-df2b-4e41-8684-1608060e37a4\/code.php", - "power": "src\/29455d3b-df2b-4e41-8684-1608060e37a4\/code.power", - "settings": "src\/29455d3b-df2b-4e41-8684-1608060e37a4\/settings.json", - "path": "src\/29455d3b-df2b-4e41-8684-1608060e37a4", - "guid": "29455d3b-df2b-4e41-8684-1608060e37a4" - }, - "3283a89c-329a-47fb-a011-0df6c31a5c73": { - "name": "Csscustomview", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/3283a89c-329a-47fb-a011-0df6c31a5c73\/code.php", - "power": "src\/3283a89c-329a-47fb-a011-0df6c31a5c73\/code.power", - "settings": "src\/3283a89c-329a-47fb-a011-0df6c31a5c73\/settings.json", - "path": "src\/3283a89c-329a-47fb-a011-0df6c31a5c73", - "guid": "3283a89c-329a-47fb-a011-0df6c31a5c73" - }, - "489da602-27c7-418c-bf59-1d45ad42bdcc": { - "name": "Phpcustomview", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/489da602-27c7-418c-bf59-1d45ad42bdcc\/code.php", - "power": "src\/489da602-27c7-418c-bf59-1d45ad42bdcc\/code.power", - "settings": "src\/489da602-27c7-418c-bf59-1d45ad42bdcc\/settings.json", - "path": "src\/489da602-27c7-418c-bf59-1d45ad42bdcc", - "guid": "489da602-27c7-418c-bf59-1d45ad42bdcc" - }, - "592aed4e-2c5f-4fc5-8f7a-409203d1af82": { - "name": "Ajaxcustomview", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/592aed4e-2c5f-4fc5-8f7a-409203d1af82\/code.php", - "power": "src\/592aed4e-2c5f-4fc5-8f7a-409203d1af82\/code.power", - "settings": "src\/592aed4e-2c5f-4fc5-8f7a-409203d1af82\/settings.json", - "path": "src\/592aed4e-2c5f-4fc5-8f7a-409203d1af82", - "guid": "592aed4e-2c5f-4fc5-8f7a-409203d1af82" - }, - "ebe3287d-bfa0-4519-b663-f442f4dea432": { - "name": "Custombuttons", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/ebe3287d-bfa0-4519-b663-f442f4dea432\/code.php", - "power": "src\/ebe3287d-bfa0-4519-b663-f442f4dea432\/code.power", - "settings": "src\/ebe3287d-bfa0-4519-b663-f442f4dea432\/settings.json", - "path": "src\/ebe3287d-bfa0-4519-b663-f442f4dea432", - "guid": "ebe3287d-bfa0-4519-b663-f442f4dea432" - }, - "f02fb1df-f4b6-4be1-9595-2e72084a5e6e": { - "name": "Unique", - "type": "abstract class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/f02fb1df-f4b6-4be1-9595-2e72084a5e6e\/code.php", - "power": "src\/f02fb1df-f4b6-4be1-9595-2e72084a5e6e\/code.power", - "settings": "src\/f02fb1df-f4b6-4be1-9595-2e72084a5e6e\/settings.json", - "path": "src\/f02fb1df-f4b6-4be1-9595-2e72084a5e6e", - "guid": "f02fb1df-f4b6-4be1-9595-2e72084a5e6e" - }, - "3b6895da-d9eb-4164-90b1-4632a4cc2474": { - "name": "Data", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customview", - "code": "src\/3b6895da-d9eb-4164-90b1-4632a4cc2474\/code.php", - "power": "src\/3b6895da-d9eb-4164-90b1-4632a4cc2474\/code.power", - "settings": "src\/3b6895da-d9eb-4164-90b1-4632a4cc2474\/settings.json", - "path": "src\/3b6895da-d9eb-4164-90b1-4632a4cc2474", - "guid": "3b6895da-d9eb-4164-90b1-4632a4cc2474" - }, - "e0e24173-a808-4dd5-8e26-de971d014f86": { - "name": "Customadminviews", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/e0e24173-a808-4dd5-8e26-de971d014f86\/code.php", - "power": "src\/e0e24173-a808-4dd5-8e26-de971d014f86\/code.power", - "settings": "src\/e0e24173-a808-4dd5-8e26-de971d014f86\/settings.json", - "path": "src\/e0e24173-a808-4dd5-8e26-de971d014f86", - "guid": "e0e24173-a808-4dd5-8e26-de971d014f86" - }, - "e0075978-315d-4807-8507-ce9c6922a885": { - "name": "Siteviews", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/e0075978-315d-4807-8507-ce9c6922a885\/code.php", - "power": "src\/e0075978-315d-4807-8507-ce9c6922a885\/code.power", - "settings": "src\/e0075978-315d-4807-8507-ce9c6922a885\/settings.json", - "path": "src\/e0075978-315d-4807-8507-ce9c6922a885", - "guid": "e0075978-315d-4807-8507-ce9c6922a885" - }, - "0dabc67c-abec-4541-82bf-279abd3c9be1": { - "name": "Permissions", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/0dabc67c-abec-4541-82bf-279abd3c9be1\/code.php", - "power": "src\/0dabc67c-abec-4541-82bf-279abd3c9be1\/code.power", - "settings": "src\/0dabc67c-abec-4541-82bf-279abd3c9be1\/settings.json", - "path": "src\/0dabc67c-abec-4541-82bf-279abd3c9be1", - "guid": "0dabc67c-abec-4541-82bf-279abd3c9be1" - }, - "6dfbf568-f3cd-4ea7-af04-6859447b5462": { - "name": "Historyadminview", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/6dfbf568-f3cd-4ea7-af04-6859447b5462\/code.php", - "power": "src\/6dfbf568-f3cd-4ea7-af04-6859447b5462\/code.power", - "settings": "src\/6dfbf568-f3cd-4ea7-af04-6859447b5462\/settings.json", - "path": "src\/6dfbf568-f3cd-4ea7-af04-6859447b5462", - "guid": "6dfbf568-f3cd-4ea7-af04-6859447b5462" - }, - "35191b0c-f7f3-44d6-8ec1-c816b997bd4e": { - "name": "Mysqlsettings", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/35191b0c-f7f3-44d6-8ec1-c816b997bd4e\/code.php", - "power": "src\/35191b0c-f7f3-44d6-8ec1-c816b997bd4e\/code.power", - "settings": "src\/35191b0c-f7f3-44d6-8ec1-c816b997bd4e\/settings.json", - "path": "src\/35191b0c-f7f3-44d6-8ec1-c816b997bd4e", - "guid": "35191b0c-f7f3-44d6-8ec1-c816b997bd4e" - }, - "a6e1227c-1efe-407d-84ef-03c6989a6a88": { - "name": "Sqldump", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/a6e1227c-1efe-407d-84ef-03c6989a6a88\/code.php", - "power": "src\/a6e1227c-1efe-407d-84ef-03c6989a6a88\/code.power", - "settings": "src\/a6e1227c-1efe-407d-84ef-03c6989a6a88\/settings.json", - "path": "src\/a6e1227c-1efe-407d-84ef-03c6989a6a88", - "guid": "a6e1227c-1efe-407d-84ef-03c6989a6a88" - }, - "d4b418a7-bf9b-4768-969d-e07c36916fd2": { - "name": "Sql", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/d4b418a7-bf9b-4768-969d-e07c36916fd2\/code.php", - "power": "src\/d4b418a7-bf9b-4768-969d-e07c36916fd2\/code.power", - "settings": "src\/d4b418a7-bf9b-4768-969d-e07c36916fd2\/settings.json", - "path": "src\/d4b418a7-bf9b-4768-969d-e07c36916fd2", - "guid": "d4b418a7-bf9b-4768-969d-e07c36916fd2" - }, - "5f8e8fa6-3793-44af-882d-9cfb209434e9": { - "name": "Customalias", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/5f8e8fa6-3793-44af-882d-9cfb209434e9\/code.php", - "power": "src\/5f8e8fa6-3793-44af-882d-9cfb209434e9\/code.power", - "settings": "src\/5f8e8fa6-3793-44af-882d-9cfb209434e9\/settings.json", - "path": "src\/5f8e8fa6-3793-44af-882d-9cfb209434e9", - "guid": "5f8e8fa6-3793-44af-882d-9cfb209434e9" - }, - "4f575bd6-de97-41f8-80d6-259c8a6dd9ad": { - "name": "Ajaxadmin", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/4f575bd6-de97-41f8-80d6-259c8a6dd9ad\/code.php", - "power": "src\/4f575bd6-de97-41f8-80d6-259c8a6dd9ad\/code.power", - "settings": "src\/4f575bd6-de97-41f8-80d6-259c8a6dd9ad\/settings.json", - "path": "src\/4f575bd6-de97-41f8-80d6-259c8a6dd9ad", - "guid": "4f575bd6-de97-41f8-80d6-259c8a6dd9ad" - }, - "037c7274-fb16-455d-989a-bf1da022620b": { - "name": "Customimportscripts", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/037c7274-fb16-455d-989a-bf1da022620b\/code.php", - "power": "src\/037c7274-fb16-455d-989a-bf1da022620b\/code.power", - "settings": "src\/037c7274-fb16-455d-989a-bf1da022620b\/settings.json", - "path": "src\/037c7274-fb16-455d-989a-bf1da022620b", - "guid": "037c7274-fb16-455d-989a-bf1da022620b" - }, - "c20a63e0-0eeb-4424-9d08-b1bf0f049dfe": { - "name": "Phpadminview", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe\/code.php", - "power": "src\/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe\/code.power", - "settings": "src\/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe\/settings.json", - "path": "src\/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe", - "guid": "c20a63e0-0eeb-4424-9d08-b1bf0f049dfe" - }, - "e79842d3-51b7-4282-93c7-3487cd8b61ab": { - "name": "Cssadminview", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/e79842d3-51b7-4282-93c7-3487cd8b61ab\/code.php", - "power": "src\/e79842d3-51b7-4282-93c7-3487cd8b61ab\/code.power", - "settings": "src\/e79842d3-51b7-4282-93c7-3487cd8b61ab\/settings.json", - "path": "src\/e79842d3-51b7-4282-93c7-3487cd8b61ab", - "guid": "e79842d3-51b7-4282-93c7-3487cd8b61ab" - }, - "dfd3c893-0296-46eb-9ae4-a0348713cd8f": { - "name": "Javascriptadminview", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/dfd3c893-0296-46eb-9ae4-a0348713cd8f\/code.php", - "power": "src\/dfd3c893-0296-46eb-9ae4-a0348713cd8f\/code.power", - "settings": "src\/dfd3c893-0296-46eb-9ae4-a0348713cd8f\/settings.json", - "path": "src\/dfd3c893-0296-46eb-9ae4-a0348713cd8f", - "guid": "dfd3c893-0296-46eb-9ae4-a0348713cd8f" - }, - "ae1fa148-91be-4f80-89a9-69d91ba9d575": { - "name": "Linkedviews", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/ae1fa148-91be-4f80-89a9-69d91ba9d575\/code.php", - "power": "src\/ae1fa148-91be-4f80-89a9-69d91ba9d575\/code.power", - "settings": "src\/ae1fa148-91be-4f80-89a9-69d91ba9d575\/settings.json", - "path": "src\/ae1fa148-91be-4f80-89a9-69d91ba9d575", - "guid": "ae1fa148-91be-4f80-89a9-69d91ba9d575" - }, - "a8eb2fb1-88ed-4af8-842d-898eb915b588": { - "name": "Relations", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/a8eb2fb1-88ed-4af8-842d-898eb915b588\/code.php", - "power": "src\/a8eb2fb1-88ed-4af8-842d-898eb915b588\/code.power", - "settings": "src\/a8eb2fb1-88ed-4af8-842d-898eb915b588\/settings.json", - "path": "src\/a8eb2fb1-88ed-4af8-842d-898eb915b588", - "guid": "a8eb2fb1-88ed-4af8-842d-898eb915b588" - }, - "7a5fd3f3-199e-43ba-a8e8-f473d6c030ec": { - "name": "FieldHelper", - "type": "abstract class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec\/code.php", - "power": "src\/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec\/code.power", - "settings": "src\/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec\/settings.json", - "path": "src\/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec", - "guid": "7a5fd3f3-199e-43ba-a8e8-f473d6c030ec" - }, - "55e61314-ba10-4e2b-92dd-b44adebabce9": { - "name": "Conditions", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/55e61314-ba10-4e2b-92dd-b44adebabce9\/code.php", - "power": "src\/55e61314-ba10-4e2b-92dd-b44adebabce9\/code.power", - "settings": "src\/55e61314-ba10-4e2b-92dd-b44adebabce9\/settings.json", - "path": "src\/55e61314-ba10-4e2b-92dd-b44adebabce9", - "guid": "55e61314-ba10-4e2b-92dd-b44adebabce9" - }, - "e6a64c41-405e-4bbc-9722-27402c22bbea": { - "name": "Fields", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/e6a64c41-405e-4bbc-9722-27402c22bbea\/code.php", - "power": "src\/e6a64c41-405e-4bbc-9722-27402c22bbea\/code.power", - "settings": "src\/e6a64c41-405e-4bbc-9722-27402c22bbea\/settings.json", - "path": "src\/e6a64c41-405e-4bbc-9722-27402c22bbea", - "guid": "e6a64c41-405e-4bbc-9722-27402c22bbea" - }, - "143ac6ea-b64f-4331-9a97-31e3fce2bb69": { - "name": "Tabs", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/143ac6ea-b64f-4331-9a97-31e3fce2bb69\/code.php", - "power": "src\/143ac6ea-b64f-4331-9a97-31e3fce2bb69\/code.power", - "settings": "src\/143ac6ea-b64f-4331-9a97-31e3fce2bb69\/settings.json", - "path": "src\/143ac6ea-b64f-4331-9a97-31e3fce2bb69", - "guid": "143ac6ea-b64f-4331-9a97-31e3fce2bb69" - }, - "fa8c1125-d370-4cb6-a7ff-eb32193c198c": { - "name": "Customtabs", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/fa8c1125-d370-4cb6-a7ff-eb32193c198c\/code.php", - "power": "src\/fa8c1125-d370-4cb6-a7ff-eb32193c198c\/code.power", - "settings": "src\/fa8c1125-d370-4cb6-a7ff-eb32193c198c\/settings.json", - "path": "src\/fa8c1125-d370-4cb6-a7ff-eb32193c198c", - "guid": "fa8c1125-d370-4cb6-a7ff-eb32193c198c" - }, - "cef2815b-f72b-402a-b769-f028f676692d": { - "name": "Data", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Adminview", - "code": "src\/cef2815b-f72b-402a-b769-f028f676692d\/code.php", - "power": "src\/cef2815b-f72b-402a-b769-f028f676692d\/code.power", - "settings": "src\/cef2815b-f72b-402a-b769-f028f676692d\/settings.json", - "path": "src\/cef2815b-f72b-402a-b769-f028f676692d", - "guid": "cef2815b-f72b-402a-b769-f028f676692d" - }, - "cebdcccb-24c5-46db-92de-63453852dcb8": { - "name": "Adminviews", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/cebdcccb-24c5-46db-92de-63453852dcb8\/code.php", - "power": "src\/cebdcccb-24c5-46db-92de-63453852dcb8\/code.power", - "settings": "src\/cebdcccb-24c5-46db-92de-63453852dcb8\/settings.json", - "path": "src\/cebdcccb-24c5-46db-92de-63453852dcb8", - "guid": "cebdcccb-24c5-46db-92de-63453852dcb8" - }, - "e50cbac5-9c9d-4fd4-aa7a-5e830719ed26": { - "name": "Sqltweaking", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26\/code.php", - "power": "src\/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26\/code.power", - "settings": "src\/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26\/settings.json", - "path": "src\/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26", - "guid": "e50cbac5-9c9d-4fd4-aa7a-5e830719ed26" - }, - "af5beb21-214a-44f6-9090-7ea24c22e649": { - "name": "Whmcs", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/af5beb21-214a-44f6-9090-7ea24c22e649\/code.php", - "power": "src\/af5beb21-214a-44f6-9090-7ea24c22e649\/code.power", - "settings": "src\/af5beb21-214a-44f6-9090-7ea24c22e649\/settings.json", - "path": "src\/af5beb21-214a-44f6-9090-7ea24c22e649", - "guid": "af5beb21-214a-44f6-9090-7ea24c22e649" - }, - "9127e428-5dee-46cb-b3a9-ab5b91ea6df3": { - "name": "Modifieddate", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/9127e428-5dee-46cb-b3a9-ab5b91ea6df3\/code.php", - "power": "src\/9127e428-5dee-46cb-b3a9-ab5b91ea6df3\/code.power", - "settings": "src\/9127e428-5dee-46cb-b3a9-ab5b91ea6df3\/settings.json", - "path": "src\/9127e428-5dee-46cb-b3a9-ab5b91ea6df3", - "guid": "9127e428-5dee-46cb-b3a9-ab5b91ea6df3" - }, - "53cf9828-7ad4-4856-aac1-7c4c67bd3121": { - "name": "Createdate", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/53cf9828-7ad4-4856-aac1-7c4c67bd3121\/code.php", - "power": "src\/53cf9828-7ad4-4856-aac1-7c4c67bd3121\/code.power", - "settings": "src\/53cf9828-7ad4-4856-aac1-7c4c67bd3121\/settings.json", - "path": "src\/53cf9828-7ad4-4856-aac1-7c4c67bd3121", - "guid": "53cf9828-7ad4-4856-aac1-7c4c67bd3121" - }, - "1d0fd857-12ec-4f47-ab1c-124d85748e24": { - "name": "Updateserver", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", - "code": "src\/1d0fd857-12ec-4f47-ab1c-124d85748e24\/code.php", - "power": "src\/1d0fd857-12ec-4f47-ab1c-124d85748e24\/code.power", - "settings": "src\/1d0fd857-12ec-4f47-ab1c-124d85748e24\/settings.json", - "path": "src\/1d0fd857-12ec-4f47-ab1c-124d85748e24", - "guid": "1d0fd857-12ec-4f47-ab1c-124d85748e24" - }, - "0601fee8-d51e-4af0-9ad3-b5f8700c4a45": { - "name": "Model", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/0601fee8-d51e-4af0-9ad3-b5f8700c4a45\/code.php", - "power": "src\/0601fee8-d51e-4af0-9ad3-b5f8700c4a45\/code.power", - "settings": "src\/0601fee8-d51e-4af0-9ad3-b5f8700c4a45\/settings.json", - "path": "src\/0601fee8-d51e-4af0-9ad3-b5f8700c4a45", - "guid": "0601fee8-d51e-4af0-9ad3-b5f8700c4a45" - }, - "fbc58009-fa16-4d49-a0dd-419c3b62d42f": { - "name": "Mapperdoubleinterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", - "code": "src\/fbc58009-fa16-4d49-a0dd-419c3b62d42f\/code.php", - "power": "src\/fbc58009-fa16-4d49-a0dd-419c3b62d42f\/code.power", - "settings": "src\/fbc58009-fa16-4d49-a0dd-419c3b62d42f\/settings.json", - "path": "src\/fbc58009-fa16-4d49-a0dd-419c3b62d42f", - "guid": "fbc58009-fa16-4d49-a0dd-419c3b62d42f" - }, - "78527c29-24ad-4735-ad4c-ec33a4952d9b": { - "name": "Mappersingleinterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", - "code": "src\/78527c29-24ad-4735-ad4c-ec33a4952d9b\/code.php", - "power": "src\/78527c29-24ad-4735-ad4c-ec33a4952d9b\/code.power", - "settings": "src\/78527c29-24ad-4735-ad4c-ec33a4952d9b\/settings.json", - "path": "src\/78527c29-24ad-4735-ad4c-ec33a4952d9b", - "guid": "78527c29-24ad-4735-ad4c-ec33a4952d9b" - }, - "adfbe68a-6d22-43e5-aee8-2787e8c47e75": { - "name": "Content", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", - "code": "src\/adfbe68a-6d22-43e5-aee8-2787e8c47e75\/code.php", - "power": "src\/adfbe68a-6d22-43e5-aee8-2787e8c47e75\/code.power", - "settings": "src\/adfbe68a-6d22-43e5-aee8-2787e8c47e75\/settings.json", - "path": "src\/adfbe68a-6d22-43e5-aee8-2787e8c47e75", - "guid": "adfbe68a-6d22-43e5-aee8-2787e8c47e75" - }, - "23f2ca33-440a-4941-8e9a-4bc67522c0cb": { - "name": "Mapper", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/23f2ca33-440a-4941-8e9a-4bc67522c0cb\/code.php", - "power": "src\/23f2ca33-440a-4941-8e9a-4bc67522c0cb\/code.power", - "settings": "src\/23f2ca33-440a-4941-8e9a-4bc67522c0cb\/settings.json", - "path": "src\/23f2ca33-440a-4941-8e9a-4bc67522c0cb", - "guid": "23f2ca33-440a-4941-8e9a-4bc67522c0cb" - }, - "ea5ed06e-72ae-4906-9167-1cc0fa32fe69": { - "name": "Compiler", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/ea5ed06e-72ae-4906-9167-1cc0fa32fe69\/code.php", - "power": "src\/ea5ed06e-72ae-4906-9167-1cc0fa32fe69\/code.power", - "settings": "src\/ea5ed06e-72ae-4906-9167-1cc0fa32fe69\/settings.json", - "path": "src\/ea5ed06e-72ae-4906-9167-1cc0fa32fe69", - "guid": "ea5ed06e-72ae-4906-9167-1cc0fa32fe69" - }, - "4b86f62e-ce41-4325-a11a-08148807d0df": { - "name": "Event", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\JoomlaThree", - "code": "src\/4b86f62e-ce41-4325-a11a-08148807d0df\/code.php", - "power": "src\/4b86f62e-ce41-4325-a11a-08148807d0df\/code.power", - "settings": "src\/4b86f62e-ce41-4325-a11a-08148807d0df\/settings.json", - "path": "src\/4b86f62e-ce41-4325-a11a-08148807d0df", - "guid": "4b86f62e-ce41-4325-a11a-08148807d0df" - }, - "b94aaedb-6774-4739-a63f-8f87141a85db": { - "name": "Event", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/b94aaedb-6774-4739-a63f-8f87141a85db\/code.php", - "power": "src\/b94aaedb-6774-4739-a63f-8f87141a85db\/code.power", - "settings": "src\/b94aaedb-6774-4739-a63f-8f87141a85db\/settings.json", - "path": "src\/b94aaedb-6774-4739-a63f-8f87141a85db", - "guid": "b94aaedb-6774-4739-a63f-8f87141a85db" - }, - "87db51b9-1126-4c21-858b-53dbd3a68b61": { - "name": "History", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\JoomlaThree", - "code": "src\/87db51b9-1126-4c21-858b-53dbd3a68b61\/code.php", - "power": "src\/87db51b9-1126-4c21-858b-53dbd3a68b61\/code.power", - "settings": "src\/87db51b9-1126-4c21-858b-53dbd3a68b61\/settings.json", - "path": "src\/87db51b9-1126-4c21-858b-53dbd3a68b61", - "guid": "87db51b9-1126-4c21-858b-53dbd3a68b61" - }, - "63782f74-7b03-4745-aa40-0adf8ed4e704": { - "name": "History", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/63782f74-7b03-4745-aa40-0adf8ed4e704\/code.php", - "power": "src\/63782f74-7b03-4745-aa40-0adf8ed4e704\/code.power", - "settings": "src\/63782f74-7b03-4745-aa40-0adf8ed4e704\/settings.json", - "path": "src\/63782f74-7b03-4745-aa40-0adf8ed4e704", - "guid": "63782f74-7b03-4745-aa40-0adf8ed4e704" - }, - "9f00e793-86f8-4ef9-b775-a3eb129f83c0": { - "name": "Language", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/9f00e793-86f8-4ef9-b775-a3eb129f83c0\/code.php", - "power": "src\/9f00e793-86f8-4ef9-b775-a3eb129f83c0\/code.power", - "settings": "src\/9f00e793-86f8-4ef9-b775-a3eb129f83c0\/settings.json", - "path": "src\/9f00e793-86f8-4ef9-b775-a3eb129f83c0", - "guid": "9f00e793-86f8-4ef9-b775-a3eb129f83c0" - }, - "2f7b1998-bb93-4055-ae82-aa659ce8a37f": { - "name": "Placeholder", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/2f7b1998-bb93-4055-ae82-aa659ce8a37f\/code.php", - "power": "src\/2f7b1998-bb93-4055-ae82-aa659ce8a37f\/code.power", - "settings": "src\/2f7b1998-bb93-4055-ae82-aa659ce8a37f\/settings.json", - "path": "src\/2f7b1998-bb93-4055-ae82-aa659ce8a37f", - "guid": "2f7b1998-bb93-4055-ae82-aa659ce8a37f" - }, - "6da2afa5-6087-46dd-80a0-74c6434bcb18": { - "name": "ExtractorInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Customcode", - "code": "src\/6da2afa5-6087-46dd-80a0-74c6434bcb18\/code.php", - "power": "src\/6da2afa5-6087-46dd-80a0-74c6434bcb18\/code.power", - "settings": "src\/6da2afa5-6087-46dd-80a0-74c6434bcb18\/settings.json", - "path": "src\/6da2afa5-6087-46dd-80a0-74c6434bcb18", - "guid": "6da2afa5-6087-46dd-80a0-74c6434bcb18" - }, - "97698747-c2ce-4e09-a470-acf6d8e86281": { - "name": "PlaceholderInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Component", - "code": "src\/97698747-c2ce-4e09-a470-acf6d8e86281\/code.php", - "power": "src\/97698747-c2ce-4e09-a470-acf6d8e86281\/code.power", - "settings": "src\/97698747-c2ce-4e09-a470-acf6d8e86281\/settings.json", - "path": "src\/97698747-c2ce-4e09-a470-acf6d8e86281", - "guid": "97698747-c2ce-4e09-a470-acf6d8e86281" - }, - "aecc17ba-0b0f-4e5c-ae43-71be063a3dcb": { - "name": "Placeholder", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", - "code": "src\/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb\/code.php", - "power": "src\/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb\/code.power", - "settings": "src\/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb\/settings.json", - "path": "src\/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb", - "guid": "aecc17ba-0b0f-4e5c-ae43-71be063a3dcb" - }, - "053803e6-1251-4aed-aefe-46a8e84198d2": { - "name": "Paths", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode\\Extractor", - "code": "src\/053803e6-1251-4aed-aefe-46a8e84198d2\/code.php", - "power": "src\/053803e6-1251-4aed-aefe-46a8e84198d2\/code.power", - "settings": "src\/053803e6-1251-4aed-aefe-46a8e84198d2\/settings.json", - "path": "src\/053803e6-1251-4aed-aefe-46a8e84198d2", - "guid": "053803e6-1251-4aed-aefe-46a8e84198d2" - }, - "cdc9b06d-8333-4fa7-ab4d-b810dd90f95f": { - "name": "Pathfix", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f\/code.php", - "power": "src\/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f\/code.power", - "settings": "src\/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f\/settings.json", - "path": "src\/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f", - "guid": "cdc9b06d-8333-4fa7-ab4d-b810dd90f95f" + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/007177eb-d39d-4093-8840-07a38811c502\/code.php", + "power": "src\/007177eb-d39d-4093-8840-07a38811c502\/code.power", + "settings": "src\/007177eb-d39d-4093-8840-07a38811c502\/settings.json", + "path": "src\/007177eb-d39d-4093-8840-07a38811c502", + "spk": "Super__007177eb_d39d_4093_8840_07a38811c502__Power", + "guid": "007177eb-d39d-4093-8840-07a38811c502" }, "01411bb1-fdd6-4cca-84d7-1b62d93c70c1": { "name": "Extractor", @@ -1057,137 +18,30 @@ "power": "src\/01411bb1-fdd6-4cca-84d7-1b62d93c70c1\/code.power", "settings": "src\/01411bb1-fdd6-4cca-84d7-1b62d93c70c1\/settings.json", "path": "src\/01411bb1-fdd6-4cca-84d7-1b62d93c70c1", + "spk": "Super__01411bb1_fdd6_4cca_84d7_1b62d93c70c1__Power", "guid": "01411bb1-fdd6-4cca-84d7-1b62d93c70c1" }, - "a74ac3b7-bb79-4639-8f14-54a8021be68b": { - "name": "Customcode", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/a74ac3b7-bb79-4639-8f14-54a8021be68b\/code.php", - "power": "src\/a74ac3b7-bb79-4639-8f14-54a8021be68b\/code.power", - "settings": "src\/a74ac3b7-bb79-4639-8f14-54a8021be68b\/settings.json", - "path": "src\/a74ac3b7-bb79-4639-8f14-54a8021be68b", - "guid": "a74ac3b7-bb79-4639-8f14-54a8021be68b" - }, - "1133c2d7-ba7e-4c95-8cde-01f084d04682": { - "name": "PowerInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", - "code": "src\/1133c2d7-ba7e-4c95-8cde-01f084d04682\/code.php", - "power": "src\/1133c2d7-ba7e-4c95-8cde-01f084d04682\/code.power", - "settings": "src\/1133c2d7-ba7e-4c95-8cde-01f084d04682\/settings.json", - "path": "src\/1133c2d7-ba7e-4c95-8cde-01f084d04682", - "guid": "1133c2d7-ba7e-4c95-8cde-01f084d04682" - }, - "7c1fb50f-8fb1-4627-8705-6fedf7182ca5": { - "name": "Model", - "type": "final class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Power", - "code": "src\/7c1fb50f-8fb1-4627-8705-6fedf7182ca5\/code.php", - "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", - "guid": "7c1fb50f-8fb1-4627-8705-6fedf7182ca5" - }, - "380bb7a3-cdcc-4336-a699-5070cbf521a5": { - "name": "Insert", - "type": "final class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Database", - "code": "src\/380bb7a3-cdcc-4336-a699-5070cbf521a5\/code.php", - "power": "src\/380bb7a3-cdcc-4336-a699-5070cbf521a5\/code.power", - "settings": "src\/380bb7a3-cdcc-4336-a699-5070cbf521a5\/settings.json", - "path": "src\/380bb7a3-cdcc-4336-a699-5070cbf521a5", - "guid": "380bb7a3-cdcc-4336-a699-5070cbf521a5" - }, - "e543c123-b1d9-4a0b-83b2-a9d371da5ff3": { - "name": "Update", - "type": "final class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Database", - "code": "src\/e543c123-b1d9-4a0b-83b2-a9d371da5ff3\/code.php", - "power": "src\/e543c123-b1d9-4a0b-83b2-a9d371da5ff3\/code.power", - "settings": "src\/e543c123-b1d9-4a0b-83b2-a9d371da5ff3\/settings.json", - "path": "src\/e543c123-b1d9-4a0b-83b2-a9d371da5ff3", - "guid": "e543c123-b1d9-4a0b-83b2-a9d371da5ff3" - }, - "6784dd52-0909-451a-a872-9a942a023c68": { - "name": "Grep", - "type": "final class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Power", - "code": "src\/6784dd52-0909-451a-a872-9a942a023c68\/code.php", - "power": "src\/6784dd52-0909-451a-a872-9a942a023c68\/code.power", - "settings": "src\/6784dd52-0909-451a-a872-9a942a023c68\/settings.json", - "path": "src\/6784dd52-0909-451a-a872-9a942a023c68", - "guid": "6784dd52-0909-451a-a872-9a942a023c68" - }, - "3ab0eba9-f37b-4b37-aec1-2e78067f2aff": { - "name": "Super", - "type": "final class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Power", - "code": "src\/3ab0eba9-f37b-4b37-aec1-2e78067f2aff\/code.php", - "power": "src\/3ab0eba9-f37b-4b37-aec1-2e78067f2aff\/code.power", - "settings": "src\/3ab0eba9-f37b-4b37-aec1-2e78067f2aff\/settings.json", - "path": "src\/3ab0eba9-f37b-4b37-aec1-2e78067f2aff", - "guid": "3ab0eba9-f37b-4b37-aec1-2e78067f2aff" - }, - "b836c1b1-b6b1-44f7-b8a2-9a763a4185b1": { + "02bc072b-1e89-46c1-9732-4da77b1a9ac9": { "name": "Power", "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", - "code": "src\/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1\/code.php", - "power": "src\/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1\/code.power", - "settings": "src\/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1\/settings.json", - "path": "src\/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1", - "guid": "b836c1b1-b6b1-44f7-b8a2-9a763a4185b1" + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Service", + "code": "src\/02bc072b-1e89-46c1-9732-4da77b1a9ac9\/code.php", + "power": "src\/02bc072b-1e89-46c1-9732-4da77b1a9ac9\/code.power", + "settings": "src\/02bc072b-1e89-46c1-9732-4da77b1a9ac9\/settings.json", + "path": "src\/02bc072b-1e89-46c1-9732-4da77b1a9ac9", + "spk": "Super__02bc072b_1e89_46c1_9732_4da77b1a9ac9__Power", + "guid": "02bc072b-1e89-46c1-9732-4da77b1a9ac9" }, - "4e6ff11d-bebf-42f5-8fd7-b2f882857222": { - "name": "Line", - "type": "abstract class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/4e6ff11d-bebf-42f5-8fd7-b2f882857222\/code.php", - "power": "src\/4e6ff11d-bebf-42f5-8fd7-b2f882857222\/code.power", - "settings": "src\/4e6ff11d-bebf-42f5-8fd7-b2f882857222\/settings.json", - "path": "src\/4e6ff11d-bebf-42f5-8fd7-b2f882857222", - "guid": "4e6ff11d-bebf-42f5-8fd7-b2f882857222" - }, - "6e64917c-d687-4ef3-a655-811319f5a81e": { - "name": "Autoloader", + "037c7274-fb16-455d-989a-bf1da022620b": { + "name": "Customimportscripts", "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", - "code": "src\/6e64917c-d687-4ef3-a655-811319f5a81e\/code.php", - "power": "src\/6e64917c-d687-4ef3-a655-811319f5a81e\/code.power", - "settings": "src\/6e64917c-d687-4ef3-a655-811319f5a81e\/settings.json", - "path": "src\/6e64917c-d687-4ef3-a655-811319f5a81e", - "guid": "6e64917c-d687-4ef3-a655-811319f5a81e" - }, - "ff5e9e63-86d0-4691-ab59-d4b9d9154096": { - "name": "Plantuml", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", - "code": "src\/ff5e9e63-86d0-4691-ab59-d4b9d9154096\/code.php", - "power": "src\/ff5e9e63-86d0-4691-ab59-d4b9d9154096\/code.power", - "settings": "src\/ff5e9e63-86d0-4691-ab59-d4b9d9154096\/settings.json", - "path": "src\/ff5e9e63-86d0-4691-ab59-d4b9d9154096", - "guid": "ff5e9e63-86d0-4691-ab59-d4b9d9154096" - }, - "efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5": { - "name": "Readme", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power\\Repo", - "code": "src\/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5\/code.php", - "power": "src\/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5\/code.power", - "settings": "src\/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5\/settings.json", - "path": "src\/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5", - "guid": "efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5" - }, - "0d08c583-04d5-454e-b756-48ca05e1651a": { - "name": "Readme", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power\\Repos", - "code": "src\/0d08c583-04d5-454e-b756-48ca05e1651a\/code.php", - "power": "src\/0d08c583-04d5-454e-b756-48ca05e1651a\/code.power", - "settings": "src\/0d08c583-04d5-454e-b756-48ca05e1651a\/settings.json", - "path": "src\/0d08c583-04d5-454e-b756-48ca05e1651a", - "guid": "0d08c583-04d5-454e-b756-48ca05e1651a" + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/037c7274-fb16-455d-989a-bf1da022620b\/code.php", + "power": "src\/037c7274-fb16-455d-989a-bf1da022620b\/code.power", + "settings": "src\/037c7274-fb16-455d-989a-bf1da022620b\/settings.json", + "path": "src\/037c7274-fb16-455d-989a-bf1da022620b", + "spk": "Super__037c7274_fb16_455d_989a_bf1da022620b__Power", + "guid": "037c7274-fb16-455d-989a-bf1da022620b" }, "0419081e-4cb3-4c65-8c6a-ffe941fb0f1c": { "name": "Infusion", @@ -1197,317 +51,63 @@ "power": "src\/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c\/code.power", "settings": "src\/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c\/settings.json", "path": "src\/0419081e-4cb3-4c65-8c6a-ffe941fb0f1c", + "spk": "Super__0419081e_4cb3_4c65_8c6a_ffe941fb0f1c__Power", "guid": "0419081e-4cb3-4c65-8c6a-ffe941fb0f1c" }, - "e6d871a6-bbe7-497d-af01-68f6bb9a87f4": { - "name": "Counter", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/e6d871a6-bbe7-497d-af01-68f6bb9a87f4\/code.php", - "power": "src\/e6d871a6-bbe7-497d-af01-68f6bb9a87f4\/code.power", - "settings": "src\/e6d871a6-bbe7-497d-af01-68f6bb9a87f4\/settings.json", - "path": "src\/e6d871a6-bbe7-497d-af01-68f6bb9a87f4", - "guid": "e6d871a6-bbe7-497d-af01-68f6bb9a87f4" - }, - "ef9578e5-4c9d-46bf-866f-3a94bdc7b753": { - "name": "Data", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", - "code": "src\/ef9578e5-4c9d-46bf-866f-3a94bdc7b753\/code.php", - "power": "src\/ef9578e5-4c9d-46bf-866f-3a94bdc7b753\/code.power", - "settings": "src\/ef9578e5-4c9d-46bf-866f-3a94bdc7b753\/settings.json", - "path": "src\/ef9578e5-4c9d-46bf-866f-3a94bdc7b753", - "guid": "ef9578e5-4c9d-46bf-866f-3a94bdc7b753" - }, - "e2472b22-a329-44d8-b4a2-ae3ba99e17a0": { - "name": "Component", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", - "code": "src\/e2472b22-a329-44d8-b4a2-ae3ba99e17a0\/code.php", - "power": "src\/e2472b22-a329-44d8-b4a2-ae3ba99e17a0\/code.power", - "settings": "src\/e2472b22-a329-44d8-b4a2-ae3ba99e17a0\/settings.json", - "path": "src\/e2472b22-a329-44d8-b4a2-ae3ba99e17a0", - "guid": "e2472b22-a329-44d8-b4a2-ae3ba99e17a0" - }, - "6f20369a-8536-4870-a1a3-cda254c939c8": { + "053803e6-1251-4aed-aefe-46a8e84198d2": { "name": "Paths", "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/6f20369a-8536-4870-a1a3-cda254c939c8\/code.php", - "power": "src\/6f20369a-8536-4870-a1a3-cda254c939c8\/code.power", - "settings": "src\/6f20369a-8536-4870-a1a3-cda254c939c8\/settings.json", - "path": "src\/6f20369a-8536-4870-a1a3-cda254c939c8", - "guid": "6f20369a-8536-4870-a1a3-cda254c939c8" + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode\\Extractor", + "code": "src\/053803e6-1251-4aed-aefe-46a8e84198d2\/code.php", + "power": "src\/053803e6-1251-4aed-aefe-46a8e84198d2\/code.power", + "settings": "src\/053803e6-1251-4aed-aefe-46a8e84198d2\/settings.json", + "path": "src\/053803e6-1251-4aed-aefe-46a8e84198d2", + "spk": "Super__053803e6_1251_4aed_aefe_46a8e84198d2__Power", + "guid": "053803e6-1251-4aed-aefe-46a8e84198d2" }, - "5c75b455-3d4c-452a-867e-e90424a64c88": { - "name": "File", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/5c75b455-3d4c-452a-867e-e90424a64c88\/code.php", - "power": "src\/5c75b455-3d4c-452a-867e-e90424a64c88\/code.power", - "settings": "src\/5c75b455-3d4c-452a-867e-e90424a64c88\/settings.json", - "path": "src\/5c75b455-3d4c-452a-867e-e90424a64c88", - "guid": "5c75b455-3d4c-452a-867e-e90424a64c88" - }, - "6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1": { - "name": "Folder", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1\/code.php", - "power": "src\/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1\/code.power", - "settings": "src\/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1\/settings.json", - "path": "src\/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1", - "guid": "6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1" - }, - "1d967151-7c20-4ca7-9400-65233cdcd4db": { - "name": "Files", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/1d967151-7c20-4ca7-9400-65233cdcd4db\/code.php", - "power": "src\/1d967151-7c20-4ca7-9400-65233cdcd4db\/code.power", - "settings": "src\/1d967151-7c20-4ca7-9400-65233cdcd4db\/settings.json", - "path": "src\/1d967151-7c20-4ca7-9400-65233cdcd4db", - "guid": "1d967151-7c20-4ca7-9400-65233cdcd4db" - }, - "324566de-0f7d-4b6e-9caf-8424d55013ae": { - "name": "Structure", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", - "code": "src\/324566de-0f7d-4b6e-9caf-8424d55013ae\/code.php", - "power": "src\/324566de-0f7d-4b6e-9caf-8424d55013ae\/code.power", - "settings": "src\/324566de-0f7d-4b6e-9caf-8424d55013ae\/settings.json", - "path": "src\/324566de-0f7d-4b6e-9caf-8424d55013ae", - "guid": "324566de-0f7d-4b6e-9caf-8424d55013ae" - }, - "763d137c-42bc-4282-98d8-cc5c0654985f": { - "name": "Injector", + "05448890-e324-41a0-b6db-d804bfc241cc": { + "name": "FieldsetString", "type": "final class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", - "code": "src\/763d137c-42bc-4282-98d8-cc5c0654985f\/code.php", - "power": "src\/763d137c-42bc-4282-98d8-cc5c0654985f\/code.power", - "settings": "src\/763d137c-42bc-4282-98d8-cc5c0654985f\/settings.json", - "path": "src\/763d137c-42bc-4282-98d8-cc5c0654985f", - "guid": "763d137c-42bc-4282-98d8-cc5c0654985f" + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/05448890-e324-41a0-b6db-d804bfc241cc\/code.php", + "power": "src\/05448890-e324-41a0-b6db-d804bfc241cc\/code.power", + "settings": "src\/05448890-e324-41a0-b6db-d804bfc241cc\/settings.json", + "path": "src\/05448890-e324-41a0-b6db-d804bfc241cc", + "spk": "Super__05448890_e324_41a0_b6db_d804bfc241cc__Power", + "guid": "05448890-e324-41a0-b6db-d804bfc241cc" }, - "de01527a-6586-46ea-92e7-11ea3de1cedb": { - "name": "Power", + "05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46": { + "name": "Data", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Dynamicget", + "code": "src\/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46\/code.php", + "power": "src\/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46\/code.power", + "settings": "src\/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46\/settings.json", + "path": "src\/05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46", + "spk": "Super__05c49a1f_ba5b_4be1_b3d0_4a74c42f7a46__Power", + "guid": "05c49a1f-ba5b-4be1-b3d0-4a74c42f7a46" + }, + "0601fee8-d51e-4af0-9ad3-b5f8700c4a45": { + "name": "Model", "type": "class", "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/de01527a-6586-46ea-92e7-11ea3de1cedb\/code.php", - "power": "src\/de01527a-6586-46ea-92e7-11ea3de1cedb\/code.power", - "settings": "src\/de01527a-6586-46ea-92e7-11ea3de1cedb\/settings.json", - "path": "src\/de01527a-6586-46ea-92e7-11ea3de1cedb", - "guid": "de01527a-6586-46ea-92e7-11ea3de1cedb" + "code": "src\/0601fee8-d51e-4af0-9ad3-b5f8700c4a45\/code.php", + "power": "src\/0601fee8-d51e-4af0-9ad3-b5f8700c4a45\/code.power", + "settings": "src\/0601fee8-d51e-4af0-9ad3-b5f8700c4a45\/settings.json", + "path": "src\/0601fee8-d51e-4af0-9ad3-b5f8700c4a45", + "spk": "Super__0601fee8_d51e_4af0_9ad3_b5f8700c4a45__Power", + "guid": "0601fee8-d51e-4af0-9ad3-b5f8700c4a45" }, - "e0c8c931-52a0-4171-9909-e8769505bb1f": { - "name": "Constantpaths", + "06453ada-e370-49f0-b262-e3f5a8ed0c2c": { + "name": "Placeholder", "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Utilities", - "code": "src\/e0c8c931-52a0-4171-9909-e8769505bb1f\/code.php", - "power": "src\/e0c8c931-52a0-4171-9909-e8769505bb1f\/code.power", - "settings": "src\/e0c8c931-52a0-4171-9909-e8769505bb1f\/settings.json", - "path": "src\/e0c8c931-52a0-4171-9909-e8769505bb1f", - "guid": "e0c8c931-52a0-4171-9909-e8769505bb1f" - }, - "268b85ef-49f3-4c39-8187-bb12e38d19ee": { - "name": "Dynamicpath", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/268b85ef-49f3-4c39-8187-bb12e38d19ee\/code.php", - "power": "src\/268b85ef-49f3-4c39-8187-bb12e38d19ee\/code.power", - "settings": "src\/268b85ef-49f3-4c39-8187-bb12e38d19ee\/settings.json", - "path": "src\/268b85ef-49f3-4c39-8187-bb12e38d19ee", - "guid": "268b85ef-49f3-4c39-8187-bb12e38d19ee" - }, - "63dabe82-0f4a-4ade-9851-8518ade23de2": { - "name": "Settings", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", - "code": "src\/63dabe82-0f4a-4ade-9851-8518ade23de2\/code.php", - "power": "src\/63dabe82-0f4a-4ade-9851-8518ade23de2\/code.power", - "settings": "src\/63dabe82-0f4a-4ade-9851-8518ade23de2\/settings.json", - "path": "src\/63dabe82-0f4a-4ade-9851-8518ade23de2", - "guid": "63dabe82-0f4a-4ade-9851-8518ade23de2" - }, - "cfe62a32-8818-4bfb-8751-2f1e109b5336": { - "name": "Dashboard", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", - "code": "src\/cfe62a32-8818-4bfb-8751-2f1e109b5336\/code.php", - "power": "src\/cfe62a32-8818-4bfb-8751-2f1e109b5336\/code.power", - "settings": "src\/cfe62a32-8818-4bfb-8751-2f1e109b5336\/settings.json", - "path": "src\/cfe62a32-8818-4bfb-8751-2f1e109b5336", - "guid": "cfe62a32-8818-4bfb-8751-2f1e109b5336" - }, - "6c89c663-78f5-4078-9fac-7047f2eaaf96": { - "name": "Structure", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", - "code": "src\/6c89c663-78f5-4078-9fac-7047f2eaaf96\/code.php", - "power": "src\/6c89c663-78f5-4078-9fac-7047f2eaaf96\/code.power", - "settings": "src\/6c89c663-78f5-4078-9fac-7047f2eaaf96\/settings.json", - "path": "src\/6c89c663-78f5-4078-9fac-7047f2eaaf96", - "guid": "6c89c663-78f5-4078-9fac-7047f2eaaf96" - }, - "673954d3-78d3-445a-b99f-4b40d617c882": { - "name": "Structuresingle", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", - "code": "src\/673954d3-78d3-445a-b99f-4b40d617c882\/code.php", - "power": "src\/673954d3-78d3-445a-b99f-4b40d617c882\/code.power", - "settings": "src\/673954d3-78d3-445a-b99f-4b40d617c882\/settings.json", - "path": "src\/673954d3-78d3-445a-b99f-4b40d617c882", - "guid": "673954d3-78d3-445a-b99f-4b40d617c882" - }, - "1efdded5-d6c8-452c-8f37-0374483a7b3f": { - "name": "Structure", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", - "code": "src\/1efdded5-d6c8-452c-8f37-0374483a7b3f\/code.php", - "power": "src\/1efdded5-d6c8-452c-8f37-0374483a7b3f\/code.power", - "settings": "src\/1efdded5-d6c8-452c-8f37-0374483a7b3f\/settings.json", - "path": "src\/1efdded5-d6c8-452c-8f37-0374483a7b3f", - "guid": "1efdded5-d6c8-452c-8f37-0374483a7b3f" - }, - "b69a23db-0a62-4840-a9c5-b2d8d63ecc6c": { - "name": "Structuremultiple", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", - "code": "src\/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c\/code.php", - "power": "src\/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c\/code.power", - "settings": "src\/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c\/settings.json", - "path": "src\/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c", - "guid": "b69a23db-0a62-4840-a9c5-b2d8d63ecc6c" - }, - "8a63e87b-b39b-4a15-8044-9b2a2f4fb61c": { - "name": "Component", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c\/code.php", - "power": "src\/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c\/code.power", - "settings": "src\/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c\/settings.json", - "path": "src\/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c", - "guid": "8a63e87b-b39b-4a15-8044-9b2a2f4fb61c" - }, - "2dd1289a-4000-43cc-8c62-77ff32de56bf": { - "name": "Adminview", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/2dd1289a-4000-43cc-8c62-77ff32de56bf\/code.php", - "power": "src\/2dd1289a-4000-43cc-8c62-77ff32de56bf\/code.power", - "settings": "src\/2dd1289a-4000-43cc-8c62-77ff32de56bf\/settings.json", - "path": "src\/2dd1289a-4000-43cc-8c62-77ff32de56bf", - "guid": "2dd1289a-4000-43cc-8c62-77ff32de56bf" - }, - "d3ce5763-4d00-4245-a175-54fc2e80e9b7": { - "name": "Structure", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Library", - "code": "src\/d3ce5763-4d00-4245-a175-54fc2e80e9b7\/code.php", - "power": "src\/d3ce5763-4d00-4245-a175-54fc2e80e9b7\/code.power", - "settings": "src\/d3ce5763-4d00-4245-a175-54fc2e80e9b7\/settings.json", - "path": "src\/d3ce5763-4d00-4245-a175-54fc2e80e9b7", - "guid": "d3ce5763-4d00-4245-a175-54fc2e80e9b7" - }, - "253317c7-3c3b-48a0-aec8-8af5e7a86504": { - "name": "Library", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/253317c7-3c3b-48a0-aec8-8af5e7a86504\/code.php", - "power": "src\/253317c7-3c3b-48a0-aec8-8af5e7a86504\/code.power", - "settings": "src\/253317c7-3c3b-48a0-aec8-8af5e7a86504\/settings.json", - "path": "src\/253317c7-3c3b-48a0-aec8-8af5e7a86504", - "guid": "253317c7-3c3b-48a0-aec8-8af5e7a86504" - }, - "87faa133-4cac-4816-ae41-5c3f9a2f76aa": { - "name": "Customview", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/87faa133-4cac-4816-ae41-5c3f9a2f76aa\/code.php", - "power": "src\/87faa133-4cac-4816-ae41-5c3f9a2f76aa\/code.power", - "settings": "src\/87faa133-4cac-4816-ae41-5c3f9a2f76aa\/settings.json", - "path": "src\/87faa133-4cac-4816-ae41-5c3f9a2f76aa", - "guid": "87faa133-4cac-4816-ae41-5c3f9a2f76aa" - }, - "fff3255d-c493-4c21-a48f-73b3ebf8ba05": { - "name": "Templatelayout", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/fff3255d-c493-4c21-a48f-73b3ebf8ba05\/code.php", - "power": "src\/fff3255d-c493-4c21-a48f-73b3ebf8ba05\/code.power", - "settings": "src\/fff3255d-c493-4c21-a48f-73b3ebf8ba05\/settings.json", - "path": "src\/fff3255d-c493-4c21-a48f-73b3ebf8ba05", - "guid": "fff3255d-c493-4c21-a48f-73b3ebf8ba05" - }, - "2e6731ba-3a03-4836-b2c2-4e50e38cb890": { - "name": "GetScriptInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", - "code": "src\/2e6731ba-3a03-4836-b2c2-4e50e38cb890\/code.php", - "power": "src\/2e6731ba-3a03-4836-b2c2-4e50e38cb890\/code.power", - "settings": "src\/2e6731ba-3a03-4836-b2c2-4e50e38cb890\/settings.json", - "path": "src\/2e6731ba-3a03-4836-b2c2-4e50e38cb890", - "guid": "2e6731ba-3a03-4836-b2c2-4e50e38cb890" - }, - "1aefb8f5-486f-4f00-adf9-696340b3254e": { - "name": "InstallInterface", - "type": "interface", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Extension", - "code": "src\/1aefb8f5-486f-4f00-adf9-696340b3254e\/code.php", - "power": "src\/1aefb8f5-486f-4f00-adf9-696340b3254e\/code.power", - "settings": "src\/1aefb8f5-486f-4f00-adf9-696340b3254e\/settings.json", - "path": "src\/1aefb8f5-486f-4f00-adf9-696340b3254e", - "guid": "1aefb8f5-486f-4f00-adf9-696340b3254e" - }, - "1d929017-a5de-4e0f-9b5a-838934857e26": { - "name": "InstallScript", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Extension\\JoomlaThree", - "code": "src\/1d929017-a5de-4e0f-9b5a-838934857e26\/code.php", - "power": "src\/1d929017-a5de-4e0f-9b5a-838934857e26\/code.power", - "settings": "src\/1d929017-a5de-4e0f-9b5a-838934857e26\/settings.json", - "path": "src\/1d929017-a5de-4e0f-9b5a-838934857e26", - "guid": "1d929017-a5de-4e0f-9b5a-838934857e26" - }, - "ed9591cb-0a03-400a-bf47-eaf78ab19b9d": { - "name": "Extension", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/ed9591cb-0a03-400a-bf47-eaf78ab19b9d\/code.php", - "power": "src\/ed9591cb-0a03-400a-bf47-eaf78ab19b9d\/code.power", - "settings": "src\/ed9591cb-0a03-400a-bf47-eaf78ab19b9d\/settings.json", - "path": "src\/ed9591cb-0a03-400a-bf47-eaf78ab19b9d", - "guid": "ed9591cb-0a03-400a-bf47-eaf78ab19b9d" - }, - "99368a6f-2f64-4d4e-ad3a-544d4020ecc6": { - "name": "DatabaseName", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", - "code": "src\/99368a6f-2f64-4d4e-ad3a-544d4020ecc6\/code.php", - "power": "src\/99368a6f-2f64-4d4e-ad3a-544d4020ecc6\/code.power", - "settings": "src\/99368a6f-2f64-4d4e-ad3a-544d4020ecc6\/settings.json", - "path": "src\/99368a6f-2f64-4d4e-ad3a-544d4020ecc6", - "guid": "99368a6f-2f64-4d4e-ad3a-544d4020ecc6" - }, - "24da9672-e47f-4bb1-b6c0-0ebfc17f0957": { - "name": "CoreValidation", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field\\JoomlaThree", - "code": "src\/24da9672-e47f-4bb1-b6c0-0ebfc17f0957\/code.php", - "power": "src\/24da9672-e47f-4bb1-b6c0-0ebfc17f0957\/code.power", - "settings": "src\/24da9672-e47f-4bb1-b6c0-0ebfc17f0957\/settings.json", - "path": "src\/24da9672-e47f-4bb1-b6c0-0ebfc17f0957", - "guid": "24da9672-e47f-4bb1-b6c0-0ebfc17f0957" - }, - "c6c30d66-3106-44eb-9272-b2cf7ec74613": { - "name": "Field", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/c6c30d66-3106-44eb-9272-b2cf7ec74613\/code.php", - "power": "src\/c6c30d66-3106-44eb-9272-b2cf7ec74613\/code.power", - "settings": "src\/c6c30d66-3106-44eb-9272-b2cf7ec74613\/settings.json", - "path": "src\/c6c30d66-3106-44eb-9272-b2cf7ec74613", - "guid": "c6c30d66-3106-44eb-9272-b2cf7ec74613" + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", + "code": "src\/06453ada-e370-49f0-b262-e3f5a8ed0c2c\/code.php", + "power": "src\/06453ada-e370-49f0-b262-e3f5a8ed0c2c\/code.power", + "settings": "src\/06453ada-e370-49f0-b262-e3f5a8ed0c2c\/settings.json", + "path": "src\/06453ada-e370-49f0-b262-e3f5a8ed0c2c", + "spk": "Super__06453ada_e370_49f0_b262_e3f5a8ed0c2c__Power", + "guid": "06453ada-e370-49f0-b262-e3f5a8ed0c2c" }, "071c7cff-4c88-4b80-bd99-066c572dcb71": { "name": "Structure", @@ -1517,8 +117,383 @@ "power": "src\/071c7cff-4c88-4b80-bd99-066c572dcb71\/code.power", "settings": "src\/071c7cff-4c88-4b80-bd99-066c572dcb71\/settings.json", "path": "src\/071c7cff-4c88-4b80-bd99-066c572dcb71", + "spk": "Super__071c7cff_4c88_4b80_bd99_066c572dcb71__Power", "guid": "071c7cff-4c88-4b80-bd99-066c572dcb71" }, + "0b45357f-b077-4337-92f3-65c1e19d36cd": { + "name": "HiddenFields", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/0b45357f-b077-4337-92f3-65c1e19d36cd\/code.php", + "power": "src\/0b45357f-b077-4337-92f3-65c1e19d36cd\/code.power", + "settings": "src\/0b45357f-b077-4337-92f3-65c1e19d36cd\/settings.json", + "path": "src\/0b45357f-b077-4337-92f3-65c1e19d36cd", + "spk": "Super__0b45357f_b077_4337_92f3_65c1e19d36cd__Power", + "guid": "0b45357f-b077-4337-92f3-65c1e19d36cd" + }, + "0d08c583-04d5-454e-b756-48ca05e1651a": { + "name": "Readme", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power\\Repos", + "code": "src\/0d08c583-04d5-454e-b756-48ca05e1651a\/code.php", + "power": "src\/0d08c583-04d5-454e-b756-48ca05e1651a\/code.power", + "settings": "src\/0d08c583-04d5-454e-b756-48ca05e1651a\/settings.json", + "path": "src\/0d08c583-04d5-454e-b756-48ca05e1651a", + "spk": "Super__0d08c583_04d5_454e_b756_48ca05e1651a__Power", + "guid": "0d08c583-04d5-454e-b756-48ca05e1651a" + }, + "0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7": { + "name": "Loader", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7\/code.php", + "power": "src\/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7\/code.power", + "settings": "src\/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7\/settings.json", + "path": "src\/0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7", + "spk": "Super__0d71c2d9_2fc0_4c20_82c5_43c46b0fc6f7__Power", + "guid": "0d71c2d9-2fc0-4c20-82c5-43c46b0fc6f7" + }, + "0d8db719-39a6-48b4-85a6-2f97e784e588": { + "name": "DatabaseKeys", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/0d8db719-39a6-48b4-85a6-2f97e784e588\/code.php", + "power": "src\/0d8db719-39a6-48b4-85a6-2f97e784e588\/code.power", + "settings": "src\/0d8db719-39a6-48b4-85a6-2f97e784e588\/settings.json", + "path": "src\/0d8db719-39a6-48b4-85a6-2f97e784e588", + "spk": "Super__0d8db719_39a6_48b4_85a6_2f97e784e588__Power", + "guid": "0d8db719-39a6-48b4-85a6-2f97e784e588" + }, + "0d9d3294-0bed-4c44-b1a1-e172f62cafb2": { + "name": "DoNotEscape", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/0d9d3294-0bed-4c44-b1a1-e172f62cafb2\/code.php", + "power": "src\/0d9d3294-0bed-4c44-b1a1-e172f62cafb2\/code.power", + "settings": "src\/0d9d3294-0bed-4c44-b1a1-e172f62cafb2\/settings.json", + "path": "src\/0d9d3294-0bed-4c44-b1a1-e172f62cafb2", + "spk": "Super__0d9d3294_0bed_4c44_b1a1_e172f62cafb2__Power", + "guid": "0d9d3294-0bed-4c44-b1a1-e172f62cafb2" + }, + "0dabc67c-abec-4541-82bf-279abd3c9be1": { + "name": "Permissions", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/0dabc67c-abec-4541-82bf-279abd3c9be1\/code.php", + "power": "src\/0dabc67c-abec-4541-82bf-279abd3c9be1\/code.power", + "settings": "src\/0dabc67c-abec-4541-82bf-279abd3c9be1\/settings.json", + "path": "src\/0dabc67c-abec-4541-82bf-279abd3c9be1", + "spk": "Super__0dabc67c_abec_4541_82bf_279abd3c9be1__Power", + "guid": "0dabc67c-abec-4541-82bf-279abd3c9be1" + }, + "0f141480-afe6-41fb-996c-2a4e566a2f0d": { + "name": "NewPublishingFields", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/0f141480-afe6-41fb-996c-2a4e566a2f0d\/code.php", + "power": "src\/0f141480-afe6-41fb-996c-2a4e566a2f0d\/code.power", + "settings": "src\/0f141480-afe6-41fb-996c-2a4e566a2f0d\/settings.json", + "path": "src\/0f141480-afe6-41fb-996c-2a4e566a2f0d", + "spk": "Super__0f141480_afe6_41fb_996c_2a4e566a2f0d__Power", + "guid": "0f141480-afe6-41fb-996c-2a4e566a2f0d" + }, + "1133c2d7-ba7e-4c95-8cde-01f084d04682": { + "name": "PowerInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", + "code": "src\/1133c2d7-ba7e-4c95-8cde-01f084d04682\/code.php", + "power": "src\/1133c2d7-ba7e-4c95-8cde-01f084d04682\/code.power", + "settings": "src\/1133c2d7-ba7e-4c95-8cde-01f084d04682\/settings.json", + "path": "src\/1133c2d7-ba7e-4c95-8cde-01f084d04682", + "spk": "Super__1133c2d7_ba7e_4c95_8cde_01f084d04682__Power", + "guid": "1133c2d7-ba7e-4c95-8cde-01f084d04682" + }, + "12df35ad-2d44-4c4c-a7d5-a3350932a520": { + "name": "Groups", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", + "code": "src\/12df35ad-2d44-4c4c-a7d5-a3350932a520\/code.php", + "power": "src\/12df35ad-2d44-4c4c-a7d5-a3350932a520\/code.power", + "settings": "src\/12df35ad-2d44-4c4c-a7d5-a3350932a520\/settings.json", + "path": "src\/12df35ad-2d44-4c4c-a7d5-a3350932a520", + "spk": "Super__12df35ad_2d44_4c4c_a7d5_a3350932a520__Power", + "guid": "12df35ad-2d44-4c4c-a7d5-a3350932a520" + }, + "143ac6ea-b64f-4331-9a97-31e3fce2bb69": { + "name": "Tabs", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/143ac6ea-b64f-4331-9a97-31e3fce2bb69\/code.php", + "power": "src\/143ac6ea-b64f-4331-9a97-31e3fce2bb69\/code.power", + "settings": "src\/143ac6ea-b64f-4331-9a97-31e3fce2bb69\/settings.json", + "path": "src\/143ac6ea-b64f-4331-9a97-31e3fce2bb69", + "spk": "Super__143ac6ea_b64f_4331_9a97_31e3fce2bb69__Power", + "guid": "143ac6ea-b64f-4331-9a97-31e3fce2bb69" + }, + "15b4addf-bf6b-4691-9c92-858c7de9c2c1": { + "name": "SiteFieldData", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/15b4addf-bf6b-4691-9c92-858c7de9c2c1\/code.php", + "power": "src\/15b4addf-bf6b-4691-9c92-858c7de9c2c1\/code.power", + "settings": "src\/15b4addf-bf6b-4691-9c92-858c7de9c2c1\/settings.json", + "path": "src\/15b4addf-bf6b-4691-9c92-858c7de9c2c1", + "spk": "Super__15b4addf_bf6b_4691_9c92_858c7de9c2c1__Power", + "guid": "15b4addf-bf6b-4691-9c92-858c7de9c2c1" + }, + "17a728e9-d6cf-4060-9efb-241b0ff2f981": { + "name": "Historycomponent", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/17a728e9-d6cf-4060-9efb-241b0ff2f981\/code.php", + "power": "src\/17a728e9-d6cf-4060-9efb-241b0ff2f981\/code.power", + "settings": "src\/17a728e9-d6cf-4060-9efb-241b0ff2f981\/settings.json", + "path": "src\/17a728e9-d6cf-4060-9efb-241b0ff2f981", + "spk": "Super__17a728e9_d6cf_4060_9efb_241b0ff2f981__Power", + "guid": "17a728e9-d6cf-4060-9efb-241b0ff2f981" + }, + "17bf80af-3609-4f36-a520-be1a339c278b": { + "name": "ScriptMediaSwitch", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/17bf80af-3609-4f36-a520-be1a339c278b\/code.php", + "power": "src\/17bf80af-3609-4f36-a520-be1a339c278b\/code.power", + "settings": "src\/17bf80af-3609-4f36-a520-be1a339c278b\/settings.json", + "path": "src\/17bf80af-3609-4f36-a520-be1a339c278b", + "spk": "Super__17bf80af_3609_4f36_a520_be1a339c278b__Power", + "guid": "17bf80af-3609-4f36-a520-be1a339c278b" + }, + "17fa7789-a7d1-465e-b733-8c8d53f5ca1b": { + "name": "SiteMainGet", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/17fa7789-a7d1-465e-b733-8c8d53f5ca1b\/code.php", + "power": "src\/17fa7789-a7d1-465e-b733-8c8d53f5ca1b\/code.power", + "settings": "src\/17fa7789-a7d1-465e-b733-8c8d53f5ca1b\/settings.json", + "path": "src\/17fa7789-a7d1-465e-b733-8c8d53f5ca1b", + "spk": "Super__17fa7789_a7d1_465e_b733_8c8d53f5ca1b__Power", + "guid": "17fa7789-a7d1-465e-b733-8c8d53f5ca1b" + }, + "1ae9a8e8-59f7-4844-a08d-9a4dce4be076": { + "name": "DynamicFields", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/1ae9a8e8-59f7-4844-a08d-9a4dce4be076\/code.php", + "power": "src\/1ae9a8e8-59f7-4844-a08d-9a4dce4be076\/code.power", + "settings": "src\/1ae9a8e8-59f7-4844-a08d-9a4dce4be076\/settings.json", + "path": "src\/1ae9a8e8-59f7-4844-a08d-9a4dce4be076", + "spk": "Super__1ae9a8e8_59f7_4844_a08d_9a4dce4be076__Power", + "guid": "1ae9a8e8-59f7-4844-a08d-9a4dce4be076" + }, + "1aefb8f5-486f-4f00-adf9-696340b3254e": { + "name": "InstallInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Extension", + "code": "src\/1aefb8f5-486f-4f00-adf9-696340b3254e\/code.php", + "power": "src\/1aefb8f5-486f-4f00-adf9-696340b3254e\/code.power", + "settings": "src\/1aefb8f5-486f-4f00-adf9-696340b3254e\/settings.json", + "path": "src\/1aefb8f5-486f-4f00-adf9-696340b3254e", + "spk": "Super__1aefb8f5_486f_4f00_adf9_696340b3254e__Power", + "guid": "1aefb8f5-486f-4f00-adf9-696340b3254e" + }, + "1bd48df2-4f7e-4581-9fe9-4b54e59105e3": { + "name": "Gui", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode", + "code": "src\/1bd48df2-4f7e-4581-9fe9-4b54e59105e3\/code.php", + "power": "src\/1bd48df2-4f7e-4581-9fe9-4b54e59105e3\/code.power", + "settings": "src\/1bd48df2-4f7e-4581-9fe9-4b54e59105e3\/settings.json", + "path": "src\/1bd48df2-4f7e-4581-9fe9-4b54e59105e3", + "spk": "Super__1bd48df2_4f7e_4581_9fe9_4b54e59105e3__Power", + "guid": "1bd48df2-4f7e-4581-9fe9-4b54e59105e3" + }, + "1cef0266-99e2-40d8-919f-c2ce32226b0a": { + "name": "External", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode", + "code": "src\/1cef0266-99e2-40d8-919f-c2ce32226b0a\/code.php", + "power": "src\/1cef0266-99e2-40d8-919f-c2ce32226b0a\/code.power", + "settings": "src\/1cef0266-99e2-40d8-919f-c2ce32226b0a\/settings.json", + "path": "src\/1cef0266-99e2-40d8-919f-c2ce32226b0a", + "spk": "Super__1cef0266_99e2_40d8_919f_c2ce32226b0a__Power", + "guid": "1cef0266-99e2-40d8-919f-c2ce32226b0a" + }, + "1d0fd857-12ec-4f47-ab1c-124d85748e24": { + "name": "Updateserver", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/1d0fd857-12ec-4f47-ab1c-124d85748e24\/code.php", + "power": "src\/1d0fd857-12ec-4f47-ab1c-124d85748e24\/code.power", + "settings": "src\/1d0fd857-12ec-4f47-ab1c-124d85748e24\/settings.json", + "path": "src\/1d0fd857-12ec-4f47-ab1c-124d85748e24", + "spk": "Super__1d0fd857_12ec_4f47_ab1c_124d85748e24__Power", + "guid": "1d0fd857-12ec-4f47-ab1c-124d85748e24" + }, + "1d929017-a5de-4e0f-9b5a-838934857e26": { + "name": "InstallScript", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Extension\\JoomlaThree", + "code": "src\/1d929017-a5de-4e0f-9b5a-838934857e26\/code.php", + "power": "src\/1d929017-a5de-4e0f-9b5a-838934857e26\/code.power", + "settings": "src\/1d929017-a5de-4e0f-9b5a-838934857e26\/settings.json", + "path": "src\/1d929017-a5de-4e0f-9b5a-838934857e26", + "spk": "Super__1d929017_a5de_4e0f_9b5a_838934857e26__Power", + "guid": "1d929017-a5de-4e0f-9b5a-838934857e26" + }, + "1d967151-7c20-4ca7-9400-65233cdcd4db": { + "name": "Files", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/1d967151-7c20-4ca7-9400-65233cdcd4db\/code.php", + "power": "src\/1d967151-7c20-4ca7-9400-65233cdcd4db\/code.power", + "settings": "src\/1d967151-7c20-4ca7-9400-65233cdcd4db\/settings.json", + "path": "src\/1d967151-7c20-4ca7-9400-65233cdcd4db", + "spk": "Super__1d967151_7c20_4ca7_9400_65233cdcd4db__Power", + "guid": "1d967151-7c20-4ca7-9400-65233cdcd4db" + }, + "1efdded5-d6c8-452c-8f37-0374483a7b3f": { + "name": "Structure", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/1efdded5-d6c8-452c-8f37-0374483a7b3f\/code.php", + "power": "src\/1efdded5-d6c8-452c-8f37-0374483a7b3f\/code.power", + "settings": "src\/1efdded5-d6c8-452c-8f37-0374483a7b3f\/settings.json", + "path": "src\/1efdded5-d6c8-452c-8f37-0374483a7b3f", + "spk": "Super__1efdded5_d6c8_452c_8f37_0374483a7b3f__Power", + "guid": "1efdded5-d6c8-452c-8f37-0374483a7b3f" + }, + "1f086665-c007-4085-b363-3a118659ff1b": { + "name": "ItemsMethodEximportString", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/1f086665-c007-4085-b363-3a118659ff1b\/code.php", + "power": "src\/1f086665-c007-4085-b363-3a118659ff1b\/code.power", + "settings": "src\/1f086665-c007-4085-b363-3a118659ff1b\/settings.json", + "path": "src\/1f086665-c007-4085-b363-3a118659ff1b", + "spk": "Super__1f086665_c007_4085_b363_3a118659ff1b__Power", + "guid": "1f086665-c007-4085-b363-3a118659ff1b" + }, + "1f86db0f-e271-45df-8795-3e503ec76698": { + "name": "Load", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Database", + "code": "src\/1f86db0f-e271-45df-8795-3e503ec76698\/code.php", + "power": "src\/1f86db0f-e271-45df-8795-3e503ec76698\/code.power", + "settings": "src\/1f86db0f-e271-45df-8795-3e503ec76698\/settings.json", + "path": "src\/1f86db0f-e271-45df-8795-3e503ec76698", + "spk": "Super__1f86db0f_e271_45df_8795_3e503ec76698__Power", + "guid": "1f86db0f-e271-45df-8795-3e503ec76698" + }, + "1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a": { + "name": "ExternalInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Customcode", + "code": "src\/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a\/code.php", + "power": "src\/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a\/code.power", + "settings": "src\/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a\/settings.json", + "path": "src\/1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a", + "spk": "Super__1fcb13a2_f3f0_4fa8_b8c6_ff9dc546777a__Power", + "guid": "1fcb13a2-f3f0-4fa8-b8c6-ff9dc546777a" + }, + "202f748a-516b-4782-962e-ac9725c3cac4": { + "name": "CustomList", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/202f748a-516b-4782-962e-ac9725c3cac4\/code.php", + "power": "src\/202f748a-516b-4782-962e-ac9725c3cac4\/code.power", + "settings": "src\/202f748a-516b-4782-962e-ac9725c3cac4\/settings.json", + "path": "src\/202f748a-516b-4782-962e-ac9725c3cac4", + "spk": "Super__202f748a_516b_4782_962e_ac9725c3cac4__Power", + "guid": "202f748a-516b-4782-962e-ac9725c3cac4" + }, + "20ed72b0-fcac-4344-aee1-8a65e3bf221d": { + "name": "EventInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", + "code": "src\/20ed72b0-fcac-4344-aee1-8a65e3bf221d\/code.php", + "power": "src\/20ed72b0-fcac-4344-aee1-8a65e3bf221d\/code.power", + "settings": "src\/20ed72b0-fcac-4344-aee1-8a65e3bf221d\/settings.json", + "path": "src\/20ed72b0-fcac-4344-aee1-8a65e3bf221d", + "spk": "Super__20ed72b0_fcac_4344_aee1_8a65e3bf221d__Power", + "guid": "20ed72b0-fcac-4344-aee1-8a65e3bf221d" + }, + "23f2ca33-440a-4941-8e9a-4bc67522c0cb": { + "name": "Mapper", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/23f2ca33-440a-4941-8e9a-4bc67522c0cb\/code.php", + "power": "src\/23f2ca33-440a-4941-8e9a-4bc67522c0cb\/code.power", + "settings": "src\/23f2ca33-440a-4941-8e9a-4bc67522c0cb\/settings.json", + "path": "src\/23f2ca33-440a-4941-8e9a-4bc67522c0cb", + "spk": "Super__23f2ca33_440a_4941_8e9a_4bc67522c0cb__Power", + "guid": "23f2ca33-440a-4941-8e9a-4bc67522c0cb" + }, + "24da9672-e47f-4bb1-b6c0-0ebfc17f0957": { + "name": "CoreValidation", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field\\JoomlaThree", + "code": "src\/24da9672-e47f-4bb1-b6c0-0ebfc17f0957\/code.php", + "power": "src\/24da9672-e47f-4bb1-b6c0-0ebfc17f0957\/code.power", + "settings": "src\/24da9672-e47f-4bb1-b6c0-0ebfc17f0957\/settings.json", + "path": "src\/24da9672-e47f-4bb1-b6c0-0ebfc17f0957", + "spk": "Super__24da9672_e47f_4bb1_b6c0_0ebfc17f0957__Power", + "guid": "24da9672-e47f-4bb1-b6c0-0ebfc17f0957" + }, + "2528f2bb-6ebc-4d55-9a9d-23ef58534c1a": { + "name": "PermissionAction", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a\/code.php", + "power": "src\/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a\/code.power", + "settings": "src\/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a\/settings.json", + "path": "src\/2528f2bb-6ebc-4d55-9a9d-23ef58534c1a", + "spk": "Super__2528f2bb_6ebc_4d55_9a9d_23ef58534c1a__Power", + "guid": "2528f2bb-6ebc-4d55-9a9d-23ef58534c1a" + }, + "253317c7-3c3b-48a0-aec8-8af5e7a86504": { + "name": "Library", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/253317c7-3c3b-48a0-aec8-8af5e7a86504\/code.php", + "power": "src\/253317c7-3c3b-48a0-aec8-8af5e7a86504\/code.power", + "settings": "src\/253317c7-3c3b-48a0-aec8-8af5e7a86504\/settings.json", + "path": "src\/253317c7-3c3b-48a0-aec8-8af5e7a86504", + "spk": "Super__253317c7_3c3b_48a0_aec8_8af5e7a86504__Power", + "guid": "253317c7-3c3b-48a0-aec8-8af5e7a86504" + }, + "268b85ef-49f3-4c39-8187-bb12e38d19ee": { + "name": "Dynamicpath", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/268b85ef-49f3-4c39-8187-bb12e38d19ee\/code.php", + "power": "src\/268b85ef-49f3-4c39-8187-bb12e38d19ee\/code.power", + "settings": "src\/268b85ef-49f3-4c39-8187-bb12e38d19ee\/settings.json", + "path": "src\/268b85ef-49f3-4c39-8187-bb12e38d19ee", + "spk": "Super__268b85ef_49f3_4c39_8187_bb12e38d19ee__Power", + "guid": "268b85ef-49f3-4c39-8187-bb12e38d19ee" + }, + "28cac2bb-df04-454f-b4d6-923b573eb94e": { + "name": "ModelWhmcsField", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/28cac2bb-df04-454f-b4d6-923b573eb94e\/code.php", + "power": "src\/28cac2bb-df04-454f-b4d6-923b573eb94e\/code.power", + "settings": "src\/28cac2bb-df04-454f-b4d6-923b573eb94e\/settings.json", + "path": "src\/28cac2bb-df04-454f-b4d6-923b573eb94e", + "spk": "Super__28cac2bb_df04_454f_b4d6_923b573eb94e__Power", + "guid": "28cac2bb-df04-454f-b4d6-923b573eb94e" + }, + "29455d3b-df2b-4e41-8684-1608060e37a4": { + "name": "Javascriptcustomview", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/29455d3b-df2b-4e41-8684-1608060e37a4\/code.php", + "power": "src\/29455d3b-df2b-4e41-8684-1608060e37a4\/code.power", + "settings": "src\/29455d3b-df2b-4e41-8684-1608060e37a4\/settings.json", + "path": "src\/29455d3b-df2b-4e41-8684-1608060e37a4", + "spk": "Super__29455d3b_df2b_4e41_8684_1608060e37a4__Power", + "guid": "29455d3b-df2b-4e41-8684-1608060e37a4" + }, "295186de-5954-4a65-a4c1-2f79ef305743": { "name": "Joomlamodule", "type": "class", @@ -1527,46 +502,18 @@ "power": "src\/295186de-5954-4a65-a4c1-2f79ef305743\/code.power", "settings": "src\/295186de-5954-4a65-a4c1-2f79ef305743\/settings.json", "path": "src\/295186de-5954-4a65-a4c1-2f79ef305743", + "spk": "Super__295186de_5954_4a65_a4c1_2f79ef305743__Power", "guid": "295186de-5954-4a65-a4c1-2f79ef305743" }, - "a900b836-f2eb-4f13-8f28-b7cac839c7ff": { - "name": "Structure", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Joomlaplugin", - "code": "src\/a900b836-f2eb-4f13-8f28-b7cac839c7ff\/code.php", - "power": "src\/a900b836-f2eb-4f13-8f28-b7cac839c7ff\/code.power", - "settings": "src\/a900b836-f2eb-4f13-8f28-b7cac839c7ff\/settings.json", - "path": "src\/a900b836-f2eb-4f13-8f28-b7cac839c7ff", - "guid": "a900b836-f2eb-4f13-8f28-b7cac839c7ff" - }, - "9eba241c-af90-42dd-ae05-92ff4d8391d3": { - "name": "Joomlaplugin", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/9eba241c-af90-42dd-ae05-92ff4d8391d3\/code.php", - "power": "src\/9eba241c-af90-42dd-ae05-92ff4d8391d3\/code.power", - "settings": "src\/9eba241c-af90-42dd-ae05-92ff4d8391d3\/settings.json", - "path": "src\/9eba241c-af90-42dd-ae05-92ff4d8391d3", - "guid": "9eba241c-af90-42dd-ae05-92ff4d8391d3" - }, - "516f93b8-5fff-41c6-aeaf-2d93180a12cc": { - "name": "Utilities", - "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", - "code": "src\/516f93b8-5fff-41c6-aeaf-2d93180a12cc\/code.php", - "power": "src\/516f93b8-5fff-41c6-aeaf-2d93180a12cc\/code.power", - "settings": "src\/516f93b8-5fff-41c6-aeaf-2d93180a12cc\/settings.json", - "path": "src\/516f93b8-5fff-41c6-aeaf-2d93180a12cc", - "guid": "516f93b8-5fff-41c6-aeaf-2d93180a12cc" - }, "2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9": { - "name": "Mysql", + "name": "UpdateMysql", "type": "class", - "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder\\Update", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", "code": "src\/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9\/code.php", "power": "src\/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9\/code.power", "settings": "src\/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9\/settings.json", "path": "src\/2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9", + "spk": "Super__2b5c9989_1d4e_4f59_8b95_5cd2f72f82d9__Power", "guid": "2b5c9989-1d4e-4f59-8b95-5cd2f72f82d9" }, "2c76c06e-a371-4b73-9fbe-b4d9b4df55d7": { @@ -1577,17 +524,965 @@ "power": "src\/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7\/code.power", "settings": "src\/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7\/settings.json", "path": "src\/2c76c06e-a371-4b73-9fbe-b4d9b4df55d7", + "spk": "Super__2c76c06e_a371_4b73_9fbe_b4d9b4df55d7__Power", "guid": "2c76c06e-a371-4b73-9fbe-b4d9b4df55d7" }, - "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac": { - "name": "Factory", - "type": "abstract class", + "2cb33994-052e-42dd-adbc-3ea9f932816f": { + "name": "History", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/2cb33994-052e-42dd-adbc-3ea9f932816f\/code.php", + "power": "src\/2cb33994-052e-42dd-adbc-3ea9f932816f\/code.power", + "settings": "src\/2cb33994-052e-42dd-adbc-3ea9f932816f\/settings.json", + "path": "src\/2cb33994-052e-42dd-adbc-3ea9f932816f", + "spk": "Super__2cb33994_052e_42dd_adbc_3ea9f932816f__Power", + "guid": "2cb33994-052e-42dd-adbc-3ea9f932816f" + }, + "2cc8517d-1105-4697-9743-048b4b7c089c": { + "name": "GuiInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Customcode", + "code": "src\/2cc8517d-1105-4697-9743-048b4b7c089c\/code.php", + "power": "src\/2cc8517d-1105-4697-9743-048b4b7c089c\/code.power", + "settings": "src\/2cc8517d-1105-4697-9743-048b4b7c089c\/settings.json", + "path": "src\/2cc8517d-1105-4697-9743-048b4b7c089c", + "spk": "Super__2cc8517d_1105_4697_9743_048b4b7c089c__Power", + "guid": "2cc8517d-1105-4697-9743-048b4b7c089c" + }, + "2d27c436-4d8e-4692-8382-d9e97af2231c": { + "name": "Fieldtypeinterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Creator", + "code": "src\/2d27c436-4d8e-4692-8382-d9e97af2231c\/code.php", + "power": "src\/2d27c436-4d8e-4692-8382-d9e97af2231c\/code.power", + "settings": "src\/2d27c436-4d8e-4692-8382-d9e97af2231c\/settings.json", + "path": "src\/2d27c436-4d8e-4692-8382-d9e97af2231c", + "spk": "Super__2d27c436_4d8e_4692_8382_d9e97af2231c__Power", + "guid": "2d27c436-4d8e-4692-8382-d9e97af2231c" + }, + "2dd1289a-4000-43cc-8c62-77ff32de56bf": { + "name": "Adminview", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/2dd1289a-4000-43cc-8c62-77ff32de56bf\/code.php", + "power": "src\/2dd1289a-4000-43cc-8c62-77ff32de56bf\/code.power", + "settings": "src\/2dd1289a-4000-43cc-8c62-77ff32de56bf\/settings.json", + "path": "src\/2dd1289a-4000-43cc-8c62-77ff32de56bf", + "spk": "Super__2dd1289a_4000_43cc_8c62_77ff32de56bf__Power", + "guid": "2dd1289a-4000-43cc-8c62-77ff32de56bf" + }, + "2e6731ba-3a03-4836-b2c2-4e50e38cb890": { + "name": "GetScriptInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", + "code": "src\/2e6731ba-3a03-4836-b2c2-4e50e38cb890\/code.php", + "power": "src\/2e6731ba-3a03-4836-b2c2-4e50e38cb890\/code.power", + "settings": "src\/2e6731ba-3a03-4836-b2c2-4e50e38cb890\/settings.json", + "path": "src\/2e6731ba-3a03-4836-b2c2-4e50e38cb890", + "spk": "Super__2e6731ba_3a03_4836_b2c2_4e50e38cb890__Power", + "guid": "2e6731ba-3a03-4836-b2c2-4e50e38cb890" + }, + "2e764839-8ec6-4726-af50-b5678e0714a4": { + "name": "Search", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/2e764839-8ec6-4726-af50-b5678e0714a4\/code.php", + "power": "src\/2e764839-8ec6-4726-af50-b5678e0714a4\/code.power", + "settings": "src\/2e764839-8ec6-4726-af50-b5678e0714a4\/settings.json", + "path": "src\/2e764839-8ec6-4726-af50-b5678e0714a4", + "spk": "Super__2e764839_8ec6_4726_af50_b5678e0714a4__Power", + "guid": "2e764839-8ec6-4726-af50-b5678e0714a4" + }, + "2f7b1998-bb93-4055-ae82-aa659ce8a37f": { + "name": "Placeholder", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/2f7b1998-bb93-4055-ae82-aa659ce8a37f\/code.php", + "power": "src\/2f7b1998-bb93-4055-ae82-aa659ce8a37f\/code.power", + "settings": "src\/2f7b1998-bb93-4055-ae82-aa659ce8a37f\/settings.json", + "path": "src\/2f7b1998-bb93-4055-ae82-aa659ce8a37f", + "spk": "Super__2f7b1998_bb93_4055_ae82_aa659ce8a37f__Power", + "guid": "2f7b1998-bb93-4055-ae82-aa659ce8a37f" + }, + "313b43c4-98c3-4f62-9177-2d73ec8eba31": { + "name": "Customcode", + "type": "class", "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", - "code": "src\/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac\/code.php", - "power": "src\/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac\/code.power", - "settings": "src\/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac\/settings.json", - "path": "src\/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", - "guid": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac" + "code": "src\/313b43c4-98c3-4f62-9177-2d73ec8eba31\/code.php", + "power": "src\/313b43c4-98c3-4f62-9177-2d73ec8eba31\/code.power", + "settings": "src\/313b43c4-98c3-4f62-9177-2d73ec8eba31\/settings.json", + "path": "src\/313b43c4-98c3-4f62-9177-2d73ec8eba31", + "spk": "Super__313b43c4_98c3_4f62_9177_2d73ec8eba31__Power", + "guid": "313b43c4-98c3-4f62-9177-2d73ec8eba31" + }, + "3230dd65-6590-4043-9bb8-bebd6d8224b2": { + "name": "ComponentFields", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/3230dd65-6590-4043-9bb8-bebd6d8224b2\/code.php", + "power": "src\/3230dd65-6590-4043-9bb8-bebd6d8224b2\/code.power", + "settings": "src\/3230dd65-6590-4043-9bb8-bebd6d8224b2\/settings.json", + "path": "src\/3230dd65-6590-4043-9bb8-bebd6d8224b2", + "spk": "Super__3230dd65_6590_4043_9bb8_bebd6d8224b2__Power", + "guid": "3230dd65-6590-4043-9bb8-bebd6d8224b2" + }, + "324566de-0f7d-4b6e-9caf-8424d55013ae": { + "name": "Structure", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", + "code": "src\/324566de-0f7d-4b6e-9caf-8424d55013ae\/code.php", + "power": "src\/324566de-0f7d-4b6e-9caf-8424d55013ae\/code.power", + "settings": "src\/324566de-0f7d-4b6e-9caf-8424d55013ae\/settings.json", + "path": "src\/324566de-0f7d-4b6e-9caf-8424d55013ae", + "spk": "Super__324566de_0f7d_4b6e_9caf_8424d55013ae__Power", + "guid": "324566de-0f7d-4b6e-9caf-8424d55013ae" + }, + "3283a89c-329a-47fb-a011-0df6c31a5c73": { + "name": "Csscustomview", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/3283a89c-329a-47fb-a011-0df6c31a5c73\/code.php", + "power": "src\/3283a89c-329a-47fb-a011-0df6c31a5c73\/code.power", + "settings": "src\/3283a89c-329a-47fb-a011-0df6c31a5c73\/settings.json", + "path": "src\/3283a89c-329a-47fb-a011-0df6c31a5c73", + "spk": "Super__3283a89c_329a_47fb_a011_0df6c31a5c73__Power", + "guid": "3283a89c-329a-47fb-a011-0df6c31a5c73" + }, + "33bdc535-0ff1-40c8-bb22-b5d44f1731c4": { + "name": "CustomcodeInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", + "code": "src\/33bdc535-0ff1-40c8-bb22-b5d44f1731c4\/code.php", + "power": "src\/33bdc535-0ff1-40c8-bb22-b5d44f1731c4\/code.power", + "settings": "src\/33bdc535-0ff1-40c8-bb22-b5d44f1731c4\/settings.json", + "path": "src\/33bdc535-0ff1-40c8-bb22-b5d44f1731c4", + "spk": "Super__33bdc535_0ff1_40c8_bb22_b5d44f1731c4__Power", + "guid": "33bdc535-0ff1-40c8-bb22-b5d44f1731c4" + }, + "33f5131e-4a5b-414b-95dd-d22227c2666d": { + "name": "SiteFieldData", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/33f5131e-4a5b-414b-95dd-d22227c2666d\/code.php", + "power": "src\/33f5131e-4a5b-414b-95dd-d22227c2666d\/code.power", + "settings": "src\/33f5131e-4a5b-414b-95dd-d22227c2666d\/settings.json", + "path": "src\/33f5131e-4a5b-414b-95dd-d22227c2666d", + "spk": "Super__33f5131e_4a5b_414b_95dd_d22227c2666d__Power", + "guid": "33f5131e-4a5b-414b-95dd-d22227c2666d" + }, + "3468b447-a929-4c28-84a1-f2c3a27e3127": { + "name": "ModelExpertFieldInitiator", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/3468b447-a929-4c28-84a1-f2c3a27e3127\/code.php", + "power": "src\/3468b447-a929-4c28-84a1-f2c3a27e3127\/code.power", + "settings": "src\/3468b447-a929-4c28-84a1-f2c3a27e3127\/settings.json", + "path": "src\/3468b447-a929-4c28-84a1-f2c3a27e3127", + "spk": "Super__3468b447_a929_4c28_84a1_f2c3a27e3127__Power", + "guid": "3468b447-a929-4c28-84a1-f2c3a27e3127" + }, + "35191b0c-f7f3-44d6-8ec1-c816b997bd4e": { + "name": "Mysqlsettings", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/35191b0c-f7f3-44d6-8ec1-c816b997bd4e\/code.php", + "power": "src\/35191b0c-f7f3-44d6-8ec1-c816b997bd4e\/code.power", + "settings": "src\/35191b0c-f7f3-44d6-8ec1-c816b997bd4e\/settings.json", + "path": "src\/35191b0c-f7f3-44d6-8ec1-c816b997bd4e", + "spk": "Super__35191b0c_f7f3_44d6_8ec1_c816b997bd4e__Power", + "guid": "35191b0c-f7f3-44d6-8ec1-c816b997bd4e" + }, + "369ae3f5-90db-43b9-aba9-ce5c83311c4e": { + "name": "ServiceProvider", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Generator", + "code": "src\/369ae3f5-90db-43b9-aba9-ce5c83311c4e\/code.php", + "power": "src\/369ae3f5-90db-43b9-aba9-ce5c83311c4e\/code.power", + "settings": "src\/369ae3f5-90db-43b9-aba9-ce5c83311c4e\/settings.json", + "path": "src\/369ae3f5-90db-43b9-aba9-ce5c83311c4e", + "spk": "Super__369ae3f5_90db_43b9_aba9_ce5c83311c4e__Power", + "guid": "369ae3f5-90db-43b9-aba9-ce5c83311c4e" + }, + "380bb7a3-cdcc-4336-a699-5070cbf521a5": { + "name": "Insert", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Database", + "code": "src\/380bb7a3-cdcc-4336-a699-5070cbf521a5\/code.php", + "power": "src\/380bb7a3-cdcc-4336-a699-5070cbf521a5\/code.power", + "settings": "src\/380bb7a3-cdcc-4336-a699-5070cbf521a5\/settings.json", + "path": "src\/380bb7a3-cdcc-4336-a699-5070cbf521a5", + "spk": "Super__380bb7a3_cdcc_4336_a699_5070cbf521a5__Power", + "guid": "380bb7a3-cdcc-4336-a699-5070cbf521a5" + }, + "39ea8150-f124-4e47-909d-641bf1c96d5e": { + "name": "Data", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Templatelayout", + "code": "src\/39ea8150-f124-4e47-909d-641bf1c96d5e\/code.php", + "power": "src\/39ea8150-f124-4e47-909d-641bf1c96d5e\/code.power", + "settings": "src\/39ea8150-f124-4e47-909d-641bf1c96d5e\/settings.json", + "path": "src\/39ea8150-f124-4e47-909d-641bf1c96d5e", + "spk": "Super__39ea8150_f124_4e47_909d_641bf1c96d5e__Power", + "guid": "39ea8150-f124-4e47-909d-641bf1c96d5e" + }, + "3ab0eba9-f37b-4b37-aec1-2e78067f2aff": { + "name": "Super", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power", + "code": "src\/3ab0eba9-f37b-4b37-aec1-2e78067f2aff\/code.php", + "power": "src\/3ab0eba9-f37b-4b37-aec1-2e78067f2aff\/code.power", + "settings": "src\/3ab0eba9-f37b-4b37-aec1-2e78067f2aff\/settings.json", + "path": "src\/3ab0eba9-f37b-4b37-aec1-2e78067f2aff", + "spk": "Super__3ab0eba9_f37b_4b37_aec1_2e78067f2aff__Power", + "guid": "3ab0eba9-f37b-4b37-aec1-2e78067f2aff" + }, + "3b6895da-d9eb-4164-90b1-4632a4cc2474": { + "name": "Data", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customview", + "code": "src\/3b6895da-d9eb-4164-90b1-4632a4cc2474\/code.php", + "power": "src\/3b6895da-d9eb-4164-90b1-4632a4cc2474\/code.power", + "settings": "src\/3b6895da-d9eb-4164-90b1-4632a4cc2474\/settings.json", + "path": "src\/3b6895da-d9eb-4164-90b1-4632a4cc2474", + "spk": "Super__3b6895da_d9eb_4164_90b1_4632a4cc2474__Power", + "guid": "3b6895da-d9eb-4164-90b1-4632a4cc2474" + }, + "3f83fe11-1ef6-4020-bd73-f3bb58cefe3a": { + "name": "OtherOrder", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a\/code.php", + "power": "src\/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a\/code.power", + "settings": "src\/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a\/settings.json", + "path": "src\/3f83fe11-1ef6-4020-bd73-f3bb58cefe3a", + "spk": "Super__3f83fe11_1ef6_4020_bd73_f3bb58cefe3a__Power", + "guid": "3f83fe11-1ef6-4020-bd73-f3bb58cefe3a" + }, + "4325745f-da1f-4d4d-a591-3189fe8c06e5": { + "name": "HistoryInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", + "code": "src\/4325745f-da1f-4d4d-a591-3189fe8c06e5\/code.php", + "power": "src\/4325745f-da1f-4d4d-a591-3189fe8c06e5\/code.power", + "settings": "src\/4325745f-da1f-4d4d-a591-3189fe8c06e5\/settings.json", + "path": "src\/4325745f-da1f-4d4d-a591-3189fe8c06e5", + "spk": "Super__4325745f_da1f_4d4d_a591_3189fe8c06e5__Power", + "guid": "4325745f-da1f-4d4d-a591-3189fe8c06e5" + }, + "44d039b9-d293-481b-b560-23a6e7a63962": { + "name": "FieldString", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/44d039b9-d293-481b-b560-23a6e7a63962\/code.php", + "power": "src\/44d039b9-d293-481b-b560-23a6e7a63962\/code.power", + "settings": "src\/44d039b9-d293-481b-b560-23a6e7a63962\/settings.json", + "path": "src\/44d039b9-d293-481b-b560-23a6e7a63962", + "spk": "Super__44d039b9_d293_481b_b560_23a6e7a63962__Power", + "guid": "44d039b9-d293-481b-b560-23a6e7a63962" + }, + "45652787-9085-4c67-914f-0da25ae62646": { + "name": "JsonItem", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/45652787-9085-4c67-914f-0da25ae62646\/code.php", + "power": "src\/45652787-9085-4c67-914f-0da25ae62646\/code.power", + "settings": "src\/45652787-9085-4c67-914f-0da25ae62646\/settings.json", + "path": "src\/45652787-9085-4c67-914f-0da25ae62646", + "spk": "Super__45652787_9085_4c67_914f_0da25ae62646__Power", + "guid": "45652787-9085-4c67-914f-0da25ae62646" + }, + "46b02edb-427e-4c26-a5cb-279828eb4433": { + "name": "OtherJoin", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/46b02edb-427e-4c26-a5cb-279828eb4433\/code.php", + "power": "src\/46b02edb-427e-4c26-a5cb-279828eb4433\/code.power", + "settings": "src\/46b02edb-427e-4c26-a5cb-279828eb4433\/settings.json", + "path": "src\/46b02edb-427e-4c26-a5cb-279828eb4433", + "spk": "Super__46b02edb_427e_4c26_a5cb_279828eb4433__Power", + "guid": "46b02edb-427e-4c26-a5cb-279828eb4433" + }, + "4801f8b0-4a4a-4eda-8f0e-cf77f042c35e": { + "name": "FieldDynamic", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e\/code.php", + "power": "src\/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e\/code.power", + "settings": "src\/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e\/settings.json", + "path": "src\/4801f8b0-4a4a-4eda-8f0e-cf77f042c35e", + "spk": "Super__4801f8b0_4a4a_4eda_8f0e_cf77f042c35e__Power", + "guid": "4801f8b0-4a4a-4eda-8f0e-cf77f042c35e" + }, + "480d11b9-783b-45d5-bce1-b0c2fcaad08a": { + "name": "PermissionViews", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/480d11b9-783b-45d5-bce1-b0c2fcaad08a\/code.php", + "power": "src\/480d11b9-783b-45d5-bce1-b0c2fcaad08a\/code.power", + "settings": "src\/480d11b9-783b-45d5-bce1-b0c2fcaad08a\/settings.json", + "path": "src\/480d11b9-783b-45d5-bce1-b0c2fcaad08a", + "spk": "Super__480d11b9_783b_45d5_bce1_b0c2fcaad08a__Power", + "guid": "480d11b9-783b-45d5-bce1-b0c2fcaad08a" + }, + "489da602-27c7-418c-bf59-1d45ad42bdcc": { + "name": "Phpcustomview", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/489da602-27c7-418c-bf59-1d45ad42bdcc\/code.php", + "power": "src\/489da602-27c7-418c-bf59-1d45ad42bdcc\/code.power", + "settings": "src\/489da602-27c7-418c-bf59-1d45ad42bdcc\/settings.json", + "path": "src\/489da602-27c7-418c-bf59-1d45ad42bdcc", + "spk": "Super__489da602_27c7_418c_bf59_1d45ad42bdcc__Power", + "guid": "489da602-27c7-418c-bf59-1d45ad42bdcc" + }, + "4a857023-2d96-4649-9ed5-910d0329854d": { + "name": "Lists", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/4a857023-2d96-4649-9ed5-910d0329854d\/code.php", + "power": "src\/4a857023-2d96-4649-9ed5-910d0329854d\/code.power", + "settings": "src\/4a857023-2d96-4649-9ed5-910d0329854d\/settings.json", + "path": "src\/4a857023-2d96-4649-9ed5-910d0329854d", + "spk": "Super__4a857023_2d96_4649_9ed5_910d0329854d__Power", + "guid": "4a857023-2d96-4649-9ed5-910d0329854d" + }, + "4ad7020e-39ab-49ba-977b-de6084944502": { + "name": "Fieldset", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Language", + "code": "src\/4ad7020e-39ab-49ba-977b-de6084944502\/code.php", + "power": "src\/4ad7020e-39ab-49ba-977b-de6084944502\/code.power", + "settings": "src\/4ad7020e-39ab-49ba-977b-de6084944502\/settings.json", + "path": "src\/4ad7020e-39ab-49ba-977b-de6084944502", + "spk": "Super__4ad7020e_39ab_49ba_977b_de6084944502__Power", + "guid": "4ad7020e-39ab-49ba-977b-de6084944502" + }, + "4b86f62e-ce41-4325-a11a-08148807d0df": { + "name": "Event", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\JoomlaThree", + "code": "src\/4b86f62e-ce41-4325-a11a-08148807d0df\/code.php", + "power": "src\/4b86f62e-ce41-4325-a11a-08148807d0df\/code.power", + "settings": "src\/4b86f62e-ce41-4325-a11a-08148807d0df\/settings.json", + "path": "src\/4b86f62e-ce41-4325-a11a-08148807d0df", + "spk": "Super__4b86f62e_ce41_4325_a11a_08148807d0df__Power", + "guid": "4b86f62e-ce41-4325-a11a-08148807d0df" + }, + "4e6ff11d-bebf-42f5-8fd7-b2f882857222": { + "name": "Line", + "type": "abstract class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/4e6ff11d-bebf-42f5-8fd7-b2f882857222\/code.php", + "power": "src\/4e6ff11d-bebf-42f5-8fd7-b2f882857222\/code.power", + "settings": "src\/4e6ff11d-bebf-42f5-8fd7-b2f882857222\/settings.json", + "path": "src\/4e6ff11d-bebf-42f5-8fd7-b2f882857222", + "spk": "Super__4e6ff11d_bebf_42f5_8fd7_b2f882857222__Power", + "guid": "4e6ff11d-bebf-42f5-8fd7-b2f882857222" + }, + "4f575bd6-de97-41f8-80d6-259c8a6dd9ad": { + "name": "Ajaxadmin", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/4f575bd6-de97-41f8-80d6-259c8a6dd9ad\/code.php", + "power": "src\/4f575bd6-de97-41f8-80d6-259c8a6dd9ad\/code.power", + "settings": "src\/4f575bd6-de97-41f8-80d6-259c8a6dd9ad\/settings.json", + "path": "src\/4f575bd6-de97-41f8-80d6-259c8a6dd9ad", + "spk": "Super__4f575bd6_de97_41f8_80d6_259c8a6dd9ad__Power", + "guid": "4f575bd6-de97-41f8-80d6-259c8a6dd9ad" + }, + "500f3a7f-c16d-4dd4-81b2-2df6776b5388": { + "name": "Placefix", + "type": "abstract class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/500f3a7f-c16d-4dd4-81b2-2df6776b5388\/code.php", + "power": "src\/500f3a7f-c16d-4dd4-81b2-2df6776b5388\/code.power", + "settings": "src\/500f3a7f-c16d-4dd4-81b2-2df6776b5388\/settings.json", + "path": "src\/500f3a7f-c16d-4dd4-81b2-2df6776b5388", + "spk": "Super__500f3a7f_c16d_4dd4_81b2_2df6776b5388__Power", + "guid": "500f3a7f-c16d-4dd4-81b2-2df6776b5388" + }, + "50302fce-62b4-48ae-a692-9cc4595ce74c": { + "name": "Search", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Generator", + "code": "src\/50302fce-62b4-48ae-a692-9cc4595ce74c\/code.php", + "power": "src\/50302fce-62b4-48ae-a692-9cc4595ce74c\/code.power", + "settings": "src\/50302fce-62b4-48ae-a692-9cc4595ce74c\/settings.json", + "path": "src\/50302fce-62b4-48ae-a692-9cc4595ce74c", + "spk": "Super__50302fce_62b4_48ae_a692_9cc4595ce74c__Power", + "guid": "50302fce-62b4-48ae-a692-9cc4595ce74c" + }, + "505801ac-d3e2-44c6-a300-9a57a96170c6": { + "name": "Generator", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power", + "code": "src\/505801ac-d3e2-44c6-a300-9a57a96170c6\/code.php", + "power": "src\/505801ac-d3e2-44c6-a300-9a57a96170c6\/code.power", + "settings": "src\/505801ac-d3e2-44c6-a300-9a57a96170c6\/settings.json", + "path": "src\/505801ac-d3e2-44c6-a300-9a57a96170c6", + "spk": "Super__505801ac_d3e2_44c6_a300_9a57a96170c6__Power", + "guid": "505801ac-d3e2-44c6-a300-9a57a96170c6" + }, + "507ab90f-7d64-4697-9815-d96f5d1d1185": { + "name": "GoogleChart", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/507ab90f-7d64-4697-9815-d96f5d1d1185\/code.php", + "power": "src\/507ab90f-7d64-4697-9815-d96f5d1d1185\/code.power", + "settings": "src\/507ab90f-7d64-4697-9815-d96f5d1d1185\/settings.json", + "path": "src\/507ab90f-7d64-4697-9815-d96f5d1d1185", + "spk": "Super__507ab90f_7d64_4697_9815_d96f5d1d1185__Power", + "guid": "507ab90f-7d64-4697-9815-d96f5d1d1185" + }, + "510dc0f6-da3f-4a78-b43d-3a03e2cb5fae": { + "name": "Gitea", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Service", + "code": "src\/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae\/code.php", + "power": "src\/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae\/code.power", + "settings": "src\/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae\/settings.json", + "path": "src\/510dc0f6-da3f-4a78-b43d-3a03e2cb5fae", + "spk": "Super__510dc0f6_da3f_4a78_b43d_3a03e2cb5fae__Power", + "guid": "510dc0f6-da3f-4a78-b43d-3a03e2cb5fae" + }, + "516f93b8-5fff-41c6-aeaf-2d93180a12cc": { + "name": "Utilities", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/516f93b8-5fff-41c6-aeaf-2d93180a12cc\/code.php", + "power": "src\/516f93b8-5fff-41c6-aeaf-2d93180a12cc\/code.power", + "settings": "src\/516f93b8-5fff-41c6-aeaf-2d93180a12cc\/settings.json", + "path": "src\/516f93b8-5fff-41c6-aeaf-2d93180a12cc", + "spk": "Super__516f93b8_5fff_41c6_aeaf_2d93180a12cc__Power", + "guid": "516f93b8-5fff-41c6-aeaf-2d93180a12cc" + }, + "52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe": { + "name": "SiteFields", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe\/code.php", + "power": "src\/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe\/code.power", + "settings": "src\/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe\/settings.json", + "path": "src\/52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe", + "spk": "Super__52de0ac8_bb9d_4a45_bd2a_a44c48c17ffe__Power", + "guid": "52de0ac8-bb9d-4a45-bd2a-a44c48c17ffe" + }, + "53cf9828-7ad4-4856-aac1-7c4c67bd3121": { + "name": "Createdate", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/53cf9828-7ad4-4856-aac1-7c4c67bd3121\/code.php", + "power": "src\/53cf9828-7ad4-4856-aac1-7c4c67bd3121\/code.power", + "settings": "src\/53cf9828-7ad4-4856-aac1-7c4c67bd3121\/settings.json", + "path": "src\/53cf9828-7ad4-4856-aac1-7c4c67bd3121", + "spk": "Super__53cf9828_7ad4_4856_aac1_7c4c67bd3121__Power", + "guid": "53cf9828-7ad4-4856-aac1-7c4c67bd3121" + }, + "54ec57f6-2fc3-42e5-975e-1fabeacb845d": { + "name": "UikitComp", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/54ec57f6-2fc3-42e5-975e-1fabeacb845d\/code.php", + "power": "src\/54ec57f6-2fc3-42e5-975e-1fabeacb845d\/code.power", + "settings": "src\/54ec57f6-2fc3-42e5-975e-1fabeacb845d\/settings.json", + "path": "src\/54ec57f6-2fc3-42e5-975e-1fabeacb845d", + "spk": "Super__54ec57f6_2fc3_42e5_975e_1fabeacb845d__Power", + "guid": "54ec57f6-2fc3-42e5-975e-1fabeacb845d" + }, + "55278140-80d5-4168-8241-d64515c4b35e": { + "name": "Builders", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/55278140-80d5-4168-8241-d64515c4b35e\/code.php", + "power": "src\/55278140-80d5-4168-8241-d64515c4b35e\/code.power", + "settings": "src\/55278140-80d5-4168-8241-d64515c4b35e\/settings.json", + "path": "src\/55278140-80d5-4168-8241-d64515c4b35e", + "spk": "Super__55278140_80d5_4168_8241_d64515c4b35e__Power", + "guid": "55278140-80d5-4168-8241-d64515c4b35e" + }, + "55e61314-ba10-4e2b-92dd-b44adebabce9": { + "name": "Conditions", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/55e61314-ba10-4e2b-92dd-b44adebabce9\/code.php", + "power": "src\/55e61314-ba10-4e2b-92dd-b44adebabce9\/code.power", + "settings": "src\/55e61314-ba10-4e2b-92dd-b44adebabce9\/settings.json", + "path": "src\/55e61314-ba10-4e2b-92dd-b44adebabce9", + "spk": "Super__55e61314_ba10_4e2b_92dd_b44adebabce9__Power", + "guid": "55e61314-ba10-4e2b-92dd-b44adebabce9" + }, + "58b7f907-4195-4ca3-886c-17877be59887": { + "name": "DatabaseUniqueGuid", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/58b7f907-4195-4ca3-886c-17877be59887\/code.php", + "power": "src\/58b7f907-4195-4ca3-886c-17877be59887\/code.power", + "settings": "src\/58b7f907-4195-4ca3-886c-17877be59887\/settings.json", + "path": "src\/58b7f907-4195-4ca3-886c-17877be59887", + "spk": "Super__58b7f907_4195_4ca3_886c_17877be59887__Power", + "guid": "58b7f907-4195-4ca3-886c-17877be59887" + }, + "592aed4e-2c5f-4fc5-8f7a-409203d1af82": { + "name": "Ajaxcustomview", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/592aed4e-2c5f-4fc5-8f7a-409203d1af82\/code.php", + "power": "src\/592aed4e-2c5f-4fc5-8f7a-409203d1af82\/code.power", + "settings": "src\/592aed4e-2c5f-4fc5-8f7a-409203d1af82\/settings.json", + "path": "src\/592aed4e-2c5f-4fc5-8f7a-409203d1af82", + "spk": "Super__592aed4e_2c5f_4fc5_8f7a_409203d1af82__Power", + "guid": "592aed4e-2c5f-4fc5-8f7a-409203d1af82" + }, + "597663e1-1c02-43e8-aea5-f2161e38ac7f": { + "name": "ListJoin", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/597663e1-1c02-43e8-aea5-f2161e38ac7f\/code.php", + "power": "src\/597663e1-1c02-43e8-aea5-f2161e38ac7f\/code.power", + "settings": "src\/597663e1-1c02-43e8-aea5-f2161e38ac7f\/settings.json", + "path": "src\/597663e1-1c02-43e8-aea5-f2161e38ac7f", + "spk": "Super__597663e1_1c02_43e8_aea5_f2161e38ac7f__Power", + "guid": "597663e1-1c02-43e8-aea5-f2161e38ac7f" + }, + "59895f37-50c8-4af3-9dad-230e18841953": { + "name": "Libraries", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/59895f37-50c8-4af3-9dad-230e18841953\/code.php", + "power": "src\/59895f37-50c8-4af3-9dad-230e18841953\/code.power", + "settings": "src\/59895f37-50c8-4af3-9dad-230e18841953\/settings.json", + "path": "src\/59895f37-50c8-4af3-9dad-230e18841953", + "spk": "Super__59895f37_50c8_4af3_9dad_230e18841953__Power", + "guid": "59895f37-50c8-4af3-9dad-230e18841953" + }, + "5b021139-dad0-4e9b-882a-2b4d807795af": { + "name": "Selection", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Dynamicget", + "code": "src\/5b021139-dad0-4e9b-882a-2b4d807795af\/code.php", + "power": "src\/5b021139-dad0-4e9b-882a-2b4d807795af\/code.power", + "settings": "src\/5b021139-dad0-4e9b-882a-2b4d807795af\/settings.json", + "path": "src\/5b021139-dad0-4e9b-882a-2b4d807795af", + "spk": "Super__5b021139_dad0_4e9b_882a_2b4d807795af__Power", + "guid": "5b021139-dad0-4e9b-882a-2b4d807795af" + }, + "5c75b455-3d4c-452a-867e-e90424a64c88": { + "name": "File", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/5c75b455-3d4c-452a-867e-e90424a64c88\/code.php", + "power": "src\/5c75b455-3d4c-452a-867e-e90424a64c88\/code.power", + "settings": "src\/5c75b455-3d4c-452a-867e-e90424a64c88\/settings.json", + "path": "src\/5c75b455-3d4c-452a-867e-e90424a64c88", + "spk": "Super__5c75b455_3d4c_452a_867e_e90424a64c88__Power", + "guid": "5c75b455-3d4c-452a-867e-e90424a64c88" + }, + "5d4278f0-7db2-498f-872a-c974bd8ce334": { + "name": "Bucket", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Generator", + "code": "src\/5d4278f0-7db2-498f-872a-c974bd8ce334\/code.php", + "power": "src\/5d4278f0-7db2-498f-872a-c974bd8ce334\/code.power", + "settings": "src\/5d4278f0-7db2-498f-872a-c974bd8ce334\/settings.json", + "path": "src\/5d4278f0-7db2-498f-872a-c974bd8ce334", + "spk": "Super__5d4278f0_7db2_498f_872a_c974bd8ce334__Power", + "guid": "5d4278f0-7db2-498f-872a-c974bd8ce334" + }, + "5e3d856d-8174-4131-b4e9-9328066438e1": { + "name": "PermissionCore", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/5e3d856d-8174-4131-b4e9-9328066438e1\/code.php", + "power": "src\/5e3d856d-8174-4131-b4e9-9328066438e1\/code.power", + "settings": "src\/5e3d856d-8174-4131-b4e9-9328066438e1\/settings.json", + "path": "src\/5e3d856d-8174-4131-b4e9-9328066438e1", + "spk": "Super__5e3d856d_8174_4131_b4e9_9328066438e1__Power", + "guid": "5e3d856d-8174-4131-b4e9-9328066438e1" + }, + "5f8e8fa6-3793-44af-882d-9cfb209434e9": { + "name": "Customalias", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/5f8e8fa6-3793-44af-882d-9cfb209434e9\/code.php", + "power": "src\/5f8e8fa6-3793-44af-882d-9cfb209434e9\/code.power", + "settings": "src\/5f8e8fa6-3793-44af-882d-9cfb209434e9\/settings.json", + "path": "src\/5f8e8fa6-3793-44af-882d-9cfb209434e9", + "spk": "Super__5f8e8fa6_3793_44af_882d_9cfb209434e9__Power", + "guid": "5f8e8fa6-3793-44af-882d-9cfb209434e9" + }, + "63782f74-7b03-4745-aa40-0adf8ed4e704": { + "name": "History", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/63782f74-7b03-4745-aa40-0adf8ed4e704\/code.php", + "power": "src\/63782f74-7b03-4745-aa40-0adf8ed4e704\/code.power", + "settings": "src\/63782f74-7b03-4745-aa40-0adf8ed4e704\/settings.json", + "path": "src\/63782f74-7b03-4745-aa40-0adf8ed4e704", + "spk": "Super__63782f74_7b03_4745_aa40_0adf8ed4e704__Power", + "guid": "63782f74-7b03-4745-aa40-0adf8ed4e704" + }, + "63dabe82-0f4a-4ade-9851-8518ade23de2": { + "name": "Settings", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", + "code": "src\/63dabe82-0f4a-4ade-9851-8518ade23de2\/code.php", + "power": "src\/63dabe82-0f4a-4ade-9851-8518ade23de2\/code.power", + "settings": "src\/63dabe82-0f4a-4ade-9851-8518ade23de2\/settings.json", + "path": "src\/63dabe82-0f4a-4ade-9851-8518ade23de2", + "spk": "Super__63dabe82_0f4a_4ade_9851_8518ade23de2__Power", + "guid": "63dabe82-0f4a-4ade-9851-8518ade23de2" + }, + "66b7b5f8-60d6-427a-9f8c-84c11a3d6780": { + "name": "OrderZero", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/66b7b5f8-60d6-427a-9f8c-84c11a3d6780\/code.php", + "power": "src\/66b7b5f8-60d6-427a-9f8c-84c11a3d6780\/code.power", + "settings": "src\/66b7b5f8-60d6-427a-9f8c-84c11a3d6780\/settings.json", + "path": "src\/66b7b5f8-60d6-427a-9f8c-84c11a3d6780", + "spk": "Super__66b7b5f8_60d6_427a_9f8c_84c11a3d6780__Power", + "guid": "66b7b5f8-60d6-427a-9f8c-84c11a3d6780" + }, + "673954d3-78d3-445a-b99f-4b40d617c882": { + "name": "Structuresingle", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", + "code": "src\/673954d3-78d3-445a-b99f-4b40d617c882\/code.php", + "power": "src\/673954d3-78d3-445a-b99f-4b40d617c882\/code.power", + "settings": "src\/673954d3-78d3-445a-b99f-4b40d617c882\/settings.json", + "path": "src\/673954d3-78d3-445a-b99f-4b40d617c882", + "spk": "Super__673954d3_78d3_445a_b99f_4b40d617c882__Power", + "guid": "673954d3-78d3-445a-b99f-4b40d617c882" + }, + "6784dd52-0909-451a-a872-9a942a023c68": { + "name": "Grep", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power", + "code": "src\/6784dd52-0909-451a-a872-9a942a023c68\/code.php", + "power": "src\/6784dd52-0909-451a-a872-9a942a023c68\/code.power", + "settings": "src\/6784dd52-0909-451a-a872-9a942a023c68\/settings.json", + "path": "src\/6784dd52-0909-451a-a872-9a942a023c68", + "spk": "Super__6784dd52_0909_451a_a872_9a942a023c68__Power", + "guid": "6784dd52-0909-451a-a872-9a942a023c68" + }, + "6a1dddb3-a955-425e-b713-8ef81f256035": { + "name": "Title", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/6a1dddb3-a955-425e-b713-8ef81f256035\/code.php", + "power": "src\/6a1dddb3-a955-425e-b713-8ef81f256035\/code.power", + "settings": "src\/6a1dddb3-a955-425e-b713-8ef81f256035\/settings.json", + "path": "src\/6a1dddb3-a955-425e-b713-8ef81f256035", + "spk": "Super__6a1dddb3_a955_425e_b713_8ef81f256035__Power", + "guid": "6a1dddb3-a955-425e-b713-8ef81f256035" + }, + "6b386f2e-3eb1-4f60-81af-a90c8da1ffeb": { + "name": "JsonItemArray", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb\/code.php", + "power": "src\/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb\/code.power", + "settings": "src\/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb\/settings.json", + "path": "src\/6b386f2e-3eb1-4f60-81af-a90c8da1ffeb", + "spk": "Super__6b386f2e_3eb1_4f60_81af_a90c8da1ffeb__Power", + "guid": "6b386f2e-3eb1-4f60-81af-a90c8da1ffeb" + }, + "6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1": { + "name": "Folder", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1\/code.php", + "power": "src\/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1\/code.power", + "settings": "src\/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1\/settings.json", + "path": "src\/6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1", + "spk": "Super__6bbb6ffe_3f09_4c21_aa9d_c93159afa1e1__Power", + "guid": "6bbb6ffe-3f09-4c21-aa9d-c93159afa1e1" + }, + "6c89c663-78f5-4078-9fac-7047f2eaaf96": { + "name": "Structure", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", + "code": "src\/6c89c663-78f5-4078-9fac-7047f2eaaf96\/code.php", + "power": "src\/6c89c663-78f5-4078-9fac-7047f2eaaf96\/code.power", + "settings": "src\/6c89c663-78f5-4078-9fac-7047f2eaaf96\/settings.json", + "path": "src\/6c89c663-78f5-4078-9fac-7047f2eaaf96", + "spk": "Super__6c89c663_78f5_4078_9fac_7047f2eaaf96__Power", + "guid": "6c89c663-78f5-4078-9fac-7047f2eaaf96" + }, + "6da2afa5-6087-46dd-80a0-74c6434bcb18": { + "name": "ExtractorInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Customcode", + "code": "src\/6da2afa5-6087-46dd-80a0-74c6434bcb18\/code.php", + "power": "src\/6da2afa5-6087-46dd-80a0-74c6434bcb18\/code.power", + "settings": "src\/6da2afa5-6087-46dd-80a0-74c6434bcb18\/settings.json", + "path": "src\/6da2afa5-6087-46dd-80a0-74c6434bcb18", + "spk": "Super__6da2afa5_6087_46dd_80a0_74c6434bcb18__Power", + "guid": "6da2afa5-6087-46dd-80a0-74c6434bcb18" + }, + "6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96": { + "name": "CustomFieldTypeFile", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96\/code.php", + "power": "src\/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96\/code.power", + "settings": "src\/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96\/settings.json", + "path": "src\/6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96", + "spk": "Super__6dced3d9_7d10_4ea1_bcf6_a5e6af4b9c96__Power", + "guid": "6dced3d9-7d10-4ea1-bcf6-a5e6af4b9c96" + }, + "6dfbf568-f3cd-4ea7-af04-6859447b5462": { + "name": "Historyadminview", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/6dfbf568-f3cd-4ea7-af04-6859447b5462\/code.php", + "power": "src\/6dfbf568-f3cd-4ea7-af04-6859447b5462\/code.power", + "settings": "src\/6dfbf568-f3cd-4ea7-af04-6859447b5462\/settings.json", + "path": "src\/6dfbf568-f3cd-4ea7-af04-6859447b5462", + "spk": "Super__6dfbf568_f3cd_4ea7_af04_6859447b5462__Power", + "guid": "6dfbf568-f3cd-4ea7-af04-6859447b5462" + }, + "6e64917c-d687-4ef3-a655-811319f5a81e": { + "name": "Autoloader", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", + "code": "src\/6e64917c-d687-4ef3-a655-811319f5a81e\/code.php", + "power": "src\/6e64917c-d687-4ef3-a655-811319f5a81e\/code.power", + "settings": "src\/6e64917c-d687-4ef3-a655-811319f5a81e\/settings.json", + "path": "src\/6e64917c-d687-4ef3-a655-811319f5a81e", + "spk": "Super__6e64917c_d687_4ef3_a655_811319f5a81e__Power", + "guid": "6e64917c-d687-4ef3-a655-811319f5a81e" + }, + "6f20369a-8536-4870-a1a3-cda254c939c8": { + "name": "Paths", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/6f20369a-8536-4870-a1a3-cda254c939c8\/code.php", + "power": "src\/6f20369a-8536-4870-a1a3-cda254c939c8\/code.power", + "settings": "src\/6f20369a-8536-4870-a1a3-cda254c939c8\/settings.json", + "path": "src\/6f20369a-8536-4870-a1a3-cda254c939c8", + "spk": "Super__6f20369a_8536_4870_a1a3_cda254c939c8__Power", + "guid": "6f20369a-8536-4870-a1a3-cda254c939c8" + }, + "7175c1cd-2071-4cd7-b499-23881e168c3f": { + "name": "Data", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Library", + "code": "src\/7175c1cd-2071-4cd7-b499-23881e168c3f\/code.php", + "power": "src\/7175c1cd-2071-4cd7-b499-23881e168c3f\/code.power", + "settings": "src\/7175c1cd-2071-4cd7-b499-23881e168c3f\/settings.json", + "path": "src\/7175c1cd-2071-4cd7-b499-23881e168c3f", + "spk": "Super__7175c1cd_2071_4cd7_b499_23881e168c3f__Power", + "guid": "7175c1cd-2071-4cd7-b499-23881e168c3f" + }, + "7243aaf6-b76c-4391-8698-50abbfc98fbe": { + "name": "Database", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Service", + "code": "src\/7243aaf6-b76c-4391-8698-50abbfc98fbe\/code.php", + "power": "src\/7243aaf6-b76c-4391-8698-50abbfc98fbe\/code.power", + "settings": "src\/7243aaf6-b76c-4391-8698-50abbfc98fbe\/settings.json", + "path": "src\/7243aaf6-b76c-4391-8698-50abbfc98fbe", + "spk": "Super__7243aaf6_b76c_4391_8698_50abbfc98fbe__Power", + "guid": "7243aaf6-b76c-4391-8698-50abbfc98fbe" + }, + "7415fdb4-5719-40b7-b01f-05588e968b47": { + "name": "LayoutData", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/7415fdb4-5719-40b7-b01f-05588e968b47\/code.php", + "power": "src\/7415fdb4-5719-40b7-b01f-05588e968b47\/code.power", + "settings": "src\/7415fdb4-5719-40b7-b01f-05588e968b47\/settings.json", + "path": "src\/7415fdb4-5719-40b7-b01f-05588e968b47", + "spk": "Super__7415fdb4_5719_40b7_b01f_05588e968b47__Power", + "guid": "7415fdb4-5719-40b7-b01f-05588e968b47" + }, + "74595661-236d-4aa1-99f3-358d093000be": { + "name": "OtherQuery", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/74595661-236d-4aa1-99f3-358d093000be\/code.php", + "power": "src\/74595661-236d-4aa1-99f3-358d093000be\/code.power", + "settings": "src\/74595661-236d-4aa1-99f3-358d093000be\/settings.json", + "path": "src\/74595661-236d-4aa1-99f3-358d093000be", + "spk": "Super__74595661_236d_4aa1_99f3_358d093000be__Power", + "guid": "74595661-236d-4aa1-99f3-358d093000be" + }, + "7506a35c-fa32-44ab-bd41-363439b20b82": { + "name": "ListHeadOverride", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/7506a35c-fa32-44ab-bd41-363439b20b82\/code.php", + "power": "src\/7506a35c-fa32-44ab-bd41-363439b20b82\/code.power", + "settings": "src\/7506a35c-fa32-44ab-bd41-363439b20b82\/settings.json", + "path": "src\/7506a35c-fa32-44ab-bd41-363439b20b82", + "spk": "Super__7506a35c_fa32_44ab_bd41_363439b20b82__Power", + "guid": "7506a35c-fa32-44ab-bd41-363439b20b82" + }, + "763d137c-42bc-4282-98d8-cc5c0654985f": { + "name": "Injector", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", + "code": "src\/763d137c-42bc-4282-98d8-cc5c0654985f\/code.php", + "power": "src\/763d137c-42bc-4282-98d8-cc5c0654985f\/code.power", + "settings": "src\/763d137c-42bc-4282-98d8-cc5c0654985f\/settings.json", + "path": "src\/763d137c-42bc-4282-98d8-cc5c0654985f", + "spk": "Super__763d137c_42bc_4282_98d8_cc5c0654985f__Power", + "guid": "763d137c-42bc-4282-98d8-cc5c0654985f" + }, + "766a9524-37df-4604-91a7-b98a6150ee26": { + "name": "Data", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Joomlaplugin", + "code": "src\/766a9524-37df-4604-91a7-b98a6150ee26\/code.php", + "power": "src\/766a9524-37df-4604-91a7-b98a6150ee26\/code.power", + "settings": "src\/766a9524-37df-4604-91a7-b98a6150ee26\/settings.json", + "path": "src\/766a9524-37df-4604-91a7-b98a6150ee26", + "spk": "Super__766a9524_37df_4604_91a7_b98a6150ee26__Power", + "guid": "766a9524-37df-4604-91a7-b98a6150ee26" + }, + "78527c29-24ad-4735-ad4c-ec33a4952d9b": { + "name": "Mappersingleinterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", + "code": "src\/78527c29-24ad-4735-ad4c-ec33a4952d9b\/code.php", + "power": "src\/78527c29-24ad-4735-ad4c-ec33a4952d9b\/code.power", + "settings": "src\/78527c29-24ad-4735-ad4c-ec33a4952d9b\/settings.json", + "path": "src\/78527c29-24ad-4735-ad4c-ec33a4952d9b", + "spk": "Super__78527c29_24ad_4735_ad4c_ec33a4952d9b__Power", + "guid": "78527c29-24ad-4735-ad4c-ec33a4952d9b" + }, + "79739667-72c6-4576-9830-7b1eb92e4791": { + "name": "FieldsetXML", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/79739667-72c6-4576-9830-7b1eb92e4791\/code.php", + "power": "src\/79739667-72c6-4576-9830-7b1eb92e4791\/code.power", + "settings": "src\/79739667-72c6-4576-9830-7b1eb92e4791\/settings.json", + "path": "src\/79739667-72c6-4576-9830-7b1eb92e4791", + "spk": "Super__79739667_72c6_4576_9830_7b1eb92e4791__Power", + "guid": "79739667-72c6-4576-9830-7b1eb92e4791" + }, + "79740ee8-4d10-4b51-9ff5-18e1386ec1c6": { + "name": "Dynamicget", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/79740ee8-4d10-4b51-9ff5-18e1386ec1c6\/code.php", + "power": "src\/79740ee8-4d10-4b51-9ff5-18e1386ec1c6\/code.power", + "settings": "src\/79740ee8-4d10-4b51-9ff5-18e1386ec1c6\/settings.json", + "path": "src\/79740ee8-4d10-4b51-9ff5-18e1386ec1c6", + "spk": "Super__79740ee8_4d10_4b51_9ff5_18e1386ec1c6__Power", + "guid": "79740ee8-4d10-4b51-9ff5-18e1386ec1c6" + }, + "797579e8-b272-41ed-91de-428cb0b3e089": { + "name": "Hash", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode", + "code": "src\/797579e8-b272-41ed-91de-428cb0b3e089\/code.php", + "power": "src\/797579e8-b272-41ed-91de-428cb0b3e089\/code.power", + "settings": "src\/797579e8-b272-41ed-91de-428cb0b3e089\/settings.json", + "path": "src\/797579e8-b272-41ed-91de-428cb0b3e089", + "spk": "Super__797579e8_b272_41ed_91de_428cb0b3e089__Power", + "guid": "797579e8-b272-41ed-91de-428cb0b3e089" + }, + "7a5fd3f3-199e-43ba-a8e8-f473d6c030ec": { + "name": "FieldHelper", + "type": "abstract class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec\/code.php", + "power": "src\/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec\/code.power", + "settings": "src\/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec\/settings.json", + "path": "src\/7a5fd3f3-199e-43ba-a8e8-f473d6c030ec", + "spk": "Super__7a5fd3f3_199e_43ba_a8e8_f473d6c030ec__Power", + "guid": "7a5fd3f3-199e-43ba-a8e8-f473d6c030ec" + }, + "7c07c9d6-34cd-4491-934a-ef0a83f414c0": { + "name": "LockBase", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode", + "code": "src\/7c07c9d6-34cd-4491-934a-ef0a83f414c0\/code.php", + "power": "src\/7c07c9d6-34cd-4491-934a-ef0a83f414c0\/code.power", + "settings": "src\/7c07c9d6-34cd-4491-934a-ef0a83f414c0\/settings.json", + "path": "src\/7c07c9d6-34cd-4491-934a-ef0a83f414c0", + "spk": "Super__7c07c9d6_34cd_4491_934a_ef0a83f414c0__Power", + "guid": "7c07c9d6-34cd-4491-934a-ef0a83f414c0" + }, + "7c1fb50f-8fb1-4627-8705-6fedf7182ca5": { + "name": "Upsert", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Model", + "code": "src\/7c1fb50f-8fb1-4627-8705-6fedf7182ca5\/code.php", + "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", + "guid": "7c1fb50f-8fb1-4627-8705-6fedf7182ca5" + }, + "7f01622a-74c9-4e67-b111-3eb488035206": { + "name": "Permission", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/7f01622a-74c9-4e67-b111-3eb488035206\/code.php", + "power": "src\/7f01622a-74c9-4e67-b111-3eb488035206\/code.power", + "settings": "src\/7f01622a-74c9-4e67-b111-3eb488035206\/settings.json", + "path": "src\/7f01622a-74c9-4e67-b111-3eb488035206", + "spk": "Super__7f01622a_74c9_4e67_b111_3eb488035206__Power", + "guid": "7f01622a-74c9-4e67-b111-3eb488035206" + }, + "7f515c18-d019-4d2d-9852-b2dc970985b3": { + "name": "Attributes", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", + "code": "src\/7f515c18-d019-4d2d-9852-b2dc970985b3\/code.php", + "power": "src\/7f515c18-d019-4d2d-9852-b2dc970985b3\/code.power", + "settings": "src\/7f515c18-d019-4d2d-9852-b2dc970985b3\/settings.json", + "path": "src\/7f515c18-d019-4d2d-9852-b2dc970985b3", + "spk": "Super__7f515c18_d019_4d2d_9852_b2dc970985b3__Power", + "guid": "7f515c18-d019-4d2d-9852-b2dc970985b3" + }, + "81212121-ad5c-43c5-b046-f2650864f690": { + "name": "AccessSwitchList", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/81212121-ad5c-43c5-b046-f2650864f690\/code.php", + "power": "src\/81212121-ad5c-43c5-b046-f2650864f690\/code.power", + "settings": "src\/81212121-ad5c-43c5-b046-f2650864f690\/settings.json", + "path": "src\/81212121-ad5c-43c5-b046-f2650864f690", + "spk": "Super__81212121_ad5c_43c5_b046_f2650864f690__Power", + "guid": "81212121-ad5c-43c5-b046-f2650864f690" + }, + "81de8f57-dd9c-4a17-964f-848cd4a0743b": { + "name": "Cryptinterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", + "code": "src\/81de8f57-dd9c-4a17-964f-848cd4a0743b\/code.php", + "power": "src\/81de8f57-dd9c-4a17-964f-848cd4a0743b\/code.power", + "settings": "src\/81de8f57-dd9c-4a17-964f-848cd4a0743b\/settings.json", + "path": "src\/81de8f57-dd9c-4a17-964f-848cd4a0743b", + "spk": "Super__81de8f57_dd9c_4a17_964f_848cd4a0743b__Power", + "guid": "81de8f57-dd9c-4a17-964f-848cd4a0743b" + }, + "8561f1f6-96c7-4e54-8869-0132116d57ce": { + "name": "CheckBox", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/8561f1f6-96c7-4e54-8869-0132116d57ce\/code.php", + "power": "src\/8561f1f6-96c7-4e54-8869-0132116d57ce\/code.power", + "settings": "src\/8561f1f6-96c7-4e54-8869-0132116d57ce\/settings.json", + "path": "src\/8561f1f6-96c7-4e54-8869-0132116d57ce", + "spk": "Super__8561f1f6_96c7_4e54_8869_0132116d57ce__Power", + "guid": "8561f1f6-96c7-4e54-8869-0132116d57ce" + }, + "8591f6db-dd3c-4a63-9b3f-574c0ec74ade": { + "name": "TemplateData", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/8591f6db-dd3c-4a63-9b3f-574c0ec74ade\/code.php", + "power": "src\/8591f6db-dd3c-4a63-9b3f-574c0ec74ade\/code.power", + "settings": "src\/8591f6db-dd3c-4a63-9b3f-574c0ec74ade\/settings.json", + "path": "src\/8591f6db-dd3c-4a63-9b3f-574c0ec74ade", + "spk": "Super__8591f6db_dd3c_4a63_9b3f_574c0ec74ade__Power", + "guid": "8591f6db-dd3c-4a63-9b3f-574c0ec74ade" }, "86ac0760-26f5-4746-9c7f-ce77860f80f8": { "name": "Serverinterface", @@ -1597,6 +1492,1580 @@ "power": "src\/86ac0760-26f5-4746-9c7f-ce77860f80f8\/code.power", "settings": "src\/86ac0760-26f5-4746-9c7f-ce77860f80f8\/settings.json", "path": "src\/86ac0760-26f5-4746-9c7f-ce77860f80f8", + "spk": "Super__86ac0760_26f5_4746_9c7f_ce77860f80f8__Power", "guid": "86ac0760-26f5-4746-9c7f-ce77860f80f8" + }, + "87d1da23-08d6-4fbf-bd0d-b746da240b8a": { + "name": "CustomField", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/87d1da23-08d6-4fbf-bd0d-b746da240b8a\/code.php", + "power": "src\/87d1da23-08d6-4fbf-bd0d-b746da240b8a\/code.power", + "settings": "src\/87d1da23-08d6-4fbf-bd0d-b746da240b8a\/settings.json", + "path": "src\/87d1da23-08d6-4fbf-bd0d-b746da240b8a", + "spk": "Super__87d1da23_08d6_4fbf_bd0d_b746da240b8a__Power", + "guid": "87d1da23-08d6-4fbf-bd0d-b746da240b8a" + }, + "87db51b9-1126-4c21-858b-53dbd3a68b61": { + "name": "History", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\JoomlaThree", + "code": "src\/87db51b9-1126-4c21-858b-53dbd3a68b61\/code.php", + "power": "src\/87db51b9-1126-4c21-858b-53dbd3a68b61\/code.power", + "settings": "src\/87db51b9-1126-4c21-858b-53dbd3a68b61\/settings.json", + "path": "src\/87db51b9-1126-4c21-858b-53dbd3a68b61", + "spk": "Super__87db51b9_1126_4c21_858b_53dbd3a68b61__Power", + "guid": "87db51b9-1126-4c21-858b-53dbd3a68b61" + }, + "87faa133-4cac-4816-ae41-5c3f9a2f76aa": { + "name": "Customview", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/87faa133-4cac-4816-ae41-5c3f9a2f76aa\/code.php", + "power": "src\/87faa133-4cac-4816-ae41-5c3f9a2f76aa\/code.power", + "settings": "src\/87faa133-4cac-4816-ae41-5c3f9a2f76aa\/settings.json", + "path": "src\/87faa133-4cac-4816-ae41-5c3f9a2f76aa", + "spk": "Super__87faa133_4cac_4816_ae41_5c3f9a2f76aa__Power", + "guid": "87faa133-4cac-4816-ae41-5c3f9a2f76aa" + }, + "8a2a3ee5-6ce2-4604-91e2-01f770228960": { + "name": "ServiceProviderBuilder", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Generator", + "code": "src\/8a2a3ee5-6ce2-4604-91e2-01f770228960\/code.php", + "power": "src\/8a2a3ee5-6ce2-4604-91e2-01f770228960\/code.power", + "settings": "src\/8a2a3ee5-6ce2-4604-91e2-01f770228960\/settings.json", + "path": "src\/8a2a3ee5-6ce2-4604-91e2-01f770228960", + "spk": "Super__8a2a3ee5_6ce2_4604_91e2_01f770228960__Power", + "guid": "8a2a3ee5-6ce2-4604-91e2-01f770228960" + }, + "8a63e87b-b39b-4a15-8044-9b2a2f4fb61c": { + "name": "Component", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c\/code.php", + "power": "src\/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c\/code.power", + "settings": "src\/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c\/settings.json", + "path": "src\/8a63e87b-b39b-4a15-8044-9b2a2f4fb61c", + "spk": "Super__8a63e87b_b39b_4a15_8044_9b2a2f4fb61c__Power", + "guid": "8a63e87b-b39b-4a15-8044-9b2a2f4fb61c" + }, + "8c018533-e967-4bf2-9bd9-9e92966fcb5e": { + "name": "UniqueName", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", + "code": "src\/8c018533-e967-4bf2-9bd9-9e92966fcb5e\/code.php", + "power": "src\/8c018533-e967-4bf2-9bd9-9e92966fcb5e\/code.power", + "settings": "src\/8c018533-e967-4bf2-9bd9-9e92966fcb5e\/settings.json", + "path": "src\/8c018533-e967-4bf2-9bd9-9e92966fcb5e", + "spk": "Super__8c018533_e967_4bf2_9bd9_9e92966fcb5e__Power", + "guid": "8c018533-e967-4bf2-9bd9-9e92966fcb5e" + }, + "8ca30d59-e56a-4cdd-bd8c-d9aad28f5903": { + "name": "Tags", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903\/code.php", + "power": "src\/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903\/code.power", + "settings": "src\/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903\/settings.json", + "path": "src\/8ca30d59-e56a-4cdd-bd8c-d9aad28f5903", + "spk": "Super__8ca30d59_e56a_4cdd_bd8c_d9aad28f5903__Power", + "guid": "8ca30d59-e56a-4cdd-bd8c-d9aad28f5903" + }, + "8eee7df5-2775-41a9-9372-c46c5939a252": { + "name": "Language", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", + "code": "src\/8eee7df5-2775-41a9-9372-c46c5939a252\/code.php", + "power": "src\/8eee7df5-2775-41a9-9372-c46c5939a252\/code.power", + "settings": "src\/8eee7df5-2775-41a9-9372-c46c5939a252\/settings.json", + "path": "src\/8eee7df5-2775-41a9-9372-c46c5939a252", + "spk": "Super__8eee7df5_2775_41a9_9372_c46c5939a252__Power", + "guid": "8eee7df5-2775-41a9-9372-c46c5939a252" + }, + "8f46f85d-7921-44e9-a40e-dc4f01c5d43a": { + "name": "GetAsLookup", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/8f46f85d-7921-44e9-a40e-dc4f01c5d43a\/code.php", + "power": "src\/8f46f85d-7921-44e9-a40e-dc4f01c5d43a\/code.power", + "settings": "src\/8f46f85d-7921-44e9-a40e-dc4f01c5d43a\/settings.json", + "path": "src\/8f46f85d-7921-44e9-a40e-dc4f01c5d43a", + "spk": "Super__8f46f85d_7921_44e9_a40e_dc4f01c5d43a__Power", + "guid": "8f46f85d-7921-44e9-a40e-dc4f01c5d43a" + }, + "8fdd604f-53e7-4a91-9935-afcfd2f6ac1b": { + "name": "Creator", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b\/code.php", + "power": "src\/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b\/code.power", + "settings": "src\/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b\/settings.json", + "path": "src\/8fdd604f-53e7-4a91-9935-afcfd2f6ac1b", + "spk": "Super__8fdd604f_53e7_4a91_9935_afcfd2f6ac1b__Power", + "guid": "8fdd604f-53e7-4a91-9935-afcfd2f6ac1b" + }, + "9042fac6-5ca5-4ebe-94fe-cf9b0718ed36": { + "name": "ScriptUserSwitch", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36\/code.php", + "power": "src\/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36\/code.power", + "settings": "src\/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36\/settings.json", + "path": "src\/9042fac6-5ca5-4ebe-94fe-cf9b0718ed36", + "spk": "Super__9042fac6_5ca5_4ebe_94fe_cf9b0718ed36__Power", + "guid": "9042fac6-5ca5-4ebe-94fe-cf9b0718ed36" + }, + "9127e428-5dee-46cb-b3a9-ab5b91ea6df3": { + "name": "Modifieddate", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/9127e428-5dee-46cb-b3a9-ab5b91ea6df3\/code.php", + "power": "src\/9127e428-5dee-46cb-b3a9-ab5b91ea6df3\/code.power", + "settings": "src\/9127e428-5dee-46cb-b3a9-ab5b91ea6df3\/settings.json", + "path": "src\/9127e428-5dee-46cb-b3a9-ab5b91ea6df3", + "spk": "Super__9127e428_5dee_46cb_b3a9_ab5b91ea6df3__Power", + "guid": "9127e428-5dee-46cb-b3a9-ab5b91ea6df3" + }, + "9387215f-a965-4421-acf3-5e8f9d11382f": { + "name": "Name", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", + "code": "src\/9387215f-a965-4421-acf3-5e8f9d11382f\/code.php", + "power": "src\/9387215f-a965-4421-acf3-5e8f9d11382f\/code.power", + "settings": "src\/9387215f-a965-4421-acf3-5e8f9d11382f\/settings.json", + "path": "src\/9387215f-a965-4421-acf3-5e8f9d11382f", + "spk": "Super__9387215f_a965_4421_acf3_5e8f9d11382f__Power", + "guid": "9387215f-a965-4421-acf3-5e8f9d11382f" + }, + "9481caa2-6d04-4598-8320-543a93927243": { + "name": "AdminFilterType", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/9481caa2-6d04-4598-8320-543a93927243\/code.php", + "power": "src\/9481caa2-6d04-4598-8320-543a93927243\/code.power", + "settings": "src\/9481caa2-6d04-4598-8320-543a93927243\/settings.json", + "path": "src\/9481caa2-6d04-4598-8320-543a93927243", + "spk": "Super__9481caa2_6d04_4598_8320_543a93927243__Power", + "guid": "9481caa2-6d04-4598-8320-543a93927243" + }, + "94e0beae-7daa-43b2-81b9-0bde390a76d8": { + "name": "Sort", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/94e0beae-7daa-43b2-81b9-0bde390a76d8\/code.php", + "power": "src\/94e0beae-7daa-43b2-81b9-0bde390a76d8\/code.power", + "settings": "src\/94e0beae-7daa-43b2-81b9-0bde390a76d8\/settings.json", + "path": "src\/94e0beae-7daa-43b2-81b9-0bde390a76d8", + "spk": "Super__94e0beae_7daa_43b2_81b9_0bde390a76d8__Power", + "guid": "94e0beae-7daa-43b2-81b9-0bde390a76d8" + }, + "94f4939f-82cc-4196-802b-1346ce5c7f99": { + "name": "PermissionComponent", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/94f4939f-82cc-4196-802b-1346ce5c7f99\/code.php", + "power": "src\/94f4939f-82cc-4196-802b-1346ce5c7f99\/code.power", + "settings": "src\/94f4939f-82cc-4196-802b-1346ce5c7f99\/settings.json", + "path": "src\/94f4939f-82cc-4196-802b-1346ce5c7f99", + "spk": "Super__94f4939f_82cc_4196_802b_1346ce5c7f99__Power", + "guid": "94f4939f-82cc-4196-802b-1346ce5c7f99" + }, + "952423ba-015a-4104-89a4-030695aa4d15": { + "name": "IntegerFields", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/952423ba-015a-4104-89a4-030695aa4d15\/code.php", + "power": "src\/952423ba-015a-4104-89a4-030695aa4d15\/code.power", + "settings": "src\/952423ba-015a-4104-89a4-030695aa4d15\/settings.json", + "path": "src\/952423ba-015a-4104-89a4-030695aa4d15", + "spk": "Super__952423ba_015a_4104_89a4_030695aa4d15__Power", + "guid": "952423ba-015a-4104-89a4-030695aa4d15" + }, + "9551b683-67b6-4367-bb14-4b016def37e3": { + "name": "CustomTabs", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/9551b683-67b6-4367-bb14-4b016def37e3\/code.php", + "power": "src\/9551b683-67b6-4367-bb14-4b016def37e3\/code.power", + "settings": "src\/9551b683-67b6-4367-bb14-4b016def37e3\/settings.json", + "path": "src\/9551b683-67b6-4367-bb14-4b016def37e3", + "spk": "Super__9551b683_67b6_4367_bb14_4b016def37e3__Power", + "guid": "9551b683-67b6-4367-bb14-4b016def37e3" + }, + "95d0e03f-24fd-4412-bc2e-f0899fcc3205": { + "name": "Parser", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", + "code": "src\/95d0e03f-24fd-4412-bc2e-f0899fcc3205\/code.php", + "power": "src\/95d0e03f-24fd-4412-bc2e-f0899fcc3205\/code.power", + "settings": "src\/95d0e03f-24fd-4412-bc2e-f0899fcc3205\/settings.json", + "path": "src\/95d0e03f-24fd-4412-bc2e-f0899fcc3205", + "spk": "Super__95d0e03f_24fd_4412_bc2e_f0899fcc3205__Power", + "guid": "95d0e03f-24fd-4412-bc2e-f0899fcc3205" + }, + "961a2a2e-9f95-4b5f-b1c0-62ee783f9c66": { + "name": "FieldNames", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66\/code.php", + "power": "src\/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66\/code.power", + "settings": "src\/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66\/settings.json", + "path": "src\/961a2a2e-9f95-4b5f-b1c0-62ee783f9c66", + "spk": "Super__961a2a2e_9f95_4b5f_b1c0_62ee783f9c66__Power", + "guid": "961a2a2e-9f95-4b5f-b1c0-62ee783f9c66" + }, + "972c4de9-6f6f-463b-8eea-cc7cbdb96aba": { + "name": "ItemsMethodListString", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/972c4de9-6f6f-463b-8eea-cc7cbdb96aba\/code.php", + "power": "src\/972c4de9-6f6f-463b-8eea-cc7cbdb96aba\/code.power", + "settings": "src\/972c4de9-6f6f-463b-8eea-cc7cbdb96aba\/settings.json", + "path": "src\/972c4de9-6f6f-463b-8eea-cc7cbdb96aba", + "spk": "Super__972c4de9_6f6f_463b_8eea_cc7cbdb96aba__Power", + "guid": "972c4de9-6f6f-463b-8eea-cc7cbdb96aba" + }, + "97698747-c2ce-4e09-a470-acf6d8e86281": { + "name": "PlaceholderInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Component", + "code": "src\/97698747-c2ce-4e09-a470-acf6d8e86281\/code.php", + "power": "src\/97698747-c2ce-4e09-a470-acf6d8e86281\/code.power", + "settings": "src\/97698747-c2ce-4e09-a470-acf6d8e86281\/settings.json", + "path": "src\/97698747-c2ce-4e09-a470-acf6d8e86281", + "spk": "Super__97698747_c2ce_4e09_a470_acf6d8e86281__Power", + "guid": "97698747-c2ce-4e09-a470-acf6d8e86281" + }, + "9769f3b2-17bf-4f20-b54b-3a4ebe572b36": { + "name": "BaseConfig", + "type": "abstract class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Abstraction", + "code": "src\/9769f3b2-17bf-4f20-b54b-3a4ebe572b36\/code.php", + "power": "src\/9769f3b2-17bf-4f20-b54b-3a4ebe572b36\/code.power", + "settings": "src\/9769f3b2-17bf-4f20-b54b-3a4ebe572b36\/settings.json", + "path": "src\/9769f3b2-17bf-4f20-b54b-3a4ebe572b36", + "spk": "Super__9769f3b2_17bf_4f20_b54b_3a4ebe572b36__Power", + "guid": "9769f3b2-17bf-4f20-b54b-3a4ebe572b36" + }, + "99368a6f-2f64-4d4e-ad3a-544d4020ecc6": { + "name": "DatabaseName", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", + "code": "src\/99368a6f-2f64-4d4e-ad3a-544d4020ecc6\/code.php", + "power": "src\/99368a6f-2f64-4d4e-ad3a-544d4020ecc6\/code.power", + "settings": "src\/99368a6f-2f64-4d4e-ad3a-544d4020ecc6\/settings.json", + "path": "src\/99368a6f-2f64-4d4e-ad3a-544d4020ecc6", + "spk": "Super__99368a6f_2f64_4d4e_ad3a_544d4020ecc6__Power", + "guid": "99368a6f-2f64-4d4e-ad3a-544d4020ecc6" + }, + "9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7": { + "name": "ClassInjectorBuilder", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Generator", + "code": "src\/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7\/code.php", + "power": "src\/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7\/code.power", + "settings": "src\/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7\/settings.json", + "path": "src\/9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7", + "spk": "Super__9c2fdd98_ce4e_4b97_a2f8_ee6990bdcbf7__Power", + "guid": "9c2fdd98-ce4e-4b97-a2f8-ee6990bdcbf7" + }, + "9cdff2af-bd1b-452f-810e-d034b9720d2a": { + "name": "MovedPublishingFields", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/9cdff2af-bd1b-452f-810e-d034b9720d2a\/code.php", + "power": "src\/9cdff2af-bd1b-452f-810e-d034b9720d2a\/code.power", + "settings": "src\/9cdff2af-bd1b-452f-810e-d034b9720d2a\/settings.json", + "path": "src\/9cdff2af-bd1b-452f-810e-d034b9720d2a", + "spk": "Super__9cdff2af_bd1b_452f_810e_d034b9720d2a__Power", + "guid": "9cdff2af-bd1b-452f-810e-d034b9720d2a" + }, + "9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f": { + "name": "OtherFilter", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f\/code.php", + "power": "src\/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f\/code.power", + "settings": "src\/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f\/settings.json", + "path": "src\/9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f", + "spk": "Super__9d1eec29_f304_4b08_a3e7_8b2d6b1f4a1f__Power", + "guid": "9d1eec29-f304-4b08-a3e7-8b2d6b1f4a1f" + }, + "9d74d613-5ef7-4cf1-9f12-64f0a8e19806": { + "name": "CustomAlias", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/9d74d613-5ef7-4cf1-9f12-64f0a8e19806\/code.php", + "power": "src\/9d74d613-5ef7-4cf1-9f12-64f0a8e19806\/code.power", + "settings": "src\/9d74d613-5ef7-4cf1-9f12-64f0a8e19806\/settings.json", + "path": "src\/9d74d613-5ef7-4cf1-9f12-64f0a8e19806", + "spk": "Super__9d74d613_5ef7_4cf1_9f12_64f0a8e19806__Power", + "guid": "9d74d613-5ef7-4cf1-9f12-64f0a8e19806" + }, + "9eba241c-af90-42dd-ae05-92ff4d8391d3": { + "name": "Joomlaplugin", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/9eba241c-af90-42dd-ae05-92ff4d8391d3\/code.php", + "power": "src\/9eba241c-af90-42dd-ae05-92ff4d8391d3\/code.power", + "settings": "src\/9eba241c-af90-42dd-ae05-92ff4d8391d3\/settings.json", + "path": "src\/9eba241c-af90-42dd-ae05-92ff4d8391d3", + "spk": "Super__9eba241c_af90_42dd_ae05_92ff4d8391d3__Power", + "guid": "9eba241c-af90-42dd-ae05-92ff4d8391d3" + }, + "9f00e793-86f8-4ef9-b775-a3eb129f83c0": { + "name": "Language", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/9f00e793-86f8-4ef9-b775-a3eb129f83c0\/code.php", + "power": "src\/9f00e793-86f8-4ef9-b775-a3eb129f83c0\/code.power", + "settings": "src\/9f00e793-86f8-4ef9-b775-a3eb129f83c0\/settings.json", + "path": "src\/9f00e793-86f8-4ef9-b775-a3eb129f83c0", + "spk": "Super__9f00e793_86f8_4ef9_b775_a3eb129f83c0__Power", + "guid": "9f00e793-86f8-4ef9-b775-a3eb129f83c0" + }, + "9ff6d6cd-afea-4f15-a67b-fd132d386989": { + "name": "MysqlTableSetting", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/9ff6d6cd-afea-4f15-a67b-fd132d386989\/code.php", + "power": "src\/9ff6d6cd-afea-4f15-a67b-fd132d386989\/code.power", + "settings": "src\/9ff6d6cd-afea-4f15-a67b-fd132d386989\/settings.json", + "path": "src\/9ff6d6cd-afea-4f15-a67b-fd132d386989", + "spk": "Super__9ff6d6cd_afea_4f15_a67b_fd132d386989__Power", + "guid": "9ff6d6cd-afea-4f15-a67b-fd132d386989" + }, + "a090a472-eb3d-4086-a6d5-4215e1b1851f": { + "name": "FieldRelations", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/a090a472-eb3d-4086-a6d5-4215e1b1851f\/code.php", + "power": "src\/a090a472-eb3d-4086-a6d5-4215e1b1851f\/code.power", + "settings": "src\/a090a472-eb3d-4086-a6d5-4215e1b1851f\/settings.json", + "path": "src\/a090a472-eb3d-4086-a6d5-4215e1b1851f", + "spk": "Super__a090a472_eb3d_4086_a6d5_4215e1b1851f__Power", + "guid": "a090a472-eb3d-4086-a6d5-4215e1b1851f" + }, + "a0f032db-2242-41df-8e4a-5e9e6f88201d": { + "name": "Layout", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/a0f032db-2242-41df-8e4a-5e9e6f88201d\/code.php", + "power": "src\/a0f032db-2242-41df-8e4a-5e9e6f88201d\/code.power", + "settings": "src\/a0f032db-2242-41df-8e4a-5e9e6f88201d\/settings.json", + "path": "src\/a0f032db-2242-41df-8e4a-5e9e6f88201d", + "spk": "Super__a0f032db_2242_41df_8e4a_5e9e6f88201d__Power", + "guid": "a0f032db-2242-41df-8e4a-5e9e6f88201d" + }, + "a1e551a9-8369-48c9-a076-4e5beb65e0df": { + "name": "CategoryOtherName", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/a1e551a9-8369-48c9-a076-4e5beb65e0df\/code.php", + "power": "src\/a1e551a9-8369-48c9-a076-4e5beb65e0df\/code.power", + "settings": "src\/a1e551a9-8369-48c9-a076-4e5beb65e0df\/settings.json", + "path": "src\/a1e551a9-8369-48c9-a076-4e5beb65e0df", + "spk": "Super__a1e551a9_8369_48c9_a076_4e5beb65e0df__Power", + "guid": "a1e551a9-8369-48c9-a076-4e5beb65e0df" + }, + "a356d103-74f3-49ca-8e4f-3bd37746f089": { + "name": "Customcode", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", + "code": "src\/a356d103-74f3-49ca-8e4f-3bd37746f089\/code.php", + "power": "src\/a356d103-74f3-49ca-8e4f-3bd37746f089\/code.power", + "settings": "src\/a356d103-74f3-49ca-8e4f-3bd37746f089\/settings.json", + "path": "src\/a356d103-74f3-49ca-8e4f-3bd37746f089", + "spk": "Super__a356d103_74f3_49ca_8e4f_3bd37746f089__Power", + "guid": "a356d103-74f3-49ca-8e4f-3bd37746f089" + }, + "a3c515f5-4adf-4eb3-b637-0a1add550da6": { + "name": "LockBaseInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Customcode", + "code": "src\/a3c515f5-4adf-4eb3-b637-0a1add550da6\/code.php", + "power": "src\/a3c515f5-4adf-4eb3-b637-0a1add550da6\/code.power", + "settings": "src\/a3c515f5-4adf-4eb3-b637-0a1add550da6\/settings.json", + "path": "src\/a3c515f5-4adf-4eb3-b637-0a1add550da6", + "spk": "Super__a3c515f5_4adf_4eb3_b637_0a1add550da6__Power", + "guid": "a3c515f5-4adf-4eb3-b637-0a1add550da6" + }, + "a4857c60-680c-4e0c-ae8f-9250a7b5e317": { + "name": "CustomFieldLinks", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/a4857c60-680c-4e0c-ae8f-9250a7b5e317\/code.php", + "power": "src\/a4857c60-680c-4e0c-ae8f-9250a7b5e317\/code.power", + "settings": "src\/a4857c60-680c-4e0c-ae8f-9250a7b5e317\/settings.json", + "path": "src\/a4857c60-680c-4e0c-ae8f-9250a7b5e317", + "spk": "Super__a4857c60_680c_4e0c_ae8f_9250a7b5e317__Power", + "guid": "a4857c60-680c-4e0c-ae8f-9250a7b5e317" + }, + "a5189bfe-6d15-4452-9fa5-e3e57f7fa791": { + "name": "ModelBasicField", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/a5189bfe-6d15-4452-9fa5-e3e57f7fa791\/code.php", + "power": "src\/a5189bfe-6d15-4452-9fa5-e3e57f7fa791\/code.power", + "settings": "src\/a5189bfe-6d15-4452-9fa5-e3e57f7fa791\/settings.json", + "path": "src\/a5189bfe-6d15-4452-9fa5-e3e57f7fa791", + "spk": "Super__a5189bfe_6d15_4452_9fa5_e3e57f7fa791__Power", + "guid": "a5189bfe-6d15-4452-9fa5-e3e57f7fa791" + }, + "a5734b9e-a72d-494c-bc72-c3bc7506015f": { + "name": "Factory", + "type": "abstract class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power", + "code": "src\/a5734b9e-a72d-494c-bc72-c3bc7506015f\/code.php", + "power": "src\/a5734b9e-a72d-494c-bc72-c3bc7506015f\/code.power", + "settings": "src\/a5734b9e-a72d-494c-bc72-c3bc7506015f\/settings.json", + "path": "src\/a5734b9e-a72d-494c-bc72-c3bc7506015f", + "spk": "Super__a5734b9e_a72d_494c_bc72_c3bc7506015f__Power", + "guid": "a5734b9e-a72d-494c-bc72-c3bc7506015f" + }, + "a601888d-12b6-427f-94ae-95004206e24e": { + "name": "PermissionGlobalAction", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/a601888d-12b6-427f-94ae-95004206e24e\/code.php", + "power": "src\/a601888d-12b6-427f-94ae-95004206e24e\/code.power", + "settings": "src\/a601888d-12b6-427f-94ae-95004206e24e\/settings.json", + "path": "src\/a601888d-12b6-427f-94ae-95004206e24e", + "spk": "Super__a601888d_12b6_427f_94ae_95004206e24e__Power", + "guid": "a601888d-12b6-427f-94ae-95004206e24e" + }, + "a68c010b-e92e-47d5-8a44-d23cfddeb6c6": { + "name": "Indent", + "type": "abstract class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/a68c010b-e92e-47d5-8a44-d23cfddeb6c6\/code.php", + "power": "src\/a68c010b-e92e-47d5-8a44-d23cfddeb6c6\/code.power", + "settings": "src\/a68c010b-e92e-47d5-8a44-d23cfddeb6c6\/settings.json", + "path": "src\/a68c010b-e92e-47d5-8a44-d23cfddeb6c6", + "spk": "Super__a68c010b_e92e_47d5_8a44_d23cfddeb6c6__Power", + "guid": "a68c010b-e92e-47d5-8a44-d23cfddeb6c6" + }, + "a6cdd935-c038-4a54-8446-54bed87f003c": { + "name": "PlaceholderInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", + "code": "src\/a6cdd935-c038-4a54-8446-54bed87f003c\/code.php", + "power": "src\/a6cdd935-c038-4a54-8446-54bed87f003c\/code.power", + "settings": "src\/a6cdd935-c038-4a54-8446-54bed87f003c\/settings.json", + "path": "src\/a6cdd935-c038-4a54-8446-54bed87f003c", + "spk": "Super__a6cdd935_c038_4a54_8446_54bed87f003c__Power", + "guid": "a6cdd935-c038-4a54-8446-54bed87f003c" + }, + "a6e1227c-1efe-407d-84ef-03c6989a6a88": { + "name": "Sqldump", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/a6e1227c-1efe-407d-84ef-03c6989a6a88\/code.php", + "power": "src\/a6e1227c-1efe-407d-84ef-03c6989a6a88\/code.power", + "settings": "src\/a6e1227c-1efe-407d-84ef-03c6989a6a88\/settings.json", + "path": "src\/a6e1227c-1efe-407d-84ef-03c6989a6a88", + "spk": "Super__a6e1227c_1efe_407d_84ef_03c6989a6a88__Power", + "guid": "a6e1227c-1efe-407d-84ef-03c6989a6a88" + }, + "a7101bbc-3c81-4b52-a4aa-522291f7594b": { + "name": "Generator", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Service", + "code": "src\/a7101bbc-3c81-4b52-a4aa-522291f7594b\/code.php", + "power": "src\/a7101bbc-3c81-4b52-a4aa-522291f7594b\/code.power", + "settings": "src\/a7101bbc-3c81-4b52-a4aa-522291f7594b\/settings.json", + "path": "src\/a7101bbc-3c81-4b52-a4aa-522291f7594b", + "spk": "Super__a7101bbc_3c81_4b52_a4aa_522291f7594b__Power", + "guid": "a7101bbc-3c81-4b52-a4aa-522291f7594b" + }, + "a74ac3b7-bb79-4639-8f14-54a8021be68b": { + "name": "Customcode", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/a74ac3b7-bb79-4639-8f14-54a8021be68b\/code.php", + "power": "src\/a74ac3b7-bb79-4639-8f14-54a8021be68b\/code.power", + "settings": "src\/a74ac3b7-bb79-4639-8f14-54a8021be68b\/settings.json", + "path": "src\/a74ac3b7-bb79-4639-8f14-54a8021be68b", + "spk": "Super__a74ac3b7_bb79_4639_8f14_54a8021be68b__Power", + "guid": "a74ac3b7-bb79-4639-8f14-54a8021be68b" + }, + "a85451d3-a5c5-446a-90ae-0cf715a16d94": { + "name": "Permission", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Adminview", + "code": "src\/a85451d3-a5c5-446a-90ae-0cf715a16d94\/code.php", + "power": "src\/a85451d3-a5c5-446a-90ae-0cf715a16d94\/code.power", + "settings": "src\/a85451d3-a5c5-446a-90ae-0cf715a16d94\/settings.json", + "path": "src\/a85451d3-a5c5-446a-90ae-0cf715a16d94", + "spk": "Super__a85451d3_a5c5_446a_90ae_0cf715a16d94__Power", + "guid": "a85451d3-a5c5-446a-90ae-0cf715a16d94" + }, + "a8eb2fb1-88ed-4af8-842d-898eb915b588": { + "name": "Relations", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/a8eb2fb1-88ed-4af8-842d-898eb915b588\/code.php", + "power": "src\/a8eb2fb1-88ed-4af8-842d-898eb915b588\/code.power", + "settings": "src\/a8eb2fb1-88ed-4af8-842d-898eb915b588\/settings.json", + "path": "src\/a8eb2fb1-88ed-4af8-842d-898eb915b588", + "spk": "Super__a8eb2fb1_88ed_4af8_842d_898eb915b588__Power", + "guid": "a8eb2fb1-88ed-4af8-842d-898eb915b588" + }, + "a900b836-f2eb-4f13-8f28-b7cac839c7ff": { + "name": "Structure", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Joomlaplugin", + "code": "src\/a900b836-f2eb-4f13-8f28-b7cac839c7ff\/code.php", + "power": "src\/a900b836-f2eb-4f13-8f28-b7cac839c7ff\/code.power", + "settings": "src\/a900b836-f2eb-4f13-8f28-b7cac839c7ff\/settings.json", + "path": "src\/a900b836-f2eb-4f13-8f28-b7cac839c7ff", + "spk": "Super__a900b836_f2eb_4f13_8f28_b7cac839c7ff__Power", + "guid": "a900b836-f2eb-4f13-8f28-b7cac839c7ff" + }, + "a90a2495-9c26-446c-867e-9ee8f42fb6af": { + "name": "Layout", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/a90a2495-9c26-446c-867e-9ee8f42fb6af\/code.php", + "power": "src\/a90a2495-9c26-446c-867e-9ee8f42fb6af\/code.power", + "settings": "src\/a90a2495-9c26-446c-867e-9ee8f42fb6af\/settings.json", + "path": "src\/a90a2495-9c26-446c-867e-9ee8f42fb6af", + "spk": "Super__a90a2495_9c26_446c_867e_9ee8f42fb6af__Power", + "guid": "a90a2495-9c26-446c-867e-9ee8f42fb6af" + }, + "abdb7d20-a15e-42d8-bd91-7b09514df7f2": { + "name": "SiteEditView", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/abdb7d20-a15e-42d8-bd91-7b09514df7f2\/code.php", + "power": "src\/abdb7d20-a15e-42d8-bd91-7b09514df7f2\/code.power", + "settings": "src\/abdb7d20-a15e-42d8-bd91-7b09514df7f2\/settings.json", + "path": "src\/abdb7d20-a15e-42d8-bd91-7b09514df7f2", + "spk": "Super__abdb7d20_a15e_42d8_bd91_7b09514df7f2__Power", + "guid": "abdb7d20-a15e-42d8-bd91-7b09514df7f2" + }, + "ac691a05-5630-4002-b166-dedec3fb0fcb": { + "name": "FieldXML", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/ac691a05-5630-4002-b166-dedec3fb0fcb\/code.php", + "power": "src\/ac691a05-5630-4002-b166-dedec3fb0fcb\/code.power", + "settings": "src\/ac691a05-5630-4002-b166-dedec3fb0fcb\/settings.json", + "path": "src\/ac691a05-5630-4002-b166-dedec3fb0fcb", + "spk": "Super__ac691a05_5630_4002_b166_dedec3fb0fcb__Power", + "guid": "ac691a05-5630-4002-b166-dedec3fb0fcb" + }, + "adfbe68a-6d22-43e5-aee8-2787e8c47e75": { + "name": "Content", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", + "code": "src\/adfbe68a-6d22-43e5-aee8-2787e8c47e75\/code.php", + "power": "src\/adfbe68a-6d22-43e5-aee8-2787e8c47e75\/code.power", + "settings": "src\/adfbe68a-6d22-43e5-aee8-2787e8c47e75\/settings.json", + "path": "src\/adfbe68a-6d22-43e5-aee8-2787e8c47e75", + "spk": "Super__adfbe68a_6d22_43e5_aee8_2787e8c47e75__Power", + "guid": "adfbe68a-6d22-43e5-aee8-2787e8c47e75" + }, + "ae1fa148-91be-4f80-89a9-69d91ba9d575": { + "name": "Linkedviews", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/ae1fa148-91be-4f80-89a9-69d91ba9d575\/code.php", + "power": "src\/ae1fa148-91be-4f80-89a9-69d91ba9d575\/code.power", + "settings": "src\/ae1fa148-91be-4f80-89a9-69d91ba9d575\/settings.json", + "path": "src\/ae1fa148-91be-4f80-89a9-69d91ba9d575", + "spk": "Super__ae1fa148_91be_4f80_89a9_69d91ba9d575__Power", + "guid": "ae1fa148-91be-4f80-89a9-69d91ba9d575" + }, + "aecc17ba-0b0f-4e5c-ae43-71be063a3dcb": { + "name": "Placeholder", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", + "code": "src\/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb\/code.php", + "power": "src\/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb\/code.power", + "settings": "src\/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb\/settings.json", + "path": "src\/aecc17ba-0b0f-4e5c-ae43-71be063a3dcb", + "spk": "Super__aecc17ba_0b0f_4e5c_ae43_71be063a3dcb__Power", + "guid": "aecc17ba-0b0f-4e5c-ae43-71be063a3dcb" + }, + "af5beb21-214a-44f6-9090-7ea24c22e649": { + "name": "Whmcs", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/af5beb21-214a-44f6-9090-7ea24c22e649\/code.php", + "power": "src\/af5beb21-214a-44f6-9090-7ea24c22e649\/code.power", + "settings": "src\/af5beb21-214a-44f6-9090-7ea24c22e649\/settings.json", + "path": "src\/af5beb21-214a-44f6-9090-7ea24c22e649", + "spk": "Super__af5beb21_214a_44f6_9090_7ea24c22e649__Power", + "guid": "af5beb21-214a-44f6-9090-7ea24c22e649" + }, + "b0b26749-5e2c-4b56-8982-48172f2531fa": { + "name": "ModelMediumField", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/b0b26749-5e2c-4b56-8982-48172f2531fa\/code.php", + "power": "src\/b0b26749-5e2c-4b56-8982-48172f2531fa\/code.power", + "settings": "src\/b0b26749-5e2c-4b56-8982-48172f2531fa\/settings.json", + "path": "src\/b0b26749-5e2c-4b56-8982-48172f2531fa", + "spk": "Super__b0b26749_5e2c_4b56_8982_48172f2531fa__Power", + "guid": "b0b26749-5e2c-4b56-8982-48172f2531fa" + }, + "b24f5184-7e7c-448d-9475-ff3f998f70c3": { + "name": "CategoryCode", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/b24f5184-7e7c-448d-9475-ff3f998f70c3\/code.php", + "power": "src\/b24f5184-7e7c-448d-9475-ff3f998f70c3\/code.power", + "settings": "src\/b24f5184-7e7c-448d-9475-ff3f998f70c3\/settings.json", + "path": "src\/b24f5184-7e7c-448d-9475-ff3f998f70c3", + "spk": "Super__b24f5184_7e7c_448d_9475_ff3f998f70c3__Power", + "guid": "b24f5184-7e7c-448d-9475-ff3f998f70c3" + }, + "b3c36de1-9b18-4ea8-8383-6ab8f0e33996": { + "name": "DatabaseTables", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/b3c36de1-9b18-4ea8-8383-6ab8f0e33996\/code.php", + "power": "src\/b3c36de1-9b18-4ea8-8383-6ab8f0e33996\/code.power", + "settings": "src\/b3c36de1-9b18-4ea8-8383-6ab8f0e33996\/settings.json", + "path": "src\/b3c36de1-9b18-4ea8-8383-6ab8f0e33996", + "spk": "Super__b3c36de1_9b18_4ea8_8383_6ab8f0e33996__Power", + "guid": "b3c36de1-9b18-4ea8-8383-6ab8f0e33996" + }, + "b5986fab-17ca-4236-8c0c-81ebd2bb82ba": { + "name": "FieldsetDynamic", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/b5986fab-17ca-4236-8c0c-81ebd2bb82ba\/code.php", + "power": "src\/b5986fab-17ca-4236-8c0c-81ebd2bb82ba\/code.power", + "settings": "src\/b5986fab-17ca-4236-8c0c-81ebd2bb82ba\/settings.json", + "path": "src\/b5986fab-17ca-4236-8c0c-81ebd2bb82ba", + "spk": "Super__b5986fab_17ca_4236_8c0c_81ebd2bb82ba__Power", + "guid": "b5986fab-17ca-4236-8c0c-81ebd2bb82ba" + }, + "b69a23db-0a62-4840-a9c5-b2d8d63ecc6c": { + "name": "Structuremultiple", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", + "code": "src\/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c\/code.php", + "power": "src\/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c\/code.power", + "settings": "src\/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c\/settings.json", + "path": "src\/b69a23db-0a62-4840-a9c5-b2d8d63ecc6c", + "spk": "Super__b69a23db_0a62_4840_a9c5_b2d8d63ecc6c__Power", + "guid": "b69a23db-0a62-4840-a9c5-b2d8d63ecc6c" + }, + "b80296eb-4718-4ed3-894d-69f3ac293733": { + "name": "Updatesql", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/b80296eb-4718-4ed3-894d-69f3ac293733\/code.php", + "power": "src\/b80296eb-4718-4ed3-894d-69f3ac293733\/code.power", + "settings": "src\/b80296eb-4718-4ed3-894d-69f3ac293733\/settings.json", + "path": "src\/b80296eb-4718-4ed3-894d-69f3ac293733", + "spk": "Super__b80296eb_4718_4ed3_894d_69f3ac293733__Power", + "guid": "b80296eb-4718-4ed3-894d-69f3ac293733" + }, + "b836c1b1-b6b1-44f7-b8a2-9a763a4185b1": { + "name": "Power", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", + "code": "src\/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1\/code.php", + "power": "src\/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1\/code.power", + "settings": "src\/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1\/settings.json", + "path": "src\/b836c1b1-b6b1-44f7-b8a2-9a763a4185b1", + "spk": "Super__b836c1b1_b6b1_44f7_b8a2_9a763a4185b1__Power", + "guid": "b836c1b1-b6b1-44f7-b8a2-9a763a4185b1" + }, + "b8a92303-8543-4d88-a83c-ece300eaba6d": { + "name": "ModelExpertField", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/b8a92303-8543-4d88-a83c-ece300eaba6d\/code.php", + "power": "src\/b8a92303-8543-4d88-a83c-ece300eaba6d\/code.power", + "settings": "src\/b8a92303-8543-4d88-a83c-ece300eaba6d\/settings.json", + "path": "src\/b8a92303-8543-4d88-a83c-ece300eaba6d", + "spk": "Super__b8a92303_8543_4d88_a83c_ece300eaba6d__Power", + "guid": "b8a92303-8543-4d88-a83c-ece300eaba6d" + }, + "b8b474d4-30e3-4b5a-9988-3adb3450998c": { + "name": "BaseSixFour", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/b8b474d4-30e3-4b5a-9988-3adb3450998c\/code.php", + "power": "src\/b8b474d4-30e3-4b5a-9988-3adb3450998c\/code.power", + "settings": "src\/b8b474d4-30e3-4b5a-9988-3adb3450998c\/settings.json", + "path": "src\/b8b474d4-30e3-4b5a-9988-3adb3450998c", + "spk": "Super__b8b474d4_30e3_4b5a_9988_3adb3450998c__Power", + "guid": "b8b474d4-30e3-4b5a-9988-3adb3450998c" + }, + "b94aaedb-6774-4739-a63f-8f87141a85db": { + "name": "Event", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/b94aaedb-6774-4739-a63f-8f87141a85db\/code.php", + "power": "src\/b94aaedb-6774-4739-a63f-8f87141a85db\/code.power", + "settings": "src\/b94aaedb-6774-4739-a63f-8f87141a85db\/settings.json", + "path": "src\/b94aaedb-6774-4739-a63f-8f87141a85db", + "spk": "Super__b94aaedb_6774_4739_a63f_8f87141a85db__Power", + "guid": "b94aaedb-6774-4739-a63f-8f87141a85db" + }, + "b9f05dc4-d23a-499a-a826-9749b81818ed": { + "name": "CoreValidationInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Field", + "code": "src\/b9f05dc4-d23a-499a-a826-9749b81818ed\/code.php", + "power": "src\/b9f05dc4-d23a-499a-a826-9749b81818ed\/code.power", + "settings": "src\/b9f05dc4-d23a-499a-a826-9749b81818ed\/settings.json", + "path": "src\/b9f05dc4-d23a-499a-a826-9749b81818ed", + "spk": "Super__b9f05dc4_d23a_499a_a826_9749b81818ed__Power", + "guid": "b9f05dc4-d23a-499a-a826-9749b81818ed" + }, + "bb26cf63-69a5-4c43-b2df-43284c9d907d": { + "name": "JsonString", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/bb26cf63-69a5-4c43-b2df-43284c9d907d\/code.php", + "power": "src\/bb26cf63-69a5-4c43-b2df-43284c9d907d\/code.power", + "settings": "src\/bb26cf63-69a5-4c43-b2df-43284c9d907d\/settings.json", + "path": "src\/bb26cf63-69a5-4c43-b2df-43284c9d907d", + "spk": "Super__bb26cf63_69a5_4c43_b2df_43284c9d907d__Power", + "guid": "bb26cf63-69a5-4c43-b2df-43284c9d907d" + }, + "bb29a833-73f7-4283-9327-bc7e41f0723b": { + "name": "Load", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Model", + "code": "src\/bb29a833-73f7-4283-9327-bc7e41f0723b\/code.php", + "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", + "guid": "bb29a833-73f7-4283-9327-bc7e41f0723b" + }, + "be4ccfae-65a9-401e-bdbe-637d8c226954": { + "name": "Config", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power", + "code": "src\/be4ccfae-65a9-401e-bdbe-637d8c226954\/code.php", + "power": "src\/be4ccfae-65a9-401e-bdbe-637d8c226954\/code.power", + "settings": "src\/be4ccfae-65a9-401e-bdbe-637d8c226954\/settings.json", + "path": "src\/be4ccfae-65a9-401e-bdbe-637d8c226954", + "spk": "Super__be4ccfae_65a9_401e_bdbe_637d8c226954__Power", + "guid": "be4ccfae-65a9-401e-bdbe-637d8c226954" + }, + "bf92e1c1-3d5e-4e9d-a585-c79e1468df33": { + "name": "OtherGroup", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/bf92e1c1-3d5e-4e9d-a585-c79e1468df33\/code.php", + "power": "src\/bf92e1c1-3d5e-4e9d-a585-c79e1468df33\/code.power", + "settings": "src\/bf92e1c1-3d5e-4e9d-a585-c79e1468df33\/settings.json", + "path": "src\/bf92e1c1-3d5e-4e9d-a585-c79e1468df33", + "spk": "Super__bf92e1c1_3d5e_4e9d_a585_c79e1468df33__Power", + "guid": "bf92e1c1-3d5e-4e9d-a585-c79e1468df33" + }, + "bfdc4ce5-cb12-4fc6-9023-51cede25edd0": { + "name": "Joomlamodules", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/bfdc4ce5-cb12-4fc6-9023-51cede25edd0\/code.php", + "power": "src\/bfdc4ce5-cb12-4fc6-9023-51cede25edd0\/code.power", + "settings": "src\/bfdc4ce5-cb12-4fc6-9023-51cede25edd0\/settings.json", + "path": "src\/bfdc4ce5-cb12-4fc6-9023-51cede25edd0", + "spk": "Super__bfdc4ce5_cb12_4fc6_9023_51cede25edd0__Power", + "guid": "bfdc4ce5-cb12-4fc6-9023-51cede25edd0" + }, + "c0e46033-5ade-4829-88b7-ca160d36a4d1": { + "name": "SiteDecrypt", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/c0e46033-5ade-4829-88b7-ca160d36a4d1\/code.php", + "power": "src\/c0e46033-5ade-4829-88b7-ca160d36a4d1\/code.power", + "settings": "src\/c0e46033-5ade-4829-88b7-ca160d36a4d1\/settings.json", + "path": "src\/c0e46033-5ade-4829-88b7-ca160d36a4d1", + "spk": "Super__c0e46033_5ade_4829_88b7_ca160d36a4d1__Power", + "guid": "c0e46033-5ade-4829-88b7-ca160d36a4d1" + }, + "c20a63e0-0eeb-4424-9d08-b1bf0f049dfe": { + "name": "Phpadminview", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe\/code.php", + "power": "src\/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe\/code.power", + "settings": "src\/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe\/settings.json", + "path": "src\/c20a63e0-0eeb-4424-9d08-b1bf0f049dfe", + "spk": "Super__c20a63e0_0eeb_4424_9d08_b1bf0f049dfe__Power", + "guid": "c20a63e0-0eeb-4424-9d08-b1bf0f049dfe" + }, + "c600f58c-3fe2-4d2d-b711-2660eab6effe": { + "name": "InputButton", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", + "code": "src\/c600f58c-3fe2-4d2d-b711-2660eab6effe\/code.php", + "power": "src\/c600f58c-3fe2-4d2d-b711-2660eab6effe\/code.power", + "settings": "src\/c600f58c-3fe2-4d2d-b711-2660eab6effe\/settings.json", + "path": "src\/c600f58c-3fe2-4d2d-b711-2660eab6effe", + "spk": "Super__c600f58c_3fe2_4d2d_b711_2660eab6effe__Power", + "guid": "c600f58c-3fe2-4d2d-b711-2660eab6effe" + }, + "c6c30d66-3106-44eb-9272-b2cf7ec74613": { + "name": "Field", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/c6c30d66-3106-44eb-9272-b2cf7ec74613\/code.php", + "power": "src\/c6c30d66-3106-44eb-9272-b2cf7ec74613\/code.power", + "settings": "src\/c6c30d66-3106-44eb-9272-b2cf7ec74613\/settings.json", + "path": "src\/c6c30d66-3106-44eb-9272-b2cf7ec74613", + "spk": "Super__c6c30d66_3106_44eb_9272_b2cf7ec74613__Power", + "guid": "c6c30d66-3106-44eb-9272-b2cf7ec74613" + }, + "c6de9da0-1a73-4c73-b355-7fe02efe4c9d": { + "name": "MainTextField", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/c6de9da0-1a73-4c73-b355-7fe02efe4c9d\/code.php", + "power": "src\/c6de9da0-1a73-4c73-b355-7fe02efe4c9d\/code.power", + "settings": "src\/c6de9da0-1a73-4c73-b355-7fe02efe4c9d\/settings.json", + "path": "src\/c6de9da0-1a73-4c73-b355-7fe02efe4c9d", + "spk": "Super__c6de9da0_1a73_4c73_b355_7fe02efe4c9d__Power", + "guid": "c6de9da0-1a73-4c73-b355-7fe02efe4c9d" + }, + "c72692b0-0a0f-412a-b05b-80002cbf886a": { + "name": "ClassInjector", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Generator", + "code": "src\/c72692b0-0a0f-412a-b05b-80002cbf886a\/code.php", + "power": "src\/c72692b0-0a0f-412a-b05b-80002cbf886a\/code.power", + "settings": "src\/c72692b0-0a0f-412a-b05b-80002cbf886a\/settings.json", + "path": "src\/c72692b0-0a0f-412a-b05b-80002cbf886a", + "spk": "Super__c72692b0_0a0f_412a_b05b_80002cbf886a__Power", + "guid": "c72692b0-0a0f-412a-b05b-80002cbf886a" + }, + "c7b6f0d5-ec47-4166-915c-e78d49b4fb63": { + "name": "GetModule", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/c7b6f0d5-ec47-4166-915c-e78d49b4fb63\/code.php", + "power": "src\/c7b6f0d5-ec47-4166-915c-e78d49b4fb63\/code.power", + "settings": "src\/c7b6f0d5-ec47-4166-915c-e78d49b4fb63\/settings.json", + "path": "src\/c7b6f0d5-ec47-4166-915c-e78d49b4fb63", + "spk": "Super__c7b6f0d5_ec47_4166_915c_e78d49b4fb63__Power", + "guid": "c7b6f0d5-ec47-4166-915c-e78d49b4fb63" + }, + "c871fb4a-4c33-4302-bb79-a9cd7ef4a557": { + "name": "Validation", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", + "code": "src\/c871fb4a-4c33-4302-bb79-a9cd7ef4a557\/code.php", + "power": "src\/c871fb4a-4c33-4302-bb79-a9cd7ef4a557\/code.power", + "settings": "src\/c871fb4a-4c33-4302-bb79-a9cd7ef4a557\/settings.json", + "path": "src\/c871fb4a-4c33-4302-bb79-a9cd7ef4a557", + "spk": "Super__c871fb4a_4c33_4302_bb79_a9cd7ef4a557__Power", + "guid": "c871fb4a-4c33-4302-bb79-a9cd7ef4a557" + }, + "c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6": { + "name": "ListFieldClass", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6\/code.php", + "power": "src\/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6\/code.power", + "settings": "src\/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6\/settings.json", + "path": "src\/c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6", + "spk": "Super__c8c5d364_d2bf_41c0_8c64_6b6fed1a28b6__Power", + "guid": "c8c5d364-d2bf-41c0-8c64-6b6fed1a28b6" + }, + "c902743e-8c6e-4a50-a4a3-8c955ef2960f": { + "name": "Fielddynamicinterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Creator", + "code": "src\/c902743e-8c6e-4a50-a4a3-8c955ef2960f\/code.php", + "power": "src\/c902743e-8c6e-4a50-a4a3-8c955ef2960f\/code.power", + "settings": "src\/c902743e-8c6e-4a50-a4a3-8c955ef2960f\/settings.json", + "path": "src\/c902743e-8c6e-4a50-a4a3-8c955ef2960f", + "spk": "Super__c902743e_8c6e_4a50_a4a3_8c955ef2960f__Power", + "guid": "c902743e-8c6e-4a50-a4a3-8c955ef2960f" + }, + "ca111518-e47c-4049-b1b2-cb010f23866f": { + "name": "Reverse", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Placeholder", + "code": "src\/ca111518-e47c-4049-b1b2-cb010f23866f\/code.php", + "power": "src\/ca111518-e47c-4049-b1b2-cb010f23866f\/code.power", + "settings": "src\/ca111518-e47c-4049-b1b2-cb010f23866f\/settings.json", + "path": "src\/ca111518-e47c-4049-b1b2-cb010f23866f", + "spk": "Super__ca111518_e47c_4049_b1b2_cb010f23866f__Power", + "guid": "ca111518-e47c-4049-b1b2-cb010f23866f" + }, + "cb11e8d9-69c2-4095-831c-59908ea402e7": { + "name": "Data", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Joomlamodule", + "code": "src\/cb11e8d9-69c2-4095-831c-59908ea402e7\/code.php", + "power": "src\/cb11e8d9-69c2-4095-831c-59908ea402e7\/code.power", + "settings": "src\/cb11e8d9-69c2-4095-831c-59908ea402e7\/settings.json", + "path": "src\/cb11e8d9-69c2-4095-831c-59908ea402e7", + "spk": "Super__cb11e8d9_69c2_4095_831c_59908ea402e7__Power", + "guid": "cb11e8d9-69c2-4095-831c-59908ea402e7" + }, + "cdc9b06d-8333-4fa7-ab4d-b810dd90f95f": { + "name": "Pathfix", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f\/code.php", + "power": "src\/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f\/code.power", + "settings": "src\/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f\/settings.json", + "path": "src\/cdc9b06d-8333-4fa7-ab4d-b810dd90f95f", + "spk": "Super__cdc9b06d_8333_4fa7_ab4d_b810dd90f95f__Power", + "guid": "cdc9b06d-8333-4fa7-ab4d-b810dd90f95f" + }, + "ce0899a9-6271-4fc4-800a-697c122bb112": { + "name": "DatabaseUniqueKeys", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/ce0899a9-6271-4fc4-800a-697c122bb112\/code.php", + "power": "src\/ce0899a9-6271-4fc4-800a-697c122bb112\/code.power", + "settings": "src\/ce0899a9-6271-4fc4-800a-697c122bb112\/settings.json", + "path": "src\/ce0899a9-6271-4fc4-800a-697c122bb112", + "spk": "Super__ce0899a9_6271_4fc4_800a_697c122bb112__Power", + "guid": "ce0899a9-6271-4fc4-800a-697c122bb112" + }, + "ce826b66-0f2d-43da-8005-41b8e4cb21ee": { + "name": "Data", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", + "code": "src\/ce826b66-0f2d-43da-8005-41b8e4cb21ee\/code.php", + "power": "src\/ce826b66-0f2d-43da-8005-41b8e4cb21ee\/code.power", + "settings": "src\/ce826b66-0f2d-43da-8005-41b8e4cb21ee\/settings.json", + "path": "src\/ce826b66-0f2d-43da-8005-41b8e4cb21ee", + "spk": "Super__ce826b66_0f2d_43da_8005_41b8e4cb21ee__Power", + "guid": "ce826b66-0f2d-43da-8005-41b8e4cb21ee" + }, + "cebdcccb-24c5-46db-92de-63453852dcb8": { + "name": "Adminviews", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/cebdcccb-24c5-46db-92de-63453852dcb8\/code.php", + "power": "src\/cebdcccb-24c5-46db-92de-63453852dcb8\/code.power", + "settings": "src\/cebdcccb-24c5-46db-92de-63453852dcb8\/settings.json", + "path": "src\/cebdcccb-24c5-46db-92de-63453852dcb8", + "spk": "Super__cebdcccb_24c5_46db_92de_63453852dcb8__Power", + "guid": "cebdcccb-24c5-46db-92de-63453852dcb8" + }, + "cef2815b-f72b-402a-b769-f028f676692d": { + "name": "Data", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Adminview", + "code": "src\/cef2815b-f72b-402a-b769-f028f676692d\/code.php", + "power": "src\/cef2815b-f72b-402a-b769-f028f676692d\/code.power", + "settings": "src\/cef2815b-f72b-402a-b769-f028f676692d\/settings.json", + "path": "src\/cef2815b-f72b-402a-b769-f028f676692d", + "spk": "Super__cef2815b_f72b_402a_b769_f028f676692d__Power", + "guid": "cef2815b-f72b-402a-b769-f028f676692d" + }, + "cfe62a32-8818-4bfb-8751-2f1e109b5336": { + "name": "Dashboard", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", + "code": "src\/cfe62a32-8818-4bfb-8751-2f1e109b5336\/code.php", + "power": "src\/cfe62a32-8818-4bfb-8751-2f1e109b5336\/code.power", + "settings": "src\/cfe62a32-8818-4bfb-8751-2f1e109b5336\/settings.json", + "path": "src\/cfe62a32-8818-4bfb-8751-2f1e109b5336", + "spk": "Super__cfe62a32_8818_4bfb_8751_2f1e109b5336__Power", + "guid": "cfe62a32-8818-4bfb-8751-2f1e109b5336" + }, + "d33b9278-c409-4aec-a047-b72f56712391": { + "name": "Extractor", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Language", + "code": "src\/d33b9278-c409-4aec-a047-b72f56712391\/code.php", + "power": "src\/d33b9278-c409-4aec-a047-b72f56712391\/code.power", + "settings": "src\/d33b9278-c409-4aec-a047-b72f56712391\/settings.json", + "path": "src\/d33b9278-c409-4aec-a047-b72f56712391", + "spk": "Super__d33b9278_c409_4aec_a047_b72f56712391__Power", + "guid": "d33b9278-c409-4aec-a047-b72f56712391" + }, + "d393c946-4481-43fa-b737-449119dd0a63": { + "name": "SiteFieldDecodeFilter", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/d393c946-4481-43fa-b737-449119dd0a63\/code.php", + "power": "src\/d393c946-4481-43fa-b737-449119dd0a63\/code.power", + "settings": "src\/d393c946-4481-43fa-b737-449119dd0a63\/settings.json", + "path": "src\/d393c946-4481-43fa-b737-449119dd0a63", + "spk": "Super__d393c946_4481_43fa_b737_449119dd0a63__Power", + "guid": "d393c946-4481-43fa-b737-449119dd0a63" + }, + "d3ce5763-4d00-4245-a175-54fc2e80e9b7": { + "name": "Structure", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Library", + "code": "src\/d3ce5763-4d00-4245-a175-54fc2e80e9b7\/code.php", + "power": "src\/d3ce5763-4d00-4245-a175-54fc2e80e9b7\/code.power", + "settings": "src\/d3ce5763-4d00-4245-a175-54fc2e80e9b7\/settings.json", + "path": "src\/d3ce5763-4d00-4245-a175-54fc2e80e9b7", + "spk": "Super__d3ce5763_4d00_4245_a175_54fc2e80e9b7__Power", + "guid": "d3ce5763-4d00-4245-a175-54fc2e80e9b7" + }, + "d44f3294-6b68-4d85-a617-15fb772b7d14": { + "name": "Fieldsetinterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Creator", + "code": "src\/d44f3294-6b68-4d85-a617-15fb772b7d14\/code.php", + "power": "src\/d44f3294-6b68-4d85-a617-15fb772b7d14\/code.power", + "settings": "src\/d44f3294-6b68-4d85-a617-15fb772b7d14\/settings.json", + "path": "src\/d44f3294-6b68-4d85-a617-15fb772b7d14", + "spk": "Super__d44f3294_6b68_4d85_a617_15fb772b7d14__Power", + "guid": "d44f3294-6b68-4d85-a617-15fb772b7d14" + }, + "d4b418a7-bf9b-4768-969d-e07c36916fd2": { + "name": "Sql", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/d4b418a7-bf9b-4768-969d-e07c36916fd2\/code.php", + "power": "src\/d4b418a7-bf9b-4768-969d-e07c36916fd2\/code.power", + "settings": "src\/d4b418a7-bf9b-4768-969d-e07c36916fd2\/settings.json", + "path": "src\/d4b418a7-bf9b-4768-969d-e07c36916fd2", + "spk": "Super__d4b418a7_bf9b_4768_969d_e07c36916fd2__Power", + "guid": "d4b418a7-bf9b-4768-969d-e07c36916fd2" + }, + "d5530adf-c809-45a9-87fc-7cecd3d972d8": { + "name": "FieldGroupControl", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/d5530adf-c809-45a9-87fc-7cecd3d972d8\/code.php", + "power": "src\/d5530adf-c809-45a9-87fc-7cecd3d972d8\/code.power", + "settings": "src\/d5530adf-c809-45a9-87fc-7cecd3d972d8\/settings.json", + "path": "src\/d5530adf-c809-45a9-87fc-7cecd3d972d8", + "spk": "Super__d5530adf_c809_45a9_87fc_7cecd3d972d8__Power", + "guid": "d5530adf-c809-45a9-87fc-7cecd3d972d8" + }, + "d645881c-ae8c-4828-a217-6bad98cd3b44": { + "name": "TabCounter", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/d645881c-ae8c-4828-a217-6bad98cd3b44\/code.php", + "power": "src\/d645881c-ae8c-4828-a217-6bad98cd3b44\/code.power", + "settings": "src\/d645881c-ae8c-4828-a217-6bad98cd3b44\/settings.json", + "path": "src\/d645881c-ae8c-4828-a217-6bad98cd3b44", + "spk": "Super__d645881c_ae8c_4828_a217_6bad98cd3b44__Power", + "guid": "d645881c-ae8c-4828-a217-6bad98cd3b44" + }, + "d6592c9b-93a6-41b3-83c7-c43a0a80cb83": { + "name": "LanguageInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces", + "code": "src\/d6592c9b-93a6-41b3-83c7-c43a0a80cb83\/code.php", + "power": "src\/d6592c9b-93a6-41b3-83c7-c43a0a80cb83\/code.power", + "settings": "src\/d6592c9b-93a6-41b3-83c7-c43a0a80cb83\/settings.json", + "path": "src\/d6592c9b-93a6-41b3-83c7-c43a0a80cb83", + "spk": "Super__d6592c9b_93a6_41b3_83c7_c43a0a80cb83__Power", + "guid": "d6592c9b-93a6-41b3-83c7-c43a0a80cb83" + }, + "d7ba2d5d-10b6-470d-978d-9f91ea65ee75": { + "name": "Field", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", + "code": "src\/d7ba2d5d-10b6-470d-978d-9f91ea65ee75\/code.php", + "power": "src\/d7ba2d5d-10b6-470d-978d-9f91ea65ee75\/code.power", + "settings": "src\/d7ba2d5d-10b6-470d-978d-9f91ea65ee75\/settings.json", + "path": "src\/d7ba2d5d-10b6-470d-978d-9f91ea65ee75", + "spk": "Super__d7ba2d5d_10b6_470d_978d_9f91ea65ee75__Power", + "guid": "d7ba2d5d-10b6-470d-978d-9f91ea65ee75" + }, + "d8e46d2c-d63e-4b92-80a2-d17638a7ae9e": { + "name": "SelectionTranslation", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e\/code.php", + "power": "src\/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e\/code.power", + "settings": "src\/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e\/settings.json", + "path": "src\/d8e46d2c-d63e-4b92-80a2-d17638a7ae9e", + "spk": "Super__d8e46d2c_d63e_4b92_80a2_d17638a7ae9e__Power", + "guid": "d8e46d2c-d63e-4b92-80a2-d17638a7ae9e" + }, + "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac": { + "name": "Factory", + "type": "abstract class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", + "code": "src\/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac\/code.php", + "power": "src\/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac\/code.power", + "settings": "src\/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac\/settings.json", + "path": "src\/d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac", + "spk": "Super__d910d8b8_4c23_4f3e_8cda_438f2d2bd7ac__Power", + "guid": "d910d8b8-4c23-4f3e-8cda-438f2d2bd7ac" + }, + "dba0776e-e582-4f73-af3e-e7ed17bc34b3": { + "name": "FootableScripts", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/dba0776e-e582-4f73-af3e-e7ed17bc34b3\/code.php", + "power": "src\/dba0776e-e582-4f73-af3e-e7ed17bc34b3\/code.power", + "settings": "src\/dba0776e-e582-4f73-af3e-e7ed17bc34b3\/settings.json", + "path": "src\/dba0776e-e582-4f73-af3e-e7ed17bc34b3", + "spk": "Super__dba0776e_e582_4f73_af3e_e7ed17bc34b3__Power", + "guid": "dba0776e-e582-4f73-af3e-e7ed17bc34b3" + }, + "de01527a-6586-46ea-92e7-11ea3de1cedb": { + "name": "Power", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/de01527a-6586-46ea-92e7-11ea3de1cedb\/code.php", + "power": "src\/de01527a-6586-46ea-92e7-11ea3de1cedb\/code.power", + "settings": "src\/de01527a-6586-46ea-92e7-11ea3de1cedb\/settings.json", + "path": "src\/de01527a-6586-46ea-92e7-11ea3de1cedb", + "spk": "Super__de01527a_6586_46ea_92e7_11ea3de1cedb__Power", + "guid": "de01527a-6586-46ea-92e7-11ea3de1cedb" + }, + "dfd3c893-0296-46eb-9ae4-a0348713cd8f": { + "name": "Javascriptadminview", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/dfd3c893-0296-46eb-9ae4-a0348713cd8f\/code.php", + "power": "src\/dfd3c893-0296-46eb-9ae4-a0348713cd8f\/code.power", + "settings": "src\/dfd3c893-0296-46eb-9ae4-a0348713cd8f\/settings.json", + "path": "src\/dfd3c893-0296-46eb-9ae4-a0348713cd8f", + "spk": "Super__dfd3c893_0296_46eb_9ae4_a0348713cd8f__Power", + "guid": "dfd3c893-0296-46eb-9ae4-a0348713cd8f" + }, + "e0075978-315d-4807-8507-ce9c6922a885": { + "name": "Siteviews", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/e0075978-315d-4807-8507-ce9c6922a885\/code.php", + "power": "src\/e0075978-315d-4807-8507-ce9c6922a885\/code.power", + "settings": "src\/e0075978-315d-4807-8507-ce9c6922a885\/settings.json", + "path": "src\/e0075978-315d-4807-8507-ce9c6922a885", + "spk": "Super__e0075978_315d_4807_8507_ce9c6922a885__Power", + "guid": "e0075978-315d-4807-8507-ce9c6922a885" + }, + "e046b530-47fe-406f-b45a-b5eec8cbb238": { + "name": "PermissionDashboard", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/e046b530-47fe-406f-b45a-b5eec8cbb238\/code.php", + "power": "src\/e046b530-47fe-406f-b45a-b5eec8cbb238\/code.power", + "settings": "src\/e046b530-47fe-406f-b45a-b5eec8cbb238\/settings.json", + "path": "src\/e046b530-47fe-406f-b45a-b5eec8cbb238", + "spk": "Super__e046b530_47fe_406f_b45a_b5eec8cbb238__Power", + "guid": "e046b530-47fe-406f-b45a-b5eec8cbb238" + }, + "e0c8c931-52a0-4171-9909-e8769505bb1f": { + "name": "Constantpaths", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Utilities", + "code": "src\/e0c8c931-52a0-4171-9909-e8769505bb1f\/code.php", + "power": "src\/e0c8c931-52a0-4171-9909-e8769505bb1f\/code.power", + "settings": "src\/e0c8c931-52a0-4171-9909-e8769505bb1f\/settings.json", + "path": "src\/e0c8c931-52a0-4171-9909-e8769505bb1f", + "spk": "Super__e0c8c931_52a0_4171_9909_e8769505bb1f__Power", + "guid": "e0c8c931-52a0-4171-9909-e8769505bb1f" + }, + "e0e24173-a808-4dd5-8e26-de971d014f86": { + "name": "Customadminviews", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/e0e24173-a808-4dd5-8e26-de971d014f86\/code.php", + "power": "src\/e0e24173-a808-4dd5-8e26-de971d014f86\/code.power", + "settings": "src\/e0e24173-a808-4dd5-8e26-de971d014f86\/settings.json", + "path": "src\/e0e24173-a808-4dd5-8e26-de971d014f86", + "spk": "Super__e0e24173_a808_4dd5_8e26_de971d014f86__Power", + "guid": "e0e24173-a808-4dd5-8e26-de971d014f86" + }, + "e2472b22-a329-44d8-b4a2-ae3ba99e17a0": { + "name": "Component", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", + "code": "src\/e2472b22-a329-44d8-b4a2-ae3ba99e17a0\/code.php", + "power": "src\/e2472b22-a329-44d8-b4a2-ae3ba99e17a0\/code.power", + "settings": "src\/e2472b22-a329-44d8-b4a2-ae3ba99e17a0\/settings.json", + "path": "src\/e2472b22-a329-44d8-b4a2-ae3ba99e17a0", + "spk": "Super__e2472b22_a329_44d8_b4a2_ae3ba99e17a0__Power", + "guid": "e2472b22-a329-44d8-b4a2-ae3ba99e17a0" + }, + "e38a5276-6664-4bc6-8002-0562fcc248f8": { + "name": "AccessSwitch", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/e38a5276-6664-4bc6-8002-0562fcc248f8\/code.php", + "power": "src\/e38a5276-6664-4bc6-8002-0562fcc248f8\/code.power", + "settings": "src\/e38a5276-6664-4bc6-8002-0562fcc248f8\/settings.json", + "path": "src\/e38a5276-6664-4bc6-8002-0562fcc248f8", + "spk": "Super__e38a5276_6664_4bc6_8002_0562fcc248f8__Power", + "guid": "e38a5276-6664-4bc6-8002-0562fcc248f8" + }, + "e4e65c5b-00ec-439c-96bf-3153c3a73398": { + "name": "Filter", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/e4e65c5b-00ec-439c-96bf-3153c3a73398\/code.php", + "power": "src\/e4e65c5b-00ec-439c-96bf-3153c3a73398\/code.power", + "settings": "src\/e4e65c5b-00ec-439c-96bf-3153c3a73398\/settings.json", + "path": "src\/e4e65c5b-00ec-439c-96bf-3153c3a73398", + "spk": "Super__e4e65c5b_00ec_439c_96bf_3153c3a73398__Power", + "guid": "e4e65c5b-00ec-439c-96bf-3153c3a73398" + }, + "e50cbac5-9c9d-4fd4-aa7a-5e830719ed26": { + "name": "Sqltweaking", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26\/code.php", + "power": "src\/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26\/code.power", + "settings": "src\/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26\/settings.json", + "path": "src\/e50cbac5-9c9d-4fd4-aa7a-5e830719ed26", + "spk": "Super__e50cbac5_9c9d_4fd4_aa7a_5e830719ed26__Power", + "guid": "e50cbac5-9c9d-4fd4-aa7a-5e830719ed26" + }, + "e543c123-b1d9-4a0b-83b2-a9d371da5ff3": { + "name": "Update", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Power\\Database", + "code": "src\/e543c123-b1d9-4a0b-83b2-a9d371da5ff3\/code.php", + "power": "src\/e543c123-b1d9-4a0b-83b2-a9d371da5ff3\/code.power", + "settings": "src\/e543c123-b1d9-4a0b-83b2-a9d371da5ff3\/settings.json", + "path": "src\/e543c123-b1d9-4a0b-83b2-a9d371da5ff3", + "spk": "Super__e543c123_b1d9_4a0b_83b2_a9d371da5ff3__Power", + "guid": "e543c123-b1d9-4a0b-83b2-a9d371da5ff3" + }, + "e54965e7-34fd-481e-b40c-4da089afec5a": { + "name": "HasPermissions", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/e54965e7-34fd-481e-b40c-4da089afec5a\/code.php", + "power": "src\/e54965e7-34fd-481e-b40c-4da089afec5a\/code.power", + "settings": "src\/e54965e7-34fd-481e-b40c-4da089afec5a\/settings.json", + "path": "src\/e54965e7-34fd-481e-b40c-4da089afec5a", + "spk": "Super__e54965e7_34fd_481e_b40c_4da089afec5a__Power", + "guid": "e54965e7-34fd-481e-b40c-4da089afec5a" + }, + "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6": { + "name": "Registry", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", + "code": "src\/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6\/code.php", + "power": "src\/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6\/code.power", + "settings": "src\/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6\/settings.json", + "path": "src\/e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6", + "spk": "Super__e5d9804f_0eb0_4ee9_b406_ad4e8cdbc1f6__Power", + "guid": "e5d9804f-0eb0-4ee9-b406-ad4e8cdbc1f6" + }, + "e696927b-e8f4-4cfc-9d25-215db4e3c7a8": { + "name": "LibraryManager", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/e696927b-e8f4-4cfc-9d25-215db4e3c7a8\/code.php", + "power": "src\/e696927b-e8f4-4cfc-9d25-215db4e3c7a8\/code.power", + "settings": "src\/e696927b-e8f4-4cfc-9d25-215db4e3c7a8\/settings.json", + "path": "src\/e696927b-e8f4-4cfc-9d25-215db4e3c7a8", + "spk": "Super__e696927b_e8f4_4cfc_9d25_215db4e3c7a8__Power", + "guid": "e696927b-e8f4-4cfc-9d25-215db4e3c7a8" + }, + "e6a64c41-405e-4bbc-9722-27402c22bbea": { + "name": "Fields", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/e6a64c41-405e-4bbc-9722-27402c22bbea\/code.php", + "power": "src\/e6a64c41-405e-4bbc-9722-27402c22bbea\/code.power", + "settings": "src\/e6a64c41-405e-4bbc-9722-27402c22bbea\/settings.json", + "path": "src\/e6a64c41-405e-4bbc-9722-27402c22bbea", + "spk": "Super__e6a64c41_405e_4bbc_9722_27402c22bbea__Power", + "guid": "e6a64c41-405e-4bbc-9722-27402c22bbea" + }, + "e6d871a6-bbe7-497d-af01-68f6bb9a87f4": { + "name": "Counter", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/e6d871a6-bbe7-497d-af01-68f6bb9a87f4\/code.php", + "power": "src\/e6d871a6-bbe7-497d-af01-68f6bb9a87f4\/code.power", + "settings": "src\/e6d871a6-bbe7-497d-af01-68f6bb9a87f4\/settings.json", + "path": "src\/e6d871a6-bbe7-497d-af01-68f6bb9a87f4", + "spk": "Super__e6d871a6_bbe7_497d_af01_68f6bb9a87f4__Power", + "guid": "e6d871a6-bbe7-497d-af01-68f6bb9a87f4" + }, + "e79842d3-51b7-4282-93c7-3487cd8b61ab": { + "name": "Cssadminview", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/e79842d3-51b7-4282-93c7-3487cd8b61ab\/code.php", + "power": "src\/e79842d3-51b7-4282-93c7-3487cd8b61ab\/code.power", + "settings": "src\/e79842d3-51b7-4282-93c7-3487cd8b61ab\/settings.json", + "path": "src\/e79842d3-51b7-4282-93c7-3487cd8b61ab", + "spk": "Super__e79842d3_51b7_4282_93c7_3487cd8b61ab__Power", + "guid": "e79842d3-51b7-4282-93c7-3487cd8b61ab" + }, + "e9b6b06b-f600-4f9d-984d-79c70ae7ae92": { + "name": "ExtensionCustomFields", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/e9b6b06b-f600-4f9d-984d-79c70ae7ae92\/code.php", + "power": "src\/e9b6b06b-f600-4f9d-984d-79c70ae7ae92\/code.power", + "settings": "src\/e9b6b06b-f600-4f9d-984d-79c70ae7ae92\/settings.json", + "path": "src\/e9b6b06b-f600-4f9d-984d-79c70ae7ae92", + "spk": "Super__e9b6b06b_f600_4f9d_984d_79c70ae7ae92__Power", + "guid": "e9b6b06b-f600-4f9d-984d-79c70ae7ae92" + }, + "ea5ed06e-72ae-4906-9167-1cc0fa32fe69": { + "name": "Compiler", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/ea5ed06e-72ae-4906-9167-1cc0fa32fe69\/code.php", + "power": "src\/ea5ed06e-72ae-4906-9167-1cc0fa32fe69\/code.power", + "settings": "src\/ea5ed06e-72ae-4906-9167-1cc0fa32fe69\/settings.json", + "path": "src\/ea5ed06e-72ae-4906-9167-1cc0fa32fe69", + "spk": "Super__ea5ed06e_72ae_4906_9167_1cc0fa32fe69__Power", + "guid": "ea5ed06e-72ae-4906-9167-1cc0fa32fe69" + }, + "eb33420d-359d-44a5-852e-613aef1feaae": { + "name": "TypeName", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Field", + "code": "src\/eb33420d-359d-44a5-852e-613aef1feaae\/code.php", + "power": "src\/eb33420d-359d-44a5-852e-613aef1feaae\/code.power", + "settings": "src\/eb33420d-359d-44a5-852e-613aef1feaae\/settings.json", + "path": "src\/eb33420d-359d-44a5-852e-613aef1feaae", + "spk": "Super__eb33420d_359d_44a5_852e_613aef1feaae__Power", + "guid": "eb33420d-359d-44a5-852e-613aef1feaae" + }, + "ebe3287d-bfa0-4519-b663-f442f4dea432": { + "name": "Custombuttons", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/ebe3287d-bfa0-4519-b663-f442f4dea432\/code.php", + "power": "src\/ebe3287d-bfa0-4519-b663-f442f4dea432\/code.power", + "settings": "src\/ebe3287d-bfa0-4519-b663-f442f4dea432\/settings.json", + "path": "src\/ebe3287d-bfa0-4519-b663-f442f4dea432", + "spk": "Super__ebe3287d_bfa0_4519_b663_f442f4dea432__Power", + "guid": "ebe3287d-bfa0-4519-b663-f442f4dea432" + }, + "ec0682ee-9166-48f8-951b-9b763792c1d1": { + "name": "SiteDynamicGet", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/ec0682ee-9166-48f8-951b-9b763792c1d1\/code.php", + "power": "src\/ec0682ee-9166-48f8-951b-9b763792c1d1\/code.power", + "settings": "src\/ec0682ee-9166-48f8-951b-9b763792c1d1\/settings.json", + "path": "src\/ec0682ee-9166-48f8-951b-9b763792c1d1", + "spk": "Super__ec0682ee_9166_48f8_951b_9b763792c1d1__Power", + "guid": "ec0682ee-9166-48f8-951b-9b763792c1d1" + }, + "ed9591cb-0a03-400a-bf47-eaf78ab19b9d": { + "name": "Extension", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/ed9591cb-0a03-400a-bf47-eaf78ab19b9d\/code.php", + "power": "src\/ed9591cb-0a03-400a-bf47-eaf78ab19b9d\/code.power", + "settings": "src\/ed9591cb-0a03-400a-bf47-eaf78ab19b9d\/settings.json", + "path": "src\/ed9591cb-0a03-400a-bf47-eaf78ab19b9d", + "spk": "Super__ed9591cb_0a03_400a_bf47_eaf78ab19b9d__Power", + "guid": "ed9591cb-0a03-400a-bf47-eaf78ab19b9d" + }, + "eeb03266-22fd-45bb-953a-961bb6be3a54": { + "name": "Extractor", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", + "code": "src\/eeb03266-22fd-45bb-953a-961bb6be3a54\/code.php", + "power": "src\/eeb03266-22fd-45bb-953a-961bb6be3a54\/code.power", + "settings": "src\/eeb03266-22fd-45bb-953a-961bb6be3a54\/settings.json", + "path": "src\/eeb03266-22fd-45bb-953a-961bb6be3a54", + "spk": "Super__eeb03266_22fd_45bb_953a_961bb6be3a54__Power", + "guid": "eeb03266-22fd-45bb-953a-961bb6be3a54" + }, + "ef687e42-dc25-4423-9dd4-ec6e9743cfb0": { + "name": "DispenserInterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Interfaces\\Customcode", + "code": "src\/ef687e42-dc25-4423-9dd4-ec6e9743cfb0\/code.php", + "power": "src\/ef687e42-dc25-4423-9dd4-ec6e9743cfb0\/code.power", + "settings": "src\/ef687e42-dc25-4423-9dd4-ec6e9743cfb0\/settings.json", + "path": "src\/ef687e42-dc25-4423-9dd4-ec6e9743cfb0", + "spk": "Super__ef687e42_dc25_4423_9dd4_ec6e9743cfb0__Power", + "guid": "ef687e42-dc25-4423-9dd4-ec6e9743cfb0" + }, + "ef9578e5-4c9d-46bf-866f-3a94bdc7b753": { + "name": "Data", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Component", + "code": "src\/ef9578e5-4c9d-46bf-866f-3a94bdc7b753\/code.php", + "power": "src\/ef9578e5-4c9d-46bf-866f-3a94bdc7b753\/code.power", + "settings": "src\/ef9578e5-4c9d-46bf-866f-3a94bdc7b753\/settings.json", + "path": "src\/ef9578e5-4c9d-46bf-866f-3a94bdc7b753", + "spk": "Super__ef9578e5_4c9d_46bf_866f_3a94bdc7b753__Power", + "guid": "ef9578e5-4c9d-46bf-866f-3a94bdc7b753" + }, + "ef97b03e-1018-447a-8d7e-30401b0257bb": { + "name": "Joomlaplugins", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/ef97b03e-1018-447a-8d7e-30401b0257bb\/code.php", + "power": "src\/ef97b03e-1018-447a-8d7e-30401b0257bb\/code.power", + "settings": "src\/ef97b03e-1018-447a-8d7e-30401b0257bb\/settings.json", + "path": "src\/ef97b03e-1018-447a-8d7e-30401b0257bb", + "spk": "Super__ef97b03e_1018_447a_8d7e_30401b0257bb__Power", + "guid": "ef97b03e-1018-447a-8d7e-30401b0257bb" + }, + "efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5": { + "name": "Readme", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power\\Repo", + "code": "src\/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5\/code.php", + "power": "src\/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5\/code.power", + "settings": "src\/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5\/settings.json", + "path": "src\/efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5", + "spk": "Super__efb1d0f8_2d14_4d2c_8b5f_4fcdd9df45a5__Power", + "guid": "efb1d0f8-2d14-4d2c-8b5f-4fcdd9df45a5" + }, + "f02fb1df-f4b6-4be1-9595-2e72084a5e6e": { + "name": "Unique", + "type": "abstract class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/f02fb1df-f4b6-4be1-9595-2e72084a5e6e\/code.php", + "power": "src\/f02fb1df-f4b6-4be1-9595-2e72084a5e6e\/code.power", + "settings": "src\/f02fb1df-f4b6-4be1-9595-2e72084a5e6e\/settings.json", + "path": "src\/f02fb1df-f4b6-4be1-9595-2e72084a5e6e", + "spk": "Super__f02fb1df_f4b6_4be1_9595_2e72084a5e6e__Power", + "guid": "f02fb1df-f4b6-4be1-9595-2e72084a5e6e" + }, + "f052eeef-5112-4efe-98c8-8c7db69dc2d1": { + "name": "MetaData", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/f052eeef-5112-4efe-98c8-8c7db69dc2d1\/code.php", + "power": "src\/f052eeef-5112-4efe-98c8-8c7db69dc2d1\/code.power", + "settings": "src\/f052eeef-5112-4efe-98c8-8c7db69dc2d1\/settings.json", + "path": "src\/f052eeef-5112-4efe-98c8-8c7db69dc2d1", + "spk": "Super__f052eeef_5112_4efe_98c8_8c7db69dc2d1__Power", + "guid": "f052eeef-5112-4efe-98c8-8c7db69dc2d1" + }, + "f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c": { + "name": "Data", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Alias", + "code": "src\/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c\/code.php", + "power": "src\/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c\/code.power", + "settings": "src\/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c\/settings.json", + "path": "src\/f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c", + "spk": "Super__f05ac28d_44f4_4e6d_a1be_5c8ae6baf69c__Power", + "guid": "f05ac28d-44f4-4e6d-a1be-5c8ae6baf69c" + }, + "f1dc6430-fb54-452e-aa53-ce32ae93db88": { + "name": "Dispenser", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Customcode", + "code": "src\/f1dc6430-fb54-452e-aa53-ce32ae93db88\/code.php", + "power": "src\/f1dc6430-fb54-452e-aa53-ce32ae93db88\/code.power", + "settings": "src\/f1dc6430-fb54-452e-aa53-ce32ae93db88\/settings.json", + "path": "src\/f1dc6430-fb54-452e-aa53-ce32ae93db88", + "spk": "Super__f1dc6430_fb54_452e_aa53_ce32ae93db88__Power", + "guid": "f1dc6430-fb54-452e-aa53-ce32ae93db88" + }, + "f4578c04-a81e-4218-b80d-b0612196eaf0": { + "name": "Filesfolders", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/f4578c04-a81e-4218-b80d-b0612196eaf0\/code.php", + "power": "src\/f4578c04-a81e-4218-b80d-b0612196eaf0\/code.power", + "settings": "src\/f4578c04-a81e-4218-b80d-b0612196eaf0\/settings.json", + "path": "src\/f4578c04-a81e-4218-b80d-b0612196eaf0", + "spk": "Super__f4578c04_a81e_4218_b80d_b0612196eaf0__Power", + "guid": "f4578c04-a81e-4218-b80d-b0612196eaf0" + }, + "f48764e0-16c6-459c-8576-af7616f3b720": { + "name": "FieldAsString", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Creator", + "code": "src\/f48764e0-16c6-459c-8576-af7616f3b720\/code.php", + "power": "src\/f48764e0-16c6-459c-8576-af7616f3b720\/code.power", + "settings": "src\/f48764e0-16c6-459c-8576-af7616f3b720\/settings.json", + "path": "src\/f48764e0-16c6-459c-8576-af7616f3b720", + "spk": "Super__f48764e0_16c6_459c_8576_af7616f3b720__Power", + "guid": "f48764e0-16c6-459c-8576-af7616f3b720" + }, + "f6ba34a2-0cd7-4dc1-ab67-75e962a5045b": { + "name": "Xml", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Utilities", + "code": "src\/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b\/code.php", + "power": "src\/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b\/code.power", + "settings": "src\/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b\/settings.json", + "path": "src\/f6ba34a2-0cd7-4dc1-ab67-75e962a5045b", + "spk": "Super__f6ba34a2_0cd7_4dc1_ab67_75e962a5045b__Power", + "guid": "f6ba34a2-0cd7-4dc1-ab67-75e962a5045b" + }, + "fa4bf18e-301e-42e3-91fb-6e0096c07adc": { + "name": "Config", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler", + "code": "src\/fa4bf18e-301e-42e3-91fb-6e0096c07adc\/code.php", + "power": "src\/fa4bf18e-301e-42e3-91fb-6e0096c07adc\/code.power", + "settings": "src\/fa4bf18e-301e-42e3-91fb-6e0096c07adc\/settings.json", + "path": "src\/fa4bf18e-301e-42e3-91fb-6e0096c07adc", + "spk": "Super__fa4bf18e_301e_42e3_91fb_6e0096c07adc__Power", + "guid": "fa4bf18e-301e-42e3-91fb-6e0096c07adc" + }, + "fa8c1125-d370-4cb6-a7ff-eb32193c198c": { + "name": "Customtabs", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Model", + "code": "src\/fa8c1125-d370-4cb6-a7ff-eb32193c198c\/code.php", + "power": "src\/fa8c1125-d370-4cb6-a7ff-eb32193c198c\/code.power", + "settings": "src\/fa8c1125-d370-4cb6-a7ff-eb32193c198c\/settings.json", + "path": "src\/fa8c1125-d370-4cb6-a7ff-eb32193c198c", + "spk": "Super__fa8c1125_d370_4cb6_a7ff_eb32193c198c__Power", + "guid": "fa8c1125-d370-4cb6-a7ff-eb32193c198c" + }, + "fbc58009-fa16-4d49-a0dd-419c3b62d42f": { + "name": "Mapperdoubleinterface", + "type": "interface", + "namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", + "code": "src\/fbc58009-fa16-4d49-a0dd-419c3b62d42f\/code.php", + "power": "src\/fbc58009-fa16-4d49-a0dd-419c3b62d42f\/code.power", + "settings": "src\/fbc58009-fa16-4d49-a0dd-419c3b62d42f\/settings.json", + "path": "src\/fbc58009-fa16-4d49-a0dd-419c3b62d42f", + "spk": "Super__fbc58009_fa16_4d49_a0dd_419c3b62d42f__Power", + "guid": "fbc58009-fa16-4d49-a0dd-419c3b62d42f" + }, + "fd885c23-88dd-440a-9b05-d02a2b2962f9": { + "name": "OtherWhere", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/fd885c23-88dd-440a-9b05-d02a2b2962f9\/code.php", + "power": "src\/fd885c23-88dd-440a-9b05-d02a2b2962f9\/code.power", + "settings": "src\/fd885c23-88dd-440a-9b05-d02a2b2962f9\/settings.json", + "path": "src\/fd885c23-88dd-440a-9b05-d02a2b2962f9", + "spk": "Super__fd885c23_88dd_440a_9b05_d02a2b2962f9__Power", + "guid": "fd885c23-88dd-440a-9b05-d02a2b2962f9" + }, + "fe87df7f-b65f-4778-8875-6122ab6b025f": { + "name": "Alias", + "type": "final class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Builder", + "code": "src\/fe87df7f-b65f-4778-8875-6122ab6b025f\/code.php", + "power": "src\/fe87df7f-b65f-4778-8875-6122ab6b025f\/code.power", + "settings": "src\/fe87df7f-b65f-4778-8875-6122ab6b025f\/settings.json", + "path": "src\/fe87df7f-b65f-4778-8875-6122ab6b025f", + "spk": "Super__fe87df7f_b65f_4778_8875_6122ab6b025f__Power", + "guid": "fe87df7f-b65f-4778-8875-6122ab6b025f" + }, + "ff5e9e63-86d0-4691-ab59-d4b9d9154096": { + "name": "Plantuml", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Power", + "code": "src\/ff5e9e63-86d0-4691-ab59-d4b9d9154096\/code.php", + "power": "src\/ff5e9e63-86d0-4691-ab59-d4b9d9154096\/code.power", + "settings": "src\/ff5e9e63-86d0-4691-ab59-d4b9d9154096\/settings.json", + "path": "src\/ff5e9e63-86d0-4691-ab59-d4b9d9154096", + "spk": "Super__ff5e9e63_86d0_4691_ab59_d4b9d9154096__Power", + "guid": "ff5e9e63-86d0-4691-ab59-d4b9d9154096" + }, + "fff3255d-c493-4c21-a48f-73b3ebf8ba05": { + "name": "Templatelayout", + "type": "class", + "namespace": "VDM\\Joomla\\Componentbuilder\\Compiler\\Service", + "code": "src\/fff3255d-c493-4c21-a48f-73b3ebf8ba05\/code.php", + "power": "src\/fff3255d-c493-4c21-a48f-73b3ebf8ba05\/code.power", + "settings": "src\/fff3255d-c493-4c21-a48f-73b3ebf8ba05\/settings.json", + "path": "src\/fff3255d-c493-4c21-a48f-73b3ebf8ba05", + "spk": "Super__fff3255d_c493_4c21_a48f_73b3ebf8ba05__Power", + "guid": "fff3255d-c493-4c21-a48f-73b3ebf8ba05" } } \ No newline at end of file