Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
532d09dac9
|
|||
93ead45da5
|
|||
64bc4327eb
|
|||
d11860ae1a
|
24
CHANGELOG.md
24
CHANGELOG.md
@ -1,3 +1,27 @@
|
|||||||
|
# v4.1.1
|
||||||
|
|
||||||
|
- Move all banners to GitHub.
|
||||||
|
- Adds library phpspreadsheet to JCB.
|
||||||
|
- Add import item example to demo component.
|
||||||
|
- Updates the Superpower class with the GetRemote class in the plugin.
|
||||||
|
- Ensures the super power autoloader triggers the correct repositories.
|
||||||
|
- Adds the Import Function to the Demo Component.
|
||||||
|
- Resolves the Database Updating issue in the compiler. #1212,#1209
|
||||||
|
- Adds the Component Commands Plugin to the CLI for Import of spreadsheet data-sets.
|
||||||
|
- Add all needed Powers to the release package, to speed-up the build of the demo component.
|
||||||
|
- Refactored initialization flow to accommodate future scalability and integration with all designated areas.
|
||||||
|
- Refactor the Creator Builders class.
|
||||||
|
- Adds new JCB package engine.
|
||||||
|
- Fix issue with loading the Component Builder Wiki.
|
||||||
|
- Adds advanced version update notice to the Component Builder Dashboard.
|
||||||
|
- Completely refactors the class that builds the Component Dashboard. #1134
|
||||||
|
- Adds Initialize, Reset, and Push functionality to the Repository entities.
|
||||||
|
- Completely refactors the SQL teaks and SQL dump classes.
|
||||||
|
- Changes J4 fields to allow NULL.
|
||||||
|
- Fix a bug in Dynamic Get JavaScript that causes table columns to not load.
|
||||||
|
- Refactor the FieldString and FieldXML classes.
|
||||||
|
- Adds option to export Language Translations.
|
||||||
|
|
||||||
# v4.1.0
|
# v4.1.0
|
||||||
|
|
||||||
- Add [AllowDynamicProperties] in the base view class for J5
|
- Add [AllowDynamicProperties] in the base view class for J5
|
||||||
|
@ -16,8 +16,10 @@ defined('_JEXEC') or die;
|
|||||||
spl_autoload_register(function ($class) {
|
spl_autoload_register(function ($class) {
|
||||||
// project-specific base directories and namespace prefix
|
// project-specific base directories and namespace prefix
|
||||||
$search = [
|
$search = [
|
||||||
|
'libraries/vendor_jcb/VDM.Joomla.Github' => 'VDM\\Joomla\\Github',
|
||||||
'libraries/vendor_jcb/VDM.Joomla.Gitea' => 'VDM\\Joomla\\Gitea',
|
'libraries/vendor_jcb/VDM.Joomla.Gitea' => 'VDM\\Joomla\\Gitea',
|
||||||
'libraries/vendor_jcb/VDM.Joomla.FOF' => 'VDM\\Joomla\\FOF',
|
'libraries/vendor_jcb/VDM.Joomla.FOF' => 'VDM\\Joomla\\FOF',
|
||||||
|
'libraries/vendor_jcb/VDM.Joomla.Git' => 'VDM\\Joomla\\Git',
|
||||||
'libraries/vendor_jcb/VDM.Joomla' => 'VDM\\Joomla',
|
'libraries/vendor_jcb/VDM.Joomla' => 'VDM\\Joomla',
|
||||||
'libraries/vendor_jcb/VDM.Minify' => 'VDM\\Minify',
|
'libraries/vendor_jcb/VDM.Minify' => 'VDM\\Minify',
|
||||||
'libraries/vendor_jcb/VDM.Psr' => 'VDM\\Psr'
|
'libraries/vendor_jcb/VDM.Psr' => 'VDM\\Psr'
|
||||||
|
@ -11,12 +11,12 @@
|
|||||||
|
|
||||||
use Joomla\CMS\Factory;
|
use Joomla\CMS\Factory;
|
||||||
use Joomla\CMS\Language\Text;
|
use Joomla\CMS\Language\Text;
|
||||||
use Joomla\CMS\Filesystem\File;
|
|
||||||
use Joomla\CMS\Installer\InstallerAdapter;
|
use Joomla\CMS\Installer\InstallerAdapter;
|
||||||
use Joomla\CMS\Installer\InstallerScriptInterface;
|
use Joomla\CMS\Installer\InstallerScriptInterface;
|
||||||
use Joomla\CMS\Log\Log;
|
use Joomla\CMS\Log\Log;
|
||||||
use Joomla\CMS\Version;
|
use Joomla\CMS\Version;
|
||||||
use Joomla\CMS\HTML\HTMLHelper as Html;
|
use Joomla\CMS\HTML\HTMLHelper as Html;
|
||||||
|
use Joomla\Filesystem\File;
|
||||||
use Joomla\Filesystem\Folder;
|
use Joomla\Filesystem\Folder;
|
||||||
use Joomla\Database\DatabaseInterface;
|
use Joomla\Database\DatabaseInterface;
|
||||||
use VDM\Joomla\Componentbuilder\PHPConfigurationChecker;
|
use VDM\Joomla\Componentbuilder\PHPConfigurationChecker;
|
||||||
@ -224,6 +224,9 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// Remove Custom code Data
|
// Remove Custom code Data
|
||||||
$this->removeViewData("com_componentbuilder.custom_code");
|
$this->removeViewData("com_componentbuilder.custom_code");
|
||||||
|
|
||||||
|
// Remove Class extends Data
|
||||||
|
$this->removeViewData("com_componentbuilder.class_extends");
|
||||||
|
|
||||||
// Remove Class property Data
|
// Remove Class property Data
|
||||||
$this->removeViewData("com_componentbuilder.class_property");
|
$this->removeViewData("com_componentbuilder.class_property");
|
||||||
|
|
||||||
@ -329,9 +332,6 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// Remove Library files folders urls Data
|
// Remove Library files folders urls Data
|
||||||
$this->removeViewData("com_componentbuilder.library_files_folders_urls");
|
$this->removeViewData("com_componentbuilder.library_files_folders_urls");
|
||||||
|
|
||||||
// Remove Class extends Data
|
|
||||||
$this->removeViewData("com_componentbuilder.class_extends");
|
|
||||||
|
|
||||||
// Remove Joomla module updates Data
|
// Remove Joomla module updates Data
|
||||||
$this->removeViewData("com_componentbuilder.joomla_module_updates");
|
$this->removeViewData("com_componentbuilder.joomla_module_updates");
|
||||||
|
|
||||||
@ -392,6 +392,9 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// Remove Custom_code from action logs config table.
|
// Remove Custom_code from action logs config table.
|
||||||
$this->removeActionLogConfig('com_componentbuilder.custom_code');
|
$this->removeActionLogConfig('com_componentbuilder.custom_code');
|
||||||
|
|
||||||
|
// Remove Class_extends from action logs config table.
|
||||||
|
$this->removeActionLogConfig('com_componentbuilder.class_extends');
|
||||||
|
|
||||||
// Remove Class_property from action logs config table.
|
// Remove Class_property from action logs config table.
|
||||||
$this->removeActionLogConfig('com_componentbuilder.class_property');
|
$this->removeActionLogConfig('com_componentbuilder.class_property');
|
||||||
|
|
||||||
@ -491,9 +494,6 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// Remove Library_files_folders_urls from action logs config table.
|
// Remove Library_files_folders_urls from action logs config table.
|
||||||
$this->removeActionLogConfig('com_componentbuilder.library_files_folders_urls');
|
$this->removeActionLogConfig('com_componentbuilder.library_files_folders_urls');
|
||||||
|
|
||||||
// Remove Class_extends from action logs config table.
|
|
||||||
$this->removeActionLogConfig('com_componentbuilder.class_extends');
|
|
||||||
|
|
||||||
// Remove Joomla_module_updates from action logs config table.
|
// Remove Joomla_module_updates from action logs config table.
|
||||||
$this->removeActionLogConfig('com_componentbuilder.joomla_module_updates');
|
$this->removeActionLogConfig('com_componentbuilder.joomla_module_updates');
|
||||||
|
|
||||||
@ -623,11 +623,11 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// rules
|
// rules
|
||||||
'',
|
'',
|
||||||
// fieldMappings
|
// fieldMappings
|
||||||
'{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "php_postflight_update","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "metadata","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "metakey","core_metadesc": "metadesc","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_code":"name_code","short_description":"short_description","companyname":"companyname","crowdin_project_identifier":"crowdin_project_identifier","backup_folder_path":"backup_folder_path","sql_uninstall":"sql_uninstall","php_postflight_update":"php_postflight_update","css_site":"css_site","mvc_versiondate":"mvc_versiondate","remove_line_breaks":"remove_line_breaks","add_placeholders":"add_placeholders","php_helper_site":"php_helper_site","javascript":"javascript","description":"description","debug_linenr":"debug_linenr","author":"author","php_method_install":"php_method_install","email":"email","website":"website","add_sales_server":"add_sales_server","license":"license","add_jcb_powers_path":"add_jcb_powers_path","bom":"bom","image":"image","php_admin_event":"php_admin_event","copyright":"copyright","php_site_event":"php_site_event","css_admin":"css_admin","php_preflight_update":"php_preflight_update","component_version":"component_version","php_preflight_install":"php_preflight_install","preferred_joomla_version":"preferred_joomla_version","php_postflight_install":"php_postflight_install","add_powers":"add_powers","php_method_uninstall":"php_method_uninstall","sql":"sql","addreadme":"addreadme","update_server_url":"update_server_url","add_backup_folder_path":"add_backup_folder_path","translation_tool":"translation_tool","crowdin_username":"crowdin_username","buildcompsql":"buildcompsql","add_namespace_prefix":"add_namespace_prefix","namespace_prefix":"namespace_prefix","add_php_helper_site":"add_php_helper_site","add_site_event":"add_site_event","add_menu_prefix":"add_menu_prefix","add_javascript":"add_javascript","menu_prefix":"menu_prefix","add_css_admin":"add_css_admin","add_css_site":"add_css_site","dashboard_type":"dashboard_type","toignore":"toignore","dashboard":"dashboard","add_php_preflight_install":"add_php_preflight_install","add_php_preflight_update":"add_php_preflight_update","export_key":"export_key","add_php_postflight_install":"add_php_postflight_install","joomla_source_link":"joomla_source_link","add_php_postflight_update":"add_php_postflight_update","export_buy_link":"export_buy_link","add_php_method_uninstall":"add_php_method_uninstall","add_php_method_install":"add_php_method_install","add_sql":"add_sql","add_sql_uninstall":"add_sql_uninstall","emptycontributors":"emptycontributors","assets_table_fix":"assets_table_fix","number":"number","readme":"readme","add_update_server":"add_update_server","update_server_target":"update_server_target","update_server":"update_server","sales_server":"sales_server","creatuserhelper":"creatuserhelper","add_git_folder_path":"add_git_folder_path","adduikit":"adduikit","git_folder_path":"git_folder_path","addfootable":"addfootable","jcb_powers_path":"jcb_powers_path","add_email_helper":"add_email_helper","add_php_helper_both":"add_php_helper_both","crowdin_project_api_key":"crowdin_project_api_key","php_helper_both":"php_helper_both","crowdin_account_api_key":"crowdin_account_api_key","add_php_helper_admin":"add_php_helper_admin","buildcomp":"buildcomp","php_helper_admin":"php_helper_admin","guid":"guid","add_admin_event":"add_admin_event","name":"name"}}',
|
'{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "javascript","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "metadata","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "metakey","core_metadesc": "metadesc","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_code":"name_code","short_description":"short_description","companyname":"companyname","javascript":"javascript","css_site":"css_site","php_helper_site":"php_helper_site","add_sales_server":"add_sales_server","add_jcb_powers_path":"add_jcb_powers_path","debug_linenr":"debug_linenr","mvc_versiondate":"mvc_versiondate","remove_line_breaks":"remove_line_breaks","add_placeholders":"add_placeholders","php_preflight_update":"php_preflight_update","description":"description","sql_uninstall":"sql_uninstall","author":"author","email":"email","backup_folder_path":"backup_folder_path","website":"website","crowdin_project_identifier":"crowdin_project_identifier","license":"license","bom":"bom","php_site_event":"php_site_event","image":"image","css_admin":"css_admin","copyright":"copyright","php_postflight_update":"php_postflight_update","php_preflight_install":"php_preflight_install","php_method_install":"php_method_install","php_postflight_install":"php_postflight_install","component_version":"component_version","php_method_uninstall":"php_method_uninstall","preferred_joomla_version":"preferred_joomla_version","sql":"sql","add_powers":"add_powers","addreadme":"addreadme","update_server_url":"update_server_url","add_backup_folder_path":"add_backup_folder_path","translation_tool":"translation_tool","crowdin_username":"crowdin_username","buildcompsql":"buildcompsql","add_site_event":"add_site_event","add_namespace_prefix":"add_namespace_prefix","add_javascript":"add_javascript","namespace_prefix":"namespace_prefix","add_css_admin":"add_css_admin","add_css_site":"add_css_site","add_menu_prefix":"add_menu_prefix","dashboard_type":"dashboard_type","menu_prefix":"menu_prefix","dashboard":"dashboard","add_php_preflight_install":"add_php_preflight_install","add_php_preflight_update":"add_php_preflight_update","toignore":"toignore","add_php_postflight_install":"add_php_postflight_install","add_php_postflight_update":"add_php_postflight_update","add_php_method_uninstall":"add_php_method_uninstall","add_php_method_install":"add_php_method_install","emptycontributors":"emptycontributors","add_sql":"add_sql","number":"number","add_sql_uninstall":"add_sql_uninstall","assets_table_fix":"assets_table_fix","readme":"readme","add_update_server":"add_update_server","update_server_target":"update_server_target","update_server":"update_server","creatuserhelper":"creatuserhelper","sales_server":"sales_server","adduikit":"adduikit","addfootable":"addfootable","add_git_folder_path":"add_git_folder_path","add_email_helper":"add_email_helper","git_folder_path":"git_folder_path","add_php_helper_both":"add_php_helper_both","jcb_powers_path":"jcb_powers_path","php_helper_both":"php_helper_both","add_php_helper_admin":"add_php_helper_admin","crowdin_project_api_key":"crowdin_project_api_key","php_helper_admin":"php_helper_admin","crowdin_account_api_key":"crowdin_account_api_key","add_admin_event":"add_admin_event","buildcomp":"buildcomp","php_admin_event":"php_admin_event","guid":"guid","add_php_helper_site":"add_php_helper_site","name":"name"}}',
|
||||||
// router
|
// router
|
||||||
'',
|
'',
|
||||||
// contentHistoryOptions
|
// contentHistoryOptions
|
||||||
'{"formFile": "administrator/components/com_componentbuilder/forms/joomla_component.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits","mvc_versiondate","remove_line_breaks","add_placeholders","debug_linenr","add_sales_server","add_jcb_powers_path","preferred_joomla_version","add_powers","addreadme","add_backup_folder_path","translation_tool","add_php_helper_site","add_site_event","add_javascript","add_css_admin","add_css_site","dashboard_type","add_php_preflight_install","add_php_preflight_update","add_php_postflight_install","add_php_postflight_update","add_php_method_uninstall","add_php_method_install","add_sql","add_sql_uninstall","emptycontributors","assets_table_fix","number","add_update_server","update_server_target","update_server","sales_server","creatuserhelper","add_git_folder_path","adduikit","addfootable","add_email_helper","add_php_helper_both","add_php_helper_admin","buildcomp","add_admin_event"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "dashboard","targetTable": "#__componentbuilder_custom_admin_view","targetColumn": "","displayColumn": "system_name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"}]}'
|
'{"formFile": "administrator/components/com_componentbuilder/forms/joomla_component.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits","add_sales_server","add_jcb_powers_path","debug_linenr","mvc_versiondate","remove_line_breaks","add_placeholders","preferred_joomla_version","add_powers","addreadme","add_backup_folder_path","translation_tool","add_site_event","add_javascript","add_css_admin","add_css_site","dashboard_type","add_php_preflight_install","add_php_preflight_update","add_php_postflight_install","add_php_postflight_update","add_php_method_uninstall","add_php_method_install","emptycontributors","add_sql","number","add_sql_uninstall","assets_table_fix","add_update_server","update_server_target","update_server","creatuserhelper","sales_server","adduikit","addfootable","add_git_folder_path","add_email_helper","add_php_helper_both","add_php_helper_admin","add_admin_event","buildcomp","add_php_helper_site"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "dashboard","targetTable": "#__componentbuilder_custom_admin_view","targetColumn": "","displayColumn": "system_name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"}]}'
|
||||||
);
|
);
|
||||||
// Install Joomla module Content Types.
|
// Install Joomla module Content Types.
|
||||||
$this->setContentType(
|
$this->setContentType(
|
||||||
@ -816,6 +816,23 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// contentHistoryOptions
|
// contentHistoryOptions
|
||||||
'{"formFile": "administrator/components/com_componentbuilder/forms/custom_code.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits","target","type","comment_type","joomla_version"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "component","targetTable": "#__componentbuilder_joomla_component","targetColumn": "guid","displayColumn": "system_name"}]}'
|
'{"formFile": "administrator/components/com_componentbuilder/forms/custom_code.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits","target","type","comment_type","joomla_version"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "component","targetTable": "#__componentbuilder_joomla_component","targetColumn": "guid","displayColumn": "system_name"}]}'
|
||||||
);
|
);
|
||||||
|
// Install Class extends Content Types.
|
||||||
|
$this->setContentType(
|
||||||
|
// typeTitle
|
||||||
|
'Componentbuilder Class_extends',
|
||||||
|
// typeAlias
|
||||||
|
'com_componentbuilder.class_extends',
|
||||||
|
// table
|
||||||
|
'{"special": {"dbtable": "#__componentbuilder_class_extends","key": "id","type": "Class_extendsTable","prefix": "VDM\Component\Componentbuilder\Administrator\Table"}}',
|
||||||
|
// rules
|
||||||
|
'',
|
||||||
|
// fieldMappings
|
||||||
|
'{"common": {"core_content_item_id": "id","core_title": "name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "head","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"name":"name","extension_type":"extension_type","guid":"guid","head":"head","comment":"comment"}}',
|
||||||
|
// router
|
||||||
|
'',
|
||||||
|
// contentHistoryOptions
|
||||||
|
'{"formFile": "administrator/components/com_componentbuilder/forms/class_extends.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"}]}'
|
||||||
|
);
|
||||||
// Install Class property Content Types.
|
// Install Class property Content Types.
|
||||||
$this->setContentType(
|
$this->setContentType(
|
||||||
// typeTitle
|
// typeTitle
|
||||||
@ -1048,7 +1065,7 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// rules
|
// rules
|
||||||
'',
|
'',
|
||||||
// fieldMappings
|
// fieldMappings
|
||||||
'{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "null","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","organisation":"organisation","repository":"repository","target":"target","type":"type","base":"base","guid":"guid","access_repo":"access_repo","write_branch":"write_branch","read_branch":"read_branch","token":"token","username":"username"}}',
|
'{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "null","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","organisation":"organisation","repository":"repository","target":"target","type":"type","base":"base","guid":"guid","access_repo":"access_repo","write_branch":"write_branch","read_branch":"read_branch","author_email":"author_email","author_name":"author_name","token":"token","username":"username"}}',
|
||||||
// router
|
// router
|
||||||
'',
|
'',
|
||||||
// contentHistoryOptions
|
// contentHistoryOptions
|
||||||
@ -1411,23 +1428,6 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// contentHistoryOptions
|
// contentHistoryOptions
|
||||||
'{"formFile": "administrator/components/com_componentbuilder/forms/library_files_folders_urls.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "library","targetTable": "#__componentbuilder_library","targetColumn": "guid","displayColumn": "name"}]}'
|
'{"formFile": "administrator/components/com_componentbuilder/forms/library_files_folders_urls.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "library","targetTable": "#__componentbuilder_library","targetColumn": "guid","displayColumn": "name"}]}'
|
||||||
);
|
);
|
||||||
// Install Class extends Content Types.
|
|
||||||
$this->setContentType(
|
|
||||||
// typeTitle
|
|
||||||
'Componentbuilder Class_extends',
|
|
||||||
// typeAlias
|
|
||||||
'com_componentbuilder.class_extends',
|
|
||||||
// table
|
|
||||||
'{"special": {"dbtable": "#__componentbuilder_class_extends","key": "id","type": "Class_extendsTable","prefix": "VDM\Component\Componentbuilder\Administrator\Table"}}',
|
|
||||||
// rules
|
|
||||||
'',
|
|
||||||
// fieldMappings
|
|
||||||
'{"common": {"core_content_item_id": "id","core_title": "name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "head","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"name":"name","extension_type":"extension_type","guid":"guid","head":"head","comment":"comment"}}',
|
|
||||||
// router
|
|
||||||
'',
|
|
||||||
// contentHistoryOptions
|
|
||||||
'{"formFile": "administrator/components/com_componentbuilder/forms/class_extends.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"}]}'
|
|
||||||
);
|
|
||||||
// Install Joomla module updates Content Types.
|
// Install Joomla module updates Content Types.
|
||||||
$this->setContentType(
|
$this->setContentType(
|
||||||
// typeTitle
|
// typeTitle
|
||||||
@ -1516,7 +1516,7 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
|
|
||||||
|
|
||||||
// Fix the assets table rules column size.
|
// Fix the assets table rules column size.
|
||||||
$this->setDatabaseAssetsRulesFix(95520, "MEDIUMTEXT");
|
$this->setDatabaseAssetsRulesFix(101440, "MEDIUMTEXT");
|
||||||
// Install the global extension params.
|
// Install the global extension params.
|
||||||
$this->setExtensionsParams(
|
$this->setExtensionsParams(
|
||||||
'{"autorName":"Llewellyn van der Merwe","autorEmail":"joomla@vdm.io","subform_layouts":{"subform_layouts0":{"view_field":"default","layout":"repeatablejcbjfive"}},"editor":"none","manage_jcb_package_directories":"2","set_browser_storage":"1","storage_time_to_live":"global","super_powers_documentation":"0","powers_repository":"0","super_powers_repositories":"0","builder_gif_size":"480-272","compiler_plugin":["componentbuilderactionlogcompiler","componentbuilderfieldorderingcompiler","componentbuilderheaderscompiler","componentbuilderpowersautoloadercompiler","componentbuilderprivacycompiler"],"add_menu_prefix":"1","menu_prefix":"»","namespace_prefix":"JCB","minify":"0","language":"en-GB","percentagelanguageadd":"30","assets_table_fix":"2","compiler_field_builder_type":"2","field_name_builder":"2","type_name_builder":"2","import_guid_only":"1","export_language_strings":"1","cronjob_backup_type":"1","cronjob_backup_server":"0","backup_package_name":"JCB_Backup_[YEAR]_[MONTH]_[DAY]","export_company":"Vast Development Method","export_owner":"Llewellyn van der Merwe","export_email":"joomla@vdm.io","export_website":"https://dev.vdm.io/","export_license":"GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html","export_copyright":"Copyright (C) 2015. All Rights Reserved","check_in":"-1 day","save_history":"1","history_limit":"10","add_jquery_framework":"1","uikit_load":"1","uikit_min":"","uikit_style":""}'
|
'{"autorName":"Llewellyn van der Merwe","autorEmail":"joomla@vdm.io","subform_layouts":{"subform_layouts0":{"view_field":"default","layout":"repeatablejcbjfive"}},"editor":"none","manage_jcb_package_directories":"2","set_browser_storage":"1","storage_time_to_live":"global","super_powers_documentation":"0","powers_repository":"0","super_powers_repositories":"0","builder_gif_size":"480-272","compiler_plugin":["componentbuilderactionlogcompiler","componentbuilderfieldorderingcompiler","componentbuilderheaderscompiler","componentbuilderpowersautoloadercompiler","componentbuilderprivacycompiler"],"add_menu_prefix":"1","menu_prefix":"»","namespace_prefix":"JCB","minify":"0","language":"en-GB","percentagelanguageadd":"30","assets_table_fix":"2","compiler_field_builder_type":"2","field_name_builder":"2","type_name_builder":"2","import_guid_only":"1","export_language_strings":"1","cronjob_backup_type":"1","cronjob_backup_server":"0","backup_package_name":"JCB_Backup_[YEAR]_[MONTH]_[DAY]","export_company":"Vast Development Method","export_owner":"Llewellyn van der Merwe","export_email":"joomla@vdm.io","export_website":"https://dev.vdm.io/","export_license":"GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html","export_copyright":"Copyright (C) 2015. All Rights Reserved","check_in":"-1 day","save_history":"1","history_limit":"10","add_jquery_framework":"1","uikit_load":"1","uikit_min":"","uikit_style":""}'
|
||||||
@ -1739,6 +1739,22 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
'COM_COMPONENTBUILDER'
|
'COM_COMPONENTBUILDER'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Add Class_extends to the action logs config table.
|
||||||
|
$this->setActionLogConfig(
|
||||||
|
// typeTitle
|
||||||
|
'CLASS_EXTENDS',
|
||||||
|
// typeAlias
|
||||||
|
'com_componentbuilder.class_extends',
|
||||||
|
// idHolder
|
||||||
|
'id',
|
||||||
|
// titleHolder
|
||||||
|
'name',
|
||||||
|
// tableName
|
||||||
|
'#__componentbuilder_class_extends',
|
||||||
|
// textPrefix
|
||||||
|
'COM_COMPONENTBUILDER'
|
||||||
|
);
|
||||||
|
|
||||||
// Add Class_property to the action logs config table.
|
// Add Class_property to the action logs config table.
|
||||||
$this->setActionLogConfig(
|
$this->setActionLogConfig(
|
||||||
// typeTitle
|
// typeTitle
|
||||||
@ -2267,22 +2283,6 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
'COM_COMPONENTBUILDER'
|
'COM_COMPONENTBUILDER'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Add Class_extends to the action logs config table.
|
|
||||||
$this->setActionLogConfig(
|
|
||||||
// typeTitle
|
|
||||||
'CLASS_EXTENDS',
|
|
||||||
// typeAlias
|
|
||||||
'com_componentbuilder.class_extends',
|
|
||||||
// idHolder
|
|
||||||
'id',
|
|
||||||
// titleHolder
|
|
||||||
'name',
|
|
||||||
// tableName
|
|
||||||
'#__componentbuilder_class_extends',
|
|
||||||
// textPrefix
|
|
||||||
'COM_COMPONENTBUILDER'
|
|
||||||
);
|
|
||||||
|
|
||||||
// Add Joomla_module_updates to the action logs config table.
|
// Add Joomla_module_updates to the action logs config table.
|
||||||
$this->setActionLogConfig(
|
$this->setActionLogConfig(
|
||||||
// typeTitle
|
// typeTitle
|
||||||
@ -2379,11 +2379,11 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// rules
|
// rules
|
||||||
'',
|
'',
|
||||||
// fieldMappings
|
// fieldMappings
|
||||||
'{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "php_postflight_update","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "metadata","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "metakey","core_metadesc": "metadesc","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_code":"name_code","short_description":"short_description","companyname":"companyname","crowdin_project_identifier":"crowdin_project_identifier","backup_folder_path":"backup_folder_path","sql_uninstall":"sql_uninstall","php_postflight_update":"php_postflight_update","css_site":"css_site","mvc_versiondate":"mvc_versiondate","remove_line_breaks":"remove_line_breaks","add_placeholders":"add_placeholders","php_helper_site":"php_helper_site","javascript":"javascript","description":"description","debug_linenr":"debug_linenr","author":"author","php_method_install":"php_method_install","email":"email","website":"website","add_sales_server":"add_sales_server","license":"license","add_jcb_powers_path":"add_jcb_powers_path","bom":"bom","image":"image","php_admin_event":"php_admin_event","copyright":"copyright","php_site_event":"php_site_event","css_admin":"css_admin","php_preflight_update":"php_preflight_update","component_version":"component_version","php_preflight_install":"php_preflight_install","preferred_joomla_version":"preferred_joomla_version","php_postflight_install":"php_postflight_install","add_powers":"add_powers","php_method_uninstall":"php_method_uninstall","sql":"sql","addreadme":"addreadme","update_server_url":"update_server_url","add_backup_folder_path":"add_backup_folder_path","translation_tool":"translation_tool","crowdin_username":"crowdin_username","buildcompsql":"buildcompsql","add_namespace_prefix":"add_namespace_prefix","namespace_prefix":"namespace_prefix","add_php_helper_site":"add_php_helper_site","add_site_event":"add_site_event","add_menu_prefix":"add_menu_prefix","add_javascript":"add_javascript","menu_prefix":"menu_prefix","add_css_admin":"add_css_admin","add_css_site":"add_css_site","dashboard_type":"dashboard_type","toignore":"toignore","dashboard":"dashboard","add_php_preflight_install":"add_php_preflight_install","add_php_preflight_update":"add_php_preflight_update","export_key":"export_key","add_php_postflight_install":"add_php_postflight_install","joomla_source_link":"joomla_source_link","add_php_postflight_update":"add_php_postflight_update","export_buy_link":"export_buy_link","add_php_method_uninstall":"add_php_method_uninstall","add_php_method_install":"add_php_method_install","add_sql":"add_sql","add_sql_uninstall":"add_sql_uninstall","emptycontributors":"emptycontributors","assets_table_fix":"assets_table_fix","number":"number","readme":"readme","add_update_server":"add_update_server","update_server_target":"update_server_target","update_server":"update_server","sales_server":"sales_server","creatuserhelper":"creatuserhelper","add_git_folder_path":"add_git_folder_path","adduikit":"adduikit","git_folder_path":"git_folder_path","addfootable":"addfootable","jcb_powers_path":"jcb_powers_path","add_email_helper":"add_email_helper","add_php_helper_both":"add_php_helper_both","crowdin_project_api_key":"crowdin_project_api_key","php_helper_both":"php_helper_both","crowdin_account_api_key":"crowdin_account_api_key","add_php_helper_admin":"add_php_helper_admin","buildcomp":"buildcomp","php_helper_admin":"php_helper_admin","guid":"guid","add_admin_event":"add_admin_event","name":"name"}}',
|
'{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "javascript","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "metadata","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "metakey","core_metadesc": "metadesc","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","name_code":"name_code","short_description":"short_description","companyname":"companyname","javascript":"javascript","css_site":"css_site","php_helper_site":"php_helper_site","add_sales_server":"add_sales_server","add_jcb_powers_path":"add_jcb_powers_path","debug_linenr":"debug_linenr","mvc_versiondate":"mvc_versiondate","remove_line_breaks":"remove_line_breaks","add_placeholders":"add_placeholders","php_preflight_update":"php_preflight_update","description":"description","sql_uninstall":"sql_uninstall","author":"author","email":"email","backup_folder_path":"backup_folder_path","website":"website","crowdin_project_identifier":"crowdin_project_identifier","license":"license","bom":"bom","php_site_event":"php_site_event","image":"image","css_admin":"css_admin","copyright":"copyright","php_postflight_update":"php_postflight_update","php_preflight_install":"php_preflight_install","php_method_install":"php_method_install","php_postflight_install":"php_postflight_install","component_version":"component_version","php_method_uninstall":"php_method_uninstall","preferred_joomla_version":"preferred_joomla_version","sql":"sql","add_powers":"add_powers","addreadme":"addreadme","update_server_url":"update_server_url","add_backup_folder_path":"add_backup_folder_path","translation_tool":"translation_tool","crowdin_username":"crowdin_username","buildcompsql":"buildcompsql","add_site_event":"add_site_event","add_namespace_prefix":"add_namespace_prefix","add_javascript":"add_javascript","namespace_prefix":"namespace_prefix","add_css_admin":"add_css_admin","add_css_site":"add_css_site","add_menu_prefix":"add_menu_prefix","dashboard_type":"dashboard_type","menu_prefix":"menu_prefix","dashboard":"dashboard","add_php_preflight_install":"add_php_preflight_install","add_php_preflight_update":"add_php_preflight_update","toignore":"toignore","add_php_postflight_install":"add_php_postflight_install","add_php_postflight_update":"add_php_postflight_update","add_php_method_uninstall":"add_php_method_uninstall","add_php_method_install":"add_php_method_install","emptycontributors":"emptycontributors","add_sql":"add_sql","number":"number","add_sql_uninstall":"add_sql_uninstall","assets_table_fix":"assets_table_fix","readme":"readme","add_update_server":"add_update_server","update_server_target":"update_server_target","update_server":"update_server","creatuserhelper":"creatuserhelper","sales_server":"sales_server","adduikit":"adduikit","addfootable":"addfootable","add_git_folder_path":"add_git_folder_path","add_email_helper":"add_email_helper","git_folder_path":"git_folder_path","add_php_helper_both":"add_php_helper_both","jcb_powers_path":"jcb_powers_path","php_helper_both":"php_helper_both","add_php_helper_admin":"add_php_helper_admin","crowdin_project_api_key":"crowdin_project_api_key","php_helper_admin":"php_helper_admin","crowdin_account_api_key":"crowdin_account_api_key","add_admin_event":"add_admin_event","buildcomp":"buildcomp","php_admin_event":"php_admin_event","guid":"guid","add_php_helper_site":"add_php_helper_site","name":"name"}}',
|
||||||
// router
|
// router
|
||||||
'',
|
'',
|
||||||
// contentHistoryOptions
|
// contentHistoryOptions
|
||||||
'{"formFile": "administrator/components/com_componentbuilder/forms/joomla_component.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits","mvc_versiondate","remove_line_breaks","add_placeholders","debug_linenr","add_sales_server","add_jcb_powers_path","preferred_joomla_version","add_powers","addreadme","add_backup_folder_path","translation_tool","add_php_helper_site","add_site_event","add_javascript","add_css_admin","add_css_site","dashboard_type","add_php_preflight_install","add_php_preflight_update","add_php_postflight_install","add_php_postflight_update","add_php_method_uninstall","add_php_method_install","add_sql","add_sql_uninstall","emptycontributors","assets_table_fix","number","add_update_server","update_server_target","update_server","sales_server","creatuserhelper","add_git_folder_path","adduikit","addfootable","add_email_helper","add_php_helper_both","add_php_helper_admin","buildcomp","add_admin_event"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "dashboard","targetTable": "#__componentbuilder_custom_admin_view","targetColumn": "","displayColumn": "system_name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"}]}'
|
'{"formFile": "administrator/components/com_componentbuilder/forms/joomla_component.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits","add_sales_server","add_jcb_powers_path","debug_linenr","mvc_versiondate","remove_line_breaks","add_placeholders","preferred_joomla_version","add_powers","addreadme","add_backup_folder_path","translation_tool","add_site_event","add_javascript","add_css_admin","add_css_site","dashboard_type","add_php_preflight_install","add_php_preflight_update","add_php_postflight_install","add_php_postflight_update","add_php_method_uninstall","add_php_method_install","emptycontributors","add_sql","number","add_sql_uninstall","assets_table_fix","add_update_server","update_server_target","update_server","creatuserhelper","sales_server","adduikit","addfootable","add_git_folder_path","add_email_helper","add_php_helper_both","add_php_helper_admin","add_admin_event","buildcomp","add_php_helper_site"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "dashboard","targetTable": "#__componentbuilder_custom_admin_view","targetColumn": "","displayColumn": "system_name"},{"sourceColumn": "update_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "sales_server","targetTable": "#__componentbuilder_server","targetColumn": "id","displayColumn": "name"}]}'
|
||||||
);
|
);
|
||||||
// Update Joomla module Content Types.
|
// Update Joomla module Content Types.
|
||||||
$this->setContentType(
|
$this->setContentType(
|
||||||
@ -2572,6 +2572,23 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// contentHistoryOptions
|
// contentHistoryOptions
|
||||||
'{"formFile": "administrator/components/com_componentbuilder/forms/custom_code.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits","target","type","comment_type","joomla_version"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "component","targetTable": "#__componentbuilder_joomla_component","targetColumn": "guid","displayColumn": "system_name"}]}'
|
'{"formFile": "administrator/components/com_componentbuilder/forms/custom_code.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits","target","type","comment_type","joomla_version"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "component","targetTable": "#__componentbuilder_joomla_component","targetColumn": "guid","displayColumn": "system_name"}]}'
|
||||||
);
|
);
|
||||||
|
// Update Class extends Content Types.
|
||||||
|
$this->setContentType(
|
||||||
|
// typeTitle
|
||||||
|
'Componentbuilder Class_extends',
|
||||||
|
// typeAlias
|
||||||
|
'com_componentbuilder.class_extends',
|
||||||
|
// table
|
||||||
|
'{"special": {"dbtable": "#__componentbuilder_class_extends","key": "id","type": "Class_extendsTable","prefix": "VDM\Component\Componentbuilder\Administrator\Table"}}',
|
||||||
|
// rules
|
||||||
|
'',
|
||||||
|
// fieldMappings
|
||||||
|
'{"common": {"core_content_item_id": "id","core_title": "name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "head","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"name":"name","extension_type":"extension_type","guid":"guid","head":"head","comment":"comment"}}',
|
||||||
|
// router
|
||||||
|
'',
|
||||||
|
// contentHistoryOptions
|
||||||
|
'{"formFile": "administrator/components/com_componentbuilder/forms/class_extends.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"}]}'
|
||||||
|
);
|
||||||
// Update Class property Content Types.
|
// Update Class property Content Types.
|
||||||
$this->setContentType(
|
$this->setContentType(
|
||||||
// typeTitle
|
// typeTitle
|
||||||
@ -2804,7 +2821,7 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// rules
|
// rules
|
||||||
'',
|
'',
|
||||||
// fieldMappings
|
// fieldMappings
|
||||||
'{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "null","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","organisation":"organisation","repository":"repository","target":"target","type":"type","base":"base","guid":"guid","access_repo":"access_repo","write_branch":"write_branch","read_branch":"read_branch","token":"token","username":"username"}}',
|
'{"common": {"core_content_item_id": "id","core_title": "system_name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "null","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"system_name":"system_name","organisation":"organisation","repository":"repository","target":"target","type":"type","base":"base","guid":"guid","access_repo":"access_repo","write_branch":"write_branch","read_branch":"read_branch","author_email":"author_email","author_name":"author_name","token":"token","username":"username"}}',
|
||||||
// router
|
// router
|
||||||
'',
|
'',
|
||||||
// contentHistoryOptions
|
// contentHistoryOptions
|
||||||
@ -3167,23 +3184,6 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
// contentHistoryOptions
|
// contentHistoryOptions
|
||||||
'{"formFile": "administrator/components/com_componentbuilder/forms/library_files_folders_urls.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "library","targetTable": "#__componentbuilder_library","targetColumn": "guid","displayColumn": "name"}]}'
|
'{"formFile": "administrator/components/com_componentbuilder/forms/library_files_folders_urls.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "library","targetTable": "#__componentbuilder_library","targetColumn": "guid","displayColumn": "name"}]}'
|
||||||
);
|
);
|
||||||
// Update Class extends Content Types.
|
|
||||||
$this->setContentType(
|
|
||||||
// typeTitle
|
|
||||||
'Componentbuilder Class_extends',
|
|
||||||
// typeAlias
|
|
||||||
'com_componentbuilder.class_extends',
|
|
||||||
// table
|
|
||||||
'{"special": {"dbtable": "#__componentbuilder_class_extends","key": "id","type": "Class_extendsTable","prefix": "VDM\Component\Componentbuilder\Administrator\Table"}}',
|
|
||||||
// rules
|
|
||||||
'',
|
|
||||||
// fieldMappings
|
|
||||||
'{"common": {"core_content_item_id": "id","core_title": "name","core_state": "published","core_alias": "null","core_created_time": "created","core_modified_time": "modified","core_body": "head","core_hits": "hits","core_publish_up": "null","core_publish_down": "null","core_access": "access","core_params": "params","core_featured": "null","core_metadata": "null","core_language": "null","core_images": "null","core_urls": "null","core_version": "version","core_ordering": "ordering","core_metakey": "null","core_metadesc": "null","core_catid": "null","core_xreference": "null","asset_id": "asset_id"},"special": {"name":"name","extension_type":"extension_type","guid":"guid","head":"head","comment":"comment"}}',
|
|
||||||
// router
|
|
||||||
'',
|
|
||||||
// contentHistoryOptions
|
|
||||||
'{"formFile": "administrator/components/com_componentbuilder/forms/class_extends.xml","hideFields": ["asset_id","checked_out","checked_out_time"],"ignoreChanges": ["modified_by","modified","checked_out","checked_out_time","version","hits"],"convertToInt": ["published","ordering","version","hits"],"displayLookup": [{"sourceColumn": "created_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"},{"sourceColumn": "access","targetTable": "#__viewlevels","targetColumn": "id","displayColumn": "title"},{"sourceColumn": "modified_by","targetTable": "#__users","targetColumn": "id","displayColumn": "name"}]}'
|
|
||||||
);
|
|
||||||
// Update Joomla module updates Content Types.
|
// Update Joomla module updates Content Types.
|
||||||
$this->setContentType(
|
$this->setContentType(
|
||||||
// typeTitle
|
// typeTitle
|
||||||
@ -3292,7 +3292,7 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
echo '<div style="background-color: #fff;" class="alert alert-info"><a target="_blank" href="https://dev.vdm.io" title="Component Builder">
|
echo '<div style="background-color: #fff;" class="alert alert-info"><a target="_blank" href="https://dev.vdm.io" title="Component Builder">
|
||||||
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
|
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
|
||||||
</a>
|
</a>
|
||||||
<h3>Upgrade to Version 4.1.0 Was Successful! Let us know if anything is not working as expected.</h3></div>';
|
<h3>Upgrade to Version 4.1.1 Was Successful! Let us know if anything is not working as expected.</h3></div>';
|
||||||
|
|
||||||
// Add/Update component in the action logs extensions table.
|
// Add/Update component in the action logs extensions table.
|
||||||
$this->setActionLogsExtensions();
|
$this->setActionLogsExtensions();
|
||||||
@ -3489,6 +3489,22 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
'COM_COMPONENTBUILDER'
|
'COM_COMPONENTBUILDER'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Add/Update Class_extends in the action logs config table.
|
||||||
|
$this->setActionLogConfig(
|
||||||
|
// typeTitle
|
||||||
|
'CLASS_EXTENDS',
|
||||||
|
// typeAlias
|
||||||
|
'com_componentbuilder.class_extends',
|
||||||
|
// idHolder
|
||||||
|
'id',
|
||||||
|
// titleHolder
|
||||||
|
'name',
|
||||||
|
// tableName
|
||||||
|
'#__componentbuilder_class_extends',
|
||||||
|
// textPrefix
|
||||||
|
'COM_COMPONENTBUILDER'
|
||||||
|
);
|
||||||
|
|
||||||
// Add/Update Class_property in the action logs config table.
|
// Add/Update Class_property in the action logs config table.
|
||||||
$this->setActionLogConfig(
|
$this->setActionLogConfig(
|
||||||
// typeTitle
|
// typeTitle
|
||||||
@ -4017,22 +4033,6 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
|
|||||||
'COM_COMPONENTBUILDER'
|
'COM_COMPONENTBUILDER'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Add/Update Class_extends in the action logs config table.
|
|
||||||
$this->setActionLogConfig(
|
|
||||||
// typeTitle
|
|
||||||
'CLASS_EXTENDS',
|
|
||||||
// typeAlias
|
|
||||||
'com_componentbuilder.class_extends',
|
|
||||||
// idHolder
|
|
||||||
'id',
|
|
||||||
// titleHolder
|
|
||||||
'name',
|
|
||||||
// tableName
|
|
||||||
'#__componentbuilder_class_extends',
|
|
||||||
// textPrefix
|
|
||||||
'COM_COMPONENTBUILDER'
|
|
||||||
);
|
|
||||||
|
|
||||||
// Add/Update Joomla_module_updates in the action logs config table.
|
// Add/Update Joomla_module_updates in the action logs config table.
|
||||||
$this->setActionLogConfig(
|
$this->setActionLogConfig(
|
||||||
// typeTitle
|
// typeTitle
|
||||||
|
327
README.md
327
README.md
@ -1,160 +1,239 @@
|
|||||||
|
|
||||||
# Joomla Component Builder ([JCB](https://www.joomlacomponentbuilder.com))
|
# Joomla Component Builder ([JCB](https://www.joomlacomponentbuilder.com))
|
||||||
|
|
||||||
This is a [Joomla 4.x](https://extensions.joomla.org/extension/component-builder/) component. [__See In Action__](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|

|
||||||
|
|
||||||

|
This is a professional-grade [Joomla 4.x](https://extensions.joomla.org/extension/component-builder/) component, created with [Joomla Component Builder (JCB)](https://www.joomlacomponentbuilder.com)—a uniquely advanced development engine for building and maintaining complete Joomla extensions.
|
||||||
|
|
||||||
The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.
|
> 🎥 [Original... Quick Hello World Demo](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45), yes JCB has been around for over a decade.
|
||||||
|
|
||||||
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
|
JCB generates native Joomla components, plugins, and modules for Joomla 3.x, 4.x, and 5.x - and is already prepared for Joomla 6. Every compiled project is tailored for the specific version without needing backward compatibility plugins. With integrated version-aware compiling, smart boilerplating, and Git-powered project syncing, JCB is much more than a code generator-it's a **full-stack development pipeline for Joomla extensions**.
|
||||||
|
|
||||||
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (4.1.0) with **ALL** its features and **ALL** concepts totally open-source and free!
|
You can install this component easily. The latest release (**4.1.1**) is available on [Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) and updated frequently with full source access.
|
||||||
|
|
||||||
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
Upgrades are seamless through Joomla's built-in extension update mechanism.
|
||||||
|
|
||||||
Once installed upgrades are quick and easy via the default [Joomla](https://extensions.joomla.org/extension/component-builder/) upgrade area.
|
---
|
||||||
|
|
||||||
Some of the Features
|
## 🚀 Core Capabilities at a Glance
|
||||||
====================
|
|
||||||
|
|
||||||
+ Fetch Code from IDE and place it back in component during next compilation.
|
Here are just some of the key powers JCB brings:
|
||||||
+ Add [Joomla custom fields](https://www.youtube.com/watch?v=n5RBmP0uNCM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=75) in any of your components.
|
|
||||||
+ Add you [own dashboard](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=60) in the back-end.
|
|
||||||
+ [Dynamic File and Folder](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=56) Inclusion concept.
|
|
||||||
+ [Easy Translation](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=51) via excel.
|
|
||||||
+ Adding your [own rule validation](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=46) to a field in [JCB](https://www.joomlacomponentbuilder.com)
|
|
||||||
+ [Automated backup system](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=40) in [JCB](https://www.joomlacomponentbuilder.com).
|
|
||||||
+ Adding mySQL Dump to any View/Table.
|
|
||||||
+ Grab existing Table data and build a dynamic dump.
|
|
||||||
+ Unlimited [Joomla](https://extensions.joomla.org/extension/component-builder/) Components.
|
|
||||||
+ Unlimited Tables/Views.
|
|
||||||
+ Reusing Views and Fields.
|
|
||||||
+ Runs on Your Own [Joomla](https://extensions.joomla.org/extension/component-builder/) Install.
|
|
||||||
+ Add Dynamic/custom back-end views that uses Table and Chart result sets.
|
|
||||||
+ Build data query of extreme complex nature to use in Dynamic/custom views.
|
|
||||||
+ Highly Dynamic/custom Front-end Structures.
|
|
||||||
+ Dynamically setup templates and layouts for Front-end design.
|
|
||||||
+ Integration of the excellent UIKIT lib.
|
|
||||||
+ Integration of the excellent FOOTABLE lib.
|
|
||||||
+ All [Joomla](https://extensions.joomla.org/extension/component-builder/) Standard Field Types (including subforms).
|
|
||||||
+ Strong Implementation of all [Joomla](https://extensions.joomla.org/extension/component-builder/) Form Security.
|
|
||||||
+ Load data via ajax with ease.
|
|
||||||
+ You can add an Update Server to Components you build.
|
|
||||||
+ Build advanced Dynamic front-end forms.
|
|
||||||
+ Dynamic data queries from multiple tables.
|
|
||||||
+ Place in local GIT folder, and publish to sales server.
|
|
||||||
+ Include any amount of custom files and folders during build.
|
|
||||||
+ Static helper class with smart methods already included.
|
|
||||||
+ Static helper methods Can easily be added.
|
|
||||||
+ Direct install from compiler view.
|
|
||||||
+ Integrative with native [Joomla](https://extensions.joomla.org/extension/component-builder/) Categories and Tags.
|
|
||||||
+ Fully Dynamic Search Friendly URL Auto Implementation.
|
|
||||||
+ Custom scripting options all over the MVC structure.
|
|
||||||
+ Permission implementation down to each view, item and field.
|
|
||||||
+ Easy extendible to include other libraries.
|
|
||||||
+ Can include SQL and visioning update link to distribute your component updates via [Joomla](https://extensions.joomla.org/extension/component-builder/) default upgrade of components.
|
|
||||||
+ Easy Export & Import addon to all backend-tables.
|
|
||||||
+ Overriding ability of import concepts in all backend-tables.
|
|
||||||
+ The Batch and Filter implementation on all backend-list views.
|
|
||||||
+ This and much much more are all possible with this component builder!
|
|
||||||
|
|
||||||
Just Imagine
|
* 🔁 **Bi-Directional IDE Sync** - Fetch custom logic from compiled projects and reintegrate on rebuild.
|
||||||
====================
|
* 🧱 **Build Joomla Components, Plugins, and Modules** - Fully native and independently compiled.
|
||||||
|
* 🧠 **Superpowers (PHP Class Builder)** - Create namespaced abstract, interface, and trait-based PHP classes visually.
|
||||||
|
* 🔌 **Joomla Powers** - Intelligent Joomla class referencing via dynamic placeholders (JPKs) that adapt to Joomla versions.
|
||||||
|
* 🗃️ **Smart Boilerplating** - Start fast with 6+ curated demo blueprints for instant use or customization.
|
||||||
|
* 🔂 **Round-Trip Development** - Add, update, and persist changes across compiled code using insert/replace tags.
|
||||||
|
* 🔐 **Field Types Engine** - Blueprint reusable Joomla-native fields with constraints, security, DB structure, and logic.
|
||||||
|
* 🧬 **Admin Views, Custom Admin Views & Site Views** - Fine-grained design for structured or dynamic backend/front-end UIs.
|
||||||
|
* 🧮 **Dynamic GET Builder** - Advanced visual query designer for cross-table, filter-rich, deeply joined SQL fetches.
|
||||||
|
* 💡 **Snippets, Layouts, Templates & Libraries** - Shareable GUI-linked modules for reusable HTML/CSS/JS integration.
|
||||||
|
* 🧰 **Custom Code System** - Write logic once and reuse anywhere; full support for HTML & PHP placeholders and tracking.
|
||||||
|
* 🛠️ **Multi-Version Compilation** - Compile version-specific code for J3, J4, J5 without compatibility bloat.
|
||||||
|
* 📦 **Package Management** - Export/import blueprints, version control builds, sync with Git, and distribute clean packages.
|
||||||
|
* 🖥️ **CLI Integration** - Build commands natively via terminal using Joomla's CLI runner.
|
||||||
|
* 🌐 **Update Server Support** - Integrate custom update mechanisms for extensions post-deployment.
|
||||||
|
|
||||||
+ Your Component Back-end can be more advanced then the [Joomla](https://extensions.joomla.org/extension/component-builder/) Article Manager.
|
<details>
|
||||||
+ Your Code as Perfectly Unified to the strict [Joomla](https://extensions.joomla.org/extension/component-builder/) Standards.
|
<summary>📚 View 100+ Additional Advanced Features</summary>
|
||||||
+ Adding Custom Scripting almost anywhere in the MVC structure.
|
|
||||||
+ Import and export feature to all backend-views.
|
|
||||||
+ Batch copy and move/update feature for all backend-views.
|
|
||||||
+ History tracking per/change made on any back-end item.
|
|
||||||
+ Dynamic field control, to show and hide fields in amazing ways.
|
|
||||||
+ Front-end freedom of design that allows for any library to be used.
|
|
||||||
+ This and much much more are all possible with this component builder!
|
|
||||||
|
|
||||||
You are in Control
|
### 🧩 Architecture & Core Logic
|
||||||
====================
|
|
||||||
|
|
||||||
+ You can change the licensing template for your components.
|
* 🧠 **Super Powers**: Namespaced PHP classes (interfaces, traits, abstracts, finals) managed from GUI
|
||||||
+ You can change/improve existing field types and add more.
|
* 🔌 **Joomla Powers**: Dynamic Joomla class resolution via JPK placeholders per Joomla version
|
||||||
+ Line numbers to show where in compiler was the code build.
|
* 🧱 **Compile native Components, Plugins & Modules** in one unified workflow
|
||||||
+ You can improve the component since all code are open-source.
|
* 🔀 **Multi-version support** (J3, J4, J5, J6-ready) with per-version compilation
|
||||||
+ Free updates for the lifetime of the project.
|
* 🚦 **Conditional logic injection** in models, views, controllers
|
||||||
+ You can dynamically add internal help structures to all component.
|
* 🧬 **Reusable Admin Views** across multiple components
|
||||||
+ There is no limitations on how big or how much you want to build (server limitation only).
|
* 🧠 **Dynamic GET Builder** for visual cross-table queries
|
||||||
+ This is a complete factory kind of component that functions like a deployment hub.
|
* 🔄 **Round-trip code integration** with file-to-database inserts/replaces
|
||||||
+ Export any component completely mapped in [JCB](https://www.joomlacomponentbuilder.com) and import into another [JCB](https://www.joomlacomponentbuilder.com).
|
* 🧬 **Custom Admin Views** with full MVC override power
|
||||||
+ This and much much more are all possible with this component builder!
|
* 🧩 **Site Views** supporting public display of data with custom logic
|
||||||
|
* 📊 **Dynamic dashboards** built via custom admin view chart helpers
|
||||||
|
* 🔗 **Model linking between views** using subforms and dynamic selectors
|
||||||
|
* 🧩 **Shared field reuse across views** and components
|
||||||
|
* 📥 **Drag & Drop field mapping** for layout and logic assignment
|
||||||
|
* 🎯 **Dynamic Field Visibility** conditions via GUI
|
||||||
|
* 📦 **Independent packaging** of views and logic for reuse
|
||||||
|
|
||||||
Get More Demo Content
|
### 📁 File & Code Management
|
||||||
====================
|
|
||||||
|
|
||||||
> You can now get access to the WOW factor, [JCB](https://www.joomlacomponentbuilder.com) fully mapped can now be yours! Including many other [JCB](https://www.joomlacomponentbuilder.com) mapped components.
|
* 🧾 **Insert/Replace tags** for persistent file overrides
|
||||||
|
* 🗃️ **PHP & HTML custom code injection** via placeholder system
|
||||||
|
* 🛠️ **Automatic file synchronization** on rebuild
|
||||||
|
* 🧮 **Reverse string parser** to restore lang strings back to natural text
|
||||||
|
* 📋 **Line tracking** to see where code was compiled from
|
||||||
|
* 🗂️ **Smart override detection** and conflict management
|
||||||
|
* 🔍 **Compiler debug tracking**
|
||||||
|
* ✍️ **Dynamic use-statement generation** with alias auto-resolving
|
||||||
|
* 💾 **Auto language string export** from templates & views
|
||||||
|
* 🧰 **Helper classes and static utilities** included by default
|
||||||
|
|
||||||
### All you need to do is [explained here](https://vdm.bz/how-to-get-free-vdm-package-keys)!
|
### 🧠 Code Reuse & Blueprints
|
||||||
|
|
||||||
To install these packages [watch this tutorial](https://vdm.bz/how-to-install-jcb-packages).
|
* 🧱 **Demo component blueprints** for rapid prototyping
|
||||||
|
* 🔁 **Blueprint export/import** via JSON or Git sync
|
||||||
|
* 📎 **Shared field types** serve as field templates
|
||||||
|
* 🧪 **Test-friendly compiler mode** for internal checking
|
||||||
|
* 🧩 **Template-based file creation** with dynamic variables
|
||||||
|
* 📚 **Smart template merging** for updates
|
||||||
|
* 🚧 **Field definitions drive DB schema**
|
||||||
|
* 🎛️ **Custom scripting per field** on get/save
|
||||||
|
* 🔀 **Field view-type override (admin vs config)**
|
||||||
|
|
||||||
|
### 🌐 Joomla CMS Integration
|
||||||
|
|
||||||
Where can you get support and help?
|
* 🛡️ **Token integration** via Joomla methods
|
||||||
====================
|
* 🔐 **ACL per view, field, item**
|
||||||
|
* 🧾 **Field-based Joomla config generation**
|
||||||
|
* 📘 **Support for Joomla categories/tags/custom fields**
|
||||||
|
* ⚙️ **CLI-ready components** with native terminal support
|
||||||
|
* 🛰️ **Joomla Update Server integration**
|
||||||
|
* 🧪 **Version-aware language string compilation**
|
||||||
|
* 📤 **Remote publishing to custom repo update streams**
|
||||||
|
|
||||||
- [Package](https://git.vdm.dev/joomla/pkg-component-builder).
|
### 🧠 Visual GUI & UX
|
||||||
- [Download](https://git.vdm.dev/joomla/pkg-component-builder/archive/master.zip).
|
|
||||||
- [Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE).
|
|
||||||
- [German](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wu0tDFxJtZFwW7AxA4JHQV7).
|
|
||||||
- [Hello World](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45).
|
|
||||||
- [Discussions](https://github.com/vdm-io/Joomla-Component-Builder/discussions).
|
|
||||||
- [Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki).
|
|
||||||
- [Issues](https://git.vdm.dev/joomla/Component-Builder/issues). ^^
|
|
||||||
- [Issues Stream](https://t.me/jcb_issues).
|
|
||||||
- [Updates](https://t.me/jcb_updates).
|
|
||||||
- [User Group](https://t.me/jcb_group).
|
|
||||||
- [Announcement](https://t.me/Joomla_component_builder).
|
|
||||||
- [Beta](https://git.vdm.dev/joomla-beta/pkg-component-builder).
|
|
||||||
- [Nightly Build](https://git.vdm.dev/joomla-beta/pkg-component-builder/archive/master.zip).
|
|
||||||
- [Community Complaint](https://www.joomlacomponentbuilder.com/community-complaint).
|
|
||||||
- [Security](https://www.vdm.io/report-security-issues).
|
|
||||||
|
|
||||||
^^ Then if you run into any issues, related to the [JCB](https://git.vdm.dev/joomla/Component-Builder/issues) code, like bugs, **start by searching** the (*open & closed*) issues over on [Gitea](https://git.vdm.dev/joomla/Component-Builder/issues), and if the issue has not been mentioned before, **then only** open a new issue, following the [community guidelines](https://git.vdm.dev/joomla/Component-Builder/src/branch/master/.github/CONTRIBUTING.md).
|
* 🎨 **Layout builder** with inline layout reusability
|
||||||
|
* 📁 **Template builder** with overrides
|
||||||
|
* 🧠 **Snippets GUI** for code blocks linked to layouts/templates
|
||||||
|
* 📚 **Custom documentation sections** linked into generated components
|
||||||
|
* 🧬 **Field injection points in layout/template snippets**
|
||||||
|
* 🔁 **Dynamic reload on selection change** via JavaScript binding
|
||||||
|
* 📦 **Reusable custom admin view templates**
|
||||||
|
* 🧠 **JS callback logic on field events**
|
||||||
|
* 📄 **Inline help descriptions** from config
|
||||||
|
* 🖱️ **Custom admin menus** and dashboard menu builders
|
||||||
|
|
||||||
WHY GIVE IT AWAY LIKE THIS?
|
### 🌍 Internationalization
|
||||||
====================
|
|
||||||
|
|
||||||
> We are Open Source Enthusiast
|
* 🌐 **Excel import/export for language strings**
|
||||||
> Who Support the [Joomla](https://extensions.joomla.org/extension/component-builder/) Community
|
* 📁 **Per-field language control**
|
||||||
|
* 🧾 **Language string auto-indexing**
|
||||||
|
* 🔁 **Reverse engineering of language constants**
|
||||||
|
* 🧠 **Per-Joomla-version lang key mapping**
|
||||||
|
* 🔧 **GUI to rewrite or update lang string context**
|
||||||
|
|
||||||
Our idea was to almost let this tool serve as a cheat sheet to how things can be done... and with the help of other developers end up formulating the way how things not only can, but must be done to insure secure, stable, scalable and maintainable code is produced.
|
### 📦 Packaging & Distribution
|
||||||
|
|
||||||
MAKING IT BETTER!
|
* 📤 **Push component to Git repo**
|
||||||
====================
|
* 🔄 **Auto-compile and auto-tag packages**
|
||||||
|
* 🗂️ **Blueprints stored and versioned by metadata**
|
||||||
|
* 🎁 **Auto-generated changelog from commits**
|
||||||
|
* 🔐 **Signed zip packaging supported**
|
||||||
|
* 📬 **Component update URLs via GUI settings**
|
||||||
|
* 🏷️ **Version-aware build ID assignment**
|
||||||
|
|
||||||
Get involved on the forums, and the Gitea issues, and you can even help us develop/improve the pipeline of [JCB](https://www.joomlacomponentbuilder.com) for continues delivery. We really want to see [JCB](https://www.joomlacomponentbuilder.com) remain the tool of choice for all [Joomla Component Development](https://extensions.joomla.org/extension/component-builder/) needs and ideas.
|
### ⚙️ Compiler Engine Features
|
||||||
|
|
||||||
TODO
|
* ⚡ **Under-30-second build time** on large components
|
||||||
======
|
* 📦 **Memory-optimized ZIP builder**
|
||||||
|
* 🔁 **Repeatable fields** via subform templates
|
||||||
|
* 💥 **Fail-safe error protection** and rollback
|
||||||
|
* 🔍 **Detailed compiler logs with stack trace and UUIDs**
|
||||||
|
* 📃 **Build summary report** after compilation
|
||||||
|
|
||||||
- Add automatic unit testing. To nurture pipeline integration for all components build with [JCB](https://www.joomlacomponentbuilder.com).
|
### 🧱 Custom Code System (Powerful Dual Feature)
|
||||||
- Team collaborative development across [JCB](https://www.joomlacomponentbuilder.com) installations offline and online.
|
|
||||||
- Documentation (maintained by the community) for [JCB](https://www.joomlacomponentbuilder.com). (help us select the best system for this)
|
|
||||||
|
|
||||||
# Build Details
|
* 🔧 **Universal reusable code blocks** (inject anywhere by key)
|
||||||
|
* 🪄 **Update detection & visual diffing** on reused code
|
||||||
|
* 🧬 **Multi-context custom code binding**
|
||||||
|
* 📄 **Dynamic placeholder variable injection**
|
||||||
|
* 🔁 **Nested custom code support**
|
||||||
|
* 🔥 **Advanced compiler hooks per code block**
|
||||||
|
* 🧠 **Round-trip tag tracking in PHP/HTML**
|
||||||
|
* 📜 [Learn more about this here](https://git.vdm.dev/joomla/Component-Builder/wiki/TIPS:-Custom-Code)
|
||||||
|
|
||||||
+ *Community*: [Vast Development Method](https://dev.vdm.io)
|
### 🛠 Field Type System
|
||||||
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
|
||||||
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
|
||||||
+ *First Build*: 30th April, 2015
|
|
||||||
+ *Last Build*: 14th February, 2025
|
|
||||||
+ *Version*: 4.1.0
|
|
||||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
|
||||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
|
||||||
+ *Line count*: **947530**
|
|
||||||
+ *Field count*: **2092**
|
|
||||||
+ *File count*: **6369**
|
|
||||||
+ *Folder count*: **628**
|
|
||||||
|
|
||||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
|
* 🧬 **Field types define templates and data types**
|
||||||
> Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
* 💡 **GUI-defined rules (required, unique, nullable)**
|
||||||
|
* 🧠 **Save/get hooks per field**
|
||||||
|
* 🛡️ **Database schema auto-generated from field settings**
|
||||||
|
* 📄 **Per-display field rendering config (list/edit)**
|
||||||
|
* 🧩 **Create dynamic models with modals/selectors**
|
||||||
|
* 🧠 **Conditional JS & CSS per field**
|
||||||
|
|
||||||
|
### 📐 Dynamic GET (Visual SQL Engine)
|
||||||
|
|
||||||
|
* 📊 **Design complex joins from GUI**
|
||||||
|
* 🧠 **Multiple GETs per view**
|
||||||
|
* 🔄 **Reusable query sets**
|
||||||
|
* 🧾 **Where/group/order statements supported**
|
||||||
|
* 📃 **Auto model method generation**
|
||||||
|
* 🔧 **Switch between list/item GETs**
|
||||||
|
* 🛡️ **Output Joomla-native query builder logic**
|
||||||
|
|
||||||
|
### 📁 Snippets, Templates, Layouts, Libraries
|
||||||
|
|
||||||
|
* 🧠 **Snippets = reusable HTML blocks**
|
||||||
|
* 🧩 **Layouts = reusable PHP render templates**
|
||||||
|
* 🖼️ **Templates = page-level views linked to custom admin/site views**
|
||||||
|
* 📦 **Libraries = JS/CSS assets linked to UI**
|
||||||
|
* 🌐 **CDN/local toggle for library delivery**
|
||||||
|
* 📁 **Media folder injection with override support**
|
||||||
|
* 🔧 **Repository push/pull/reset workflow**
|
||||||
|
* 📥 **Init snippets/layouts/templates via GUI**
|
||||||
|
|
||||||
|
### 📚 Documentation & Metadata
|
||||||
|
|
||||||
|
* 📄 **Per-entity README auto-generation**
|
||||||
|
* 📑 **Markdown + PHPDoc docblock support**
|
||||||
|
* 🧾 **Internal documentation tables**
|
||||||
|
* 🔄 **Update version history logs per entity**
|
||||||
|
* 🧠 **Field reference mapping table output**
|
||||||
|
* 📘 **Auto-documented component structure**
|
||||||
|
|
||||||
|
### 📊 Analytics & Insights
|
||||||
|
|
||||||
|
* 📈 **Track last build, size, line count, field count**
|
||||||
|
* 🔄 **Compare current vs previous builds**
|
||||||
|
* 🧠 **Export component metadata as JSON**
|
||||||
|
* 🗃️ **Stats per model/view**
|
||||||
|
* 📁 **Total file/folder/line counters**
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 Get Started Now
|
||||||
|
|
||||||
|
* 🔽 **Download**: [Stable Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) · [Nightly J5](https://git.vdm.dev/joomla/pkg-component-builder/archive/5.x.zip) · [Nightly J4](https://git.vdm.dev/joomla/pkg-component-builder/archive/4.x.zip)
|
||||||
|
* 📥 **Install**: Use Joomla's extension manager
|
||||||
|
* 🎓 **Learn**: [Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE) · [How to Install Demo Blueprints](https://vdm.bz/how-to-install-jcb-packages)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤝 Get Help & Join the Community
|
||||||
|
|
||||||
|
* 💬 [GitHub Discussions](https://github.com/orgs/joomengine/discussions)
|
||||||
|
* 🐛 [Report Issues](https://git.vdm.dev/joomla/Component-Builder/issues)
|
||||||
|
* 📚 [JCB Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki)
|
||||||
|
* 👨🏫 [Video Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE)
|
||||||
|
* 🇩🇪 [German Series](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wu0tDFxJtZFwW7AxA4JHQV7)
|
||||||
|
* 🔔 [Telegram Groups](https://t.me/jcb_group) · [Announcements](https://t.me/Joomla_component_builder)
|
||||||
|
* 📶 [Status](https://status.vdm.dev/status/jcb)
|
||||||
|
* 🛡️ [Security Reports](https://www.vdm.io/report-security-issues)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌱 Why It's Free
|
||||||
|
|
||||||
|
JCB is developed by developers for developers. Its purpose is to democratize high-performance Joomla development by empowering everyone — from solo builders to large teams — to work with clean, scalable, maintainable, and versionable code. This isn't a template generator — it's a full-scale **extension engineering platform**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧩 Component Metadata
|
||||||
|
|
||||||
|
* **Company:** [Vast Development Method](https://dev.vdm.io)
|
||||||
|
* **Author:** [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
||||||
|
* **Component:** [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
||||||
|
* **Created:** 30th April, 2015 · **Last Build:** 3rd July, 2025 · **Version:** 4.1.1
|
||||||
|
* **License:** GNU General Public License version 2 or later; see LICENSE.txt · **Copyright:** Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
|
* **Lines:** 1086395 · **Fields:** 2090 · **Files:** 7357 · **Folders:** 716
|
||||||
|
|
||||||
|
> Generated with [JCB](https://www.joomlacomponentbuilder.com) — The Smartest Way to Build Joomla Extensions.
|
||||||
|
|
||||||
|
|
||||||
## Contributors
|
## Contributors
|
||||||
|
327
admin/README.txt
327
admin/README.txt
@ -1,160 +1,239 @@
|
|||||||
|
|
||||||
# Joomla Component Builder ([JCB](https://www.joomlacomponentbuilder.com))
|
# Joomla Component Builder ([JCB](https://www.joomlacomponentbuilder.com))
|
||||||
|
|
||||||
This is a [Joomla 4.x](https://extensions.joomla.org/extension/component-builder/) component. [__See In Action__](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|

|
||||||
|
|
||||||

|
This is a professional-grade [Joomla 4.x](https://extensions.joomla.org/extension/component-builder/) component, created with [Joomla Component Builder (JCB)](https://www.joomlacomponentbuilder.com)—a uniquely advanced development engine for building and maintaining complete Joomla extensions.
|
||||||
|
|
||||||
The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.
|
> 🎥 [Original... Quick Hello World Demo](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45), yes JCB has been around for over a decade.
|
||||||
|
|
||||||
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
|
JCB generates native Joomla components, plugins, and modules for Joomla 3.x, 4.x, and 5.x - and is already prepared for Joomla 6. Every compiled project is tailored for the specific version without needing backward compatibility plugins. With integrated version-aware compiling, smart boilerplating, and Git-powered project syncing, JCB is much more than a code generator-it's a **full-stack development pipeline for Joomla extensions**.
|
||||||
|
|
||||||
You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (4.1.0) with **ALL** its features and **ALL** concepts totally open-source and free!
|
You can install this component easily. The latest release (**4.1.1**) is available on [Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) and updated frequently with full source access.
|
||||||
|
|
||||||
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
Upgrades are seamless through Joomla's built-in extension update mechanism.
|
||||||
|
|
||||||
Once installed upgrades are quick and easy via the default [Joomla](https://extensions.joomla.org/extension/component-builder/) upgrade area.
|
---
|
||||||
|
|
||||||
Some of the Features
|
## 🚀 Core Capabilities at a Glance
|
||||||
====================
|
|
||||||
|
|
||||||
+ Fetch Code from IDE and place it back in component during next compilation.
|
Here are just some of the key powers JCB brings:
|
||||||
+ Add [Joomla custom fields](https://www.youtube.com/watch?v=n5RBmP0uNCM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=75) in any of your components.
|
|
||||||
+ Add you [own dashboard](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=60) in the back-end.
|
|
||||||
+ [Dynamic File and Folder](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=56) Inclusion concept.
|
|
||||||
+ [Easy Translation](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=51) via excel.
|
|
||||||
+ Adding your [own rule validation](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=46) to a field in [JCB](https://www.joomlacomponentbuilder.com)
|
|
||||||
+ [Automated backup system](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=40) in [JCB](https://www.joomlacomponentbuilder.com).
|
|
||||||
+ Adding mySQL Dump to any View/Table.
|
|
||||||
+ Grab existing Table data and build a dynamic dump.
|
|
||||||
+ Unlimited [Joomla](https://extensions.joomla.org/extension/component-builder/) Components.
|
|
||||||
+ Unlimited Tables/Views.
|
|
||||||
+ Reusing Views and Fields.
|
|
||||||
+ Runs on Your Own [Joomla](https://extensions.joomla.org/extension/component-builder/) Install.
|
|
||||||
+ Add Dynamic/custom back-end views that uses Table and Chart result sets.
|
|
||||||
+ Build data query of extreme complex nature to use in Dynamic/custom views.
|
|
||||||
+ Highly Dynamic/custom Front-end Structures.
|
|
||||||
+ Dynamically setup templates and layouts for Front-end design.
|
|
||||||
+ Integration of the excellent UIKIT lib.
|
|
||||||
+ Integration of the excellent FOOTABLE lib.
|
|
||||||
+ All [Joomla](https://extensions.joomla.org/extension/component-builder/) Standard Field Types (including subforms).
|
|
||||||
+ Strong Implementation of all [Joomla](https://extensions.joomla.org/extension/component-builder/) Form Security.
|
|
||||||
+ Load data via ajax with ease.
|
|
||||||
+ You can add an Update Server to Components you build.
|
|
||||||
+ Build advanced Dynamic front-end forms.
|
|
||||||
+ Dynamic data queries from multiple tables.
|
|
||||||
+ Place in local GIT folder, and publish to sales server.
|
|
||||||
+ Include any amount of custom files and folders during build.
|
|
||||||
+ Static helper class with smart methods already included.
|
|
||||||
+ Static helper methods Can easily be added.
|
|
||||||
+ Direct install from compiler view.
|
|
||||||
+ Integrative with native [Joomla](https://extensions.joomla.org/extension/component-builder/) Categories and Tags.
|
|
||||||
+ Fully Dynamic Search Friendly URL Auto Implementation.
|
|
||||||
+ Custom scripting options all over the MVC structure.
|
|
||||||
+ Permission implementation down to each view, item and field.
|
|
||||||
+ Easy extendible to include other libraries.
|
|
||||||
+ Can include SQL and visioning update link to distribute your component updates via [Joomla](https://extensions.joomla.org/extension/component-builder/) default upgrade of components.
|
|
||||||
+ Easy Export & Import addon to all backend-tables.
|
|
||||||
+ Overriding ability of import concepts in all backend-tables.
|
|
||||||
+ The Batch and Filter implementation on all backend-list views.
|
|
||||||
+ This and much much more are all possible with this component builder!
|
|
||||||
|
|
||||||
Just Imagine
|
* 🔁 **Bi-Directional IDE Sync** - Fetch custom logic from compiled projects and reintegrate on rebuild.
|
||||||
====================
|
* 🧱 **Build Joomla Components, Plugins, and Modules** - Fully native and independently compiled.
|
||||||
|
* 🧠 **Superpowers (PHP Class Builder)** - Create namespaced abstract, interface, and trait-based PHP classes visually.
|
||||||
|
* 🔌 **Joomla Powers** - Intelligent Joomla class referencing via dynamic placeholders (JPKs) that adapt to Joomla versions.
|
||||||
|
* 🗃️ **Smart Boilerplating** - Start fast with 6+ curated demo blueprints for instant use or customization.
|
||||||
|
* 🔂 **Round-Trip Development** - Add, update, and persist changes across compiled code using insert/replace tags.
|
||||||
|
* 🔐 **Field Types Engine** - Blueprint reusable Joomla-native fields with constraints, security, DB structure, and logic.
|
||||||
|
* 🧬 **Admin Views, Custom Admin Views & Site Views** - Fine-grained design for structured or dynamic backend/front-end UIs.
|
||||||
|
* 🧮 **Dynamic GET Builder** - Advanced visual query designer for cross-table, filter-rich, deeply joined SQL fetches.
|
||||||
|
* 💡 **Snippets, Layouts, Templates & Libraries** - Shareable GUI-linked modules for reusable HTML/CSS/JS integration.
|
||||||
|
* 🧰 **Custom Code System** - Write logic once and reuse anywhere; full support for HTML & PHP placeholders and tracking.
|
||||||
|
* 🛠️ **Multi-Version Compilation** - Compile version-specific code for J3, J4, J5 without compatibility bloat.
|
||||||
|
* 📦 **Package Management** - Export/import blueprints, version control builds, sync with Git, and distribute clean packages.
|
||||||
|
* 🖥️ **CLI Integration** - Build commands natively via terminal using Joomla's CLI runner.
|
||||||
|
* 🌐 **Update Server Support** - Integrate custom update mechanisms for extensions post-deployment.
|
||||||
|
|
||||||
+ Your Component Back-end can be more advanced then the [Joomla](https://extensions.joomla.org/extension/component-builder/) Article Manager.
|
<details>
|
||||||
+ Your Code as Perfectly Unified to the strict [Joomla](https://extensions.joomla.org/extension/component-builder/) Standards.
|
<summary>📚 View 100+ Additional Advanced Features</summary>
|
||||||
+ Adding Custom Scripting almost anywhere in the MVC structure.
|
|
||||||
+ Import and export feature to all backend-views.
|
|
||||||
+ Batch copy and move/update feature for all backend-views.
|
|
||||||
+ History tracking per/change made on any back-end item.
|
|
||||||
+ Dynamic field control, to show and hide fields in amazing ways.
|
|
||||||
+ Front-end freedom of design that allows for any library to be used.
|
|
||||||
+ This and much much more are all possible with this component builder!
|
|
||||||
|
|
||||||
You are in Control
|
### 🧩 Architecture & Core Logic
|
||||||
====================
|
|
||||||
|
|
||||||
+ You can change the licensing template for your components.
|
* 🧠 **Super Powers**: Namespaced PHP classes (interfaces, traits, abstracts, finals) managed from GUI
|
||||||
+ You can change/improve existing field types and add more.
|
* 🔌 **Joomla Powers**: Dynamic Joomla class resolution via JPK placeholders per Joomla version
|
||||||
+ Line numbers to show where in compiler was the code build.
|
* 🧱 **Compile native Components, Plugins & Modules** in one unified workflow
|
||||||
+ You can improve the component since all code are open-source.
|
* 🔀 **Multi-version support** (J3, J4, J5, J6-ready) with per-version compilation
|
||||||
+ Free updates for the lifetime of the project.
|
* 🚦 **Conditional logic injection** in models, views, controllers
|
||||||
+ You can dynamically add internal help structures to all component.
|
* 🧬 **Reusable Admin Views** across multiple components
|
||||||
+ There is no limitations on how big or how much you want to build (server limitation only).
|
* 🧠 **Dynamic GET Builder** for visual cross-table queries
|
||||||
+ This is a complete factory kind of component that functions like a deployment hub.
|
* 🔄 **Round-trip code integration** with file-to-database inserts/replaces
|
||||||
+ Export any component completely mapped in [JCB](https://www.joomlacomponentbuilder.com) and import into another [JCB](https://www.joomlacomponentbuilder.com).
|
* 🧬 **Custom Admin Views** with full MVC override power
|
||||||
+ This and much much more are all possible with this component builder!
|
* 🧩 **Site Views** supporting public display of data with custom logic
|
||||||
|
* 📊 **Dynamic dashboards** built via custom admin view chart helpers
|
||||||
|
* 🔗 **Model linking between views** using subforms and dynamic selectors
|
||||||
|
* 🧩 **Shared field reuse across views** and components
|
||||||
|
* 📥 **Drag & Drop field mapping** for layout and logic assignment
|
||||||
|
* 🎯 **Dynamic Field Visibility** conditions via GUI
|
||||||
|
* 📦 **Independent packaging** of views and logic for reuse
|
||||||
|
|
||||||
Get More Demo Content
|
### 📁 File & Code Management
|
||||||
====================
|
|
||||||
|
|
||||||
> You can now get access to the WOW factor, [JCB](https://www.joomlacomponentbuilder.com) fully mapped can now be yours! Including many other [JCB](https://www.joomlacomponentbuilder.com) mapped components.
|
* 🧾 **Insert/Replace tags** for persistent file overrides
|
||||||
|
* 🗃️ **PHP & HTML custom code injection** via placeholder system
|
||||||
|
* 🛠️ **Automatic file synchronization** on rebuild
|
||||||
|
* 🧮 **Reverse string parser** to restore lang strings back to natural text
|
||||||
|
* 📋 **Line tracking** to see where code was compiled from
|
||||||
|
* 🗂️ **Smart override detection** and conflict management
|
||||||
|
* 🔍 **Compiler debug tracking**
|
||||||
|
* ✍️ **Dynamic use-statement generation** with alias auto-resolving
|
||||||
|
* 💾 **Auto language string export** from templates & views
|
||||||
|
* 🧰 **Helper classes and static utilities** included by default
|
||||||
|
|
||||||
### All you need to do is [explained here](https://vdm.bz/how-to-get-free-vdm-package-keys)!
|
### 🧠 Code Reuse & Blueprints
|
||||||
|
|
||||||
To install these packages [watch this tutorial](https://vdm.bz/how-to-install-jcb-packages).
|
* 🧱 **Demo component blueprints** for rapid prototyping
|
||||||
|
* 🔁 **Blueprint export/import** via JSON or Git sync
|
||||||
|
* 📎 **Shared field types** serve as field templates
|
||||||
|
* 🧪 **Test-friendly compiler mode** for internal checking
|
||||||
|
* 🧩 **Template-based file creation** with dynamic variables
|
||||||
|
* 📚 **Smart template merging** for updates
|
||||||
|
* 🚧 **Field definitions drive DB schema**
|
||||||
|
* 🎛️ **Custom scripting per field** on get/save
|
||||||
|
* 🔀 **Field view-type override (admin vs config)**
|
||||||
|
|
||||||
|
### 🌐 Joomla CMS Integration
|
||||||
|
|
||||||
Where can you get support and help?
|
* 🛡️ **Token integration** via Joomla methods
|
||||||
====================
|
* 🔐 **ACL per view, field, item**
|
||||||
|
* 🧾 **Field-based Joomla config generation**
|
||||||
|
* 📘 **Support for Joomla categories/tags/custom fields**
|
||||||
|
* ⚙️ **CLI-ready components** with native terminal support
|
||||||
|
* 🛰️ **Joomla Update Server integration**
|
||||||
|
* 🧪 **Version-aware language string compilation**
|
||||||
|
* 📤 **Remote publishing to custom repo update streams**
|
||||||
|
|
||||||
- [Package](https://git.vdm.dev/joomla/pkg-component-builder).
|
### 🧠 Visual GUI & UX
|
||||||
- [Download](https://git.vdm.dev/joomla/pkg-component-builder/archive/master.zip).
|
|
||||||
- [Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE).
|
|
||||||
- [German](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wu0tDFxJtZFwW7AxA4JHQV7).
|
|
||||||
- [Hello World](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45).
|
|
||||||
- [Discussions](https://github.com/vdm-io/Joomla-Component-Builder/discussions).
|
|
||||||
- [Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki).
|
|
||||||
- [Issues](https://git.vdm.dev/joomla/Component-Builder/issues). ^^
|
|
||||||
- [Issues Stream](https://t.me/jcb_issues).
|
|
||||||
- [Updates](https://t.me/jcb_updates).
|
|
||||||
- [User Group](https://t.me/jcb_group).
|
|
||||||
- [Announcement](https://t.me/Joomla_component_builder).
|
|
||||||
- [Beta](https://git.vdm.dev/joomla-beta/pkg-component-builder).
|
|
||||||
- [Nightly Build](https://git.vdm.dev/joomla-beta/pkg-component-builder/archive/master.zip).
|
|
||||||
- [Community Complaint](https://www.joomlacomponentbuilder.com/community-complaint).
|
|
||||||
- [Security](https://www.vdm.io/report-security-issues).
|
|
||||||
|
|
||||||
^^ Then if you run into any issues, related to the [JCB](https://git.vdm.dev/joomla/Component-Builder/issues) code, like bugs, **start by searching** the (*open & closed*) issues over on [Gitea](https://git.vdm.dev/joomla/Component-Builder/issues), and if the issue has not been mentioned before, **then only** open a new issue, following the [community guidelines](https://git.vdm.dev/joomla/Component-Builder/src/branch/master/.github/CONTRIBUTING.md).
|
* 🎨 **Layout builder** with inline layout reusability
|
||||||
|
* 📁 **Template builder** with overrides
|
||||||
|
* 🧠 **Snippets GUI** for code blocks linked to layouts/templates
|
||||||
|
* 📚 **Custom documentation sections** linked into generated components
|
||||||
|
* 🧬 **Field injection points in layout/template snippets**
|
||||||
|
* 🔁 **Dynamic reload on selection change** via JavaScript binding
|
||||||
|
* 📦 **Reusable custom admin view templates**
|
||||||
|
* 🧠 **JS callback logic on field events**
|
||||||
|
* 📄 **Inline help descriptions** from config
|
||||||
|
* 🖱️ **Custom admin menus** and dashboard menu builders
|
||||||
|
|
||||||
WHY GIVE IT AWAY LIKE THIS?
|
### 🌍 Internationalization
|
||||||
====================
|
|
||||||
|
|
||||||
> We are Open Source Enthusiast
|
* 🌐 **Excel import/export for language strings**
|
||||||
> Who Support the [Joomla](https://extensions.joomla.org/extension/component-builder/) Community
|
* 📁 **Per-field language control**
|
||||||
|
* 🧾 **Language string auto-indexing**
|
||||||
|
* 🔁 **Reverse engineering of language constants**
|
||||||
|
* 🧠 **Per-Joomla-version lang key mapping**
|
||||||
|
* 🔧 **GUI to rewrite or update lang string context**
|
||||||
|
|
||||||
Our idea was to almost let this tool serve as a cheat sheet to how things can be done... and with the help of other developers end up formulating the way how things not only can, but must be done to insure secure, stable, scalable and maintainable code is produced.
|
### 📦 Packaging & Distribution
|
||||||
|
|
||||||
MAKING IT BETTER!
|
* 📤 **Push component to Git repo**
|
||||||
====================
|
* 🔄 **Auto-compile and auto-tag packages**
|
||||||
|
* 🗂️ **Blueprints stored and versioned by metadata**
|
||||||
|
* 🎁 **Auto-generated changelog from commits**
|
||||||
|
* 🔐 **Signed zip packaging supported**
|
||||||
|
* 📬 **Component update URLs via GUI settings**
|
||||||
|
* 🏷️ **Version-aware build ID assignment**
|
||||||
|
|
||||||
Get involved on the forums, and the Gitea issues, and you can even help us develop/improve the pipeline of [JCB](https://www.joomlacomponentbuilder.com) for continues delivery. We really want to see [JCB](https://www.joomlacomponentbuilder.com) remain the tool of choice for all [Joomla Component Development](https://extensions.joomla.org/extension/component-builder/) needs and ideas.
|
### ⚙️ Compiler Engine Features
|
||||||
|
|
||||||
TODO
|
* ⚡ **Under-30-second build time** on large components
|
||||||
======
|
* 📦 **Memory-optimized ZIP builder**
|
||||||
|
* 🔁 **Repeatable fields** via subform templates
|
||||||
|
* 💥 **Fail-safe error protection** and rollback
|
||||||
|
* 🔍 **Detailed compiler logs with stack trace and UUIDs**
|
||||||
|
* 📃 **Build summary report** after compilation
|
||||||
|
|
||||||
- Add automatic unit testing. To nurture pipeline integration for all components build with [JCB](https://www.joomlacomponentbuilder.com).
|
### 🧱 Custom Code System (Powerful Dual Feature)
|
||||||
- Team collaborative development across [JCB](https://www.joomlacomponentbuilder.com) installations offline and online.
|
|
||||||
- Documentation (maintained by the community) for [JCB](https://www.joomlacomponentbuilder.com). (help us select the best system for this)
|
|
||||||
|
|
||||||
# Build Details
|
* 🔧 **Universal reusable code blocks** (inject anywhere by key)
|
||||||
|
* 🪄 **Update detection & visual diffing** on reused code
|
||||||
|
* 🧬 **Multi-context custom code binding**
|
||||||
|
* 📄 **Dynamic placeholder variable injection**
|
||||||
|
* 🔁 **Nested custom code support**
|
||||||
|
* 🔥 **Advanced compiler hooks per code block**
|
||||||
|
* 🧠 **Round-trip tag tracking in PHP/HTML**
|
||||||
|
* 📜 [Learn more about this here](https://git.vdm.dev/joomla/Component-Builder/wiki/TIPS:-Custom-Code)
|
||||||
|
|
||||||
+ *Community*: [Vast Development Method](https://dev.vdm.io)
|
### 🛠 Field Type System
|
||||||
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
|
||||||
+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
|
||||||
+ *First Build*: 30th April, 2015
|
|
||||||
+ *Last Build*: 14th February, 2025
|
|
||||||
+ *Version*: 4.1.0
|
|
||||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
|
||||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
|
||||||
+ *Line count*: **947530**
|
|
||||||
+ *Field count*: **2092**
|
|
||||||
+ *File count*: **6369**
|
|
||||||
+ *Folder count*: **628**
|
|
||||||
|
|
||||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
|
* 🧬 **Field types define templates and data types**
|
||||||
> Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
* 💡 **GUI-defined rules (required, unique, nullable)**
|
||||||
|
* 🧠 **Save/get hooks per field**
|
||||||
|
* 🛡️ **Database schema auto-generated from field settings**
|
||||||
|
* 📄 **Per-display field rendering config (list/edit)**
|
||||||
|
* 🧩 **Create dynamic models with modals/selectors**
|
||||||
|
* 🧠 **Conditional JS & CSS per field**
|
||||||
|
|
||||||
|
### 📐 Dynamic GET (Visual SQL Engine)
|
||||||
|
|
||||||
|
* 📊 **Design complex joins from GUI**
|
||||||
|
* 🧠 **Multiple GETs per view**
|
||||||
|
* 🔄 **Reusable query sets**
|
||||||
|
* 🧾 **Where/group/order statements supported**
|
||||||
|
* 📃 **Auto model method generation**
|
||||||
|
* 🔧 **Switch between list/item GETs**
|
||||||
|
* 🛡️ **Output Joomla-native query builder logic**
|
||||||
|
|
||||||
|
### 📁 Snippets, Templates, Layouts, Libraries
|
||||||
|
|
||||||
|
* 🧠 **Snippets = reusable HTML blocks**
|
||||||
|
* 🧩 **Layouts = reusable PHP render templates**
|
||||||
|
* 🖼️ **Templates = page-level views linked to custom admin/site views**
|
||||||
|
* 📦 **Libraries = JS/CSS assets linked to UI**
|
||||||
|
* 🌐 **CDN/local toggle for library delivery**
|
||||||
|
* 📁 **Media folder injection with override support**
|
||||||
|
* 🔧 **Repository push/pull/reset workflow**
|
||||||
|
* 📥 **Init snippets/layouts/templates via GUI**
|
||||||
|
|
||||||
|
### 📚 Documentation & Metadata
|
||||||
|
|
||||||
|
* 📄 **Per-entity README auto-generation**
|
||||||
|
* 📑 **Markdown + PHPDoc docblock support**
|
||||||
|
* 🧾 **Internal documentation tables**
|
||||||
|
* 🔄 **Update version history logs per entity**
|
||||||
|
* 🧠 **Field reference mapping table output**
|
||||||
|
* 📘 **Auto-documented component structure**
|
||||||
|
|
||||||
|
### 📊 Analytics & Insights
|
||||||
|
|
||||||
|
* 📈 **Track last build, size, line count, field count**
|
||||||
|
* 🔄 **Compare current vs previous builds**
|
||||||
|
* 🧠 **Export component metadata as JSON**
|
||||||
|
* 🗃️ **Stats per model/view**
|
||||||
|
* 📁 **Total file/folder/line counters**
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 Get Started Now
|
||||||
|
|
||||||
|
* 🔽 **Download**: [Stable Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) · [Nightly J5](https://git.vdm.dev/joomla/pkg-component-builder/archive/5.x.zip) · [Nightly J4](https://git.vdm.dev/joomla/pkg-component-builder/archive/4.x.zip)
|
||||||
|
* 📥 **Install**: Use Joomla's extension manager
|
||||||
|
* 🎓 **Learn**: [Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE) · [How to Install Demo Blueprints](https://vdm.bz/how-to-install-jcb-packages)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤝 Get Help & Join the Community
|
||||||
|
|
||||||
|
* 💬 [GitHub Discussions](https://github.com/orgs/joomengine/discussions)
|
||||||
|
* 🐛 [Report Issues](https://git.vdm.dev/joomla/Component-Builder/issues)
|
||||||
|
* 📚 [JCB Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki)
|
||||||
|
* 👨🏫 [Video Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE)
|
||||||
|
* 🇩🇪 [German Series](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wu0tDFxJtZFwW7AxA4JHQV7)
|
||||||
|
* 🔔 [Telegram Groups](https://t.me/jcb_group) · [Announcements](https://t.me/Joomla_component_builder)
|
||||||
|
* 📶 [Status](https://status.vdm.dev/status/jcb)
|
||||||
|
* 🛡️ [Security Reports](https://www.vdm.io/report-security-issues)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌱 Why It's Free
|
||||||
|
|
||||||
|
JCB is developed by developers for developers. Its purpose is to democratize high-performance Joomla development by empowering everyone — from solo builders to large teams — to work with clean, scalable, maintainable, and versionable code. This isn't a template generator — it's a full-scale **extension engineering platform**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧩 Component Metadata
|
||||||
|
|
||||||
|
* **Company:** [Vast Development Method](https://dev.vdm.io)
|
||||||
|
* **Author:** [Llewellyn van der Merwe](mailto:joomla@vdm.io)
|
||||||
|
* **Component:** [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
|
||||||
|
* **Created:** 30th April, 2015 · **Last Build:** 3rd July, 2025 · **Version:** 4.1.1
|
||||||
|
* **License:** GNU General Public License version 2 or later; see LICENSE.txt · **Copyright:** Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
|
* **Lines:** 1086395 · **Fields:** 2090 · **Files:** 7357 · **Folders:** 716
|
||||||
|
|
||||||
|
> Generated with [JCB](https://www.joomlacomponentbuilder.com) — The Smartest Way to Build Joomla Extensions.
|
||||||
|
|
||||||
|
|
||||||
## Contributors
|
## Contributors
|
||||||
|
@ -13,6 +13,9 @@
|
|||||||
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_COMPONENT_DESC" />
|
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_COMPONENT_DESC" />
|
||||||
<action name="core.edit.created_by" title="COM_COMPONENTBUILDER_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_EDIT_CREATED_BY_DESC" />
|
<action name="core.edit.created_by" title="COM_COMPONENTBUILDER_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_EDIT_CREATED_BY_DESC" />
|
||||||
<action name="core.edit.created" title="COM_COMPONENTBUILDER_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_EDIT_CREATED_DATE_DESC" />
|
<action name="core.edit.created" title="COM_COMPONENTBUILDER_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_EDIT_CREATED_DATE_DESC" />
|
||||||
|
<action name="admin_view.init" title="COM_COMPONENTBUILDER_ADMIN_VIEW_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_ADMIN_VIEW_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="admin_view.push" title="COM_COMPONENTBUILDER_ADMIN_VIEW_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_ADMIN_VIEW_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="admin_view.reset" title="COM_COMPONENTBUILDER_ADMIN_VIEW_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_ADMIN_VIEW_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="admin_view.access" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS_DESC" />
|
<action name="admin_view.access" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_ACCESS_DESC" />
|
||||||
<action name="admin_view.batch" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE_DESC" />
|
<action name="admin_view.batch" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_BATCH_USE_DESC" />
|
||||||
<action name="admin_view.create" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE_DESC" />
|
<action name="admin_view.create" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_CREATE_DESC" />
|
||||||
@ -75,6 +78,12 @@
|
|||||||
<action name="class_extends.edit.own" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_OWN" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_OWN_DESC" />
|
<action name="class_extends.edit.own" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_OWN" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_OWN_DESC" />
|
||||||
<action name="class_extends.edit.state" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE_DESC" />
|
<action name="class_extends.edit.state" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE_DESC" />
|
||||||
<action name="class_extends.version" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION_DESC" />
|
<action name="class_extends.version" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION_DESC" />
|
||||||
|
<action name="class_extends.init" title="COM_COMPONENTBUILDER_CLASS_EXTENDS_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CLASS_EXTENDS_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="class_extends.push" title="COM_COMPONENTBUILDER_CLASS_EXTENDS_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CLASS_EXTENDS_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="class_extends.reset" title="COM_COMPONENTBUILDER_CLASS_EXTENDS_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CLASS_EXTENDS_RESET_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="class_method.init" title="COM_COMPONENTBUILDER_CLASS_METHOD_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CLASS_METHOD_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="class_method.push" title="COM_COMPONENTBUILDER_CLASS_METHOD_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CLASS_METHOD_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="class_method.reset" title="COM_COMPONENTBUILDER_CLASS_METHOD_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CLASS_METHOD_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="class_method.access" title="COM_COMPONENTBUILDER_CLASS_METHODS_ACCESS" description="COM_COMPONENTBUILDER_CLASS_METHODS_ACCESS_DESC" />
|
<action name="class_method.access" title="COM_COMPONENTBUILDER_CLASS_METHODS_ACCESS" description="COM_COMPONENTBUILDER_CLASS_METHODS_ACCESS_DESC" />
|
||||||
<action name="class_method.batch" title="COM_COMPONENTBUILDER_CLASS_METHODS_BATCH_USE" description="COM_COMPONENTBUILDER_CLASS_METHODS_BATCH_USE_DESC" />
|
<action name="class_method.batch" title="COM_COMPONENTBUILDER_CLASS_METHODS_BATCH_USE" description="COM_COMPONENTBUILDER_CLASS_METHODS_BATCH_USE_DESC" />
|
||||||
<action name="class_method.create" title="COM_COMPONENTBUILDER_CLASS_METHODS_CREATE" description="COM_COMPONENTBUILDER_CLASS_METHODS_CREATE_DESC" />
|
<action name="class_method.create" title="COM_COMPONENTBUILDER_CLASS_METHODS_CREATE" description="COM_COMPONENTBUILDER_CLASS_METHODS_CREATE_DESC" />
|
||||||
@ -95,6 +104,9 @@
|
|||||||
<action name="class_property.edit.own" title="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_OWN" description="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_OWN_DESC" />
|
<action name="class_property.edit.own" title="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_OWN" description="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_OWN_DESC" />
|
||||||
<action name="class_property.edit.state" title="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_STATE" description="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_STATE_DESC" />
|
<action name="class_property.edit.state" title="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_STATE" description="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_STATE_DESC" />
|
||||||
<action name="class_property.version" title="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_VERSION" description="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_VERSION_DESC" />
|
<action name="class_property.version" title="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_VERSION" description="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_VERSION_DESC" />
|
||||||
|
<action name="class_property.init" title="COM_COMPONENTBUILDER_CLASS_PROPERTY_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CLASS_PROPERTY_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="class_property.push" title="COM_COMPONENTBUILDER_CLASS_PROPERTY_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CLASS_PROPERTY_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="class_property.reset" title="COM_COMPONENTBUILDER_CLASS_PROPERTY_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CLASS_PROPERTY_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="compiler.access" title="COM_COMPONENTBUILDER_COMPILER_ACCESS" description="COM_COMPONENTBUILDER_COMPILER_ACCESS_DESC" />
|
<action name="compiler.access" title="COM_COMPONENTBUILDER_COMPILER_ACCESS" description="COM_COMPONENTBUILDER_COMPILER_ACCESS_DESC" />
|
||||||
<action name="compiler.clear_tmp" title="COM_COMPONENTBUILDER_COMPILER_CLEAR_TMP_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_COMPILER_CLEAR_TMP_BUTTON_ACCESS_DESC" />
|
<action name="compiler.clear_tmp" title="COM_COMPONENTBUILDER_COMPILER_CLEAR_TMP_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_COMPILER_CLEAR_TMP_BUTTON_ACCESS_DESC" />
|
||||||
<action name="compiler.compiler_animations" title="COM_COMPONENTBUILDER_COMPILER_COMPILER_ANIMATIONS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_COMPILER_COMPILER_ANIMATIONS_BUTTON_ACCESS_DESC" />
|
<action name="compiler.compiler_animations" title="COM_COMPONENTBUILDER_COMPILER_COMPILER_ANIMATIONS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_COMPILER_COMPILER_ANIMATIONS_BUTTON_ACCESS_DESC" />
|
||||||
@ -230,13 +242,17 @@
|
|||||||
<action name="component_updates.edit.own" title="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_OWN" description="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_OWN_DESC" />
|
<action name="component_updates.edit.own" title="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_OWN" description="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_OWN_DESC" />
|
||||||
<action name="component_updates.edit.state" title="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_STATE" description="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_STATE_DESC" />
|
<action name="component_updates.edit.state" title="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_STATE" description="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_STATE_DESC" />
|
||||||
<action name="component_updates.version" title="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_VERSION" description="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_VERSION_DESC" />
|
<action name="component_updates.version" title="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_VERSION" description="COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_VERSION_DESC" />
|
||||||
<action name="custom_admin_view.get_snippets" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_GET_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_GET_SNIPPETS_BUTTON_ACCESS_DESC" />
|
<action name="custom_admin_view.init" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="custom_admin_view.push" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="custom_admin_view.reset" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="custom_admin_view.access" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_ACCESS_DESC" />
|
<action name="custom_admin_view.access" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_ACCESS_DESC" />
|
||||||
<action name="custom_admin_view.batch" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE_DESC" />
|
<action name="custom_admin_view.batch" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_BATCH_USE_DESC" />
|
||||||
<action name="custom_admin_view.dashboard_list" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST_DESC" />
|
<action name="custom_admin_view.dashboard_list" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST_DESC" />
|
||||||
<action name="custom_admin_view.version" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION_DESC" />
|
<action name="custom_admin_view.version" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION_DESC" />
|
||||||
<action name="custom_admin_view.submenu" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_SUBMENU" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_SUBMENU_DESC" />
|
<action name="custom_admin_view.submenu" title="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_SUBMENU" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_SUBMENU_DESC" />
|
||||||
<action name="custom_code.run_expansion" title="COM_COMPONENTBUILDER_CUSTOM_CODE_RUN_EXPANSION_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_CODE_RUN_EXPANSION_BUTTON_ACCESS_DESC" />
|
<action name="custom_code.init" title="COM_COMPONENTBUILDER_CUSTOM_CODE_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_CODE_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="custom_code.push" title="COM_COMPONENTBUILDER_CUSTOM_CODE_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_CODE_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="custom_code.reset" title="COM_COMPONENTBUILDER_CUSTOM_CODE_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_CODE_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="custom_code.access" title="COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS_DESC" />
|
<action name="custom_code.access" title="COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS_DESC" />
|
||||||
<action name="custom_code.batch" title="COM_COMPONENTBUILDER_CUSTOM_CODES_BATCH_USE" description="COM_COMPONENTBUILDER_CUSTOM_CODES_BATCH_USE_DESC" />
|
<action name="custom_code.batch" title="COM_COMPONENTBUILDER_CUSTOM_CODES_BATCH_USE" description="COM_COMPONENTBUILDER_CUSTOM_CODES_BATCH_USE_DESC" />
|
||||||
<action name="custom_code.create" title="COM_COMPONENTBUILDER_CUSTOM_CODES_CREATE" description="COM_COMPONENTBUILDER_CUSTOM_CODES_CREATE_DESC" />
|
<action name="custom_code.create" title="COM_COMPONENTBUILDER_CUSTOM_CODES_CREATE" description="COM_COMPONENTBUILDER_CUSTOM_CODES_CREATE_DESC" />
|
||||||
@ -249,6 +265,9 @@
|
|||||||
<action name="custom_code.edit.state" title="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_STATE" description="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_STATE_DESC" />
|
<action name="custom_code.edit.state" title="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_STATE" description="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_STATE_DESC" />
|
||||||
<action name="custom_code.version" title="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION" description="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION_DESC" />
|
<action name="custom_code.version" title="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION" description="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION_DESC" />
|
||||||
<action name="custom_code.submenu" title="COM_COMPONENTBUILDER_CUSTOM_CODES_SUBMENU" description="COM_COMPONENTBUILDER_CUSTOM_CODES_SUBMENU_DESC" />
|
<action name="custom_code.submenu" title="COM_COMPONENTBUILDER_CUSTOM_CODES_SUBMENU" description="COM_COMPONENTBUILDER_CUSTOM_CODES_SUBMENU_DESC" />
|
||||||
|
<action name="dynamic_get.init" title="COM_COMPONENTBUILDER_DYNAMIC_GET_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_DYNAMIC_GET_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="dynamic_get.push" title="COM_COMPONENTBUILDER_DYNAMIC_GET_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_DYNAMIC_GET_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="dynamic_get.reset" title="COM_COMPONENTBUILDER_DYNAMIC_GET_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_DYNAMIC_GET_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="dynamic_get.access" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS_DESC" />
|
<action name="dynamic_get.access" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS_DESC" />
|
||||||
<action name="dynamic_get.batch" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_BATCH_USE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_BATCH_USE_DESC" />
|
<action name="dynamic_get.batch" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_BATCH_USE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_BATCH_USE_DESC" />
|
||||||
<action name="dynamic_get.create" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_CREATE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_CREATE_DESC" />
|
<action name="dynamic_get.create" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_CREATE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_CREATE_DESC" />
|
||||||
@ -260,6 +279,9 @@
|
|||||||
<action name="dynamic_get.edit.state" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_STATE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_STATE_DESC" />
|
<action name="dynamic_get.edit.state" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_STATE" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_STATE_DESC" />
|
||||||
<action name="dynamic_get.version" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION_DESC" />
|
<action name="dynamic_get.version" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION_DESC" />
|
||||||
<action name="dynamic_get.submenu" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_SUBMENU" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_SUBMENU_DESC" />
|
<action name="dynamic_get.submenu" title="COM_COMPONENTBUILDER_DYNAMIC_GETS_SUBMENU" description="COM_COMPONENTBUILDER_DYNAMIC_GETS_SUBMENU_DESC" />
|
||||||
|
<action name="field.init" title="COM_COMPONENTBUILDER_FIELD_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_FIELD_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="field.push" title="COM_COMPONENTBUILDER_FIELD_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_FIELD_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="field.reset" title="COM_COMPONENTBUILDER_FIELD_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_FIELD_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="field.access" title="COM_COMPONENTBUILDER_FIELDS_ACCESS" description="COM_COMPONENTBUILDER_FIELDS_ACCESS_DESC" />
|
<action name="field.access" title="COM_COMPONENTBUILDER_FIELDS_ACCESS" description="COM_COMPONENTBUILDER_FIELDS_ACCESS_DESC" />
|
||||||
<action name="field.batch" title="COM_COMPONENTBUILDER_FIELDS_BATCH_USE" description="COM_COMPONENTBUILDER_FIELDS_BATCH_USE_DESC" />
|
<action name="field.batch" title="COM_COMPONENTBUILDER_FIELDS_BATCH_USE" description="COM_COMPONENTBUILDER_FIELDS_BATCH_USE_DESC" />
|
||||||
<action name="field.create" title="COM_COMPONENTBUILDER_FIELDS_CREATE" description="COM_COMPONENTBUILDER_FIELDS_CREATE_DESC" />
|
<action name="field.create" title="COM_COMPONENTBUILDER_FIELDS_CREATE" description="COM_COMPONENTBUILDER_FIELDS_CREATE_DESC" />
|
||||||
@ -284,13 +306,6 @@
|
|||||||
<action name="fieldtype.edit.state" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_STATE" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_STATE_DESC" />
|
<action name="fieldtype.edit.state" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_STATE" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_STATE_DESC" />
|
||||||
<action name="fieldtype.version" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION_DESC" />
|
<action name="fieldtype.version" title="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION" description="COM_COMPONENTBUILDER_FIELDTYPES_EDIT_VERSION_DESC" />
|
||||||
<action name="fieldtype.submenu" title="COM_COMPONENTBUILDER_FIELDTYPES_SUBMENU" description="COM_COMPONENTBUILDER_FIELDTYPES_SUBMENU_DESC" />
|
<action name="fieldtype.submenu" title="COM_COMPONENTBUILDER_FIELDTYPES_SUBMENU" description="COM_COMPONENTBUILDER_FIELDTYPES_SUBMENU_DESC" />
|
||||||
<action name="get_snippets.access" title="COM_COMPONENTBUILDER_GET_SNIPPETS_ACCESS" description="COM_COMPONENTBUILDER_GET_SNIPPETS_ACCESS_DESC" />
|
|
||||||
<action name="get_snippets.custom_admin_views" title="COM_COMPONENTBUILDER_GET_SNIPPETS_CUSTOM_ADMIN_VIEWS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_GET_SNIPPETS_CUSTOM_ADMIN_VIEWS_BUTTON_ACCESS_DESC" />
|
|
||||||
<action name="get_snippets.layouts" title="COM_COMPONENTBUILDER_GET_SNIPPETS_LAYOUTS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_GET_SNIPPETS_LAYOUTS_BUTTON_ACCESS_DESC" />
|
|
||||||
<action name="get_snippets.libraries" title="COM_COMPONENTBUILDER_GET_SNIPPETS_LIBRARIES_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_GET_SNIPPETS_LIBRARIES_BUTTON_ACCESS_DESC" />
|
|
||||||
<action name="get_snippets.site_views" title="COM_COMPONENTBUILDER_GET_SNIPPETS_SITE_VIEWS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_GET_SNIPPETS_SITE_VIEWS_BUTTON_ACCESS_DESC" />
|
|
||||||
<action name="get_snippets.snippets" title="COM_COMPONENTBUILDER_GET_SNIPPETS_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_GET_SNIPPETS_SNIPPETS_BUTTON_ACCESS_DESC" />
|
|
||||||
<action name="get_snippets.templates" title="COM_COMPONENTBUILDER_GET_SNIPPETS_TEMPLATES_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_GET_SNIPPETS_TEMPLATES_BUTTON_ACCESS_DESC" />
|
|
||||||
<action name="help_document.access" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS_DESC" />
|
<action name="help_document.access" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS_DESC" />
|
||||||
<action name="help_document.batch" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_BATCH_USE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_BATCH_USE_DESC" />
|
<action name="help_document.batch" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_BATCH_USE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_BATCH_USE_DESC" />
|
||||||
<action name="help_document.create" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_CREATE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_CREATE_DESC" />
|
<action name="help_document.create" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_CREATE" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_CREATE_DESC" />
|
||||||
@ -302,6 +317,9 @@
|
|||||||
<action name="help_document.version" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_VERSION" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_VERSION_DESC" />
|
<action name="help_document.version" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_VERSION" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_EDIT_VERSION_DESC" />
|
||||||
<action name="help_document.submenu" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_SUBMENU" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_SUBMENU_DESC" />
|
<action name="help_document.submenu" title="COM_COMPONENTBUILDER_HELP_DOCUMENTS_SUBMENU" description="COM_COMPONENTBUILDER_HELP_DOCUMENTS_SUBMENU_DESC" />
|
||||||
<action name="joomla_component.clear_tmp" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CLEAR_TMP_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CLEAR_TMP_BUTTON_ACCESS_DESC" />
|
<action name="joomla_component.clear_tmp" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CLEAR_TMP_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CLEAR_TMP_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="joomla_component.init" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="joomla_component.push" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="joomla_component.reset" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENT_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="joomla_component.access" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_ACCESS_DESC" />
|
<action name="joomla_component.access" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_ACCESS_DESC" />
|
||||||
<action name="joomla_component.batch" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_BATCH_USE_DESC" />
|
<action name="joomla_component.batch" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_BATCH_USE_DESC" />
|
||||||
<action name="joomla_component.create" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_CREATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_CREATE_DESC" />
|
<action name="joomla_component.create" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_CREATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_CREATE_DESC" />
|
||||||
@ -314,6 +332,9 @@
|
|||||||
<action name="joomla_component.edit.state" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_STATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_STATE_DESC" />
|
<action name="joomla_component.edit.state" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_STATE" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_STATE_DESC" />
|
||||||
<action name="joomla_component.version" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION_DESC" />
|
<action name="joomla_component.version" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_EDIT_VERSION_DESC" />
|
||||||
<action name="joomla_component.submenu" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU_DESC" />
|
<action name="joomla_component.submenu" title="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU" description="COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU_DESC" />
|
||||||
|
<action name="joomla_module.init" title="COM_COMPONENTBUILDER_JOOMLA_MODULE_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="joomla_module.push" title="COM_COMPONENTBUILDER_JOOMLA_MODULE_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="joomla_module.reset" title="COM_COMPONENTBUILDER_JOOMLA_MODULE_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="joomla_module.access" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_ACCESS_DESC" />
|
<action name="joomla_module.access" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_ACCESS_DESC" />
|
||||||
<action name="joomla_module.batch" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_BATCH_USE_DESC" />
|
<action name="joomla_module.batch" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_BATCH_USE_DESC" />
|
||||||
<action name="joomla_module.create" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_CREATE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_CREATE_DESC" />
|
<action name="joomla_module.create" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_CREATE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_CREATE_DESC" />
|
||||||
@ -346,12 +367,12 @@
|
|||||||
<action name="joomla_module_updates.edit.own" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_OWN" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_OWN_DESC" />
|
<action name="joomla_module_updates.edit.own" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_OWN" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_OWN_DESC" />
|
||||||
<action name="joomla_module_updates.edit.state" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_STATE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_STATE_DESC" />
|
<action name="joomla_module_updates.edit.state" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_STATE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_STATE_DESC" />
|
||||||
<action name="joomla_module_updates.version" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_VERSION_DESC" />
|
<action name="joomla_module_updates.version" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_VERSION_DESC" />
|
||||||
<action name="joomla_plugin.get_boilerplate" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GET_BOILERPLATE_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GET_BOILERPLATE_BUTTON_ACCESS_DESC" />
|
|
||||||
<action name="joomla_plugin_group.access" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS_DESC" />
|
<action name="joomla_plugin_group.access" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS_DESC" />
|
||||||
<action name="joomla_plugin_group.batch" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_BATCH_USE_DESC" />
|
<action name="joomla_plugin_group.batch" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_BATCH_USE_DESC" />
|
||||||
<action name="joomla_plugin_group.version" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_EDIT_VERSION_DESC" />
|
<action name="joomla_plugin_group.version" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_EDIT_VERSION_DESC" />
|
||||||
<action name="joomla_plugin.methods" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHODS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHODS_BUTTON_ACCESS_DESC" />
|
<action name="joomla_plugin.init" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_INIT_BUTTON_ACCESS_DESC" />
|
||||||
<action name="joomla_plugin.properties" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTIES_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTIES_BUTTON_ACCESS_DESC" />
|
<action name="joomla_plugin.push" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="joomla_plugin.reset" title="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGIN_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="joomla_plugin.access" title="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS_DESC" />
|
<action name="joomla_plugin.access" title="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS_DESC" />
|
||||||
<action name="joomla_plugin.batch" title="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_BATCH_USE_DESC" />
|
<action name="joomla_plugin.batch" title="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_BATCH_USE_DESC" />
|
||||||
<action name="joomla_plugin.create" title="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_CREATE" description="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_CREATE_DESC" />
|
<action name="joomla_plugin.create" title="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_CREATE" description="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_CREATE_DESC" />
|
||||||
@ -419,7 +440,9 @@
|
|||||||
<action name="language.edit.state" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT_STATE" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_STATE_DESC" />
|
<action name="language.edit.state" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT_STATE" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_STATE_DESC" />
|
||||||
<action name="language.version" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT_VERSION" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_VERSION_DESC" />
|
<action name="language.version" title="COM_COMPONENTBUILDER_LANGUAGES_EDIT_VERSION" description="COM_COMPONENTBUILDER_LANGUAGES_EDIT_VERSION_DESC" />
|
||||||
<action name="language.submenu" title="COM_COMPONENTBUILDER_LANGUAGES_SUBMENU" description="COM_COMPONENTBUILDER_LANGUAGES_SUBMENU_DESC" />
|
<action name="language.submenu" title="COM_COMPONENTBUILDER_LANGUAGES_SUBMENU" description="COM_COMPONENTBUILDER_LANGUAGES_SUBMENU_DESC" />
|
||||||
<action name="layout.get_snippets" title="COM_COMPONENTBUILDER_LAYOUT_GET_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_LAYOUT_GET_SNIPPETS_BUTTON_ACCESS_DESC" />
|
<action name="layout.init" title="COM_COMPONENTBUILDER_LAYOUT_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_LAYOUT_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="layout.push" title="COM_COMPONENTBUILDER_LAYOUT_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_LAYOUT_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="layout.reset" title="COM_COMPONENTBUILDER_LAYOUT_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_LAYOUT_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="layout.access" title="COM_COMPONENTBUILDER_LAYOUTS_ACCESS" description="COM_COMPONENTBUILDER_LAYOUTS_ACCESS_DESC" />
|
<action name="layout.access" title="COM_COMPONENTBUILDER_LAYOUTS_ACCESS" description="COM_COMPONENTBUILDER_LAYOUTS_ACCESS_DESC" />
|
||||||
<action name="layout.batch" title="COM_COMPONENTBUILDER_LAYOUTS_BATCH_USE" description="COM_COMPONENTBUILDER_LAYOUTS_BATCH_USE_DESC" />
|
<action name="layout.batch" title="COM_COMPONENTBUILDER_LAYOUTS_BATCH_USE" description="COM_COMPONENTBUILDER_LAYOUTS_BATCH_USE_DESC" />
|
||||||
<action name="layout.dashboard_list" title="COM_COMPONENTBUILDER_LAYOUTS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_LAYOUTS_DASHBOARD_LIST_DESC" />
|
<action name="layout.dashboard_list" title="COM_COMPONENTBUILDER_LAYOUTS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_LAYOUTS_DASHBOARD_LIST_DESC" />
|
||||||
@ -455,7 +478,12 @@
|
|||||||
<action name="library_files_folders_urls.edit.state" title="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_STATE" description="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_STATE_DESC" />
|
<action name="library_files_folders_urls.edit.state" title="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_STATE" description="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_STATE_DESC" />
|
||||||
<action name="library_files_folders_urls.version" title="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION" description="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION_DESC" />
|
<action name="library_files_folders_urls.version" title="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION" description="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION_DESC" />
|
||||||
<action name="library.submenu" title="COM_COMPONENTBUILDER_LIBRARIES_SUBMENU" description="COM_COMPONENTBUILDER_LIBRARIES_SUBMENU_DESC" />
|
<action name="library.submenu" title="COM_COMPONENTBUILDER_LIBRARIES_SUBMENU" description="COM_COMPONENTBUILDER_LIBRARIES_SUBMENU_DESC" />
|
||||||
<action name="library.get_snippets" title="COM_COMPONENTBUILDER_LIBRARY_GET_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_LIBRARY_GET_SNIPPETS_BUTTON_ACCESS_DESC" />
|
<action name="library.init" title="COM_COMPONENTBUILDER_LIBRARY_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_LIBRARY_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="library.push" title="COM_COMPONENTBUILDER_LIBRARY_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_LIBRARY_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="library.reset" title="COM_COMPONENTBUILDER_LIBRARY_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_LIBRARY_RESET_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="placeholder.init" title="COM_COMPONENTBUILDER_PLACEHOLDER_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_PLACEHOLDER_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="placeholder.push" title="COM_COMPONENTBUILDER_PLACEHOLDER_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_PLACEHOLDER_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="placeholder.reset" title="COM_COMPONENTBUILDER_PLACEHOLDER_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_PLACEHOLDER_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="placeholder.access" title="COM_COMPONENTBUILDER_PLACEHOLDERS_ACCESS" description="COM_COMPONENTBUILDER_PLACEHOLDERS_ACCESS_DESC" />
|
<action name="placeholder.access" title="COM_COMPONENTBUILDER_PLACEHOLDERS_ACCESS" description="COM_COMPONENTBUILDER_PLACEHOLDERS_ACCESS_DESC" />
|
||||||
<action name="placeholder.batch" title="COM_COMPONENTBUILDER_PLACEHOLDERS_BATCH_USE" description="COM_COMPONENTBUILDER_PLACEHOLDERS_BATCH_USE_DESC" />
|
<action name="placeholder.batch" title="COM_COMPONENTBUILDER_PLACEHOLDERS_BATCH_USE" description="COM_COMPONENTBUILDER_PLACEHOLDERS_BATCH_USE_DESC" />
|
||||||
<action name="placeholder.create" title="COM_COMPONENTBUILDER_PLACEHOLDERS_CREATE" description="COM_COMPONENTBUILDER_PLACEHOLDERS_CREATE_DESC" />
|
<action name="placeholder.create" title="COM_COMPONENTBUILDER_PLACEHOLDERS_CREATE" description="COM_COMPONENTBUILDER_PLACEHOLDERS_CREATE_DESC" />
|
||||||
@ -493,10 +521,14 @@
|
|||||||
<action name="repository.edit.state" title="COM_COMPONENTBUILDER_REPOSITORIES_EDIT_STATE" description="COM_COMPONENTBUILDER_REPOSITORIES_EDIT_STATE_DESC" />
|
<action name="repository.edit.state" title="COM_COMPONENTBUILDER_REPOSITORIES_EDIT_STATE" description="COM_COMPONENTBUILDER_REPOSITORIES_EDIT_STATE_DESC" />
|
||||||
<action name="repository.version" title="COM_COMPONENTBUILDER_REPOSITORIES_EDIT_VERSION" description="COM_COMPONENTBUILDER_REPOSITORIES_EDIT_VERSION_DESC" />
|
<action name="repository.version" title="COM_COMPONENTBUILDER_REPOSITORIES_EDIT_VERSION" description="COM_COMPONENTBUILDER_REPOSITORIES_EDIT_VERSION_DESC" />
|
||||||
<action name="repository.submenu" title="COM_COMPONENTBUILDER_REPOSITORIES_SUBMENU" description="COM_COMPONENTBUILDER_REPOSITORIES_SUBMENU_DESC" />
|
<action name="repository.submenu" title="COM_COMPONENTBUILDER_REPOSITORIES_SUBMENU" description="COM_COMPONENTBUILDER_REPOSITORIES_SUBMENU_DESC" />
|
||||||
|
<action name="repository.init" title="COM_COMPONENTBUILDER_REPOSITORY_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_REPOSITORY_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="repository.push" title="COM_COMPONENTBUILDER_REPOSITORY_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_REPOSITORY_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="repository.reset" title="COM_COMPONENTBUILDER_REPOSITORY_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_REPOSITORY_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="search.access" title="COM_COMPONENTBUILDER_SEARCH_ACCESS" description="COM_COMPONENTBUILDER_SEARCH_ACCESS_DESC" />
|
<action name="search.access" title="COM_COMPONENTBUILDER_SEARCH_ACCESS" description="COM_COMPONENTBUILDER_SEARCH_ACCESS_DESC" />
|
||||||
<action name="search.compiler" title="COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS_DESC" />
|
<action name="search.compiler" title="COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS_DESC" />
|
||||||
<action name="search.dashboard_list" title="COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST_DESC" />
|
<action name="search.dashboard_list" title="COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST_DESC" />
|
||||||
<action name="search.submenu" title="COM_COMPONENTBUILDER_SEARCH_SUBMENU" description="COM_COMPONENTBUILDER_SEARCH_SUBMENU_DESC" />
|
<action name="search.submenu" title="COM_COMPONENTBUILDER_SEARCH_SUBMENU" description="COM_COMPONENTBUILDER_SEARCH_SUBMENU_DESC" />
|
||||||
|
<action name="initialization_selection.access" title="COM_COMPONENTBUILDER_SELECTION_ACCESS" description="COM_COMPONENTBUILDER_SELECTION_ACCESS_DESC" />
|
||||||
<action name="server.access" title="COM_COMPONENTBUILDER_SERVERS_ACCESS" description="COM_COMPONENTBUILDER_SERVERS_ACCESS_DESC" />
|
<action name="server.access" title="COM_COMPONENTBUILDER_SERVERS_ACCESS" description="COM_COMPONENTBUILDER_SERVERS_ACCESS_DESC" />
|
||||||
<action name="server.batch" title="COM_COMPONENTBUILDER_SERVERS_BATCH_USE" description="COM_COMPONENTBUILDER_SERVERS_BATCH_USE_DESC" />
|
<action name="server.batch" title="COM_COMPONENTBUILDER_SERVERS_BATCH_USE" description="COM_COMPONENTBUILDER_SERVERS_BATCH_USE_DESC" />
|
||||||
<action name="server.create" title="COM_COMPONENTBUILDER_SERVERS_CREATE" description="COM_COMPONENTBUILDER_SERVERS_CREATE_DESC" />
|
<action name="server.create" title="COM_COMPONENTBUILDER_SERVERS_CREATE" description="COM_COMPONENTBUILDER_SERVERS_CREATE_DESC" />
|
||||||
@ -509,14 +541,17 @@
|
|||||||
<action name="server.edit.state" title="COM_COMPONENTBUILDER_SERVERS_EDIT_STATE" description="COM_COMPONENTBUILDER_SERVERS_EDIT_STATE_DESC" />
|
<action name="server.edit.state" title="COM_COMPONENTBUILDER_SERVERS_EDIT_STATE" description="COM_COMPONENTBUILDER_SERVERS_EDIT_STATE_DESC" />
|
||||||
<action name="server.version" title="COM_COMPONENTBUILDER_SERVERS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SERVERS_EDIT_VERSION_DESC" />
|
<action name="server.version" title="COM_COMPONENTBUILDER_SERVERS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SERVERS_EDIT_VERSION_DESC" />
|
||||||
<action name="server.submenu" title="COM_COMPONENTBUILDER_SERVERS_SUBMENU" description="COM_COMPONENTBUILDER_SERVERS_SUBMENU_DESC" />
|
<action name="server.submenu" title="COM_COMPONENTBUILDER_SERVERS_SUBMENU" description="COM_COMPONENTBUILDER_SERVERS_SUBMENU_DESC" />
|
||||||
<action name="site_view.get_snippets" title="COM_COMPONENTBUILDER_SITE_VIEW_GET_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEW_GET_SNIPPETS_BUTTON_ACCESS_DESC" />
|
<action name="site_view.init" title="COM_COMPONENTBUILDER_SITE_VIEW_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEW_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="site_view.push" title="COM_COMPONENTBUILDER_SITE_VIEW_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEW_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="site_view.reset" title="COM_COMPONENTBUILDER_SITE_VIEW_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEW_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="site_view.access" title="COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS_DESC" />
|
<action name="site_view.access" title="COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS" description="COM_COMPONENTBUILDER_SITE_VIEWS_ACCESS_DESC" />
|
||||||
<action name="site_view.batch" title="COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE_DESC" />
|
<action name="site_view.batch" title="COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE" description="COM_COMPONENTBUILDER_SITE_VIEWS_BATCH_USE_DESC" />
|
||||||
<action name="site_view.dashboard_list" title="COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST_DESC" />
|
<action name="site_view.dashboard_list" title="COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_SITE_VIEWS_DASHBOARD_LIST_DESC" />
|
||||||
<action name="site_view.version" title="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION_DESC" />
|
<action name="site_view.version" title="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION_DESC" />
|
||||||
<action name="site_view.submenu" title="COM_COMPONENTBUILDER_SITE_VIEWS_SUBMENU" description="COM_COMPONENTBUILDER_SITE_VIEWS_SUBMENU_DESC" />
|
<action name="site_view.submenu" title="COM_COMPONENTBUILDER_SITE_VIEWS_SUBMENU" description="COM_COMPONENTBUILDER_SITE_VIEWS_SUBMENU_DESC" />
|
||||||
<action name="snippet.get_snippets" title="COM_COMPONENTBUILDER_SNIPPET_GET_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SNIPPET_GET_SNIPPETS_BUTTON_ACCESS_DESC" />
|
<action name="snippet.init" title="COM_COMPONENTBUILDER_SNIPPET_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SNIPPET_INIT_BUTTON_ACCESS_DESC" />
|
||||||
<action name="snippet.share_snippets" title="COM_COMPONENTBUILDER_SNIPPET_SHARE_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SNIPPET_SHARE_SNIPPETS_BUTTON_ACCESS_DESC" />
|
<action name="snippet.push" title="COM_COMPONENTBUILDER_SNIPPET_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SNIPPET_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="snippet.reset" title="COM_COMPONENTBUILDER_SNIPPET_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_SNIPPET_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="snippet_type.access" title="COM_COMPONENTBUILDER_SNIPPET_TYPES_ACCESS" description="COM_COMPONENTBUILDER_SNIPPET_TYPES_ACCESS_DESC" />
|
<action name="snippet_type.access" title="COM_COMPONENTBUILDER_SNIPPET_TYPES_ACCESS" description="COM_COMPONENTBUILDER_SNIPPET_TYPES_ACCESS_DESC" />
|
||||||
<action name="snippet_type.batch" title="COM_COMPONENTBUILDER_SNIPPET_TYPES_BATCH_USE" description="COM_COMPONENTBUILDER_SNIPPET_TYPES_BATCH_USE_DESC" />
|
<action name="snippet_type.batch" title="COM_COMPONENTBUILDER_SNIPPET_TYPES_BATCH_USE" description="COM_COMPONENTBUILDER_SNIPPET_TYPES_BATCH_USE_DESC" />
|
||||||
<action name="snippet_type.create" title="COM_COMPONENTBUILDER_SNIPPET_TYPES_CREATE" description="COM_COMPONENTBUILDER_SNIPPET_TYPES_CREATE_DESC" />
|
<action name="snippet_type.create" title="COM_COMPONENTBUILDER_SNIPPET_TYPES_CREATE" description="COM_COMPONENTBUILDER_SNIPPET_TYPES_CREATE_DESC" />
|
||||||
@ -530,7 +565,9 @@
|
|||||||
<action name="snippet.dashboard_list" title="COM_COMPONENTBUILDER_SNIPPETS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_SNIPPETS_DASHBOARD_LIST_DESC" />
|
<action name="snippet.dashboard_list" title="COM_COMPONENTBUILDER_SNIPPETS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_SNIPPETS_DASHBOARD_LIST_DESC" />
|
||||||
<action name="snippet.version" title="COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION_DESC" />
|
<action name="snippet.version" title="COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION" description="COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION_DESC" />
|
||||||
<action name="snippet.submenu" title="COM_COMPONENTBUILDER_SNIPPETS_SUBMENU" description="COM_COMPONENTBUILDER_SNIPPETS_SUBMENU_DESC" />
|
<action name="snippet.submenu" title="COM_COMPONENTBUILDER_SNIPPETS_SUBMENU" description="COM_COMPONENTBUILDER_SNIPPETS_SUBMENU_DESC" />
|
||||||
<action name="template.get_snippets" title="COM_COMPONENTBUILDER_TEMPLATE_GET_SNIPPETS_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_TEMPLATE_GET_SNIPPETS_BUTTON_ACCESS_DESC" />
|
<action name="template.init" title="COM_COMPONENTBUILDER_TEMPLATE_INIT_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_TEMPLATE_INIT_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="template.push" title="COM_COMPONENTBUILDER_TEMPLATE_PUSH_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_TEMPLATE_PUSH_BUTTON_ACCESS_DESC" />
|
||||||
|
<action name="template.reset" title="COM_COMPONENTBUILDER_TEMPLATE_RESET_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_TEMPLATE_RESET_BUTTON_ACCESS_DESC" />
|
||||||
<action name="template.access" title="COM_COMPONENTBUILDER_TEMPLATES_ACCESS" description="COM_COMPONENTBUILDER_TEMPLATES_ACCESS_DESC" />
|
<action name="template.access" title="COM_COMPONENTBUILDER_TEMPLATES_ACCESS" description="COM_COMPONENTBUILDER_TEMPLATES_ACCESS_DESC" />
|
||||||
<action name="template.batch" title="COM_COMPONENTBUILDER_TEMPLATES_BATCH_USE" description="COM_COMPONENTBUILDER_TEMPLATES_BATCH_USE_DESC" />
|
<action name="template.batch" title="COM_COMPONENTBUILDER_TEMPLATES_BATCH_USE" description="COM_COMPONENTBUILDER_TEMPLATES_BATCH_USE_DESC" />
|
||||||
<action name="template.dashboard_add" title="COM_COMPONENTBUILDER_TEMPLATES_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_TEMPLATES_DASHBOARD_ADD_DESC" />
|
<action name="template.dashboard_add" title="COM_COMPONENTBUILDER_TEMPLATES_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_TEMPLATES_DASHBOARD_ADD_DESC" />
|
||||||
@ -670,6 +707,17 @@
|
|||||||
<action name="custom_code.access" title="COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS_DESC" />
|
<action name="custom_code.access" title="COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS" description="COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS_DESC" />
|
||||||
<action name="custom_code.version" title="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION" description="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION_DESC" />
|
<action name="custom_code.version" title="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION" description="COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION_DESC" />
|
||||||
</section>
|
</section>
|
||||||
|
<section name="class_extends">
|
||||||
|
<action name="class_extends.edit" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_DESC" />
|
||||||
|
<action name="class_extends.edit.own" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_OWN" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_OWN_DESC" />
|
||||||
|
<action name="class_extends.edit.state" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE_DESC" />
|
||||||
|
<action name="class_extends.edit.created_by" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_CREATED_BY_DESC" />
|
||||||
|
<action name="class_extends.edit.created" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_CREATED_DATE_DESC" />
|
||||||
|
<action name="class_extends.create" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_CREATE" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_CREATE_DESC" />
|
||||||
|
<action name="class_extends.delete" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_DELETE" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_DELETE_DESC" />
|
||||||
|
<action name="class_extends.access" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_ACCESS" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_ACCESS_DESC" />
|
||||||
|
<action name="class_extends.version" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION_DESC" />
|
||||||
|
</section>
|
||||||
<section name="class_property">
|
<section name="class_property">
|
||||||
<action name="class_property.edit" title="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT" description="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_DESC" />
|
<action name="class_property.edit" title="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT" description="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_DESC" />
|
||||||
<action name="class_property.edit.own" title="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_OWN" description="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_OWN_DESC" />
|
<action name="class_property.edit.own" title="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_OWN" description="COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_OWN_DESC" />
|
||||||
@ -1013,17 +1061,6 @@
|
|||||||
<action name="library_files_folders_urls.access" title="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_ACCESS" description="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_ACCESS_DESC" />
|
<action name="library_files_folders_urls.access" title="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_ACCESS" description="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_ACCESS_DESC" />
|
||||||
<action name="library_files_folders_urls.version" title="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION" description="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION_DESC" />
|
<action name="library_files_folders_urls.version" title="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION" description="COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION_DESC" />
|
||||||
</section>
|
</section>
|
||||||
<section name="class_extends">
|
|
||||||
<action name="class_extends.edit" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_DESC" />
|
|
||||||
<action name="class_extends.edit.own" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_OWN" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_OWN_DESC" />
|
|
||||||
<action name="class_extends.edit.state" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE_DESC" />
|
|
||||||
<action name="class_extends.edit.created_by" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_CREATED_BY_DESC" />
|
|
||||||
<action name="class_extends.edit.created" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_CREATED_DATE_DESC" />
|
|
||||||
<action name="class_extends.create" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_CREATE" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_CREATE_DESC" />
|
|
||||||
<action name="class_extends.delete" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_DELETE" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_DELETE_DESC" />
|
|
||||||
<action name="class_extends.access" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_ACCESS" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_ACCESS_DESC" />
|
|
||||||
<action name="class_extends.version" title="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION" description="COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION_DESC" />
|
|
||||||
</section>
|
|
||||||
<section name="joomla_module_updates">
|
<section name="joomla_module_updates">
|
||||||
<action name="joomla_module_updates.edit" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_DESC" />
|
<action name="joomla_module_updates.edit" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_DESC" />
|
||||||
<action name="joomla_module_updates.edit.own" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_OWN" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_OWN_DESC" />
|
<action name="joomla_module_updates.edit.own" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_OWN" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_OWN_DESC" />
|
||||||
|
@ -10,4 +10,14 @@
|
|||||||
|
|
||||||
/* CSS Document */
|
/* CSS Document */
|
||||||
|
|
||||||
|
html.dark .no-select,
|
||||||
|
html.dark .no-select td {
|
||||||
|
color: #515151;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.light .no-select,
|
||||||
|
html.light .no-select td {
|
||||||
|
color: #999;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
Binary file not shown.
Before Width: | Height: | Size: 65 KiB |
@ -1,540 +0,0 @@
|
|||||||
/**
|
|
||||||
* @package Joomla.Component.Builder
|
|
||||||
*
|
|
||||||
* @created 30th April, 2015
|
|
||||||
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
|
||||||
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
|
||||||
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
|
||||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* JS Document */
|
|
||||||
|
|
||||||
// start the moment the document is ready
|
|
||||||
jQuery(document).ready(function () {
|
|
||||||
// just get the available libraries
|
|
||||||
getLibraries(snippetsPath);
|
|
||||||
});
|
|
||||||
|
|
||||||
// add an ajax call tracker
|
|
||||||
var ajaxcall = null;
|
|
||||||
var fromLocal = false;
|
|
||||||
|
|
||||||
jQuery(document).ready(function(){
|
|
||||||
jQuery('body').on('click','.getreaction',function(){
|
|
||||||
// Ajax request
|
|
||||||
var btn = jQuery(this);
|
|
||||||
btn.prop('disabled', true);
|
|
||||||
setTimeout(function(){
|
|
||||||
btn.prop('disabled', false);
|
|
||||||
}, 3000);
|
|
||||||
var type = btn.data('type');
|
|
||||||
if ('getLibraries' === type) {
|
|
||||||
getLibraries(snippetsPath);
|
|
||||||
} else if ('getSnippets' === type) {
|
|
||||||
var name = btn.data('name');
|
|
||||||
getSnippets(snippetsPath, name);
|
|
||||||
} else if ('all' === type) {
|
|
||||||
var status = btn.data('status');
|
|
||||||
bulkSnippetGithub(status);
|
|
||||||
} else if ('bulk' === type) {
|
|
||||||
checkBulkSnippetGithub();
|
|
||||||
} else if ('get' === type) {
|
|
||||||
var path = btn.data('path');
|
|
||||||
var status = btn.data('status');
|
|
||||||
setSnippetGithub(path, status);
|
|
||||||
} else {
|
|
||||||
var path = btn.data('path');
|
|
||||||
getSnippetModal(path, type);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// load every thing once ready
|
|
||||||
jQuery(document).ajaxStop(function () {
|
|
||||||
if (0 === jQuery.active) {
|
|
||||||
//do something special
|
|
||||||
if ('snippets' === ajaxcall) {
|
|
||||||
setTimeout( function() {
|
|
||||||
jQuery('#snippets-github').html('<h1>'+Joomla.JText._('COM_COMPONENTBUILDER_JCB_COMMUNITY_SNIPPETS')+'</h1>');
|
|
||||||
jQuery('#snippets-display').show();
|
|
||||||
jQuery('#snippets-grid').trigger('display.uk.check');
|
|
||||||
jQuery('#loading').hide();
|
|
||||||
}, 1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// get the libraries
|
|
||||||
function getLibraries(path) {
|
|
||||||
var _paths = jQuery.jStorage.get('JCB-Snippets-Paths', null);
|
|
||||||
// always hide the snippets display
|
|
||||||
jQuery('#snippets-display').hide();
|
|
||||||
// always reset the grid
|
|
||||||
jQuery('#libraries-grid').html('');
|
|
||||||
// set the ajax scope
|
|
||||||
ajaxcall = 'libraries';
|
|
||||||
if (_paths) {
|
|
||||||
buildLibraries(_paths);
|
|
||||||
} else {
|
|
||||||
jQuery.get(path)
|
|
||||||
.done(function(paths) {
|
|
||||||
// load only this library paths
|
|
||||||
jQuery.jStorage.set('JCB-Snippets-Paths', paths, {TTL: expire});
|
|
||||||
buildLibraries(paths);
|
|
||||||
})
|
|
||||||
.error(function(jqXHR, textStatus, errorThrown) {
|
|
||||||
jQuery('#snippets-github').html(returnError);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// build the ibraries object
|
|
||||||
function buildLibraries(paths) {
|
|
||||||
var _temp = jQuery.jStorage.get('JCB-Libraries', null);
|
|
||||||
if (_temp) {
|
|
||||||
setLibraries(_temp);
|
|
||||||
} else {
|
|
||||||
var temp = {};
|
|
||||||
jQuery.each(paths.tree, function(key,value) {
|
|
||||||
if (value.path.match(".json$")) {
|
|
||||||
var libraryName = value.path.split(/ -(.+)/)[0];
|
|
||||||
libraryName = libraryName.trim()
|
|
||||||
temp[libraryName] = libraryName;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// load only this library paths
|
|
||||||
jQuery.jStorage.set('JCB-Libraries', temp, {TTL: expire});
|
|
||||||
setLibraries(temp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the libraries
|
|
||||||
function setLibraries(names) {
|
|
||||||
// now load the library buttons
|
|
||||||
jQuery.each(names, function(value) {
|
|
||||||
setLibrary(value);
|
|
||||||
});
|
|
||||||
setTimeout( function() {
|
|
||||||
jQuery('#snippets-github').html('<h1>'+Joomla.JText._('COM_COMPONENTBUILDER_AVAILABLE_LIBRARIES')+'</h1>');
|
|
||||||
jQuery('#libraries-display').show();
|
|
||||||
jQuery('#libraries-grid').trigger('display.uk.check');
|
|
||||||
}, 1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the snippets
|
|
||||||
function setLibrary(name) {
|
|
||||||
// get useful ID
|
|
||||||
var keyID = getKeyID(name);
|
|
||||||
// build the library display
|
|
||||||
var html = '<div id="'+keyID+'-panel" class="uk-panel">';
|
|
||||||
html += '<div class="uk-panel uk-panel-box uk-width-1-1">';
|
|
||||||
html += '<h3 class="uk-panel-title">' + name + '</h3>';
|
|
||||||
html += '<hr />';
|
|
||||||
// set the data buttons
|
|
||||||
html += setLibraryButtons(name);
|
|
||||||
// close the box panel
|
|
||||||
html += '</div>';
|
|
||||||
html += '</div>';
|
|
||||||
// now we have the library
|
|
||||||
jQuery('#libraries-grid').append(html);
|
|
||||||
}
|
|
||||||
|
|
||||||
function setLibraryButtons(name) {
|
|
||||||
return '<button class="uk-button uk-button-small uk-button-success uk-width-1-1 getreaction" data-name="'+name+'" data-type="getSnippets" title="'+Joomla.JText._('COM_COMPONENTBUILDER_VIEW_DESCRIPTION_OF_COMMUNITY_VERSION')+'"><i class="uk-icon-thumb-tack"></i><span class="uk-hidden-small"> '+Joomla.JText._('COM_COMPONENTBUILDER_OPEN_LIBRARY_SNIPPETS')+'</span></button>';
|
|
||||||
}
|
|
||||||
|
|
||||||
// get the snippets
|
|
||||||
function getSnippets(path, libraryName) {
|
|
||||||
jQuery('#loading').show();
|
|
||||||
// get local values if set
|
|
||||||
var _paths = jQuery.jStorage.get('JCB-Snippets-Paths', null);
|
|
||||||
// always reset the grid
|
|
||||||
jQuery('#snippets-grid').html('');
|
|
||||||
// always hide libraries
|
|
||||||
jQuery('#libraries-display').hide();
|
|
||||||
// set the ajax scope
|
|
||||||
ajaxcall = 'snippets';
|
|
||||||
fromLocal = false;
|
|
||||||
if (_paths) {
|
|
||||||
setSnippets(_paths, libraryName);
|
|
||||||
jQuery('#snippets-github').html('<h1>'+Joomla.JText._('COM_COMPONENTBUILDER_JCB_COMMUNITY_SNIPPETS')+'</h1>');
|
|
||||||
} else {
|
|
||||||
jQuery.get(path)
|
|
||||||
.done(function(paths) {
|
|
||||||
// load only this library paths
|
|
||||||
jQuery.jStorage.set('JCB-Snippets-Paths', paths, {TTL: expire});
|
|
||||||
setSnippets(paths, libraryName);
|
|
||||||
})
|
|
||||||
.error(function(jqXHR, textStatus, errorThrown) {
|
|
||||||
jQuery('#snippets-github').html(returnError);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// only use if loading localy
|
|
||||||
if (fromLocal) {
|
|
||||||
jQuery('#snippets-display').show();
|
|
||||||
jQuery('#snippets-grid').trigger('display.uk.check');
|
|
||||||
jQuery('#loading').hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the snippets
|
|
||||||
function setSnippets(paths, libraryName) {
|
|
||||||
// set the ajax scope
|
|
||||||
ajaxcall = 'snippets';
|
|
||||||
jQuery.each(paths.tree, function(key,value) {
|
|
||||||
if (value.path.match(".json$") && value.path.match("^"+libraryName)) {
|
|
||||||
var _snippet = jQuery.jStorage.get(value.path, null);
|
|
||||||
if (_snippet) {
|
|
||||||
setSnippet(_snippet, value.path);
|
|
||||||
fromLocal = true;
|
|
||||||
} else {
|
|
||||||
jQuery.get(snippetPath+value.path)
|
|
||||||
.done(function(snippet) {
|
|
||||||
// convert the string to json.object
|
|
||||||
snippet = jQuery.parseJSON(snippet);
|
|
||||||
jQuery.jStorage.set(value.path, snippet, {TTL: expire});
|
|
||||||
setSnippet(snippet, value.path);
|
|
||||||
})
|
|
||||||
.error(function(jqXHR, textStatus, errorThrown) {
|
|
||||||
// we could do more
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the snippets
|
|
||||||
function setSnippet(snippet, key) {
|
|
||||||
// get useful ID
|
|
||||||
var keyID = getKeyID(key);
|
|
||||||
// get the status
|
|
||||||
var status = getSnippetStatus(snippet, key);
|
|
||||||
// add to bulk updater
|
|
||||||
if ('equal' !== status) {
|
|
||||||
bulkItems[status].push(key);
|
|
||||||
}
|
|
||||||
// build the snippet display
|
|
||||||
var html = '<div id="'+keyID+'-panel" class="uk-panel" data-uk-filter="'+status+'" data-snippet-libraries="'+snippet.library+'" data-snippet-types="'+snippet.type+'" data-snippet-name="'+snippet.name+'">';
|
|
||||||
html += '<div class="uk-panel uk-panel-box uk-width-1-1">';
|
|
||||||
html += '<div class="uk-panel-badge uk-badge" ><a id="'+keyID+'-badge" href="#'+status+'-meaning" data-uk-offcanvas class="uk-text-uppercase uk-text-contrast"><i class="uk-icon-info"></i> '+status+'</a></div><br />';
|
|
||||||
html += '<h3 class="uk-panel-title">' + snippet.library+ ' - (' + snippet.type + ') ' + snippet.name + '</h3>';
|
|
||||||
html += snippet.heading + '<hr />';
|
|
||||||
// set the data buttons
|
|
||||||
html += setDataButtons(snippet, key, status);
|
|
||||||
// set the snippet ref button
|
|
||||||
html += setRefButtons(snippet, key, status, keyID);
|
|
||||||
// set the contributor buttons
|
|
||||||
html += setContributorButtons(snippet, key);
|
|
||||||
// close the box panel
|
|
||||||
html += '</div>';
|
|
||||||
html += '</div>';
|
|
||||||
// now we have the snippet
|
|
||||||
jQuery('#snippets-grid').append(html);
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the snippet status
|
|
||||||
function getSnippetStatus(snippet, key) {
|
|
||||||
// check if JCB already has this snippet
|
|
||||||
if(local_snippets.hasOwnProperty(key)){
|
|
||||||
// first get local time stamp
|
|
||||||
var local_created = strtotime(local_snippets[key].created);
|
|
||||||
var local_modified = strtotime(local_snippets[key].modified);
|
|
||||||
// now get github time stamps
|
|
||||||
var created = strtotime(snippet.created);
|
|
||||||
var modified = strtotime(snippet.modified);
|
|
||||||
// work out the status
|
|
||||||
if (local_created == created) {
|
|
||||||
if (local_modified == modified) {
|
|
||||||
return 'equal';
|
|
||||||
} else if (local_modified > modified) {
|
|
||||||
return 'ahead';
|
|
||||||
} else if (local_modified < modified) {
|
|
||||||
return 'behind';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 'diverged';
|
|
||||||
}
|
|
||||||
return 'new';
|
|
||||||
}
|
|
||||||
|
|
||||||
function setDataButtons(snippet, key, status) {
|
|
||||||
var html = '<div class="uk-button-group uk-width-1-1 uk-margin-small-bottom">';
|
|
||||||
html += '<button class="uk-button uk-button-small uk-button-success uk-width-1-3 getreaction" data-status="'+status+'" data-path="'+key+'" data-type="usage" title="'+Joomla.JText._('COM_COMPONENTBUILDER_VIEW_USAGE_OF_COMMUNITY_VERSION')+'"><i class="uk-icon-info"></i><span class="uk-hidden-small"> '+Joomla.JText._('COM_COMPONENTBUILDER_USAGE')+'</span></button>';
|
|
||||||
html += '<button class="uk-button uk-button-small uk-button-success uk-width-1-3 getreaction" data-status="'+status+'" data-path="'+key+'" data-type="description" title="'+Joomla.JText._('COM_COMPONENTBUILDER_VIEW_DESCRIPTION_OF_COMMUNITY_VERSION')+'"><i class="uk-icon-sticky-note-o"></i><span class="uk-hidden-small"> '+Joomla.JText._('COM_COMPONENTBUILDER_DESCRIPTION')+'</span></button>';
|
|
||||||
html += '<button class="uk-button uk-button-small uk-button-success uk-width-1-3 getreaction" data-status="'+status+'" data-path="'+key+'" data-type="snippet" title="'+Joomla.JText._('COM_COMPONENTBUILDER_VIEW_SNIPPET_OF_COMMUNITY_VERSION')+'"><i class="uk-icon-code"></i><span class="uk-hidden-small"> '+Joomla.JText._('COM_COMPONENTBUILDER_SNIPPET')+'</span></button>';
|
|
||||||
html += '</div>';
|
|
||||||
// return data buttons
|
|
||||||
return html;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setRefButtons(snippet, key, status, keyID) {
|
|
||||||
var html = '<div><a class="uk-button uk-button-mini uk-button-success uk-margin-small-bottom uk-width-1-1" href="'+snippet.url+'" target="_blank" title="'+Joomla.JText._('COM_COMPONENTBUILDER_VIEW_SNIPPET_REFERENCE_URL')+'"><i class="uk-icon-external-link"></i> ' + snippet.name + '</a></div>';
|
|
||||||
// set the update button
|
|
||||||
html += '<div>';
|
|
||||||
if ('equal' !== status) {
|
|
||||||
if ('new' === status) {
|
|
||||||
var tooltip = Joomla.JText._('COM_COMPONENTBUILDER_GET_THE_SNIPPET_FROM_GITHUB_AND_INSTALL_IT_LOCALLY');
|
|
||||||
} else {
|
|
||||||
var tooltip = Joomla.JText._('COM_COMPONENTBUILDER_GET_THE_SNIPPET_FROM_GITHUB_AND_UPDATE_THE_LOCAL_VERSION');
|
|
||||||
}
|
|
||||||
html += '<button id="'+keyID+'-getbutton" class="uk-button uk-button-small uk-button-primary uk-width-1-1 uk-margin-small-bottom getreaction" data-status="'+status+'" data-path="'+key+'" data-type="get" title="'+tooltip+'"><i class="uk-icon-cloud-download"></i> '+Joomla.JText._('COM_COMPONENTBUILDER_GET_SNIPPET')+'</button>';
|
|
||||||
} else {
|
|
||||||
html += '<button class="uk-button uk-button-small uk-width-1-1 uk-margin-small-bottom" type="button" disabled title="'+Joomla.JText._('COM_COMPONENTBUILDER_NO_NEED_TO_GET_IT_SINCE_IT_IS_ALREADY_IN_SYNC_WITH_YOUR_LOCAL_VERSION')+'"><i class="uk-icon-check-square-o"></i> '+Joomla.JText._('COM_COMPONENTBUILDER_LOCAL_SNIPPET')+'</button>';
|
|
||||||
}
|
|
||||||
html += '</div>';
|
|
||||||
// return data buttons
|
|
||||||
return html;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setContributorButtons(snippet, key) {
|
|
||||||
// set the contributor name
|
|
||||||
if (snippet.contributor_company) {
|
|
||||||
var contributor_name = snippet.contributor_company;
|
|
||||||
} else if (snippet.contributor_name) {
|
|
||||||
var contributor_name = snippet.contributor_name;
|
|
||||||
} else {
|
|
||||||
var contributor_name = Joomla.JText._('COM_COMPONENTBUILDER_JCB_COMMUNITY');
|
|
||||||
}
|
|
||||||
// set the contributor url
|
|
||||||
if (snippet.contributor_website) {
|
|
||||||
var contributor_url = snippet.contributor_website;
|
|
||||||
} else if (snippet.contributor_email) {
|
|
||||||
var contributor_url = 'mailto:'+snippet.contributor_email;
|
|
||||||
} else {
|
|
||||||
var contributor_url = 'https://github.com/vdm-io/Joomla-Component-Builder-Snippets';
|
|
||||||
}
|
|
||||||
var html = '<div class="uk-button-group uk-width-1-1">';
|
|
||||||
html += '<button class="uk-button uk-button-primary uk-width-1-10 uk-button-mini getreaction" data-type="contributor" data-path="'+key+'" title="'+Joomla.JText._('COM_COMPONENTBUILDER_VIEW_THE_CONTRIBUTOR_DETAILS')+'"><i class="uk-icon-user"></i></button>';
|
|
||||||
html += '<a class="uk-button uk-button-primary uk-width-5-10 uk-button-mini" href="'+contributor_url+'" target="_blank" title="'+Joomla.JText._('COM_COMPONENTBUILDER_LINK_TO_THE_CONTRIBUTOR')+'"><i class="uk-icon-external-link"></i> ' + contributor_name + '</a>';
|
|
||||||
html += '<a class="uk-button uk-button-primary uk-width-4-10 uk-button-mini" href="https://github.com/vdm-io/Joomla-Component-Builder-Snippets/blame/master/'+key+'" target="_blank" title="'+Joomla.JText._('COM_COMPONENTBUILDER_VIEW_WHO_CONTRIBUTED_TO_THIS_SNIPPET')+'"><i class="uk-icon-external-link"></i> '+Joomla.JText._('COM_COMPONENTBUILDER_VIEW_BLAME')+'</a>';
|
|
||||||
html += '</div>';
|
|
||||||
// return contributor buttons
|
|
||||||
return html;
|
|
||||||
}
|
|
||||||
|
|
||||||
// do a bulk update
|
|
||||||
function checkBulkSnippetGithub() {
|
|
||||||
// check if there is new items
|
|
||||||
if (bulkItems.new.length === 0) {
|
|
||||||
jQuery('#bulk-button-new').prop('disabled', true);
|
|
||||||
jQuery('#bulk-button-new').attr('title', Joomla.JText._('COM_COMPONENTBUILDER_THERE_ARE_NO_NEW_SNIPPETS_AT_THIS_TIME'));
|
|
||||||
jQuery('#bulk-notice-new').show();
|
|
||||||
}
|
|
||||||
// check if there is diverged items
|
|
||||||
if (bulkItems.diverged.length === 0) {
|
|
||||||
jQuery('#bulk-button-diverged').prop('disabled', true);
|
|
||||||
jQuery('#bulk-button-diverged').attr('title', Joomla.JText._('COM_COMPONENTBUILDER_THERE_ARE_NO_DIVERGED_SNIPPETS_AT_THIS_TIME'));
|
|
||||||
jQuery('#bulk-notice-diverged').show();
|
|
||||||
}
|
|
||||||
// check if there is ahead items
|
|
||||||
if (bulkItems.ahead.length === 0) {
|
|
||||||
jQuery('#bulk-button-ahead').prop('disabled', true);
|
|
||||||
jQuery('#bulk-button-ahead').attr('title', Joomla.JText._('COM_COMPONENTBUILDER_THERE_ARE_NO_AHEAD_SNIPPETS_AT_THIS_TIME'));
|
|
||||||
jQuery('#bulk-notice-ahead').show();
|
|
||||||
}
|
|
||||||
// check if there is behind items
|
|
||||||
if (bulkItems.behind.length === 0) {
|
|
||||||
jQuery('#bulk-button-behind').prop('disabled', true);
|
|
||||||
jQuery('#bulk-button-behind').attr('title', Joomla.JText._('COM_COMPONENTBUILDER_THERE_ARE_NO_OUT_OF_DATE_SNIPPETS_AT_THIS_TIME'));
|
|
||||||
jQuery('#bulk-notice-behind').show();
|
|
||||||
}
|
|
||||||
// check if all we should close the all button
|
|
||||||
if (bulkItems.behind.length === 0 && bulkItems.new.length === 0 && bulkItems.ahead.length === 0 && bulkItems.diverged.length === 0) {
|
|
||||||
jQuery('#bulk-button-all').prop('disabled', true);
|
|
||||||
jQuery('#bulk-button-all').attr('title', Joomla.JText._('COM_COMPONENTBUILDER_THERE_ARE_NO_SNIPPETS_TO_UPDATE_AT_THIS_TIME'));
|
|
||||||
jQuery('#bulk-notice-all').show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// do a bulk update
|
|
||||||
function bulkSnippetGithub(status) {
|
|
||||||
// if all then trigger those with values
|
|
||||||
if ('all' === status) {
|
|
||||||
bulkSnippetGithub('behind');
|
|
||||||
bulkSnippetGithub('new');
|
|
||||||
bulkSnippetGithub('ahead');
|
|
||||||
bulkSnippetGithub('diverged');
|
|
||||||
} else if (bulkItems[status].length > 0) {
|
|
||||||
jQuery.each(bulkItems[status], function(i, key){
|
|
||||||
setTimeout(function(){
|
|
||||||
doBulkUpdate_server(key, status).done(function(result) {
|
|
||||||
if (result.message) {
|
|
||||||
// only show errors
|
|
||||||
if ('error' === result.status || 'warning' === result.status) {
|
|
||||||
UIkit.notify(result.message, {status: result.status});
|
|
||||||
}
|
|
||||||
// update local items
|
|
||||||
if ('success' === result.status) {
|
|
||||||
// get key ID
|
|
||||||
var keyID = getKeyID(key);
|
|
||||||
// update snippet if we can
|
|
||||||
updateSnippetDisplay(keyID, 'equal');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
UIkit.notify(Joomla.JText._('COM_COMPONENTBUILDER_SNIPPET_COULD_NOT_BE_UPDATEDSAVED'), {status:'danger'});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, 200);
|
|
||||||
});
|
|
||||||
// reset array
|
|
||||||
bulkItems[status].length = 0;
|
|
||||||
// update the buttons (since we only do the bulk update once)
|
|
||||||
checkBulkSnippetGithub();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function doBulkUpdate_server(path, status) {
|
|
||||||
// set the ajax scope
|
|
||||||
ajaxcall = null;
|
|
||||||
var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.setSnippetGithub&format=json&raw=true");
|
|
||||||
if (token.length > 0 && path.length > 0 && status.length > 0) {
|
|
||||||
var request = token+'=1&path='+path+'&status='+status;
|
|
||||||
}
|
|
||||||
return jQuery.ajax({
|
|
||||||
type: 'POST',
|
|
||||||
url: getUrl,
|
|
||||||
dataType: 'json',
|
|
||||||
data: request,
|
|
||||||
jsonp: false
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the snippet from gitHub
|
|
||||||
function setSnippetGithub(key, status) {
|
|
||||||
var message = getConfirmUpdate(status);
|
|
||||||
UIkit.modal.confirm(message, function(){
|
|
||||||
// will be executed on confirm.
|
|
||||||
setSnippetGithub_server(key, status).done(function(result) {
|
|
||||||
if (result.message) {
|
|
||||||
UIkit.notify(result.message, {status: result.status});
|
|
||||||
if ('success' === result.status) {
|
|
||||||
// get key ID
|
|
||||||
var keyID = getKeyID(key);
|
|
||||||
// update snippet if we can
|
|
||||||
updateSnippetDisplay(keyID, 'equal');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
UIkit.notify(Joomla.JText._('COM_COMPONENTBUILDER_SNIPPET_COULD_NOT_BE_UPDATEDSAVED'), {status:'danger'});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function setSnippetGithub_server(path, status) {
|
|
||||||
// set the ajax scope
|
|
||||||
ajaxcall = null;
|
|
||||||
var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.setSnippetGithub&format=json&raw=true");
|
|
||||||
if (token.length > 0 && path.length > 0 && status.length > 0) {
|
|
||||||
var request = token+'=1&path='+path+'&status='+status;
|
|
||||||
}
|
|
||||||
return jQuery.ajax({
|
|
||||||
type: 'POST',
|
|
||||||
url: getUrl,
|
|
||||||
dataType: 'json',
|
|
||||||
data: request,
|
|
||||||
jsonp: false
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// update the snippet display
|
|
||||||
function updateSnippetDisplay(keyID, status) {
|
|
||||||
// update badge
|
|
||||||
jQuery('#'+keyID+'-badge').html('<i class="uk-icon-info"></i> ' +status);
|
|
||||||
jQuery('#'+keyID+'-badge').attr('href' , '#'+status+'-meaning');
|
|
||||||
// update button
|
|
||||||
if ('equal' === status) {
|
|
||||||
// update notice
|
|
||||||
jQuery('#'+keyID+'-getbutton').attr('title', Joomla.JText._('COM_COMPONENTBUILDER_NO_NEED_TO_GET_IT_SINCE_IT_IS_ALREADY_IN_SYNC_WITH_YOUR_LOCAL_VERSION'));
|
|
||||||
jQuery('#'+keyID+'-getbutton').prop('disabled', true);
|
|
||||||
jQuery('#'+keyID+'-getbutton').html('<i class="uk-icon-check-square-o"></i> ' + Joomla.JText._('COM_COMPONENTBUILDER_LOCAL_SNIPPET'));
|
|
||||||
// counter delay just incase
|
|
||||||
setTimeout(function(){
|
|
||||||
jQuery('#'+keyID+'-getbutton').prop('disabled', true);
|
|
||||||
}, 2000);
|
|
||||||
}
|
|
||||||
// update the data filter
|
|
||||||
jQuery('#'+keyID+'-panel').attr('data-uk-filter', status);
|
|
||||||
// tell the grid to update
|
|
||||||
jQuery('#snippets-grid').trigger('display.uk.check');
|
|
||||||
}
|
|
||||||
|
|
||||||
// set the modal
|
|
||||||
function getSnippetModal(key, type) {
|
|
||||||
// set the ajax scope
|
|
||||||
ajaxcall = 'snippets';
|
|
||||||
var _snippet = jQuery.jStorage.get(key, null);
|
|
||||||
if (_snippet) {
|
|
||||||
// show modal
|
|
||||||
showSnippetModal(_snippet, type);
|
|
||||||
} else {
|
|
||||||
jQuery.get('https://raw.githubusercontent.com/vdm-io/Joomla-Component-Builder-Snippets/master/'+key)
|
|
||||||
.done(function(snippet) {
|
|
||||||
// convert the string to json.object
|
|
||||||
snippet = jQuery.parseJSON(snippet);
|
|
||||||
jQuery.jStorage.set(key, snippet, {TTL: expire});
|
|
||||||
// show modal
|
|
||||||
showSnippetModal(snippet, type);
|
|
||||||
})
|
|
||||||
.error(function(jqXHR, textStatus, errorThrown) {
|
|
||||||
// we could do more
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// show the modal
|
|
||||||
function showSnippetModal(snippet, type) {
|
|
||||||
var html = '<div class="uk-modal-dialog uk-modal-dialog-lightbox">';
|
|
||||||
html += '<a href="" class="uk-modal-close uk-close uk-close-alt"></a>';
|
|
||||||
html += '<h3>' + snippet.library + ' - (' + snippet.type + ') ' + snippet.name + '</h3>';
|
|
||||||
if ('contributor' === type) {
|
|
||||||
html += '<dl class="uk-description-list-line">';
|
|
||||||
html += '<dt><i class="uk-icon-institution"></i> '+Joomla.JText._('COM_COMPONENTBUILDER_COMPANY_NAME')+'</dt>';
|
|
||||||
html += '<dd>'+snippet.contributor_company+'</dd>';
|
|
||||||
html += '<dt><i class="uk-icon-user"></i> '+Joomla.JText._('COM_COMPONENTBUILDER_AUTHOR_NAME')+'</dt>';
|
|
||||||
html += '<dd>'+snippet.contributor_name+'</dd>';
|
|
||||||
html += '<dt><i class="uk-icon-envelope-o"></i> '+Joomla.JText._('COM_COMPONENTBUILDER_AUTHOR_EMAIL')+'</dt>';
|
|
||||||
html += '<dd>'+snippet.contributor_email+'</dd>';
|
|
||||||
html += '<dt><i class="uk-icon-laptop"></i> '+Joomla.JText._('COM_COMPONENTBUILDER_AUTHOR_WEBSITE')+'</dt>';
|
|
||||||
html += '<dd>'+snippet.contributor_website+'</dd>';
|
|
||||||
html += '</dl>';
|
|
||||||
} else {
|
|
||||||
html += '<br /><textarea class="uk-width-1-1" rows="15" readonly>'+snippet[type]+'</textarea>';
|
|
||||||
}
|
|
||||||
html += '<br /><small>C: ' + snippet.created + ' | M: ' + snippet.modified + '</small>';
|
|
||||||
html += '</div>';
|
|
||||||
// get current page position
|
|
||||||
var scroll = jQuery(window).scrollTop();
|
|
||||||
// add html to modal
|
|
||||||
var modal = UIkit.modal.blockUI(html, {center:true, bgclose:true}).on({
|
|
||||||
'hide.uk.modal': function(){
|
|
||||||
// scroll fix since the modal pops to the top of the page
|
|
||||||
jQuery(window).scrollTop(scroll);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// show modal
|
|
||||||
modal.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
// get key ID
|
|
||||||
function getKeyID(key) {
|
|
||||||
// get useful ID
|
|
||||||
var keyID = key.replace('-', '');
|
|
||||||
keyID = keyID.replace('.json', '');
|
|
||||||
keyID = keyID.replace(/\s+/ig, '-');
|
|
||||||
keyID = keyID.replace(/\(/g, '');
|
|
||||||
keyID = keyID.replace(/\)/g, '');
|
|
||||||
// return the id build
|
|
||||||
return keyID;
|
|
||||||
}
|
|
||||||
// get key ID
|
|
||||||
function getKeyID(key) {
|
|
||||||
// get useful ID
|
|
||||||
var keyID = key.replace('-', '');
|
|
||||||
keyID = keyID.replace('.json', '');
|
|
||||||
keyID = keyID.replace(/\s+/ig, '-');
|
|
||||||
keyID = keyID.replace(/\(/g, '');
|
|
||||||
keyID = keyID.replace(/\)/g, '');
|
|
||||||
// return the id build
|
|
||||||
return keyID;
|
|
||||||
}
|
|
413
admin/assets/js/initialization_selection.js
Normal file
413
admin/assets/js/initialization_selection.js
Normal file
@ -0,0 +1,413 @@
|
|||||||
|
/**
|
||||||
|
* @package Joomla.Component.Builder
|
||||||
|
*
|
||||||
|
* @created 30th April, 2015
|
||||||
|
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||||
|
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
||||||
|
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* JS Document */
|
||||||
|
|
||||||
|
const memoryinitialization = [];
|
||||||
|
|
||||||
|
function setSessionMemory(key, values, merge = true) {
|
||||||
|
if (merge) {
|
||||||
|
values = mergeSessionMemory(key, values);
|
||||||
|
} else {
|
||||||
|
values = JSON.stringify(values);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof Storage !== "undefined") {
|
||||||
|
sessionStorage.setItem(key, values);
|
||||||
|
} else {
|
||||||
|
memoryinitialization[key] = values;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function mergeSessionMemory(key, values) {
|
||||||
|
const oldValues = getSessionMemory(key);
|
||||||
|
|
||||||
|
if (oldValues) {
|
||||||
|
values = { ...oldValues, ...values };
|
||||||
|
}
|
||||||
|
|
||||||
|
return JSON.stringify(values);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSessionMemory(key, defaultValue = null) {
|
||||||
|
if (typeof Storage !== "undefined") {
|
||||||
|
const localValue = sessionStorage.getItem(key);
|
||||||
|
|
||||||
|
if (isJsonString(localValue)) {
|
||||||
|
defaultValue = JSON.parse(localValue);
|
||||||
|
}
|
||||||
|
} else if (typeof memoryinitialization[key] !== "undefined") {
|
||||||
|
const localValue = memoryinitialization[key];
|
||||||
|
|
||||||
|
if (isJsonString(localValue)) {
|
||||||
|
defaultValue = JSON.parse(localValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isJsonString(str) {
|
||||||
|
try {
|
||||||
|
JSON.parse(str);
|
||||||
|
} catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getArrayFormat(items) {
|
||||||
|
// Check if items is an object and not an array
|
||||||
|
if (typeof items === 'object' && !Array.isArray(items)) {
|
||||||
|
return Object.values(items);
|
||||||
|
}
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
class InitializationManager {
|
||||||
|
#repoArea = document.getElementById('select-repo-area');
|
||||||
|
#powersArea = document.getElementById('select-powers-area');
|
||||||
|
#initButton = document.getElementById('init-selected-powers');
|
||||||
|
#backButton = document.getElementById('back-to-select-repo');
|
||||||
|
#loadingDiv = window.loadingDiv || null;
|
||||||
|
#buildTable = typeof buildPowerSelectionTable === 'function' ? buildPowerSelectionTable : null;
|
||||||
|
#drawTable = typeof drawPowerSelectionTable === 'function' ? drawPowerSelectionTable : null;
|
||||||
|
|
||||||
|
currentRepo = null;
|
||||||
|
currentArea = null;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
this._bindRepoButtons();
|
||||||
|
this._bindInitSelectedPowers();
|
||||||
|
this._updateInitButtonState();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Getter for selected items using global window reference. */
|
||||||
|
get selectedItems() {
|
||||||
|
if (!Array.isArray(window.selectedPowerItems)) {
|
||||||
|
window.selectedPowerItems = [];
|
||||||
|
}
|
||||||
|
return window.selectedPowerItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Setter for selected items with sync to window and button state update. */
|
||||||
|
set selectedItems(items) {
|
||||||
|
window.selectedPowerItems = items;
|
||||||
|
this._updateInitButtonState();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Add items to selection if not already selected. */
|
||||||
|
addSelectedItems(data) {
|
||||||
|
if (!data || typeof data.length !== 'number') return;
|
||||||
|
|
||||||
|
const updated = [...this.selectedItems];
|
||||||
|
|
||||||
|
for (let i = 0; i < data.length; i++) {
|
||||||
|
const item = data[i];
|
||||||
|
if (!updated.some(existing => this.#isSameItem(existing, item))) {
|
||||||
|
updated.push(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.selectedItems = updated;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Remove items from selection based on identity comparison. */
|
||||||
|
removeSelectedItems(data) {
|
||||||
|
if (!data || typeof data.length !== 'number') return;
|
||||||
|
|
||||||
|
const updated = this.selectedItems.filter(existing => {
|
||||||
|
for (let i = 0; i < data.length; i++) {
|
||||||
|
if (this.#isSameItem(existing, data[i])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
this.selectedItems = updated;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Check if two items are the same using GUID. */
|
||||||
|
#isSameItem(a, b) {
|
||||||
|
return a?.guid && b?.guid && a.guid === b.guid;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Enable/disable the init button based on selection state. */
|
||||||
|
_updateInitButtonState() {
|
||||||
|
if (this.#initButton) {
|
||||||
|
this.#initButton.disabled = this.selectedItems.length === 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_bindRepoButtons() {
|
||||||
|
document.querySelectorAll('.select-repo-to-initialize').forEach(button => {
|
||||||
|
button.addEventListener('click', (e) => this._handleRepoClick(e));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
_bindInitSelectedPowers() {
|
||||||
|
if (this.#initButton) {
|
||||||
|
this.#initButton.addEventListener('click', () => this._handleInitSelectedPowers());
|
||||||
|
}
|
||||||
|
if (this.#backButton) {
|
||||||
|
this.#backButton.addEventListener('click', () => this._handleBackToRepos());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_getInitFunctionName(area) {
|
||||||
|
const powers = [
|
||||||
|
'Joomla.Fieldtype',
|
||||||
|
'Joomla.Power',
|
||||||
|
'Repository',
|
||||||
|
'Power'
|
||||||
|
];
|
||||||
|
|
||||||
|
return powers.includes(area) ? 'initSelectedPowers' : 'initSelectedPackages';
|
||||||
|
}
|
||||||
|
|
||||||
|
async _handleRepoClick(event) {
|
||||||
|
const button = event.currentTarget;
|
||||||
|
const repo = button?.dataset?.repo;
|
||||||
|
const area = button?.dataset?.area;
|
||||||
|
|
||||||
|
if (!repo || !area) {
|
||||||
|
this._notify(Joomla.Text._("COM_COMPONENTBUILDER_MISSING_REPOSITORY_OR_AREA_DATA"), "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._showLoading();
|
||||||
|
clearPowerSelectionTable();
|
||||||
|
|
||||||
|
const url = `${UrlAjax}getRepoIndex&repo=${encodeURIComponent(repo)}&area=${encodeURIComponent(area)}`;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await fetch(url);
|
||||||
|
|
||||||
|
if (!response.ok) throw new Error(`HTTP ${response.status}`);
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
|
||||||
|
if (data.success && data.index && this.#buildTable) {
|
||||||
|
const repoData = data.index[0];
|
||||||
|
const {
|
||||||
|
path = 'joomla/super-powers',
|
||||||
|
read_branch = 'master',
|
||||||
|
target,
|
||||||
|
base = 'https://git.vdm.dev'
|
||||||
|
} = repoData;
|
||||||
|
|
||||||
|
const repo_base = (target === 'github') ? 'https://github.com' : base;
|
||||||
|
const repo_path = (target === 'github') ? 'tree' : 'src/branch';
|
||||||
|
|
||||||
|
window.targetPowerRepoUrl = `${repo_base}/${path}/${repo_path}/${read_branch}/`;
|
||||||
|
|
||||||
|
this.#buildTable(repoData.index);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
this._transitionTo(this.#repoArea, this.#powersArea);
|
||||||
|
this._hideLoading();
|
||||||
|
}, 500);
|
||||||
|
|
||||||
|
this.currentRepo = repoData.guid;
|
||||||
|
this.currentArea = area;
|
||||||
|
} else {
|
||||||
|
this._notify(data.message || Joomla.Text._("COM_COMPONENTBUILDER_FAILED_TO_RETRIEVE_REPOSITORY_INDEX"), "danger");
|
||||||
|
this._hideLoading();
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Fetch error:", error);
|
||||||
|
this._hideLoading();
|
||||||
|
this._notify(Joomla.Text._("COM_COMPONENTBUILDER_NETWORK_OR_SERVER_ERROR_OCCURRED_WHILE_FETCHING_INDEX"), "danger");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_handleBackToRepos() {
|
||||||
|
this._transitionTo(this.#powersArea, this.#repoArea);
|
||||||
|
}
|
||||||
|
|
||||||
|
async _handleInitSelectedPowers() {
|
||||||
|
if (!Array.isArray(this.selectedItems) || this.selectedItems.length === 0) {
|
||||||
|
this._notify(Joomla.Text._("COM_COMPONENTBUILDER_NO_ITEMS_SELECTED"), "warning");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._showLoading();
|
||||||
|
|
||||||
|
const area = this.currentArea || 'error';
|
||||||
|
const repo = this.currentRepo || 'error';
|
||||||
|
|
||||||
|
const func = this._getInitFunctionName(area);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Convert selected items to form data
|
||||||
|
const formData = new FormData();
|
||||||
|
|
||||||
|
// Assuming Joomla expects `selected[]` for multiple values
|
||||||
|
for (const item of this.selectedItems) {
|
||||||
|
formData.append('selected[]', item.guid); // Only sending GUIDs
|
||||||
|
}
|
||||||
|
formData.append('area', area);
|
||||||
|
formData.append('repo', repo);
|
||||||
|
|
||||||
|
const response = await fetch(`${UrlAjax}${func}`, {
|
||||||
|
method: 'POST',
|
||||||
|
body: formData
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!response.ok) throw new Error(`HTTP ${response.status}`);
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
|
||||||
|
if (!data.success) {
|
||||||
|
this._notify(data.message || Joomla.Text._("COM_COMPONENTBUILDER_FAILED_TO_INITIALIZE_SELECTED_POWERS"), "danger");
|
||||||
|
} else {
|
||||||
|
this._handleResultLog(data.result_log || {});
|
||||||
|
}
|
||||||
|
|
||||||
|
this._hideLoading();
|
||||||
|
this._transitionTo(this.#powersArea, this.#repoArea);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Submission error:", error);
|
||||||
|
this._notify(Joomla.Text._("COM_COMPONENTBUILDER_ERROR_OCCURRED_WHILE_INITIALIZING_POWERS"), "danger");
|
||||||
|
|
||||||
|
this._hideLoading();
|
||||||
|
this._transitionTo(this.#powersArea, this.#repoArea);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_handleResultLog(resultLog) {
|
||||||
|
const localGuids = this._normalizeGuids(resultLog.local);
|
||||||
|
const notFoundGuids = this._normalizeGuids(resultLog.not_found);
|
||||||
|
const addedGuids = this._normalizeGuids(resultLog.added);
|
||||||
|
|
||||||
|
if (localGuids.length > 0) {
|
||||||
|
this._notify(
|
||||||
|
this._generateResultMessage(localGuids, 'local'),
|
||||||
|
'info'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (notFoundGuids.length > 0) {
|
||||||
|
this._notify(
|
||||||
|
this._generateResultMessage(notFoundGuids, 'not_found'),
|
||||||
|
'info'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (addedGuids.length > 0) {
|
||||||
|
this._notify(
|
||||||
|
this._generateResultMessage(addedGuids, 'added'),
|
||||||
|
'success'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_normalizeGuids(value) {
|
||||||
|
if (!value) return [];
|
||||||
|
|
||||||
|
if (Array.isArray(value)) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof value === 'object') {
|
||||||
|
return Object.keys(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
_generateResultMessage(guids, type) {
|
||||||
|
const messages = {
|
||||||
|
local: Joomla.Text._('COM_COMPONENTBUILDER_THESE_ITEMS_WERE_ALREADY_PRESENT_LOCALLY_AND_WERE_NOT_INITIALIZED'),
|
||||||
|
not_found: Joomla.Text._('COM_COMPONENTBUILDER_THESE_ITEMS_COULD_NOT_BE_FOUND_IN_THE_REMOTE_REPOSITORY_AND_WERE_NOT_INITIALIZED'),
|
||||||
|
added: Joomla.Text._('COM_COMPONENTBUILDER_THESE_ITEMS_WERE_SUCCESSFULLY_INITIALIZED')
|
||||||
|
};
|
||||||
|
|
||||||
|
const names = [];
|
||||||
|
|
||||||
|
for (const guid of guids) {
|
||||||
|
const item = this.selectedItems.find(i => i.guid === guid);
|
||||||
|
if (item?.name) {
|
||||||
|
names.push(item.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (names.length === 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return `${messages[type]}\n<br>- ${names.join('\n<br>- ')}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
_transitionTo(hideEl, showEl) {
|
||||||
|
if (hideEl && showEl) {
|
||||||
|
UIkit.util.ready(() => {
|
||||||
|
UIkit.util.removeClass(hideEl, 'uk-animation-slide-top-small');
|
||||||
|
UIkit.util.removeClass(showEl, 'uk-animation-slide-bottom-small');
|
||||||
|
UIkit.util.addClass(hideEl, 'uk-animation-slide-top-small');
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
hideEl.style.display = 'none';
|
||||||
|
showEl.style.display = '';
|
||||||
|
UIkit.util.addClass(showEl, 'uk-animation-slide-bottom-small');
|
||||||
|
if (this.#drawTable) this.#drawTable();
|
||||||
|
}, 300);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_showLoading() {
|
||||||
|
if (this.#loadingDiv) this.#loadingDiv.style.display = 'block';
|
||||||
|
}
|
||||||
|
|
||||||
|
_hideLoading() {
|
||||||
|
if (this.#loadingDiv) this.#loadingDiv.style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
_notify(message, type = 'info') {
|
||||||
|
const alertTypes = {
|
||||||
|
primary: 'alert-primary',
|
||||||
|
info: 'alert-info',
|
||||||
|
success: 'alert-success',
|
||||||
|
warning: 'alert-warning',
|
||||||
|
danger: 'alert-danger',
|
||||||
|
};
|
||||||
|
|
||||||
|
const alertClass = alertTypes[type] || alertTypes.primary;
|
||||||
|
|
||||||
|
let container = document.getElementById('alert-container');
|
||||||
|
if (!container) {
|
||||||
|
container = document.createElement('div');
|
||||||
|
container.id = 'alert-container';
|
||||||
|
container.className = 'position-fixed top-0 start-50 translate-middle-x p-3';
|
||||||
|
container.style.zIndex = '1060';
|
||||||
|
document.body.appendChild(container);
|
||||||
|
}
|
||||||
|
|
||||||
|
const alert = document.createElement('div');
|
||||||
|
alert.className = `alert ${alertClass} alert-dismissible fade show`;
|
||||||
|
alert.setAttribute('role', 'alert');
|
||||||
|
alert.innerHTML = `
|
||||||
|
${message}
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||||
|
`;
|
||||||
|
|
||||||
|
container.appendChild(alert);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
alert.classList.remove('show');
|
||||||
|
alert.classList.add('hide');
|
||||||
|
alert.addEventListener('transitionend', () => {
|
||||||
|
alert.remove();
|
||||||
|
});
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
}
|
@ -91,7 +91,7 @@ const doSearch = async (signal, tables) => {
|
|||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
return response.json();
|
return response.json();
|
||||||
} else {
|
} else {
|
||||||
UIkit.notify(Joomla.JText._('COM_COMPONENTBUILDER_THE_SEARCH_PROCESS_HAD_AN_ERROR_WITH_TABLE') + ' ' + tableName, {pos:'top-right', status:'danger'});
|
UIkit.notify(Joomla.Text._('COM_COMPONENTBUILDER_THE_SEARCH_PROCESS_HAD_AN_ERROR_WITH_TABLE') + ' ' + tableName, {pos:'top-right', status:'danger'});
|
||||||
}
|
}
|
||||||
}).then((data) => {
|
}).then((data) => {
|
||||||
if (typeof data.success !== 'undefined') {
|
if (typeof data.success !== 'undefined') {
|
||||||
@ -116,11 +116,11 @@ const doSearch = async (signal, tables) => {
|
|||||||
searchProgressBarObject.innerHTML = percent.toFixed(2) + '%';
|
searchProgressBarObject.innerHTML = percent.toFixed(2) + '%';
|
||||||
// when complete hide the progress bar
|
// when complete hide the progress bar
|
||||||
if (progress == total) {
|
if (progress == total) {
|
||||||
let total_field_line = ' ' + fieldCount + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_FIELDS_THAT_HAD') + ' ' + lineCount + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_LINES') + ' ';
|
let total_field_line = ' ' + fieldCount + ' ' + Joomla.Text._('COM_COMPONENTBUILDER_FIELDS_THAT_HAD') + ' ' + lineCount + ' ' + Joomla.Text._('COM_COMPONENTBUILDER_LINES') + ' ';
|
||||||
if (progress == 1) {
|
if (progress == 1) {
|
||||||
searchProgressBarObject.innerHTML = Joomla.JText._('COM_COMPONENTBUILDER_SEARCHING') + ' ' + tableName + total_field_line + Joomla.JText._('COM_COMPONENTBUILDER_AND_FINISHED_THE_SEARCH_IN') + ' ' + getSearchLenght() + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_SECONDS');
|
searchProgressBarObject.innerHTML = Joomla.Text._('COM_COMPONENTBUILDER_SEARCHING') + ' ' + tableName + total_field_line + Joomla.Text._('COM_COMPONENTBUILDER_AND_FINISHED_THE_SEARCH_IN') + ' ' + getSearchLenght() + ' ' + Joomla.Text._('COM_COMPONENTBUILDER_SECONDS');
|
||||||
} else {
|
} else {
|
||||||
searchProgressBarObject.innerHTML = Joomla.JText._('COM_COMPONENTBUILDER_SEARCHING') + ' ' + progress + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_TABLES_WITH') + total_field_line + Joomla.JText._('COM_COMPONENTBUILDER_AND_FINISHED_THE_SEARCH_IN') + ' ' + getSearchLenght() + ' ' + Joomla.JText._('COM_COMPONENTBUILDER_SECONDS');
|
searchProgressBarObject.innerHTML = Joomla.Text._('COM_COMPONENTBUILDER_SEARCHING') + ' ' + progress + ' ' + Joomla.Text._('COM_COMPONENTBUILDER_TABLES_WITH') + total_field_line + Joomla.Text._('COM_COMPONENTBUILDER_AND_FINISHED_THE_SEARCH_IN') + ' ' + getSearchLenght() + ' ' + Joomla.Text._('COM_COMPONENTBUILDER_SECONDS');
|
||||||
}
|
}
|
||||||
// show the search button
|
// show the search button
|
||||||
startSearchButton.style.display = '';
|
startSearchButton.style.display = '';
|
||||||
@ -235,11 +235,11 @@ const replaceAllCheck = () => {
|
|||||||
let searchValue = searchObject.value;
|
let searchValue = searchObject.value;
|
||||||
let replaceValue = replaceObject.value;
|
let replaceValue = replaceObject.value;
|
||||||
// load question
|
// load question
|
||||||
let question = Joomla.JText._('COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_UPDATE_BALLB_VALUES_THAT_CAN_BE_FOUND_IN_THE_DATABASE') + '<br />' +
|
let question = Joomla.Text._('COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_UPDATE_BALLB_VALUES_THAT_CAN_BE_FOUND_IN_THE_DATABASE') + '<br />' +
|
||||||
Joomla.JText._('COM_COMPONENTBUILDER_YOU_WILL_REPLACE') + ': [<span class="found_code">' + htmlentities(searchValue) + '</span>] ' +
|
Joomla.Text._('COM_COMPONENTBUILDER_YOU_WILL_REPLACE') + ': [<span class="found_code">' + htmlentities(searchValue) + '</span>] ' +
|
||||||
Joomla.JText._('COM_COMPONENTBUILDER_WITH') + ': [<span class="found_code">' + htmlentities(replaceValue) + '</span>]<br />' +
|
Joomla.Text._('COM_COMPONENTBUILDER_WITH') + ': [<span class="found_code">' + htmlentities(replaceValue) + '</span>]<br />' +
|
||||||
Joomla.JText._('COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_BYOU_HAVE_BEEN_WARNEDB') + '<br /><br />' +
|
Joomla.Text._('COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_BYOU_HAVE_BEEN_WARNEDB') + '<br /><br />' +
|
||||||
Joomla.JText._('COM_COMPONENTBUILDER_ARE_YOU_THEREFORE_ABSOLUTELY_SURE_YOU_WANT_TO_CONTINUE');
|
Joomla.Text._('COM_COMPONENTBUILDER_ARE_YOU_THEREFORE_ABSOLUTELY_SURE_YOU_WANT_TO_CONTINUE');
|
||||||
// do check
|
// do check
|
||||||
UIkit.modal.confirm(question, function () {
|
UIkit.modal.confirm(question, function () {
|
||||||
|
|
||||||
@ -258,7 +258,7 @@ const replaceAllCheck = () => {
|
|||||||
} else {
|
} else {
|
||||||
replaceAll(controller_replace.signal, searchTables);
|
replaceAll(controller_replace.signal, searchTables);
|
||||||
}
|
}
|
||||||
}, {labels: { Ok: Joomla.JText._('COM_COMPONENTBUILDER_YES_UPDATE_ALL'), Cancel: Joomla.JText._('COM_COMPONENTBUILDER_NO') }});
|
}, {labels: { Ok: Joomla.Text._('COM_COMPONENTBUILDER_YES_UPDATE_ALL'), Cancel: Joomla.Text._('COM_COMPONENTBUILDER_NO') }});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -321,7 +321,7 @@ const replaceAll = async (signal, tables) => {
|
|||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
return response.json();
|
return response.json();
|
||||||
} else {
|
} else {
|
||||||
UIkit.notify(Joomla.JText._('COM_COMPONENTBUILDER_THE_REPLACE_PROCESS_HAD_AN_ERROR_WITH_TABLE') + ' ' + tableName, {pos:'top-right', status:'danger'});
|
UIkit.notify(Joomla.Text._('COM_COMPONENTBUILDER_THE_REPLACE_PROCESS_HAD_AN_ERROR_WITH_TABLE') + ' ' + tableName, {pos:'top-right', status:'danger'});
|
||||||
}
|
}
|
||||||
}).then((data) => {
|
}).then((data) => {
|
||||||
if (typeof data.success !== 'undefined') {
|
if (typeof data.success !== 'undefined') {
|
||||||
@ -343,22 +343,22 @@ const replaceAll = async (signal, tables) => {
|
|||||||
// if not reqex we reverse the search for you so you can see the update was a success
|
// if not reqex we reverse the search for you so you can see the update was a success
|
||||||
if (regexValue == 0) {
|
if (regexValue == 0) {
|
||||||
// set the replace value as the search value
|
// set the replace value as the search value
|
||||||
UIkit.modal.confirm(Joomla.JText._('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_DO_A_REVERSE_SEARCH'), function(){
|
UIkit.modal.confirm(Joomla.Text._('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_DO_A_REVERSE_SEARCH'), function(){
|
||||||
startNewSearch(replaceValue, searchValue, matchValue, wholeValue, regexValue, 2);
|
startNewSearch(replaceValue, searchValue, matchValue, wholeValue, regexValue, 2);
|
||||||
}, function () {
|
}, function () {
|
||||||
UIkit.modal.confirm(Joomla.JText._('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_REPEAT_THE_SAME_SEARCH'), function(){
|
UIkit.modal.confirm(Joomla.Text._('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_REPEAT_THE_SAME_SEARCH'), function(){
|
||||||
startSearch();
|
startSearch();
|
||||||
}, function () {
|
}, function () {
|
||||||
clearSearch();
|
clearSearch();
|
||||||
}, {labels: { Ok: Joomla.JText._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.JText._('COM_COMPONENTBUILDER_NO') }});
|
}, {labels: { Ok: Joomla.Text._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.Text._('COM_COMPONENTBUILDER_NO') }});
|
||||||
}, {labels: { Ok: Joomla.JText._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.JText._('COM_COMPONENTBUILDER_NO') }});
|
}, {labels: { Ok: Joomla.Text._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.Text._('COM_COMPONENTBUILDER_NO') }});
|
||||||
} else {
|
} else {
|
||||||
// else we search it again just to prove its changed
|
// else we search it again just to prove its changed
|
||||||
UIkit.modal.confirm(Joomla.JText._('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_REPEAT_THE_SAME_SEARCH'), function(){
|
UIkit.modal.confirm(Joomla.Text._('COM_COMPONENTBUILDER_WOULD_YOU_LIKE_TO_REPEAT_THE_SAME_SEARCH'), function(){
|
||||||
startSearch();
|
startSearch();
|
||||||
}, function () {
|
}, function () {
|
||||||
clearSearch();
|
clearSearch();
|
||||||
}, {labels: { Ok: Joomla.JText._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.JText._('COM_COMPONENTBUILDER_NO') }});
|
}, {labels: { Ok: Joomla.Text._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.Text._('COM_COMPONENTBUILDER_NO') }});
|
||||||
}
|
}
|
||||||
}, 3000);
|
}, 3000);
|
||||||
}
|
}
|
||||||
@ -381,13 +381,13 @@ const replaceAll = async (signal, tables) => {
|
|||||||
*/
|
*/
|
||||||
const setValueCheck = (row, field, table) => {
|
const setValueCheck = (row, field, table) => {
|
||||||
// load question
|
// load question
|
||||||
let question = Joomla.JText._('COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_UPDATE_ROW') + ' (' + row + ') -> (' + field + ') ' +
|
let question = Joomla.Text._('COM_COMPONENTBUILDER_YOUR_ARE_ABOUT_TO_UPDATE_ROW') + ' (' + row + ') -> (' + field + ') ' +
|
||||||
Joomla.JText._('COM_COMPONENTBUILDER_FIELD_IN_THE') + ' (' + table + ') ' + Joomla.JText._('COM_COMPONENTBUILDER_TABLE') + '.<br /><br />' +
|
Joomla.Text._('COM_COMPONENTBUILDER_FIELD_IN_THE') + ' (' + table + ') ' + Joomla.Text._('COM_COMPONENTBUILDER_TABLE') + '.<br /><br />' +
|
||||||
Joomla.JText._('COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE');
|
Joomla.Text._('COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE');
|
||||||
// do check
|
// do check
|
||||||
UIkit.modal.confirm(question, function () {
|
UIkit.modal.confirm(question, function () {
|
||||||
setValue(row, field, table);
|
setValue(row, field, table);
|
||||||
}, {labels: { Ok: Joomla.JText._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.JText._('COM_COMPONENTBUILDER_NO') }});
|
}, {labels: { Ok: Joomla.Text._('COM_COMPONENTBUILDER_YES'), Cancel: Joomla.Text._('COM_COMPONENTBUILDER_NO') }});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 64 KiB |
@ -72,7 +72,7 @@ class AjaxController extends BaseController
|
|||||||
// return to a callback function
|
// return to a callback function
|
||||||
$callback = $jinput->get('callback', null, 'CMD');
|
$callback = $jinput->get('callback', null, 'CMD');
|
||||||
// Check Token!
|
// Check Token!
|
||||||
$token = Session::getFormToken();
|
$token = Joomla___5ba38513_5c4f_4b0d_935e_49e986a6bce8___Power::getFormToken();
|
||||||
$call_token = $jinput->get('token', 0, 'ALNUM');
|
$call_token = $jinput->get('token', 0, 'ALNUM');
|
||||||
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
|
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
|
||||||
{
|
{
|
||||||
|
@ -56,7 +56,7 @@ class AjaxModel extends ListModel
|
|||||||
{
|
{
|
||||||
parent::__construct($config, $factory);
|
parent::__construct($config, $factory);
|
||||||
|
|
||||||
$this->app_params = ComponentHelper::getParams('com_###component###');
|
$this->app_params = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
}###AJAX_MODEL_METHODS###
|
}###AJAX_MODEL_METHODS###
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ class HeaderCheck
|
|||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
// Initializes the application object.
|
// Initializes the application object.
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
|
|
||||||
// Initializes the document object.
|
// Initializes the document object.
|
||||||
$this->document = $this->app->getDocument();
|
$this->document = $this->app->getDocument();
|
||||||
|
@ -96,7 +96,7 @@ abstract class ###Component###Helper
|
|||||||
public static function getContributors()
|
public static function getContributors()
|
||||||
{
|
{
|
||||||
// get params
|
// get params
|
||||||
$params = ComponentHelper::getParams('com_###component###');
|
$params = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
// start contributors array
|
// start contributors array
|
||||||
$contributors = [];
|
$contributors = [];
|
||||||
// get all Contributors (max 20)
|
// get all Contributors (max 20)
|
||||||
@ -134,7 +134,7 @@ abstract class ###Component###Helper
|
|||||||
public static function addSubmenu($submenu)
|
public static function addSubmenu($submenu)
|
||||||
{
|
{
|
||||||
// load user for access menus
|
// load user for access menus
|
||||||
$user = Factory::getApplication()->getIdentity();
|
$user = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getIdentity();
|
||||||
// load the submenus to sidebar
|
// load the submenus to sidebar
|
||||||
###SUBMENU###
|
###SUBMENU###
|
||||||
}###HELPER_CREATEUSER######HELPER_UIKIT######HELPER_EXEL###
|
}###HELPER_CREATEUSER######HELPER_UIKIT######HELPER_EXEL###
|
||||||
@ -216,7 +216,7 @@ abstract class ###Component###Helper
|
|||||||
{
|
{
|
||||||
$type = 'item';
|
$type = 'item';
|
||||||
}
|
}
|
||||||
$db = Factory::getContainer()->get(DatabaseInterface::class);
|
$db = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(DatabaseInterface::class);
|
||||||
$query = $db->getQuery(true);
|
$query = $db->getQuery(true);
|
||||||
$query->select(array('a.published'));
|
$query->select(array('a.published'));
|
||||||
$query->from('#__###component###_'.$type.' AS a');
|
$query->from('#__###component###_'.$type.' AS a');
|
||||||
@ -234,7 +234,7 @@ abstract class ###Component###Helper
|
|||||||
|
|
||||||
public static function getGroupName($id)
|
public static function getGroupName($id)
|
||||||
{
|
{
|
||||||
$db = Factory::getContainer()->get(DatabaseInterface::class);
|
$db = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(DatabaseInterface::class);
|
||||||
$query = $db->getQuery(true);
|
$query = $db->getQuery(true);
|
||||||
$query->select(array('a.title'));
|
$query->select(array('a.title'));
|
||||||
$query->from('#__usergroups AS a');
|
$query->from('#__usergroups AS a');
|
||||||
@ -268,7 +268,7 @@ abstract class ###Component###Helper
|
|||||||
if (!Super___91004529_94a9_4590_b842_e7c6b624ecf5___Power::check($user))
|
if (!Super___91004529_94a9_4590_b842_e7c6b624ecf5___Power::check($user))
|
||||||
{
|
{
|
||||||
// get the user object
|
// get the user object
|
||||||
$user = Factory::getApplication()->getIdentity();
|
$user = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getIdentity();
|
||||||
}
|
}
|
||||||
// load the CMSObject
|
// load the CMSObject
|
||||||
$result = new CMSObject;
|
$result = new CMSObject;
|
||||||
@ -472,7 +472,7 @@ abstract class ###Component###Helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get the model through the MVCFactory
|
// Get the model through the MVCFactory
|
||||||
return Factory::getApplication()->bootComponent('com_' . $component)->getMVCFactory()->createModel($type, $prefix, $config);
|
return Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->bootComponent('com_' . $component)->getMVCFactory()->createModel($type, $prefix, $config);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -542,7 +542,7 @@ abstract class ###Component###Helper
|
|||||||
|
|
||||||
if (!$asset->check() || !$asset->store())
|
if (!$asset->check() || !$asset->store())
|
||||||
{
|
{
|
||||||
Factory::getApplication()->enqueueMessage($asset->getError(), 'warning');
|
Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->enqueueMessage($asset->getError(), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -555,7 +555,7 @@ abstract class ###Component###Helper
|
|||||||
$object->asset_id = (int) $asset->id;
|
$object->asset_id = (int) $asset->id;
|
||||||
|
|
||||||
// Update their asset_id to link to the asset table.
|
// Update their asset_id to link to the asset table.
|
||||||
return Factory::getDbo()->updateObject('#__###component###_'.$table, $object, 'id');
|
return Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getDbo()->updateObject('#__###component###_'.$table, $object, 'id');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -572,7 +572,7 @@ abstract class ###Component###Helper
|
|||||||
if (!$inherit)
|
if (!$inherit)
|
||||||
{
|
{
|
||||||
// Need to find the asset id by the name of the component.
|
// Need to find the asset id by the name of the component.
|
||||||
$db = Factory::getContainer()->get(DatabaseInterface::class);
|
$db = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(DatabaseInterface::class);
|
||||||
$query = $db->getQuery(true)
|
$query = $db->getQuery(true)
|
||||||
->select($db->quoteName('id'))
|
->select($db->quoteName('id'))
|
||||||
->from($db->quoteName('#__assets'))
|
->from($db->quoteName('#__assets'))
|
||||||
|
@ -41,10 +41,10 @@ class HelpController extends BaseController
|
|||||||
|
|
||||||
public function help()
|
public function help()
|
||||||
{
|
{
|
||||||
$user = Factory::getApplication()->getIdentity();
|
$user = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getIdentity();
|
||||||
$jinput = Factory::getApplication()->input;
|
$jinput = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->input;
|
||||||
// Check Token!
|
// Check Token!
|
||||||
$token = Session::getFormToken();
|
$token = Joomla___5ba38513_5c4f_4b0d_935e_49e986a6bce8___Power::getFormToken();
|
||||||
$call_token = $jinput->get('token', 0, 'ALNUM');
|
$call_token = $jinput->get('token', 0, 'ALNUM');
|
||||||
if($user->id != 0 && ($jinput->get($token, 0, 'ALNUM') || $token === $call_token))
|
if($user->id != 0 && ($jinput->get($token, 0, 'ALNUM') || $token === $call_token))
|
||||||
{
|
{
|
||||||
@ -83,7 +83,7 @@ class HelpController extends BaseController
|
|||||||
|
|
||||||
protected function getHelpDocumentText($id)
|
protected function getHelpDocumentText($id)
|
||||||
{
|
{
|
||||||
$db = Factory::getContainer()->get(DatabaseInterface::class);
|
$db = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(DatabaseInterface::class);
|
||||||
$query = $db->getQuery(true);
|
$query = $db->getQuery(true);
|
||||||
$query->select(array('a.title','a.content'));
|
$query->select(array('a.title','a.content'));
|
||||||
$query->from('#__###component###_help_document AS a');
|
$query->from('#__###component###_help_document AS a');
|
||||||
@ -96,18 +96,18 @@ class HelpController extends BaseController
|
|||||||
$text = [];
|
$text = [];
|
||||||
$document = $db->loadObject();
|
$document = $db->loadObject();
|
||||||
// fix image issue
|
// fix image issue
|
||||||
$images['src="images'] = 'src="'.Uri::root().'images';
|
$images['src="images'] = 'src="'.Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root().'images';
|
||||||
$images["src='images"] = "src='".Uri::root()."images";
|
$images["src='images"] = "src='".Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root()."images";
|
||||||
$images['src="/images'] = 'src="'.Uri::root().'images';
|
$images['src="/images'] = 'src="'.Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root().'images';
|
||||||
$images["src='/images"] = "src='".Uri::root()."images";
|
$images["src='/images"] = "src='".Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root()."images";
|
||||||
// set document template
|
// set document template
|
||||||
$text[] = "<!doctype html>";
|
$text[] = "<!doctype html>";
|
||||||
$text[] = '<html>';
|
$text[] = '<html>';
|
||||||
$text[] = "<head>";
|
$text[] = "<head>";
|
||||||
$text[] = '<meta charset="utf-8">';
|
$text[] = '<meta charset="utf-8">';
|
||||||
$text[] = "<title>".$document->title."</title>";
|
$text[] = "<title>".$document->title."</title>";
|
||||||
$text[] = '<link type="text/css" href="'.Uri::root().'media/com_###component###/uikit/css/uikit.gradient.min.css" rel="stylesheet"></link>';
|
$text[] = '<link type="text/css" href="'.Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root().'media/com_###component###/uikit/css/uikit.gradient.min.css" rel="stylesheet"></link>';
|
||||||
$text[] = '<script type="text/javascript" src="'.Uri::root().'media/com_###component###/uikit/js/uikit.min.js"></script>';
|
$text[] = '<script type="text/javascript" src="'.Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root().'media/com_###component###/uikit/js/uikit.min.js"></script>';
|
||||||
$text[] = "</head>";
|
$text[] = "</head>";
|
||||||
$text[] = '<body><br />';
|
$text[] = '<body><br />';
|
||||||
$text[] = '<div class="uk-container uk-container-center uk-grid-collapse">';
|
$text[] = '<div class="uk-container uk-container-center uk-grid-collapse">';
|
||||||
|
@ -20,76 +20,104 @@ use Joomla\CMS\Component\ComponentHelper;
|
|||||||
use Joomla\CMS\Mail\Mail;
|
use Joomla\CMS\Mail\Mail;
|
||||||
use Joomla\Registry\Registry;
|
use Joomla\Registry\Registry;
|
||||||
|
|
||||||
// No direct access to this file
|
|
||||||
\defined('_JEXEC') or die;
|
\defined('_JEXEC') or die;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ###Component### component email helper
|
* ###Component### component email helper
|
||||||
*
|
*
|
||||||
* @since 3.0
|
* Provides a complete and configurable mailer integration for Joomla components.
|
||||||
|
* Allows for custom headers, DKIM signing, embedded images, and HTML styling.
|
||||||
|
*
|
||||||
|
* @since 3.0
|
||||||
*/
|
*/
|
||||||
abstract class ###Component###Email
|
abstract class ###Component###Email
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The active recipient
|
* The active recipient.
|
||||||
*
|
*
|
||||||
* @var activeRecipient (array)
|
* @var array<string, mixed>
|
||||||
|
* @since 3.0
|
||||||
*/
|
*/
|
||||||
public static $active = [];
|
public static array $active = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuraiton object
|
* Mail instances container.
|
||||||
*
|
*
|
||||||
* @var Registry
|
* @var Joomla___890fd6b1_0127_4f35_9b6e_ee6f2dc61bcc___Power[]
|
||||||
|
* @since 1.7.3
|
||||||
*/
|
*/
|
||||||
public static ?Registry $config = null;
|
protected static array $instances = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mailer object
|
* Global Configuration object.
|
||||||
*
|
*
|
||||||
* @var Mail
|
* @var Registry|null
|
||||||
|
* @since 5.1.1
|
||||||
*/
|
*/
|
||||||
public static ?Mail $mailer = null;
|
protected static ?Registry $gConfig = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom Headers
|
* Component Configuration object.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var Registry|null
|
||||||
|
* @since 3.0
|
||||||
|
*/
|
||||||
|
protected static ?Registry $config = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mailer object.
|
||||||
|
*
|
||||||
|
* @var Joomla___890fd6b1_0127_4f35_9b6e_ee6f2dc61bcc___Power|null
|
||||||
|
* @since 3.0
|
||||||
|
*/
|
||||||
|
protected static ?Joomla___890fd6b1_0127_4f35_9b6e_ee6f2dc61bcc___Power $mailer = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom email headers.
|
||||||
|
*
|
||||||
|
* @var array<string, string>
|
||||||
|
* @since 3.0
|
||||||
*/
|
*/
|
||||||
protected static array $header = [];
|
protected static array $header = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a configuration object
|
* Retrieve the component configuration.
|
||||||
*
|
*
|
||||||
|
* @return Registry Component configuration object
|
||||||
|
* @since 3.0
|
||||||
*/
|
*/
|
||||||
public static function getConfig()
|
protected static function getConfig(): Registry
|
||||||
{
|
{
|
||||||
if (!self::$config)
|
return self::$config ??= Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
{
|
|
||||||
self::$config = ComponentHelper::getParams('com_###component###');
|
|
||||||
}
|
|
||||||
|
|
||||||
return self::$config;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the global mailer object, only creating it if it doesn't already exist.
|
* Retrieve the global configuration.
|
||||||
*
|
*
|
||||||
|
* @return Registry Global configuration object
|
||||||
|
* @since 3.0
|
||||||
*/
|
*/
|
||||||
public static function getMailerInstance()
|
protected static function getGlobalConfig(): Registry
|
||||||
{
|
{
|
||||||
if (!self::$mailer)
|
return self::$gConfig ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getConfig();
|
||||||
{
|
|
||||||
self::$mailer = self::createMailer();
|
|
||||||
}
|
|
||||||
|
|
||||||
return self::$mailer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check that a string looks like an email address.
|
* Get or create a Mailer instance.
|
||||||
* @param string $address The email address to check
|
*
|
||||||
* @param string|callable $patternselect A selector for the validation pattern to use :
|
* @return Joomla___890fd6b1_0127_4f35_9b6e_ee6f2dc61bcc___Power A cloned Mail object instance
|
||||||
|
* @since 3.0
|
||||||
|
*/
|
||||||
|
public static function getMailer(): Joomla___890fd6b1_0127_4f35_9b6e_ee6f2dc61bcc___Power
|
||||||
|
{
|
||||||
|
return self::$mailer ??= self::createMailer();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate an email address using a selected pattern or callable.
|
||||||
|
*
|
||||||
|
* @param string $address Email address to validate.
|
||||||
|
* @param string|callable|null $patternselect Validation pattern or callable.
|
||||||
* * `auto` Pick best pattern automatically;
|
* * `auto` Pick best pattern automatically;
|
||||||
* * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0, PHP >= 5.3.2, 5.2.14;
|
* * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0, PHP >= 5.3.2, 5.2.14;
|
||||||
* * `pcre` Use old PCRE implementation;
|
* * `pcre` Use old PCRE implementation;
|
||||||
@ -101,374 +129,357 @@ abstract class ###Component###Email
|
|||||||
* return (strpos($address, '@') !== false);
|
* return (strpos($address, '@') !== false);
|
||||||
* });
|
* });
|
||||||
* You can also set the PHPMailer::$validator static to a callable, allowing built-in methods to use your validator.
|
* You can also set the PHPMailer::$validator static to a callable, allowing built-in methods to use your validator.
|
||||||
* @return boolean
|
*
|
||||||
* @static
|
* @return bool True if valid, false otherwise
|
||||||
* @access public
|
* @since 3.0
|
||||||
*/
|
*/
|
||||||
public static function validateAddress($address, $patternselect = null): bool
|
public static function validateAddress(string $address, $patternselect = null): bool
|
||||||
{
|
{
|
||||||
return self::getMailerInstance()->validateAddress($address, $patternselect);
|
return self::getMailer()->validateAddress($address, $patternselect);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a mailer object.
|
* Set a custom email header.
|
||||||
*
|
*
|
||||||
* Returns the global {@link Mail} object, only creating it if it doesn't already exist.
|
* @param string $key Header name.
|
||||||
|
* @param string $value Header value.
|
||||||
*
|
*
|
||||||
* @return Mail object
|
* @return void
|
||||||
*
|
* @since 3.0
|
||||||
* @see Mail
|
|
||||||
*/
|
*/
|
||||||
public static function getMailer(): Mail
|
public static function setHeader(string $key, string $value): void
|
||||||
{
|
{
|
||||||
if (!self::$mailer)
|
self::$header[$key] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get or create a Mail instance with specific configuration.
|
||||||
|
*
|
||||||
|
* @param string $id Instance ID.
|
||||||
|
* @param bool $exceptions Enable exceptions.
|
||||||
|
*
|
||||||
|
* @return Joomla___890fd6b1_0127_4f35_9b6e_ee6f2dc61bcc___Power Configured Mail instance
|
||||||
|
* @since 5.1.1
|
||||||
|
*/
|
||||||
|
public static function getInstance(string $id = 'Joomla', bool $exceptions = true): Joomla___890fd6b1_0127_4f35_9b6e_ee6f2dc61bcc___Power
|
||||||
|
{
|
||||||
|
if (!isset(self::$instances[$id]))
|
||||||
{
|
{
|
||||||
self::$mailer = self::createMailer();
|
$config = clone self::getGlobalConfig();
|
||||||
|
$config->set('throw_exceptions', $exceptions);
|
||||||
|
self::$instances[$id] = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(Joomla___3e2779e9_b33f_42b8_a13b_53f08d99f15b___Power::class)->createMailer($config);
|
||||||
}
|
}
|
||||||
|
|
||||||
$copy = clone self::$mailer;
|
return self::$instances[$id];
|
||||||
|
|
||||||
return $copy;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a mailer object
|
* Create a configured Mail instance.
|
||||||
*
|
*
|
||||||
* @return Mail object
|
* @return Joomla___890fd6b1_0127_4f35_9b6e_ee6f2dc61bcc___Power The created Mail object with sender, reply-to and transport settings.
|
||||||
*
|
* @since 3.0
|
||||||
* @see Mail
|
|
||||||
*/
|
*/
|
||||||
protected static function createMailer(): Mail
|
protected static function createMailer(): Joomla___890fd6b1_0127_4f35_9b6e_ee6f2dc61bcc___Power
|
||||||
{
|
{
|
||||||
// set component params
|
$conf = self::getConfig();
|
||||||
$conf = self::getConfig();
|
|
||||||
|
|
||||||
// now load the mailer
|
|
||||||
$mailer = $conf->get('mailer', 'global');
|
$mailer = $conf->get('mailer', 'global');
|
||||||
|
$mail = self::getInstance();
|
||||||
|
|
||||||
// Create a Mail object
|
if ($mailer === 'global')
|
||||||
$mail = Mail::getInstance();
|
|
||||||
|
|
||||||
// check if set to global
|
|
||||||
if ('global' == $mailer)
|
|
||||||
{
|
{
|
||||||
// get the global details
|
$global = self::getGlobalConfig();
|
||||||
$globalConf = Factory::getConfig();
|
$mailer = $global->get('mailer');
|
||||||
|
$params = [
|
||||||
$mailer = $globalConf->get('mailer');
|
'smtpauth' => $global->get('smtpauth') ? 1 : null,
|
||||||
$smtpauth = ($globalConf->get('smtpauth') == 0) ? null : 1;
|
'smtpuser' => $global->get('smtpuser'),
|
||||||
$smtpuser = $globalConf->get('smtpuser');
|
'smtppass' => $global->get('smtppass'),
|
||||||
$smtppass = $globalConf->get('smtppass');
|
'smtphost' => $global->get('smtphost'),
|
||||||
$smtphost = $globalConf->get('smtphost');
|
'smtpsecure' => $global->get('smtpsecure'),
|
||||||
$smtpsecure = $globalConf->get('smtpsecure');
|
'smtpport' => $global->get('smtpport'),
|
||||||
$smtpport = $globalConf->get('smtpport');
|
'sendmail' => $global->get('sendmail'),
|
||||||
$sendmail = $globalConf->get('sendmail');
|
'from' => $global->get('mailfrom'),
|
||||||
$mailfrom = $globalConf->get('mailfrom');
|
'name' => $global->get('fromname'),
|
||||||
$fromname = $globalConf->get('fromname');
|
'replyto' => $global->get('replyto'),
|
||||||
$replyto = $globalConf->get('replyto');
|
'replytoname' => $global->get('replytoname'),
|
||||||
$replytoname = $globalConf->get('replytoname');
|
];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$smtpauth = ($conf->get('smtpauth') == 0) ? null : 1;
|
$params = [
|
||||||
$smtpuser = $conf->get('smtpuser');
|
'smtpauth' => $conf->get('smtpauth') ? 1 : null,
|
||||||
$smtppass = $conf->get('smtppass');
|
'smtpuser' => $conf->get('smtpuser'),
|
||||||
$smtphost = $conf->get('smtphost');
|
'smtppass' => $conf->get('smtppass'),
|
||||||
$smtpsecure = $conf->get('smtpsecure');
|
'smtphost' => $conf->get('smtphost'),
|
||||||
$smtpport = $conf->get('smtpport');
|
'smtpsecure' => $conf->get('smtpsecure'),
|
||||||
$sendmail = $conf->get('sendmail');
|
'smtpport' => $conf->get('smtpport'),
|
||||||
$mailfrom = $conf->get('emailfrom');
|
'sendmail' => $conf->get('sendmail'),
|
||||||
$fromname = $conf->get('fromname');
|
'from' => $conf->get('emailfrom'),
|
||||||
$replyto = $conf->get('replyto');
|
'name' => $conf->get('fromname'),
|
||||||
$replytoname = $conf->get('replytoname');
|
'replyto' => $conf->get('replyto'),
|
||||||
|
'replytoname' => $conf->get('replytoname'),
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set global sender
|
$mail->setSender([$params['from'], $params['name']]);
|
||||||
$mail->setSender(array($mailfrom, $fromname));
|
|
||||||
|
|
||||||
// set the global reply-to if found
|
if (!empty($params['replyto']) && !empty($params['replytoname']))
|
||||||
if ($replyto && $replytoname)
|
{
|
||||||
{
|
|
||||||
$mail->ClearReplyTos();
|
$mail->ClearReplyTos();
|
||||||
$mail->addReplyTo($replyto, $replytoname);
|
$mail->addReplyTo($params['replyto'], $params['replytoname']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default mailer is to use PHP's mail function
|
|
||||||
switch ($mailer)
|
switch ($mailer)
|
||||||
{
|
{
|
||||||
case 'smtp':
|
case 'smtp':
|
||||||
// set the SMTP option
|
$mail->useSMTP(
|
||||||
$mail->useSMTP($smtpauth, $smtphost, $smtpuser, $smtppass, $smtpsecure, $smtpport);
|
$params['smtpauth'],
|
||||||
|
$params['smtphost'],
|
||||||
|
$params['smtpuser'],
|
||||||
|
$params['smtppass'],
|
||||||
|
$params['smtpsecure'],
|
||||||
|
$params['smtpport']
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'sendmail':
|
case 'sendmail':
|
||||||
// set the sendmail option
|
$mail->useSendmail($params['sendmail']);
|
||||||
$mail->useSendmail($sendmail);
|
|
||||||
$mail->IsSendmail();
|
$mail->IsSendmail();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$mail->IsMail();
|
$mail->IsMail();
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $mail;
|
return $mail;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a Mail custom header.
|
* Compose and send an email with full options including attachments, HTML, DKIM, and reply-to support.
|
||||||
*
|
*
|
||||||
* @return void
|
* @param string|array $recipient Email or list of recipients.
|
||||||
|
* @param string $subject Subject line.
|
||||||
|
* @param string $body HTML body.
|
||||||
|
* @param string|null $textonly Optional plain text fallback.
|
||||||
|
* @param int $mode 1 = HTML, 0 = plain text.
|
||||||
|
* @param string|null $bounce_email Optional bounce email address.
|
||||||
|
* @param string|null $idsession Optional message tracking tag.
|
||||||
|
* @param string|array|null $mailreply Optional reply-to address(es).
|
||||||
|
* @param string|array|null $replyname Optional reply-to name(s).
|
||||||
|
* @param string|null $mailfrom Optional sender email override.
|
||||||
|
* @param string|null $fromname Optional sender name override.
|
||||||
|
* @param array|null $cc CC recipients.
|
||||||
|
* @param array|null $bcc BCC recipients.
|
||||||
|
* @param array|string|null $attachment Attachments.
|
||||||
|
* @param bool $embeded Embed image flag.
|
||||||
|
* @param array|null $embeds Embedded image definitions.
|
||||||
|
*
|
||||||
|
* @return bool True on success, false on failure.
|
||||||
|
* @since 3.0
|
||||||
*/
|
*/
|
||||||
public static function setHeader($target, $value)
|
public static function send(
|
||||||
{
|
$recipient,
|
||||||
// set the header
|
string $subject,
|
||||||
self::$header[$target] = $value;
|
string $body,
|
||||||
}
|
?string $textonly,
|
||||||
|
int $mode = 0,
|
||||||
/**
|
?string $bounce_email = null,
|
||||||
* Send an email
|
?string $idsession = null,
|
||||||
*
|
$mailreply = null,
|
||||||
* @return bool on success
|
$replyname = null,
|
||||||
*
|
?string $mailfrom = null,
|
||||||
*/
|
?string $fromname = null,
|
||||||
public static function send($recipient, $subject, $body, $textonly, $mode = 0, $bounce_email = null, $idsession = null, $mailreply = null, $replyname = null , $mailfrom = null, $fromname = null, $cc = null, $bcc = null, $attachment = null, $embeded = null , $embeds = null)
|
?array $cc = null,
|
||||||
{
|
?array $bcc = null,
|
||||||
// Get a Mail instance
|
$attachment = null,
|
||||||
|
bool $embeded = false,
|
||||||
|
?array $embeds = null
|
||||||
|
): bool {
|
||||||
$mail = self::getMailer();
|
$mail = self::getMailer();
|
||||||
|
|
||||||
// set component params
|
|
||||||
$conf = self::getConfig();
|
$conf = self::getConfig();
|
||||||
|
|
||||||
// set if we have override
|
|
||||||
if ($mailfrom && $fromname)
|
if ($mailfrom && $fromname)
|
||||||
{
|
{
|
||||||
$mail->setSender(array($mailfrom, $fromname));
|
$mail->setSender([$mailfrom, $fromname]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// load the bounce email as sender if set
|
if ($bounce_email)
|
||||||
if (!is_null($bounce_email))
|
|
||||||
{
|
{
|
||||||
$mail->Sender = $bounce_email;
|
$mail->Sender = $bounce_email;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add tag to email to identify it
|
if ($idsession)
|
||||||
if (!is_null($idsession))
|
|
||||||
{
|
{
|
||||||
$mail->addCustomHeader('X-VDMmethodID:'.$idsession);
|
$mail->addCustomHeader('X-VDMmethodID:' . $idsession);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set headers if found
|
foreach (self::$header as $key => $val)
|
||||||
if (isset(self::$header) && is_array(self::$header) && count((array)self::$header) > 0)
|
|
||||||
{
|
{
|
||||||
foreach (self::$header as $_target => $_value)
|
$mail->addCustomHeader($key . ':' . $val);
|
||||||
{
|
|
||||||
$mail->addCustomHeader($_target.':'.$_value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// set the subject & Body
|
|
||||||
$mail->setSubject($subject);
|
$mail->setSubject($subject);
|
||||||
$mail->setBody($body);
|
$mail->setBody($body);
|
||||||
|
|
||||||
// Are we sending the email as HTML?
|
|
||||||
if ($mode)
|
if ($mode)
|
||||||
{
|
{
|
||||||
$mail->IsHTML(true);
|
$mail->isHTML(true);
|
||||||
$mail->AltBody = $textonly;
|
$mail->AltBody = $textonly;
|
||||||
}
|
}
|
||||||
|
|
||||||
//embed images
|
if ($embeded && !empty($embeds))
|
||||||
if ($embeded)
|
|
||||||
{
|
{
|
||||||
if(Super___0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check($embeds))
|
foreach ($embeds as $embed)
|
||||||
{
|
{
|
||||||
foreach($embeds as $embed)
|
$mail->addEmbeddedImage($embed->Path, $embed->FileName);
|
||||||
{
|
|
||||||
$mail->AddEmbeddedImage($embed->Path,$embed->FileName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$mail->addRecipient($recipient);
|
$mail->addRecipient($recipient);
|
||||||
$mail->addCC($cc);
|
if (!empty($cc)) $mail->addCC($cc);
|
||||||
$mail->addBCC($bcc);
|
if (!empty($bcc)) $mail->addBCC($bcc);
|
||||||
$mail->addAttachment($attachment);
|
if (!empty($attachment)) $mail->addAttachment($attachment);
|
||||||
|
|
||||||
// Take care of reply email addresses
|
if (!empty($mailreply))
|
||||||
if (is_array($mailreply))
|
|
||||||
{
|
{
|
||||||
$mail->ClearReplyTos();
|
$mail->ClearReplyTos();
|
||||||
$numReplyTo = count((array)$mailreply);
|
if (is_array($mailreply))
|
||||||
for ($i=0; $i < $numReplyTo; $i++)
|
|
||||||
{
|
{
|
||||||
$mail->addReplyTo($mailreply[$i], $replyname[$i]);
|
foreach ($mailreply as $i => $reply)
|
||||||
|
{
|
||||||
|
$mail->addReplyTo($reply, $replyname[$i] ?? '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mail->addReplyTo($mailreply, (string) $replyname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif (!empty($mailreply))
|
|
||||||
{
|
|
||||||
$mail->ClearReplyTos();
|
|
||||||
$mail->addReplyTo($mailreply, $replyname);
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if we can add the DKIM to email
|
$sent = false;
|
||||||
if ($conf->get('enable_dkim'))
|
$tmp = null;
|
||||||
{
|
|
||||||
if (!empty($conf->get('dkim_domain')) && !empty($conf->get('dkim_selector')) && !empty($conf->get('dkim_private')) && !empty($conf->get('dkim_public')))
|
try {
|
||||||
{
|
if (
|
||||||
$mail->DKIM_domain = $conf->get('dkim_domain');
|
$conf->get('enable_dkim') &&
|
||||||
$mail->DKIM_selector = $conf->get('dkim_selector');
|
($domain = $conf->get('dkim_domain')) &&
|
||||||
$mail->DKIM_identity = $conf->get('dkim_identity');
|
($selector = $conf->get('dkim_selector')) &&
|
||||||
$mail->DKIM_passphrase = $conf->get('dkim_passphrase');
|
($privateKey = $conf->get('dkim_private'))
|
||||||
|
) {
|
||||||
|
$mail->DKIM_domain = $domain;
|
||||||
|
$mail->DKIM_selector = $selector;
|
||||||
|
$mail->DKIM_identity = $conf->get('dkim_identity') ?: $domain;
|
||||||
|
$mail->DKIM_passphrase = $conf->get('dkim_passphrase');
|
||||||
|
|
||||||
$tmp = tempnam(sys_get_temp_dir(), 'VDM');
|
$tmp = tempnam(sys_get_temp_dir(), 'VDM');
|
||||||
$h = fopen($tmp, 'w');
|
if ($tmp === false || file_put_contents($tmp, $privateKey) === false)
|
||||||
fwrite($h, $conf->get('dkim_private'));
|
{
|
||||||
fclose($h);
|
throw new \RuntimeException('Failed to create temporary DKIM private key file.');
|
||||||
$mail->DKIM_private = $tmp;
|
}
|
||||||
|
|
||||||
|
$mail->DKIM_private = $tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sent = $mail->Send();
|
||||||
|
} finally {
|
||||||
|
if ($tmp && file_exists($tmp))
|
||||||
|
{
|
||||||
|
@unlink($tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$sendmail = $mail->Send();
|
$sent = $mail->Send();
|
||||||
|
|
||||||
if ($conf->get('enable_dkim') && !empty($conf->get('dkim_domain')) && !empty($conf->get('dkim_selector')) && !empty($conf->get('dkim_private')) && !empty($conf->get('dkim_public')))
|
if ($tmp)
|
||||||
{
|
{
|
||||||
@unlink($tmp);
|
@unlink($tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (method_exists('###Component###Helper','storeMessage'))
|
if (method_exists('###Component###Helper', 'storeMessage'))
|
||||||
{
|
{
|
||||||
// if we have active recipient details
|
$data = self::$active[$recipient] ?? $recipient;
|
||||||
if (isset(self::$active[$recipient]))
|
###Component###Helper::storeMessage($sent, $data, $subject, $body, $textonly, $mode, 'email');
|
||||||
{
|
unset(self::$active[$recipient]);
|
||||||
// store the massage if the method is set
|
|
||||||
###Component###Helper::storeMessage($sendmail, self::$active[$recipient], $subject, $body, $textonly, $mode, 'email');
|
|
||||||
// clear memory
|
|
||||||
unset(self::$active[$recipient]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// store the massage if the method is set
|
|
||||||
###Component###Helper::storeMessage($sendmail, $recipient, $subject, $body, $textonly, $mode, 'email');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $sendmail;
|
return $sent;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set html text (in a row) and subject (as title) to a email table.
|
* Build a complete minimal HTML email body with basic headers.
|
||||||
* do not use <p> instead use <br />
|
* Use <br /> instead of <p> for layout consistency in emails.
|
||||||
* in your html that you pass to this method
|
|
||||||
* since it is a table row it does not
|
|
||||||
* work well with paragraphs
|
|
||||||
*
|
*
|
||||||
* @return string on success
|
* @param string $html Body HTML content.
|
||||||
|
* @param string $subject Email subject/title used in the <title> tag.
|
||||||
*
|
*
|
||||||
|
* @return string Full HTML email body.
|
||||||
|
* @since 3.0
|
||||||
*/
|
*/
|
||||||
public static function setBasicBody($html, $subject)
|
public static function setBasicBody(string $html, string $subject): string
|
||||||
{
|
{
|
||||||
$body = [];
|
return implode("\n", [
|
||||||
$body[] = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">";
|
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
|
||||||
$body[] = "<html xmlns=\"http://www.w3.org/1999/xhtml\">";
|
'<html xmlns="http://www.w3.org/1999/xhtml">',
|
||||||
$body[] = "<head>";
|
'<head>',
|
||||||
$body[] = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />";
|
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />',
|
||||||
$body[] = "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>";
|
'<meta name="viewport" content="width=device-width, initial-scale=1.0"/>',
|
||||||
$body[] = "<title>" . $subject . "</title>";
|
'<title>' . htmlspecialchars($subject) . '</title>',
|
||||||
$body[] = "<style type=\"text/css\">";
|
'<style type="text/css">',
|
||||||
$body[] = "#outlook a {padding:0;}";
|
'#outlook a {padding:0;} .ExternalClass {width:100%;} .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height:100%;}',
|
||||||
$body[] = ".ExternalClass {width:100%;}";
|
// 'p {margin: 0; padding: 0; font-size: 0px; line-height: 0px;}',
|
||||||
$body[] = ".ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} ";
|
'table, table td {border-collapse: collapse;}',
|
||||||
$body[] = "p {margin: 0; padding: 0; font-size: 0px; line-height: 0px;} ";
|
'img {display:block; outline:none; text-decoration:none; -ms-interpolation-mode:bicubic;}',
|
||||||
$body[] = "table td {border-collapse: collapse;}";
|
'a img {border:none;} a {text-decoration:none; color:#000001;} a.phone {pointer-events:auto; cursor:default; color:#000001 !important;}',
|
||||||
$body[] = "table {border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }";
|
'span {font-size:13px; line-height:17px; font-family:monospace; color:#000001;}',
|
||||||
$body[] = "img {display: block; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic;}";
|
'</style>',
|
||||||
$body[] = "a img {border: none;}";
|
'<!--[if gte mso 9]><style>/* Target Outlook 2007 and 2010 */</style><![endif]-->',
|
||||||
$body[] = "a {text-decoration: none; color: #000001;}";
|
'</head>',
|
||||||
$body[] = "a.phone {text-decoration: none; color: #000001 !important; pointer-events: auto; cursor: default;}";
|
'<body style="width:100%; margin:0; padding:0; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">',
|
||||||
$body[] = "span {font-size: 13px; line-height: 17px; font-family: monospace; color: #000001;}";
|
$html,
|
||||||
$body[] = "</style>";
|
'</body>',
|
||||||
$body[] = "<!--[if gte mso 9]>";
|
'</html>'
|
||||||
$body[] = "<style>";
|
]);
|
||||||
$body[] = "/* Target Outlook 2007 and 2010 */";
|
|
||||||
$body[] = "</style>";
|
|
||||||
$body[] = "<![endif]-->";
|
|
||||||
$body[] = "</head>";
|
|
||||||
$body[] = "<body style=\"width:100%; margin:0; padding:0; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;\">";
|
|
||||||
$body[] = $html;
|
|
||||||
$body[] = "</body>";
|
|
||||||
$body[] = "</html>";
|
|
||||||
|
|
||||||
return implode("\n", $body);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set html text (in a row) and subject (as title) to a email table.
|
* Build a styled HTML email with outer table formatting for wide layout support.
|
||||||
* do not use <p> instead use <br />
|
* Suitable for rich content emails that need outer table structure.
|
||||||
* in your html that you pass to this method
|
|
||||||
* since it is a table row it does not
|
|
||||||
* work well with paragraphs
|
|
||||||
*
|
*
|
||||||
* @return string on success
|
* @param string $html Inner body HTML content.
|
||||||
|
* @param string $subject Email subject/title used in the <title> tag.
|
||||||
*
|
*
|
||||||
|
* @return string Complete HTML email content.
|
||||||
|
* @since 3.0
|
||||||
*/
|
*/
|
||||||
public static function setTableBody($html, $subject)
|
public static function setTableBody(string $html, string $subject): string
|
||||||
{
|
{
|
||||||
$body = [];
|
return implode("\n", [
|
||||||
$body[] = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">";
|
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
|
||||||
$body[] = "<html xmlns=\"http://www.w3.org/1999/xhtml\">";
|
'<html xmlns="http://www.w3.org/1999/xhtml">',
|
||||||
$body[] = "<head>";
|
'<head>',
|
||||||
$body[] = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />";
|
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />',
|
||||||
$body[] = "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>";
|
'<meta name="viewport" content="width=device-width, initial-scale=1.0"/>',
|
||||||
$body[] = "<title>" . $subject . "</title>";
|
'<title>' . htmlspecialchars($subject) . '</title>',
|
||||||
$body[] = "<style type=\"text/css\">";
|
'<style type="text/css">',
|
||||||
$body[] = "#outlook a {padding:0;}";
|
'#outlook a {padding:0;} .ExternalClass {width:100%;} .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height:100%;}',
|
||||||
$body[] = ".ExternalClass {width:100%;}";
|
// 'p {margin: 0; padding: 0; font-size: 0px; line-height: 0px;}',
|
||||||
$body[] = ".ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} ";
|
'table, table td {border-collapse: collapse;}',
|
||||||
$body[] = "p {margin: 0; padding: 0; font-size: 0px; line-height: 0px;} ";
|
'img {display:block; outline:none; text-decoration:none; -ms-interpolation-mode:bicubic;}',
|
||||||
$body[] = "table td {border-collapse: collapse;}";
|
'a img {border:none;} a {text-decoration:none; color:#000001;} a.phone {pointer-events:auto; cursor:default; color:#000001 !important;}',
|
||||||
$body[] = "table {border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }";
|
'span {font-size:13px; line-height:17px; font-family:monospace; color:#000001;}',
|
||||||
$body[] = "img {display: block; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic;}";
|
'</style>',
|
||||||
$body[] = "a img {border: none;}";
|
'<!--[if gte mso 9]><style>/* Target Outlook 2007 and 2010 */</style><![endif]-->',
|
||||||
$body[] = "a {text-decoration: none; color: #000001;}";
|
'</head>',
|
||||||
$body[] = "a.phone {text-decoration: none; color: #000001 !important; pointer-events: auto; cursor: default;}";
|
'<body style="width:100%; margin:0; padding:0; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">',
|
||||||
$body[] = "span {font-size: 13px; line-height: 17px; font-family: monospace; color: #000001;}";
|
'<table cellpadding="0" cellspacing="0" border="0" width="100%" style="line-height:100% !important;">',
|
||||||
$body[] = "</style>";
|
'<tr><td valign="top">',
|
||||||
$body[] = "<!--[if gte mso 9]>";
|
'<table cellpadding="0" cellspacing="0" border="0" align="center" width="800">',
|
||||||
$body[] = "<style>";
|
'<tr><td valign="top">',
|
||||||
$body[] = "/* Target Outlook 2007 and 2010 */";
|
'<table cellpadding="0" cellspacing="0" border="0" align="center" width="780">',
|
||||||
$body[] = "</style>";
|
'<tr><td valign="top" style="vertical-align:top;">',
|
||||||
$body[] = "<![endif]-->";
|
$html,
|
||||||
$body[] = "</head>";
|
'</td></tr></table>',
|
||||||
$body[] = "<body style=\"width:100%; margin:0; padding:0; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;\">";
|
'</td></tr></table>',
|
||||||
$body[] = "\n<!-- body wrapper -->";
|
'</td></tr></table>',
|
||||||
$body[] = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"margin:0; padding:0; width:100%; line-height: 100% !important;\">";
|
'</body>',
|
||||||
$body[] = "<tr>";
|
'</html>'
|
||||||
$body[] = "<td valign=\"top\">";
|
]);
|
||||||
$body[] = "<!-- edge wrapper -->";
|
|
||||||
$body[] = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\" width=\"800\" >";
|
|
||||||
$body[] = "<tr>";
|
|
||||||
$body[] = "<td valign=\"top\">";
|
|
||||||
$body[] = "<!-- content wrapper -->";
|
|
||||||
$body[] = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\" width=\"780\">";
|
|
||||||
$body[] = "<tr>";
|
|
||||||
$body[] = "<td valign=\"top\" style=\"vertical-align: top;\">";
|
|
||||||
$body[] = $html;
|
|
||||||
$body[] = "</td>";
|
|
||||||
$body[] = "</tr>";
|
|
||||||
$body[] = "</table>";
|
|
||||||
$body[] = "<!-- / content wrapper -->";
|
|
||||||
$body[] = "</td>";
|
|
||||||
$body[] = "</tr>";
|
|
||||||
$body[] = "</table>";
|
|
||||||
$body[] = "<!-- / edge wrapper -->";
|
|
||||||
$body[] = "</td>";
|
|
||||||
$body[] = "</tr>";
|
|
||||||
$body[] = "</table>";
|
|
||||||
$body[] = "<!-- / page wrapper -->";
|
|
||||||
$body[] = "</body>";
|
|
||||||
$body[] = "</html>";
|
|
||||||
|
|
||||||
return implode("\n", $body);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,21 +35,21 @@ class ImportController extends BaseController
|
|||||||
public function import()
|
public function import()
|
||||||
{
|
{
|
||||||
// Check for request forgeries
|
// Check for request forgeries
|
||||||
Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
|
Joomla___5ba38513_5c4f_4b0d_935e_49e986a6bce8___Power::checkToken() or jexit(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JINVALID_TOKEN'));
|
||||||
|
|
||||||
$model = $this->getModel('import');
|
$model = $this->getModel('import');
|
||||||
if ($model->import())
|
if ($model->import())
|
||||||
{
|
{
|
||||||
$cache = Factory::getCache('mod_menu');
|
$cache = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getCache('mod_menu');
|
||||||
$cache->clean();
|
$cache->clean();
|
||||||
// TODO: Reset the users acl here as well to kill off any missing bits
|
// TODO: Reset the users acl here as well to kill off any missing bits
|
||||||
}
|
}
|
||||||
|
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$redirect_url = $app->getUserState('com_###component###.redirect_url');
|
$redirect_url = $app->getUserState('com_###component###.redirect_url');
|
||||||
if (empty($redirect_url))
|
if (empty($redirect_url))
|
||||||
{
|
{
|
||||||
$redirect_url = Route::_('index.php?option=com_###component###&view=import', false);
|
$redirect_url = Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###&view=import', false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -35,21 +35,21 @@ class ###View###importController extends BaseController
|
|||||||
public function import()
|
public function import()
|
||||||
{
|
{
|
||||||
// Check for request forgeries
|
// Check for request forgeries
|
||||||
Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
|
Joomla___5ba38513_5c4f_4b0d_935e_49e986a6bce8___Power::checkToken() or jexit(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JINVALID_TOKEN'));
|
||||||
|
|
||||||
$model = $this->getModel('###View###');
|
$model = $this->getModel('###View###');
|
||||||
if ($model->import())
|
if ($model->import())
|
||||||
{
|
{
|
||||||
$cache = Factory::getCache('mod_menu');
|
$cache = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getCache('mod_menu');
|
||||||
$cache->clean();
|
$cache->clean();
|
||||||
// TODO: Reset the users acl here as well to kill off any missing bits
|
// TODO: Reset the users acl here as well to kill off any missing bits
|
||||||
}
|
}
|
||||||
|
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$redirect_url = $app->getUserState('com_###component###.redirect_url');
|
$redirect_url = $app->getUserState('com_###component###.redirect_url');
|
||||||
if (empty($redirect_url))
|
if (empty($redirect_url))
|
||||||
{
|
{
|
||||||
$redirect_url = Route::_('index.php?option=com_###component###&view=###view###', false);
|
$redirect_url = Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###&view=###view###', false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -63,7 +63,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
}
|
}
|
||||||
|
|
||||||
// get the session object
|
// get the session object
|
||||||
$session = Factory::getSession();
|
$session = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getSession();
|
||||||
// check if it has package
|
// check if it has package
|
||||||
$this->hasPackage = $session->get('hasPackage', false);
|
$this->hasPackage = $session->get('hasPackage', false);
|
||||||
$this->dataType = $session->get('dataType', false);
|
$this->dataType = $session->get('dataType', false);
|
||||||
@ -93,18 +93,18 @@ class HtmlView extends BaseHtmlView
|
|||||||
*/
|
*/
|
||||||
protected function addToolbar(): void
|
protected function addToolbar(): void
|
||||||
{
|
{
|
||||||
ToolbarHelper::title(Text::_('COM_###COMPONENT###_IMPORT_TITLE'), 'upload');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::title(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_TITLE'), 'upload');
|
||||||
|
|
||||||
if ($this->canDo->get('core.admin') || $this->canDo->get('core.options'))
|
if ($this->canDo->get('core.admin') || $this->canDo->get('core.options'))
|
||||||
{
|
{
|
||||||
ToolbarHelper::preferences('com_###component###');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::preferences('com_###component###');
|
||||||
}
|
}
|
||||||
|
|
||||||
// set help url for this view if found
|
// set help url for this view if found
|
||||||
$this->help_url = ###Component###Helper::getHelpUrl('import');
|
$this->help_url = ###Component###Helper::getHelpUrl('import');
|
||||||
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
||||||
{
|
{
|
||||||
ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,18 +43,18 @@ class HtmlView extends BaseHtmlView
|
|||||||
*/
|
*/
|
||||||
protected function addToolbar(): void
|
protected function addToolbar(): void
|
||||||
{
|
{
|
||||||
ToolbarHelper::title(Text::_('COM_###COMPONENT###_IMPORT_TITLE'), 'upload');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::title(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_TITLE'), 'upload');
|
||||||
|
|
||||||
if ($this->canDo->get('core.admin') || $this->canDo->get('core.options'))
|
if ($this->canDo->get('core.admin') || $this->canDo->get('core.options'))
|
||||||
{
|
{
|
||||||
ToolbarHelper::preferences('com_###component###');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::preferences('com_###component###');
|
||||||
}
|
}
|
||||||
|
|
||||||
// set help url for this view if found
|
// set help url for this view if found
|
||||||
$this->help_url = ###Component###Helper::getHelpUrl('###view###');
|
$this->help_url = ###Component###Helper::getHelpUrl('###view###');
|
||||||
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
||||||
{
|
{
|
||||||
ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
*/
|
*/
|
||||||
protected function populateState()
|
protected function populateState()
|
||||||
{
|
{
|
||||||
$app = Factory::getApplication('administrator');
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication('administrator');
|
||||||
|
|
||||||
$this->setState('message', $app->getUserState('com_###component###.message'));
|
$this->setState('message', $app->getUserState('com_###component###.message'));
|
||||||
$app->setUserState('com_###component###.message', '');
|
$app->setUserState('com_###component###.message', '');
|
||||||
@ -85,8 +85,8 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
public function import()
|
public function import()
|
||||||
{
|
{
|
||||||
$this->setState('action', 'import');
|
$this->setState('action', 'import');
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$session = Factory::getSession();
|
$session = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getSession();
|
||||||
$package = null;
|
$package = null;
|
||||||
$continue = false;
|
$continue = false;
|
||||||
// get import type
|
// get import type
|
||||||
@ -123,7 +123,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$app->setUserState('com_###component###.message', Text::_('COM_###COMPONENT###_IMPORT_NO_IMPORT_TYPE_FOUND'));
|
$app->setUserState('com_###component###.message', Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_NO_IMPORT_TYPE_FOUND'));
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
@ -137,7 +137,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
$this->remove($package['packagename']);
|
$this->remove($package['packagename']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$app->setUserState('com_###component###.message', Text::_('COM_###COMPONENT###_IMPORT_UNABLE_TO_FIND_IMPORT_PACKAGE'));
|
$app->setUserState('com_###component###.message', Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_UNABLE_TO_FIND_IMPORT_PACKAGE'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
if (!$this->setData($package,$this->dataType,$headerList))
|
if (!$this->setData($package,$this->dataType,$headerList))
|
||||||
{
|
{
|
||||||
// There was an error importing the package
|
// There was an error importing the package
|
||||||
$msg = Text::_('COM_###COMPONENT###_IMPORT_ERROR');
|
$msg = Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_ERROR');
|
||||||
$back = $session->get('backto_VDM_IMPORT', NULL);
|
$back = $session->get('backto_VDM_IMPORT', NULL);
|
||||||
if ($back)
|
if ($back)
|
||||||
{
|
{
|
||||||
@ -167,7 +167,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Package imported sucessfully
|
// Package imported sucessfully
|
||||||
$msg = Text::sprintf('COM_###COMPONENT###_IMPORT_SUCCESS', $package['packagename']);
|
$msg = Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('COM_###COMPONENT###_IMPORT_SUCCESS', $package['packagename']);
|
||||||
$back = $session->get('backto_VDM_IMPORT', NULL);
|
$back = $session->get('backto_VDM_IMPORT', NULL);
|
||||||
if ($back)
|
if ($back)
|
||||||
{
|
{
|
||||||
@ -195,7 +195,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
protected function _getPackageFromUpload()
|
protected function _getPackageFromUpload()
|
||||||
{
|
{
|
||||||
// Get the uploaded file information
|
// Get the uploaded file information
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$input = $app->input;
|
$input = $app->input;
|
||||||
|
|
||||||
// Do not change the filter type 'raw'. We need this to let files containing PHP code to upload. See JInputFiles::get.
|
// Do not change the filter type 'raw'. We need this to let files containing PHP code to upload. See JInputFiles::get.
|
||||||
@ -204,26 +204,26 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
// Make sure that file uploads are enabled in php
|
// Make sure that file uploads are enabled in php
|
||||||
if (!(bool) ini_get('file_uploads'))
|
if (!(bool) ini_get('file_uploads'))
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_WARNIMPORTFILE'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_WARNIMPORTFILE'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there is no uploaded file, we have a problem...
|
// If there is no uploaded file, we have a problem...
|
||||||
if (!is_array($userfile))
|
if (!is_array($userfile))
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_NO_FILE_SELECTED'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_NO_FILE_SELECTED'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if there was a problem uploading the file.
|
// Check if there was a problem uploading the file.
|
||||||
if ($userfile['error'] || $userfile['size'] < 1)
|
if ($userfile['error'] || $userfile['size'] < 1)
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_WARNIMPORTUPLOADERROR'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_WARNIMPORTUPLOADERROR'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build the appropriate paths
|
// Build the appropriate paths
|
||||||
$config = Factory::getConfig();
|
$config = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getConfig();
|
||||||
$tmp_dest = $config->get('tmp_path') . '/' . $userfile['name'];
|
$tmp_dest = $config->get('tmp_path') . '/' . $userfile['name'];
|
||||||
$tmp_src = $userfile['tmp_name'];
|
$tmp_src = $userfile['tmp_name'];
|
||||||
|
|
||||||
@ -233,7 +233,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
// Was the package downloaded?
|
// Was the package downloaded?
|
||||||
if (!$p_file)
|
if (!$p_file)
|
||||||
{
|
{
|
||||||
$session = Factory::getSession();
|
$session = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getSession();
|
||||||
$session->clear('package');
|
$session->clear('package');
|
||||||
$session->clear('dataType');
|
$session->clear('dataType');
|
||||||
$session->clear('hasPackage');
|
$session->clear('hasPackage');
|
||||||
@ -255,7 +255,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
*/
|
*/
|
||||||
protected function _getPackageFromFolder()
|
protected function _getPackageFromFolder()
|
||||||
{
|
{
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$input = $app->input;
|
$input = $app->input;
|
||||||
|
|
||||||
// Get the path to the package to import
|
// Get the path to the package to import
|
||||||
@ -264,7 +264,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
// Did you give us a valid path?
|
// Did you give us a valid path?
|
||||||
if (!file_exists($p_dir))
|
if (!file_exists($p_dir))
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_ENTER_A_PACKAGE_DIRECTORY'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_ENTER_A_PACKAGE_DIRECTORY'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -274,14 +274,14 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
// Did you give us a valid package?
|
// Did you give us a valid package?
|
||||||
if (!$type)
|
if (!$type)
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_PATH_DOES_NOT_HAVE_A_VALID_PACKAGE'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_PATH_DOES_NOT_HAVE_A_VALID_PACKAGE'), 'warning');
|
||||||
}
|
}
|
||||||
|
|
||||||
// check the extention
|
// check the extention
|
||||||
if(!$this->checkExtension($p_dir))
|
if(!$this->checkExtension($p_dir))
|
||||||
{
|
{
|
||||||
// set error message
|
// set error message
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -300,7 +300,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
*/
|
*/
|
||||||
protected function _getPackageFromUrl()
|
protected function _getPackageFromUrl()
|
||||||
{
|
{
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$input = $app->input;
|
$input = $app->input;
|
||||||
|
|
||||||
// Get the URL of the package to import
|
// Get the URL of the package to import
|
||||||
@ -309,7 +309,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
// Did you give us a URL?
|
// Did you give us a URL?
|
||||||
if (!$url)
|
if (!$url)
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_ENTER_A_URL'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_ENTER_A_URL'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -319,7 +319,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
// Was the package downloaded?
|
// Was the package downloaded?
|
||||||
if (!$p_file)
|
if (!$p_file)
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_INVALID_URL'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_INVALID_URL'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -340,7 +340,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
*/
|
*/
|
||||||
protected function check($archivename)
|
protected function check($archivename)
|
||||||
{
|
{
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
// Clean the name
|
// Clean the name
|
||||||
$archivename = Path::clean($archivename);
|
$archivename = Path::clean($archivename);
|
||||||
|
|
||||||
@ -349,11 +349,11 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
{
|
{
|
||||||
// Cleanup the import files
|
// Cleanup the import files
|
||||||
$this->remove($archivename);
|
$this->remove($archivename);
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$config = Factory::getConfig();
|
$config = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getConfig();
|
||||||
// set Package Name
|
// set Package Name
|
||||||
$check['packagename'] = $archivename;
|
$check['packagename'] = $archivename;
|
||||||
|
|
||||||
@ -378,7 +378,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
{
|
{
|
||||||
jimport('joomla.filesystem.file');
|
jimport('joomla.filesystem.file');
|
||||||
|
|
||||||
$config = Factory::getConfig();
|
$config = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getConfig();
|
||||||
$package = $config->get('tmp_path'). '/' .$package;
|
$package = $config->get('tmp_path'). '/' .$package;
|
||||||
|
|
||||||
// Is the package file a valid file?
|
// Is the package file a valid file?
|
||||||
@ -396,7 +396,7 @@ class ImportModel extends BaseDatabaseModel
|
|||||||
protected function getAlias($name,$type = false)
|
protected function getAlias($name,$type = false)
|
||||||
{
|
{
|
||||||
// sanitize the name to an alias
|
// sanitize the name to an alias
|
||||||
if (Factory::getConfig()->get('unicodeslugs') == 1)
|
if (Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getConfig()->get('unicodeslugs') == 1)
|
||||||
{
|
{
|
||||||
$alias = OutputFilter::stringURLUnicodeSlug($name);
|
$alias = OutputFilter::stringURLUnicodeSlug($name);
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
*/
|
*/
|
||||||
protected function populateState()
|
protected function populateState()
|
||||||
{
|
{
|
||||||
$app = Factory::getApplication('administrator');
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication('administrator');
|
||||||
|
|
||||||
$this->setState('message', $app->getUserState('com_###component###.message'));
|
$this->setState('message', $app->getUserState('com_###component###.message'));
|
||||||
$app->setUserState('com_###component###.message', '');
|
$app->setUserState('com_###component###.message', '');
|
||||||
@ -85,7 +85,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
protected function _getPackageFromUpload()
|
protected function _getPackageFromUpload()
|
||||||
{
|
{
|
||||||
// Get the uploaded file information
|
// Get the uploaded file information
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$input = $app->input;
|
$input = $app->input;
|
||||||
|
|
||||||
// Do not change the filter type 'raw'. We need this to let files containing PHP code to upload. See JInputFiles::get.
|
// Do not change the filter type 'raw'. We need this to let files containing PHP code to upload. See JInputFiles::get.
|
||||||
@ -94,26 +94,26 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
// Make sure that file uploads are enabled in php
|
// Make sure that file uploads are enabled in php
|
||||||
if (!(bool) ini_get('file_uploads'))
|
if (!(bool) ini_get('file_uploads'))
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_WARNIMPORTFILE'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_WARNIMPORTFILE'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there is no uploaded file, we have a problem...
|
// If there is no uploaded file, we have a problem...
|
||||||
if (!is_array($userfile))
|
if (!is_array($userfile))
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_NO_FILE_SELECTED'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_NO_FILE_SELECTED'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if there was a problem uploading the file.
|
// Check if there was a problem uploading the file.
|
||||||
if ($userfile['error'] || $userfile['size'] < 1)
|
if ($userfile['error'] || $userfile['size'] < 1)
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_WARNIMPORTUPLOADERROR'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_WARNIMPORTUPLOADERROR'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build the appropriate paths
|
// Build the appropriate paths
|
||||||
$config = Factory::getConfig();
|
$config = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getConfig();
|
||||||
$tmp_dest = $config->get('tmp_path') . '/' . $userfile['name'];
|
$tmp_dest = $config->get('tmp_path') . '/' . $userfile['name'];
|
||||||
$tmp_src = $userfile['tmp_name'];
|
$tmp_src = $userfile['tmp_name'];
|
||||||
|
|
||||||
@ -123,7 +123,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
// Was the package downloaded?
|
// Was the package downloaded?
|
||||||
if (!$p_file)
|
if (!$p_file)
|
||||||
{
|
{
|
||||||
$session = Factory::getSession();
|
$session = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getSession();
|
||||||
$session->clear('package');
|
$session->clear('package');
|
||||||
$session->clear('dataType');
|
$session->clear('dataType');
|
||||||
$session->clear('hasPackage');
|
$session->clear('hasPackage');
|
||||||
@ -145,7 +145,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
*/
|
*/
|
||||||
protected function _getPackageFromFolder()
|
protected function _getPackageFromFolder()
|
||||||
{
|
{
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$input = $app->input;
|
$input = $app->input;
|
||||||
|
|
||||||
// Get the path to the package to import
|
// Get the path to the package to import
|
||||||
@ -154,7 +154,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
// Did you give us a valid path?
|
// Did you give us a valid path?
|
||||||
if (!file_exists($p_dir))
|
if (!file_exists($p_dir))
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_ENTER_A_PACKAGE_DIRECTORY'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_ENTER_A_PACKAGE_DIRECTORY'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,14 +164,14 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
// Did you give us a valid package?
|
// Did you give us a valid package?
|
||||||
if (!$type)
|
if (!$type)
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_PATH_DOES_NOT_HAVE_A_VALID_PACKAGE'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_PATH_DOES_NOT_HAVE_A_VALID_PACKAGE'), 'warning');
|
||||||
}
|
}
|
||||||
|
|
||||||
// check the extention
|
// check the extention
|
||||||
if(!$this->checkExtension($p_dir))
|
if(!$this->checkExtension($p_dir))
|
||||||
{
|
{
|
||||||
// set error message
|
// set error message
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,7 +190,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
*/
|
*/
|
||||||
protected function _getPackageFromUrl()
|
protected function _getPackageFromUrl()
|
||||||
{
|
{
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$input = $app->input;
|
$input = $app->input;
|
||||||
|
|
||||||
// Get the URL of the package to import
|
// Get the URL of the package to import
|
||||||
@ -199,7 +199,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
// Did you give us a URL?
|
// Did you give us a URL?
|
||||||
if (!$url)
|
if (!$url)
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_ENTER_A_URL'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_ENTER_A_URL'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,7 +209,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
// Was the package downloaded?
|
// Was the package downloaded?
|
||||||
if (!$p_file)
|
if (!$p_file)
|
||||||
{
|
{
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_INVALID_URL'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_INVALID_URL'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,7 +230,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
*/
|
*/
|
||||||
protected function check($archivename)
|
protected function check($archivename)
|
||||||
{
|
{
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
// Clean the name
|
// Clean the name
|
||||||
$archivename = Path::clean($archivename);
|
$archivename = Path::clean($archivename);
|
||||||
|
|
||||||
@ -239,11 +239,11 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
{
|
{
|
||||||
// Cleanup the import files
|
// Cleanup the import files
|
||||||
$this->remove($archivename);
|
$this->remove($archivename);
|
||||||
$app->enqueueMessage(Text::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
$app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_DOES_NOT_HAVE_A_VALID_FILE_TYPE'), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$config = Factory::getConfig();
|
$config = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getConfig();
|
||||||
// set Package Name
|
// set Package Name
|
||||||
$check['packagename'] = $archivename;
|
$check['packagename'] = $archivename;
|
||||||
|
|
||||||
@ -267,7 +267,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
*/
|
*/
|
||||||
protected function remove($package)
|
protected function remove($package)
|
||||||
{
|
{
|
||||||
$config = Factory::getConfig();
|
$config = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getConfig();
|
||||||
$package = $config->get('tmp_path'). '/' .$package;
|
$package = $config->get('tmp_path'). '/' .$package;
|
||||||
|
|
||||||
// Is the package file a valid file?
|
// Is the package file a valid file?
|
||||||
@ -287,7 +287,7 @@ class ###View###importModel extends BaseDatabaseModel
|
|||||||
protected function getAlias($name,$type = false)
|
protected function getAlias($name,$type = false)
|
||||||
{
|
{
|
||||||
// sanitize the name to an alias
|
// sanitize the name to an alias
|
||||||
if (Factory::getConfig()->get('unicodeslugs') == 1)
|
if (Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getConfig()->get('unicodeslugs') == 1)
|
||||||
{
|
{
|
||||||
$alias = OutputFilter::stringURLUnicodeSlug($name);
|
$alias = OutputFilter::stringURLUnicodeSlug($name);
|
||||||
}
|
}
|
||||||
|
@ -19,9 +19,12 @@ defined('_JCB_TEMPLATE') or die;
|
|||||||
// No direct access to this file
|
// No direct access to this file
|
||||||
defined('_JEXEC') or die;
|
defined('_JEXEC') or die;
|
||||||
|
|
||||||
|
$layout = $this->isModal ? 'modal' : 'edit';
|
||||||
|
$tmpl = $this->input->get('tmpl');
|
||||||
|
$tmpl = $tmpl ? '&tmpl=' . $tmpl : '';
|
||||||
?>
|
?>
|
||||||
###EDITBODYFADEIN###
|
###EDITBODYFADEIN###
|
||||||
<form action="<?php echo Route::_('index.php?option=com_###component###&layout=edit&id='. (int) $this->item->id . $this->referral); ?>" method="post" name="adminForm" id="adminForm" class="form-validate" enctype="multipart/form-data">
|
<form action="<?php echo Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###&&layout=' . $layout . $tmpl . '&id='. (int) $this->item->id . $this->referral); ?>" method="post" name="adminForm" id="adminForm" class="form-validate" enctype="multipart/form-data">
|
||||||
###EDITBODY###
|
###EDITBODY###
|
||||||
</form>
|
</form>
|
||||||
</div>###EDITBODYSCRIPT###
|
</div>###EDITBODYSCRIPT###
|
||||||
|
@ -22,7 +22,7 @@ defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
|||||||
if ($this->saveOrder)
|
if ($this->saveOrder)
|
||||||
{
|
{
|
||||||
$saveOrderingUrl = 'index.php?option=com_###component###&task=###views###.saveOrderAjax&tmpl=component';
|
$saveOrderingUrl = 'index.php?option=com_###component###&task=###views###.saveOrderAjax&tmpl=component';
|
||||||
Html::_('sortablelist.sortable', '###view###List', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('sortablelist.sortable', '###view###List', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl);
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
###VIEWS_DEFAULT_BODY######VIEWS_FOOTER_SCRIPT###
|
###VIEWS_DEFAULT_BODY######VIEWS_FOOTER_SCRIPT###
|
||||||
|
@ -76,6 +76,22 @@ class HtmlView extends BaseHtmlView
|
|||||||
*/
|
*/
|
||||||
public string $return_here;
|
public string $return_here;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The title key used in modal
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
* @since 5.2.1
|
||||||
|
*/
|
||||||
|
public string $modalTitleKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The modal state
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
* @since 5.2.1
|
||||||
|
*/
|
||||||
|
public bool $isModal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The user object.
|
* The user object.
|
||||||
*
|
*
|
||||||
@ -104,7 +120,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
$this->user ??= $this->getCurrentUser();###ADMIN_DIPLAY_METHOD###
|
$this->user ??= $this->getCurrentUser();###ADMIN_DIPLAY_METHOD###
|
||||||
$this->saveOrder = $this->listOrder == 'a.ordering';
|
$this->saveOrder = $this->listOrder == 'a.ordering';
|
||||||
// set the return here value
|
// set the return here value
|
||||||
$this->return_here = urlencode(base64_encode((string) Uri::getInstance()));
|
$this->return_here = urlencode(base64_encode((string) Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::getInstance()));
|
||||||
// get global action permissions
|
// get global action permissions
|
||||||
$this->canDo = ###Component###Helper::getActions('###view###');###JVIEWLISTCANDO###
|
$this->canDo = ###Component###Helper::getActions('###view###');###JVIEWLISTCANDO###
|
||||||
|
|
||||||
@ -115,8 +131,10 @@ class HtmlView extends BaseHtmlView
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We don't need toolbar in the modal window.
|
// We don't need toolbar in the modal window.
|
||||||
|
$this->isModal = true;
|
||||||
if ($this->getLayout() !== 'modal')
|
if ($this->getLayout() !== 'modal')
|
||||||
{
|
{
|
||||||
|
$this->isModal = false;
|
||||||
$this->addToolbar();
|
$this->addToolbar();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,11 +159,11 @@ class HtmlView extends BaseHtmlView
|
|||||||
*/
|
*/
|
||||||
protected function addToolbar(): void
|
protected function addToolbar(): void
|
||||||
{
|
{
|
||||||
ToolbarHelper::title(Text::_('COM_###COMPONENT###_###VIEWS###'), '###ICOMOON###');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::title(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_###VIEWS###'), '###ICOMOON###');
|
||||||
|
|
||||||
if ($this->canCreate)
|
if ($this->canCreate)
|
||||||
{
|
{
|
||||||
ToolbarHelper::addNew('###view###.add');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::addNew('###view###.add');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only load if there are items
|
// Only load if there are items
|
||||||
@ -153,28 +171,28 @@ class HtmlView extends BaseHtmlView
|
|||||||
{
|
{
|
||||||
if ($this->canEdit)
|
if ($this->canEdit)
|
||||||
{
|
{
|
||||||
ToolbarHelper::editList('###view###.edit');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::editList('###view###.edit');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->canState)
|
if ($this->canState)
|
||||||
{
|
{
|
||||||
ToolbarHelper::publishList('###views###.publish');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::publishList('###views###.publish');
|
||||||
ToolbarHelper::unpublishList('###views###.unpublish');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::unpublishList('###views###.unpublish');
|
||||||
ToolbarHelper::archiveList('###views###.archive');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::archiveList('###views###.archive');
|
||||||
|
|
||||||
if ($this->canDo->get('core.admin'))
|
if ($this->canDo->get('core.admin'))
|
||||||
{
|
{
|
||||||
ToolbarHelper::checkin('###views###.checkin');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::checkin('###views###.checkin');
|
||||||
}
|
}
|
||||||
}###CUSTOM_ADMIN_DYNAMIC_BUTTONS######ADMIN_CUSTOM_BUTTONS_LIST###
|
}###CUSTOM_ADMIN_DYNAMIC_BUTTONS######ADMIN_CUSTOM_BUTTONS_LIST###
|
||||||
|
|
||||||
if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete))
|
if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete))
|
||||||
{
|
{
|
||||||
ToolbarHelper::deleteList('', '###views###.delete', 'JTOOLBAR_EMPTY_TRASH');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::deleteList('', '###views###.delete', 'JTOOLBAR_EMPTY_TRASH');
|
||||||
}
|
}
|
||||||
elseif ($this->canState && $this->canDelete)
|
elseif ($this->canState && $this->canDelete)
|
||||||
{
|
{
|
||||||
ToolbarHelper::trash('###views###.trash');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::trash('###views###.trash');
|
||||||
}###EXPORTBUTTON###
|
}###EXPORTBUTTON###
|
||||||
}###ADMIN_CUSTOM_FUNCTION_ONLY_BUTTONS_LIST######IMPORTBUTTON###
|
}###ADMIN_CUSTOM_FUNCTION_ONLY_BUTTONS_LIST######IMPORTBUTTON###
|
||||||
|
|
||||||
@ -182,13 +200,13 @@ class HtmlView extends BaseHtmlView
|
|||||||
$this->help_url = ###Component###Helper::getHelpUrl('###views###');
|
$this->help_url = ###Component###Helper::getHelpUrl('###views###');
|
||||||
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
||||||
{
|
{
|
||||||
ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
// add the options comp button
|
// add the options comp button
|
||||||
if ($this->canDo->get('core.admin') || $this->canDo->get('core.options'))
|
if ($this->canDo->get('core.admin') || $this->canDo->get('core.options'))
|
||||||
{
|
{
|
||||||
ToolbarHelper::preferences('com_###component###');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::preferences('com_###component###');
|
||||||
}###FILTERFIELDDISPLAYHELPER######BATCHDISPLAYHELPER###
|
}###FILTERFIELDDISPLAYHELPER######BATCHDISPLAYHELPER###
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -200,16 +218,16 @@ class HtmlView extends BaseHtmlView
|
|||||||
*/
|
*/
|
||||||
protected function _prepareDocument(): void
|
protected function _prepareDocument(): void
|
||||||
{###JQUERY###
|
{###JQUERY###
|
||||||
$this->getDocument()->setTitle(Text::_('COM_###COMPONENT###_###VIEWS###'));
|
$this->getDocument()->setTitle(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_###VIEWS###'));
|
||||||
// add styles
|
// add styles
|
||||||
foreach ($this->styles as $style)
|
foreach ($this->styles as $style)
|
||||||
{
|
{
|
||||||
Html::_('stylesheet', $style, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('stylesheet', $style, ['version' => 'auto']);
|
||||||
}
|
}
|
||||||
// add scripts
|
// add scripts
|
||||||
foreach ($this->scripts as $script)
|
foreach ($this->scripts as $script)
|
||||||
{
|
{
|
||||||
Html::_('script', $script, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('script', $script, ['version' => 'auto']);
|
||||||
}###ADMIN_ADD_JAVASCRIPT_FILE###
|
}###ADMIN_ADD_JAVASCRIPT_FILE###
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,6 +251,17 @@ class HtmlView extends BaseHtmlView
|
|||||||
return Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::html($var, $this->_charset ?? 'UTF-8', $shorten, $length);
|
return Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::html($var, $this->_charset ?? 'UTF-8', $shorten, $length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the modal data/title key
|
||||||
|
*
|
||||||
|
* @return string The key value.
|
||||||
|
* @since 5.2.1
|
||||||
|
*/
|
||||||
|
public function getModalTitleKey(): string
|
||||||
|
{
|
||||||
|
return $this->modalTitleKey ?? 'id';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array of fields the table can be sorted by
|
* Returns an array of fields the table can be sorted by
|
||||||
*
|
*
|
||||||
|
39
admin/compiler/joomla_4/ADMIN_VIEWS_MODAL.php
Normal file
39
admin/compiler/joomla_4/ADMIN_VIEWS_MODAL.php
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Component.Builder
|
||||||
|
*
|
||||||
|
* @created 4th September 2022
|
||||||
|
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||||
|
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
||||||
|
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
// No direct access to this JCB template file (EVER)
|
||||||
|
defined('_JCB_TEMPLATE') or die;
|
||||||
|
?>
|
||||||
|
###BOM###
|
||||||
|
|
||||||
|
###ADMIN_VIEWS_MODAL_HEADER###
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
||||||
|
|
||||||
|
/** @var \###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Administrator\View\###Views###\HtmlView $this */
|
||||||
|
|
||||||
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
|
|
||||||
|
if ($app->isClient('site')) {
|
||||||
|
Joomla___5ba38513_5c4f_4b0d_935e_49e986a6bce8___Power::checkToken('get') or die(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JINVALID_TOKEN'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// dynamic selection of title key (link in modal)
|
||||||
|
$this->modalTitleKey = $app->input->get('titleKey', 'id', 'word');
|
||||||
|
|
||||||
|
/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
|
||||||
|
$wa = $this->getDocument()->getWebAssetManager();
|
||||||
|
$wa->useScript('core')
|
||||||
|
->useScript('multiselect')
|
||||||
|
->useScript('modal-content-select');
|
||||||
|
?>
|
||||||
|
###VIEWS_MODAL_BODY######VIEWS_FOOTER_SCRIPT###
|
@ -76,7 +76,7 @@ class ###Views###Model extends ListModel
|
|||||||
|
|
||||||
parent::__construct($config, $factory);
|
parent::__construct($config, $factory);
|
||||||
|
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
}###ADMIN_CUSTOM_BUTTONS_METHOD_LIST###
|
}###ADMIN_CUSTOM_BUTTONS_METHOD_LIST###
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -149,13 +149,13 @@ class ###View###Controller extends FormController
|
|||||||
*/
|
*/
|
||||||
public function batch($model = null)
|
public function batch($model = null)
|
||||||
{
|
{
|
||||||
Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
|
Joomla___5ba38513_5c4f_4b0d_935e_49e986a6bce8___Power::checkToken() or exit(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JINVALID_TOKEN'));
|
||||||
|
|
||||||
// Set the model
|
// Set the model
|
||||||
$model = $this->getModel('###View###', '', []);
|
$model = $this->getModel('###View###', '', []);
|
||||||
|
|
||||||
// Preset the redirect
|
// Preset the redirect
|
||||||
$this->setRedirect(Route::_('index.php?option=com_###component###&view=###views###' . $this->getRedirectToListAppend(), false));
|
$this->setRedirect(Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###&view=###views###' . $this->getRedirectToListAppend(), false));
|
||||||
|
|
||||||
return parent::batch($model);
|
return parent::batch($model);
|
||||||
}
|
}
|
||||||
@ -180,13 +180,13 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
$cancel = parent::cancel($key);
|
$cancel = parent::cancel($key);
|
||||||
|
|
||||||
if (!is_null($return) && Uri::isInternal(base64_decode($return)))
|
if (!is_null($return) && Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::isInternal(base64_decode($return)))
|
||||||
{
|
{
|
||||||
$redirect = base64_decode($return);
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
// Redirect to the return value.
|
// Redirect to the return value.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
$redirect, false
|
$redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -197,7 +197,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Redirect to the item screen.
|
// Redirect to the item screen.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
'index.php?option=' . $this->option . $redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -208,10 +208,19 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Redirect to the list screen.
|
// Redirect to the list screen.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
'index.php?option=' . $this->option . $redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
// When editing in modal then redirect to modalreturn layout
|
||||||
|
elseif ($cancel && $this->input->get('layout') === 'modal')
|
||||||
|
{
|
||||||
|
$id = $this->input->get('id');
|
||||||
|
$return = 'index.php?option=' . $this->option . '&view=' . $this->view_item . $this->getRedirectToItemAppend($id)
|
||||||
|
. '&layout=modalreturn&from-task=cancel';
|
||||||
|
|
||||||
|
$this->setRedirect(Route::_($return, false));
|
||||||
}###JCONTROLLERFORM_AFTERCANCEL###
|
}###JCONTROLLERFORM_AFTERCANCEL###
|
||||||
return $cancel;
|
return $cancel;
|
||||||
}
|
}
|
||||||
@ -234,7 +243,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Check if there is a return value
|
// Check if there is a return value
|
||||||
$return = $this->input->get('return', null, 'base64');
|
$return = $this->input->get('return', null, 'base64');
|
||||||
$canReturn = (!is_null($return) && Uri::isInternal(base64_decode($return)));
|
$canReturn = (!is_null($return) && Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::isInternal(base64_decode($return)));
|
||||||
|
|
||||||
if ($this->ref || $this->refid || $canReturn)
|
if ($this->ref || $this->refid || $canReturn)
|
||||||
{
|
{
|
||||||
@ -252,7 +261,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Redirect to the return value.
|
// Redirect to the return value.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
$redirect, false
|
$redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -263,7 +272,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Redirect to the item screen.
|
// Redirect to the item screen.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
'index.php?option=' . $this->option . $redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -274,7 +283,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Redirect to the list screen.
|
// Redirect to the list screen.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
'index.php?option=' . $this->option . $redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -294,6 +303,15 @@ class ###View###Controller extends FormController
|
|||||||
* @since 11.1
|
* @since 11.1
|
||||||
*/
|
*/
|
||||||
protected function postSaveHook(BaseDatabaseModel $model, $validData = [])
|
protected function postSaveHook(BaseDatabaseModel $model, $validData = [])
|
||||||
{###POSTSAVEHOOK###
|
{
|
||||||
|
if ($this->input->get('layout') === 'modal' && $this->task === 'save')
|
||||||
|
{
|
||||||
|
// When editing in modal then redirect to modalreturn layout
|
||||||
|
$id = $model->getState('###view###.id', '');
|
||||||
|
$return = 'index.php?option=' . $this->option . '&view=' . $this->view_item . $this->getRedirectToItemAppend($id)
|
||||||
|
. '&layout=modalreturn&from-task=save';
|
||||||
|
|
||||||
|
$this->setRedirect(Route::_($return, false));
|
||||||
|
}###POSTSAVEHOOK###
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,14 @@ class HtmlView extends BaseHtmlView
|
|||||||
*/
|
*/
|
||||||
public mixed $item;
|
public mixed $item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The input class
|
||||||
|
*
|
||||||
|
* @var Joomla___59106b64_dd51_4280_be0a_1b9b9ebb7161___Power
|
||||||
|
* @since 5.2.1
|
||||||
|
*/
|
||||||
|
public Joomla___59106b64_dd51_4280_be0a_1b9b9ebb7161___Power $input;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The state object
|
* The state object
|
||||||
*
|
*
|
||||||
@ -108,6 +116,14 @@ class HtmlView extends BaseHtmlView
|
|||||||
*/
|
*/
|
||||||
public string $referral;
|
public string $referral;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The modal state
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
* @since 5.2.1
|
||||||
|
*/
|
||||||
|
public bool $isModal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ###View### view display method
|
* ###View### view display method
|
||||||
*
|
*
|
||||||
@ -120,7 +136,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
public function display($tpl = null): void
|
public function display($tpl = null): void
|
||||||
{
|
{
|
||||||
// set params
|
// set params
|
||||||
$this->params = ComponentHelper::getParams('com_###component###');
|
$this->params = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
$this->useCoreUI = true;
|
$this->useCoreUI = true;
|
||||||
// Assign the variables
|
// Assign the variables
|
||||||
$this->form ??= $this->get('Form');
|
$this->form ??= $this->get('Form');
|
||||||
@ -131,10 +147,10 @@ class HtmlView extends BaseHtmlView
|
|||||||
// get action permissions
|
// get action permissions
|
||||||
$this->canDo = ###Component###Helper::getActions('###view###', $this->item);
|
$this->canDo = ###Component###Helper::getActions('###view###', $this->item);
|
||||||
// get input
|
// get input
|
||||||
$jinput = Factory::getApplication()->input;
|
$this->input ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->input;
|
||||||
$this->ref = $jinput->get('ref', 0, 'word');
|
$this->ref = $this->input->get('ref', 0, 'word');
|
||||||
$this->refid = $jinput->get('refid', 0, 'int');
|
$this->refid = $this->input->get('refid', 0, 'int');
|
||||||
$return = $jinput->get('return', null, 'base64');
|
$return = $this->input->get('return', null, 'base64');
|
||||||
// set the referral string
|
// set the referral string
|
||||||
$this->referral = '';
|
$this->referral = '';
|
||||||
if ($this->refid && $this->ref)
|
if ($this->refid && $this->ref)
|
||||||
@ -155,7 +171,16 @@ class HtmlView extends BaseHtmlView
|
|||||||
}###LINKEDVIEWITEMS###
|
}###LINKEDVIEWITEMS###
|
||||||
|
|
||||||
// Set the toolbar
|
// Set the toolbar
|
||||||
$this->addToolBar();
|
if ($this->getLayout() !== 'modal')
|
||||||
|
{
|
||||||
|
$this->isModal = false;
|
||||||
|
$this->addToolbar();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->isModal = true;
|
||||||
|
$this->addModalToolbar();
|
||||||
|
}
|
||||||
|
|
||||||
// Check for errors.
|
// Check for errors.
|
||||||
if (count($errors = $this->get('Errors')))
|
if (count($errors = $this->get('Errors')))
|
||||||
@ -170,11 +195,11 @@ class HtmlView extends BaseHtmlView
|
|||||||
parent::display($tpl);
|
parent::display($tpl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add the page title and toolbar.
|
* Add the page title and toolbar.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
|
* @throws \Exception
|
||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
protected function addToolbar(): void
|
protected function addToolbar(): void
|
||||||
@ -182,6 +207,18 @@ class HtmlView extends BaseHtmlView
|
|||||||
###ADDTOOLBAR###
|
###ADDTOOLBAR###
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the modal toolbar.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws \Exception
|
||||||
|
* @since 5.0.0
|
||||||
|
*/
|
||||||
|
protected function addModalToolbar()
|
||||||
|
{
|
||||||
|
###ADDMODALTOOLBAR###
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Escapes a value for output in a view script.
|
* Escapes a value for output in a view script.
|
||||||
*
|
*
|
||||||
@ -211,16 +248,16 @@ class HtmlView extends BaseHtmlView
|
|||||||
protected function _prepareDocument(): void
|
protected function _prepareDocument(): void
|
||||||
{###JQUERY###
|
{###JQUERY###
|
||||||
$isNew = ($this->item->id < 1);
|
$isNew = ($this->item->id < 1);
|
||||||
$this->getDocument()->setTitle(Text::_($isNew ? 'COM_###COMPONENT###_###VIEW###_NEW' : 'COM_###COMPONENT###_###VIEW###_EDIT'));
|
$this->getDocument()->setTitle(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_($isNew ? 'COM_###COMPONENT###_###VIEW###_NEW' : 'COM_###COMPONENT###_###VIEW###_EDIT'));
|
||||||
// add styles
|
// add styles
|
||||||
foreach ($this->styles as $style)
|
foreach ($this->styles as $style)
|
||||||
{
|
{
|
||||||
Html::_('stylesheet', $style, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('stylesheet', $style, ['version' => 'auto']);
|
||||||
}###AJAXTOKE######LINKEDVIEWTABLESCRIPTS###
|
}###AJAXTOKE######LINKEDVIEWTABLESCRIPTS###
|
||||||
// add scripts
|
// add scripts
|
||||||
foreach ($this->scripts as $script)
|
foreach ($this->scripts as $script)
|
||||||
{
|
{
|
||||||
Html::_('script', $script, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('script', $script, ['version' => 'auto']);
|
||||||
}###DOCUMENT_CUSTOM_PHP###
|
}###DOCUMENT_CUSTOM_PHP###
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
28
admin/compiler/joomla_4/ADMIN_VIEW_MODAL.php
Normal file
28
admin/compiler/joomla_4/ADMIN_VIEW_MODAL.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Component.Builder
|
||||||
|
*
|
||||||
|
* @created 4th September 2022
|
||||||
|
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||||
|
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
||||||
|
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
// No direct access to this JCB template file (EVER)
|
||||||
|
defined('_JCB_TEMPLATE') or die;
|
||||||
|
?>
|
||||||
|
###BOM###
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
||||||
|
|
||||||
|
/** @var \###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Administrator\View\###View###\HtmlView $this */
|
||||||
|
?>
|
||||||
|
<div class="subhead noshadow mb-3">
|
||||||
|
<?php echo $this->getDocument()->getToolbar('toolbar')->render(); ?>
|
||||||
|
</div>
|
||||||
|
<div class="container-popup">
|
||||||
|
<?php $this->setLayout('edit'); ?>
|
||||||
|
<?php echo $this->loadTemplate(); ?>
|
||||||
|
</div>
|
52
admin/compiler/joomla_4/ADMIN_VIEW_MODAL_RETURN.php
Normal file
52
admin/compiler/joomla_4/ADMIN_VIEW_MODAL_RETURN.php
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Component.Builder
|
||||||
|
*
|
||||||
|
* @created 4th September 2022
|
||||||
|
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||||
|
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
||||||
|
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
// No direct access to this JCB template file (EVER)
|
||||||
|
defined('_JCB_TEMPLATE') or die;
|
||||||
|
?>
|
||||||
|
###BOM###
|
||||||
|
|
||||||
|
use Joomla\CMS\Router\Route;
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
||||||
|
|
||||||
|
/** @var \###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Administrator\View\###View###\HtmlView $this */
|
||||||
|
|
||||||
|
$icon = 'icon-check';
|
||||||
|
$title_key = $this->item->###SQL_TITLE_KEY### ?? '';
|
||||||
|
$title_column = $this->item->###SQL_TITLE_COLUMN### ?? '';
|
||||||
|
$data = [
|
||||||
|
'contentType' => 'com_###component###.###view###',
|
||||||
|
'id' => $title_key,
|
||||||
|
'title' => $title_column,
|
||||||
|
'uri' => Route::_('index.php?option=com_###component###&layout=modal&tmpl=component&id='. (int) ($this->item->id ?? 0))
|
||||||
|
];
|
||||||
|
|
||||||
|
// Add Content select script
|
||||||
|
/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
|
||||||
|
$wa = $this->getDocument()->getWebAssetManager();
|
||||||
|
$wa->useScript('modal-content-select');
|
||||||
|
|
||||||
|
// The data for Content select script
|
||||||
|
$this->getDocument()->addScriptOptions('content-select-on-load', $data, false);
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="px-4 py-5 my-5 text-center">
|
||||||
|
<span class="fa-8x mb-4 <?php echo $icon; ?>" aria-hidden="true"></span>
|
||||||
|
<h1 class="display-5 fw-bold"><?php echo $title_column; ?></h1>
|
||||||
|
<div class="col-lg-6 mx-auto">
|
||||||
|
<p class="lead mb-4">
|
||||||
|
<?php echo $title_column; ?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -229,7 +229,7 @@ class ###View###Model extends AdminModel
|
|||||||
*/
|
*/
|
||||||
protected function prepareTable($table)
|
protected function prepareTable($table)
|
||||||
{###LICENSE_TABLE_LOCKED_CHECK###
|
{###LICENSE_TABLE_LOCKED_CHECK###
|
||||||
$date = Factory::getDate();
|
$date = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getDate();
|
||||||
$user = $this->getCurrentUser();
|
$user = $this->getCurrentUser();
|
||||||
|
|
||||||
if (isset($table->name))
|
if (isset($table->name))
|
||||||
@ -285,7 +285,7 @@ class ###View###Model extends AdminModel
|
|||||||
protected function loadFormData()
|
protected function loadFormData()
|
||||||
{
|
{
|
||||||
// Check the session for previously entered form data.
|
// Check the session for previously entered form data.
|
||||||
$data = Factory::getApplication()->getUserState('com_###component###.edit.###view###.data', []);
|
$data = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getUserState('com_###component###.edit.###view###.data', []);
|
||||||
|
|
||||||
if (empty($data))
|
if (empty($data))
|
||||||
{
|
{
|
||||||
@ -359,7 +359,7 @@ class ###View###Model extends AdminModel
|
|||||||
|
|
||||||
if (empty($pks))
|
if (empty($pks))
|
||||||
{
|
{
|
||||||
$this->setError(Text::_('JGLOBAL_NO_ITEM_SELECTED'));
|
$this->setError(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JGLOBAL_NO_ITEM_SELECTED'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -376,7 +376,7 @@ class ###View###Model extends AdminModel
|
|||||||
|
|
||||||
if (!$this->canDo->get('core.batch'))
|
if (!$this->canDo->get('core.batch'))
|
||||||
{
|
{
|
||||||
$this->setError(Text::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
$this->setError(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -419,7 +419,7 @@ class ###View###Model extends AdminModel
|
|||||||
|
|
||||||
if (!$done)
|
if (!$done)
|
||||||
{
|
{
|
||||||
$this->setError(Text::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
$this->setError(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -439,7 +439,7 @@ class ###View###Model extends AdminModel
|
|||||||
*/
|
*/
|
||||||
public function save($data)
|
public function save($data)
|
||||||
{
|
{
|
||||||
$input = Factory::getApplication()->getInput();
|
$input = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getInput();
|
||||||
$filter = InputFilter::getInstance();
|
$filter = InputFilter::getInstance();
|
||||||
|
|
||||||
// set the metadata to the Item Data
|
// set the metadata to the Item Data
|
||||||
|
@ -107,7 +107,7 @@ class ###View###Table extends Table implements VersionableTableInterface, Taggab
|
|||||||
*/
|
*/
|
||||||
public function store($updateNulls = false)
|
public function store($updateNulls = false)
|
||||||
{
|
{
|
||||||
$date = Factory::getDate()->toSql();
|
$date = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getDate()->toSql();
|
||||||
$userId = $this->getCurrentUser()->id;
|
$userId = $this->getCurrentUser()->id;
|
||||||
|
|
||||||
if ($this->id)
|
if ($this->id)
|
||||||
@ -137,11 +137,11 @@ class ###View###Table extends Table implements VersionableTableInterface, Taggab
|
|||||||
|
|
||||||
if ($table->load(['alias' => $this->alias###JTABLEALIASCATEGORY###]) && ($table->id != $this->id || $this->id == 0))
|
if ($table->load(['alias' => $this->alias###JTABLEALIASCATEGORY###]) && ($table->id != $this->id || $this->id == 0))
|
||||||
{
|
{
|
||||||
$this->setError(Text::_('COM_###COMPONENT###_###VIEW###_ERROR_UNIQUE_ALIAS'));
|
$this->setError(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_###VIEW###_ERROR_UNIQUE_ALIAS'));
|
||||||
|
|
||||||
if ($table->published === -2)
|
if ($table->published === -2)
|
||||||
{
|
{
|
||||||
$this->setError(Text::_('COM_###COMPONENT###_###VIEW###_ERROR_UNIQUE_ALIAS_TRASHED'));
|
$this->setError(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_###VIEW###_ERROR_UNIQUE_ALIAS_TRASHED'));
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -258,7 +258,7 @@ class ###View###Table extends Table implements VersionableTableInterface, Taggab
|
|||||||
protected function getDefaultAssetValues($component, $try = true)
|
protected function getDefaultAssetValues($component, $try = true)
|
||||||
{
|
{
|
||||||
// Need to find the asset id by the name of the component.
|
// Need to find the asset id by the name of the component.
|
||||||
$db = Factory::getContainer()->get(DatabaseInterface::class);
|
$db = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(DatabaseInterface::class);
|
||||||
$query = $db->getQuery(true)
|
$query = $db->getQuery(true)
|
||||||
->select($db->quoteName('id'))
|
->select($db->quoteName('id'))
|
||||||
->from($db->quoteName('#__assets'))
|
->from($db->quoteName('#__assets'))
|
||||||
|
@ -24,5 +24,5 @@ defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED######CUSTOM_ADMIN_CODE_BODY##
|
|||||||
<?php $urlId = (isset($this->item->id)) ? '&id='. (int) $this->item->id : ''; ?>
|
<?php $urlId = (isset($this->item->id)) ? '&id='. (int) $this->item->id : ''; ?>
|
||||||
###CUSTOM_ADMIN_TOP_FORM######CUSTOM_ADMIN_BODY######CUSTOM_ADMIN_BOTTOM_FORM###
|
###CUSTOM_ADMIN_TOP_FORM######CUSTOM_ADMIN_BODY######CUSTOM_ADMIN_BOTTOM_FORM###
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<h1><?php echo Text::_('COM_###COMPONENT###_NO_ACCESS_GRANTED'); ?></h1>
|
<h1><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_NO_ACCESS_GRANTED'); ?></h1>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
@ -23,5 +23,5 @@ defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED######CUSTOM_ADMIN_CODE_BODY##
|
|||||||
<?php if ($this->canDo->get('###sview###.access')): ?>###CUSTOM_ADMIN_SUBMITBUTTON_SCRIPT###
|
<?php if ($this->canDo->get('###sview###.access')): ?>###CUSTOM_ADMIN_SUBMITBUTTON_SCRIPT###
|
||||||
###CUSTOM_ADMIN_TOP_FORM######CUSTOM_ADMIN_BODY######CUSTOM_ADMIN_BOTTOM_FORM###
|
###CUSTOM_ADMIN_TOP_FORM######CUSTOM_ADMIN_BODY######CUSTOM_ADMIN_BOTTOM_FORM###
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<h1><?php echo Text::_('COM_###COMPONENT###_NO_ACCESS_GRANTED'); ?></h1>
|
<h1><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_NO_ACCESS_GRANTED'); ?></h1>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
@ -60,6 +60,6 @@ class ###SViews###Controller extends AdminController
|
|||||||
*/
|
*/
|
||||||
public function dashboard(): void
|
public function dashboard(): void
|
||||||
{
|
{
|
||||||
$this->setRedirect(Route::_('index.php?option=com_###component###', false));
|
$this->setRedirect(Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###', false));
|
||||||
}###CUSTOM_ADMIN_CUSTOM_BUTTONS_CONTROLLER###
|
}###CUSTOM_ADMIN_CUSTOM_BUTTONS_CONTROLLER###
|
||||||
}
|
}
|
||||||
|
@ -72,9 +72,9 @@ class HtmlView extends BaseHtmlView
|
|||||||
public function display($tpl = null): void
|
public function display($tpl = null): void
|
||||||
{
|
{
|
||||||
// get component params
|
// get component params
|
||||||
$this->params = ComponentHelper::getParams('com_###component###');
|
$this->params = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
// get the application
|
// get the application
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
// get the user object
|
// get the user object
|
||||||
$this->user ??= $this->getCurrentUser();
|
$this->user ??= $this->getCurrentUser();
|
||||||
// get global action permissions
|
// get global action permissions
|
||||||
@ -99,12 +99,12 @@ class HtmlView extends BaseHtmlView
|
|||||||
// add styles
|
// add styles
|
||||||
foreach ($this->styles as $style)
|
foreach ($this->styles as $style)
|
||||||
{
|
{
|
||||||
Html::_('stylesheet', $style, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('stylesheet', $style, ['version' => 'auto']);
|
||||||
}###CUSTOM_ADMIN_DOCUMENT_CUSTOM_CSS###
|
}###CUSTOM_ADMIN_DOCUMENT_CUSTOM_CSS###
|
||||||
// add scripts
|
// add scripts
|
||||||
foreach ($this->scripts as $script)
|
foreach ($this->scripts as $script)
|
||||||
{
|
{
|
||||||
Html::_('script', $script, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('script', $script, ['version' => 'auto']);
|
||||||
}###CUSTOM_ADMIN_DOCUMENT_CUSTOM_JS###
|
}###CUSTOM_ADMIN_DOCUMENT_CUSTOM_JS###
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,19 +117,19 @@ class HtmlView extends BaseHtmlView
|
|||||||
protected function addToolbar(): void
|
protected function addToolbar(): void
|
||||||
{###HIDEMAINMENU###
|
{###HIDEMAINMENU###
|
||||||
// add title to the page
|
// add title to the page
|
||||||
ToolbarHelper::title(Text::_('COM_###COMPONENT###_###SVIEWS###'),'###ICOMOON###');###CUSTOM_ADMIN_CUSTOM_BUTTONS###
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::title(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_###SVIEWS###'),'###ICOMOON###');###CUSTOM_ADMIN_CUSTOM_BUTTONS###
|
||||||
|
|
||||||
// set help url for this view if found
|
// set help url for this view if found
|
||||||
$this->help_url = ###Component###Helper::getHelpUrl('###sviews###');
|
$this->help_url = ###Component###Helper::getHelpUrl('###sviews###');
|
||||||
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
||||||
{
|
{
|
||||||
ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
// add the options comp button
|
// add the options comp button
|
||||||
if ($this->canDo->get('core.admin') || $this->canDo->get('core.options'))
|
if ($this->canDo->get('core.admin') || $this->canDo->get('core.options'))
|
||||||
{
|
{
|
||||||
ToolbarHelper::preferences('com_###component###');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::preferences('com_###component###');
|
||||||
}
|
}
|
||||||
}###CUSTOM_ADMIN_GET_MODULE###
|
}###CUSTOM_ADMIN_GET_MODULE###
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ class ###SViews###Model extends ListModel
|
|||||||
{
|
{
|
||||||
parent::__construct($config, $factory);
|
parent::__construct($config, $factory);
|
||||||
|
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$this->input ??= $this->app->getInput();
|
$this->input ??= $this->app->getInput();
|
||||||
|
|
||||||
// Set the current user for authorisation checks (for those calling this model directly)
|
// Set the current user for authorisation checks (for those calling this model directly)
|
||||||
@ -162,7 +162,7 @@ class ###SViews###Model extends ListModel
|
|||||||
// check if this user has permission to access items
|
// check if this user has permission to access items
|
||||||
if (!$user->authorise('###sviews###.access', 'com_###component###'))
|
if (!$user->authorise('###sviews###.access', 'com_###component###'))
|
||||||
{
|
{
|
||||||
$this->app->enqueueMessage(Text::_('Not authorised!'), 'error');
|
$this->app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('Not authorised!'), 'error');
|
||||||
// redirect away if not a correct to default view
|
// redirect away if not a correct to default view
|
||||||
$this->app->redirect('index.php?option=com_###component###');
|
$this->app->redirect('index.php?option=com_###component###');
|
||||||
return false;
|
return false;
|
||||||
@ -171,7 +171,7 @@ class ###SViews###Model extends ListModel
|
|||||||
$items = parent::getItems();
|
$items = parent::getItems();
|
||||||
|
|
||||||
// Get the global params
|
// Get the global params
|
||||||
$globalParams = ComponentHelper::getParams('com_###component###', true);###CUSTOM_ADMIN_GET_ITEMS######CUSTOM_ADMIN_AFTER_GET_ITEMS###
|
$globalParams = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###', true);###CUSTOM_ADMIN_GET_ITEMS######CUSTOM_ADMIN_AFTER_GET_ITEMS###
|
||||||
|
|
||||||
// return items
|
// return items
|
||||||
return $items;
|
return $items;
|
||||||
|
@ -51,6 +51,6 @@ class ###SView###Controller extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function dashboard(): void
|
public function dashboard(): void
|
||||||
{
|
{
|
||||||
$this->setRedirect(Route::_('index.php?option=com_###component###', false));
|
$this->setRedirect(Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###', false));
|
||||||
}###CUSTOM_ADMIN_CUSTOM_BUTTONS_CONTROLLER###
|
}###CUSTOM_ADMIN_CUSTOM_BUTTONS_CONTROLLER###
|
||||||
}
|
}
|
||||||
|
@ -40,11 +40,11 @@ class HtmlView extends BaseHtmlView
|
|||||||
public function display($tpl = null): void
|
public function display($tpl = null): void
|
||||||
{
|
{
|
||||||
// get component params
|
// get component params
|
||||||
$this->params = ComponentHelper::getParams('com_###component###');
|
$this->params = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
// get the application
|
// get the application
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
// get the user object
|
// get the user object
|
||||||
$this->user ??= Factory::getApplication()->getIdentity();
|
$this->user ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getIdentity();
|
||||||
// get global action permissions
|
// get global action permissions
|
||||||
$this->canDo = ###Component###Helper::getActions('###sview###');
|
$this->canDo = ###Component###Helper::getActions('###sview###');
|
||||||
$this->styles = $this->get('Styles');
|
$this->styles = $this->get('Styles');
|
||||||
@ -67,12 +67,12 @@ class HtmlView extends BaseHtmlView
|
|||||||
// add styles
|
// add styles
|
||||||
foreach ($this->styles as $style)
|
foreach ($this->styles as $style)
|
||||||
{
|
{
|
||||||
Html::_('stylesheet', $style, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('stylesheet', $style, ['version' => 'auto']);
|
||||||
}###CUSTOM_ADMIN_DOCUMENT_CUSTOM_CSS###
|
}###CUSTOM_ADMIN_DOCUMENT_CUSTOM_CSS###
|
||||||
// add scripts
|
// add scripts
|
||||||
foreach ($this->scripts as $script)
|
foreach ($this->scripts as $script)
|
||||||
{
|
{
|
||||||
Html::_('script', $script, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('script', $script, ['version' => 'auto']);
|
||||||
}###CUSTOM_ADMIN_DOCUMENT_CUSTOM_JS###
|
}###CUSTOM_ADMIN_DOCUMENT_CUSTOM_JS###
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,22 +92,22 @@ class HtmlView extends BaseHtmlView
|
|||||||
// Check for empty title and add view name if param is set
|
// Check for empty title and add view name if param is set
|
||||||
if (empty($title))
|
if (empty($title))
|
||||||
{
|
{
|
||||||
$title = Text::_('COM_###COMPONENT###_###SVIEW###');
|
$title = Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_###SVIEW###');
|
||||||
}
|
}
|
||||||
// add title to the page
|
// add title to the page
|
||||||
ToolbarHelper::title($title,'###ICOMOON###');###CUSTOM_ADMIN_CUSTOM_BUTTONS###
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::title($title,'###ICOMOON###');###CUSTOM_ADMIN_CUSTOM_BUTTONS###
|
||||||
|
|
||||||
// set help url for this view if found
|
// set help url for this view if found
|
||||||
$this->help_url = ###Component###Helper::getHelpUrl('###sviews###');
|
$this->help_url = ###Component###Helper::getHelpUrl('###sviews###');
|
||||||
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
||||||
{
|
{
|
||||||
ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
// add the options comp button
|
// add the options comp button
|
||||||
if ($this->canDo->get('core.admin') || $this->canDo->get('core.options'))
|
if ($this->canDo->get('core.admin') || $this->canDo->get('core.options'))
|
||||||
{
|
{
|
||||||
ToolbarHelper::preferences('com_###component###');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::preferences('com_###component###');
|
||||||
}
|
}
|
||||||
}###CUSTOM_ADMIN_GET_MODULE###
|
}###CUSTOM_ADMIN_GET_MODULE###
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ class ###SView###Model extends ItemModel
|
|||||||
{
|
{
|
||||||
parent::__construct($config, $factory);
|
parent::__construct($config, $factory);
|
||||||
|
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$this->input ??= $this->app->getInput();
|
$this->input ??= $this->app->getInput();
|
||||||
|
|
||||||
// Set the current user for authorisation checks (for those calling this model directly)
|
// Set the current user for authorisation checks (for those calling this model directly)
|
||||||
@ -185,7 +185,7 @@ class ###SView###Model extends ItemModel
|
|||||||
// check if this user has permission to access item
|
// check if this user has permission to access item
|
||||||
if (!$this->user->authorise('###sview###.access', 'com_###component###'))
|
if (!$this->user->authorise('###sview###.access', 'com_###component###'))
|
||||||
{
|
{
|
||||||
$this->app->enqueueMessage(Text::_('Not authorised!'), 'error');
|
$this->app->enqueueMessage(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('Not authorised!'), 'error');
|
||||||
// redirect away if not a correct to cPanel/default view
|
// redirect away if not a correct to cPanel/default view
|
||||||
$this->app->redirect('index.php?option=com_###component###');
|
$this->app->redirect('index.php?option=com_###component###');
|
||||||
return false;
|
return false;
|
||||||
|
@ -27,6 +27,24 @@ namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Administrator
|
|||||||
*/
|
*/
|
||||||
class ###Component###Model extends ListModel
|
class ###Component###Model extends ListModel
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Represents the current user object.
|
||||||
|
*
|
||||||
|
* @var User The user object representing the current user.
|
||||||
|
* @since 3.2.0
|
||||||
|
*/
|
||||||
|
protected User $user;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* View groups of this component
|
||||||
|
*
|
||||||
|
* @var array<string, string>
|
||||||
|
* @since 5.1.1
|
||||||
|
*/
|
||||||
|
protected array $viewGroups = [
|
||||||
|
'main' => [###DASHBOARDICONS###],
|
||||||
|
];
|
||||||
|
###DASHBOARDICONACCESS###
|
||||||
/**
|
/**
|
||||||
* The styles array.
|
* The styles array.
|
||||||
*
|
*
|
||||||
@ -48,199 +66,50 @@ class ###Component###Model extends ListModel
|
|||||||
'administrator/components/com_###component###/assets/js/admin.js'
|
'administrator/components/com_###component###/assets/js/admin.js'
|
||||||
];
|
];
|
||||||
|
|
||||||
public function getIcons()
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param array $config An array of configuration options (name, state, dbo, table_path, ignore_request).
|
||||||
|
* @param ?MVCFactoryInterface $factory The factory.
|
||||||
|
*
|
||||||
|
* @since 1.6
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public function __construct($config = [], MVCFactoryInterface $factory = null)
|
||||||
{
|
{
|
||||||
// load user for access menus
|
parent::__construct($config, $factory);
|
||||||
$user = Factory::getApplication()->getIdentity();
|
|
||||||
// reset icon array
|
$this->user ??= $this->getCurrentUser();
|
||||||
$icons = [];
|
}
|
||||||
// view groups array
|
|
||||||
$viewGroups = array(
|
/**
|
||||||
'main' => array(###DASHBOARDICONS###)
|
* Get dashboard icons, grouped by view sections.
|
||||||
);###DASHBOARDICONACCESS###
|
*
|
||||||
// loop over the $views
|
* @return array<string, array<int, \stdClass|false>>
|
||||||
foreach($viewGroups as $group => $views)
|
* @since 5.1.1
|
||||||
|
*/
|
||||||
|
public function getIcons(): array
|
||||||
|
{
|
||||||
|
$icons = [];
|
||||||
|
|
||||||
|
foreach ($this->viewGroups as $group => $views)
|
||||||
{
|
{
|
||||||
$i = 0;
|
if (!Super___0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check($views))
|
||||||
if (Super___0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check($views))
|
|
||||||
{
|
{
|
||||||
foreach($views as $view)
|
$icons[$group][] = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($views as $view)
|
||||||
|
{
|
||||||
|
$icon = $this->buildIconObject($view);
|
||||||
|
if ($icon !== null)
|
||||||
{
|
{
|
||||||
$add = false;
|
$icons[$group][] = $icon;
|
||||||
// external views (links)
|
|
||||||
if (strpos($view,'||') !== false)
|
|
||||||
{
|
|
||||||
$dwd = explode('||', $view);
|
|
||||||
if (count($dwd) == 3)
|
|
||||||
{
|
|
||||||
list($type, $name, $url) = $dwd;
|
|
||||||
$viewName = $name;
|
|
||||||
$alt = $name;
|
|
||||||
$url = $url;
|
|
||||||
$image = $name . '.' . $type;
|
|
||||||
$name = 'COM_###COMPONENT###_DASHBOARD_' . Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::safe($name,'U');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// internal views
|
|
||||||
elseif (strpos($view,'.') !== false)
|
|
||||||
{
|
|
||||||
$dwd = explode('.', $view);
|
|
||||||
if (count($dwd) == 3)
|
|
||||||
{
|
|
||||||
list($type, $name, $action) = $dwd;
|
|
||||||
}
|
|
||||||
elseif (count($dwd) == 2)
|
|
||||||
{
|
|
||||||
list($type, $name) = $dwd;
|
|
||||||
$action = false;
|
|
||||||
}
|
|
||||||
if ($action)
|
|
||||||
{
|
|
||||||
$viewName = $name;
|
|
||||||
switch($action)
|
|
||||||
{
|
|
||||||
case 'add':
|
|
||||||
$url = 'index.php?option=com_###component###&view=' . $name . '&layout=edit';
|
|
||||||
$image = $name . '_' . $action. '.' . $type;
|
|
||||||
$alt = $name . ' ' . $action;
|
|
||||||
$name = 'COM_###COMPONENT###_DASHBOARD_'.Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::safe($name,'U').'_ADD';
|
|
||||||
$add = true;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// check for new convention (more stable)
|
|
||||||
if (strpos($action, '_qpo0O0oqp_') !== false)
|
|
||||||
{
|
|
||||||
list($action, $extension) = (array) explode('_qpo0O0oqp_', $action);
|
|
||||||
$extension = str_replace('_po0O0oq_', '.', $extension);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$extension = 'com_###component###.' . $name;
|
|
||||||
}
|
|
||||||
$url = 'index.php?option=com_categories&view=categories&extension=' . $extension;
|
|
||||||
$image = $name . '_' . $action . '.' . $type;
|
|
||||||
$alt = $viewName . ' ' . $action;
|
|
||||||
$name = 'COM_###COMPONENT###_DASHBOARD_' . Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::safe($name,'U') . '_' . Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::safe($action,'U');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$viewName = $name;
|
|
||||||
$alt = $name;
|
|
||||||
$url = 'index.php?option=com_###component###&view=' . $name;
|
|
||||||
$image = $name . '.' . $type;
|
|
||||||
$name = 'COM_###COMPONENT###_DASHBOARD_' . Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::safe($name,'U');
|
|
||||||
$hover = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$viewName = $view;
|
|
||||||
$alt = $view;
|
|
||||||
$url = 'index.php?option=com_###component###&view=' . $view;
|
|
||||||
$image = $view . '.png';
|
|
||||||
$name = ucwords($view).'<br /><br />';
|
|
||||||
$hover = false;
|
|
||||||
}
|
|
||||||
// first make sure the view access is set
|
|
||||||
if (Super___0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check($viewAccess))
|
|
||||||
{
|
|
||||||
// setup some defaults
|
|
||||||
$dashboard_add = false;
|
|
||||||
$dashboard_list = false;
|
|
||||||
$accessTo = '';
|
|
||||||
$accessAdd = '';
|
|
||||||
// access checking start
|
|
||||||
$accessCreate = (isset($viewAccess[$viewName.'.create'])) ? Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($viewAccess[$viewName.'.create']):false;
|
|
||||||
$accessAccess = (isset($viewAccess[$viewName.'.access'])) ? Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($viewAccess[$viewName.'.access']):false;
|
|
||||||
// set main controllers
|
|
||||||
$accessDashboard_add = (isset($viewAccess[$viewName.'.dashboard_add'])) ? Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($viewAccess[$viewName.'.dashboard_add']):false;
|
|
||||||
$accessDashboard_list = (isset($viewAccess[$viewName.'.dashboard_list'])) ? Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($viewAccess[$viewName.'.dashboard_list']):false;
|
|
||||||
// check for adding access
|
|
||||||
if ($add && $accessCreate)
|
|
||||||
{
|
|
||||||
$accessAdd = $viewAccess[$viewName.'.create'];
|
|
||||||
}
|
|
||||||
elseif ($add)
|
|
||||||
{
|
|
||||||
$accessAdd = 'core.create';
|
|
||||||
}
|
|
||||||
// check if access to view is set
|
|
||||||
if ($accessAccess)
|
|
||||||
{
|
|
||||||
$accessTo = $viewAccess[$viewName.'.access'];
|
|
||||||
}
|
|
||||||
// set main access controllers
|
|
||||||
if ($accessDashboard_add)
|
|
||||||
{
|
|
||||||
$dashboard_add = $user->authorise($viewAccess[$viewName.'.dashboard_add'], 'com_###component###');
|
|
||||||
}
|
|
||||||
if ($accessDashboard_list)
|
|
||||||
{
|
|
||||||
$dashboard_list = $user->authorise($viewAccess[$viewName.'.dashboard_list'], 'com_###component###');
|
|
||||||
}
|
|
||||||
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($accessAdd) && Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($accessTo))
|
|
||||||
{
|
|
||||||
// check access
|
|
||||||
if($user->authorise($accessAdd, 'com_###component###') && $user->authorise($accessTo, 'com_###component###') && $dashboard_add)
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = new \StdClass;
|
|
||||||
$icons[$group][$i]->url = $url;
|
|
||||||
$icons[$group][$i]->name = $name;
|
|
||||||
$icons[$group][$i]->image = $image;
|
|
||||||
$icons[$group][$i]->alt = $alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($accessTo))
|
|
||||||
{
|
|
||||||
// check access
|
|
||||||
if($user->authorise($accessTo, 'com_###component###') && $dashboard_list)
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = new \StdClass;
|
|
||||||
$icons[$group][$i]->url = $url;
|
|
||||||
$icons[$group][$i]->name = $name;
|
|
||||||
$icons[$group][$i]->image = $image;
|
|
||||||
$icons[$group][$i]->alt = $alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($accessAdd))
|
|
||||||
{
|
|
||||||
// check access
|
|
||||||
if($user->authorise($accessAdd, 'com_###component###') && $dashboard_add)
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = new \StdClass;
|
|
||||||
$icons[$group][$i]->url = $url;
|
|
||||||
$icons[$group][$i]->name = $name;
|
|
||||||
$icons[$group][$i]->image = $image;
|
|
||||||
$icons[$group][$i]->alt = $alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = new \StdClass;
|
|
||||||
$icons[$group][$i]->url = $url;
|
|
||||||
$icons[$group][$i]->name = $name;
|
|
||||||
$icons[$group][$i]->image = $image;
|
|
||||||
$icons[$group][$i]->alt = $alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = new \StdClass;
|
|
||||||
$icons[$group][$i]->url = $url;
|
|
||||||
$icons[$group][$i]->name = $name;
|
|
||||||
$icons[$group][$i]->image = $image;
|
|
||||||
$icons[$group][$i]->alt = $alt;
|
|
||||||
}
|
|
||||||
$i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
$icons[$group][$i] = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $icons;
|
return $icons;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -286,5 +155,188 @@ class ###Component###Model extends ListModel
|
|||||||
public function setScript(string $path): void
|
public function setScript(string $path): void
|
||||||
{
|
{
|
||||||
$this->scripts[] = $path;
|
$this->scripts[] = $path;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build a single dashboard icon if access is granted.
|
||||||
|
*
|
||||||
|
* @param string $view The view string to parse.
|
||||||
|
*
|
||||||
|
* @return \stdClass|null The icon object or null if access denied.
|
||||||
|
* @since 5.1.1
|
||||||
|
*/
|
||||||
|
protected function buildIconObject(string $view): ?\stdClass
|
||||||
|
{
|
||||||
|
$parsed = $this->parseViewDefinition($view);
|
||||||
|
if (!$parsed)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
'type' => $type,
|
||||||
|
'name' => $name,
|
||||||
|
'url' => $url,
|
||||||
|
'image' => $image,
|
||||||
|
'alt' => $alt,
|
||||||
|
'viewName' => $viewName,
|
||||||
|
'add' => $add,
|
||||||
|
] = $parsed;
|
||||||
|
|
||||||
|
if (!$this->hasAccessToView($viewName, $add))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->createIconObject($url, $name, $image, $alt);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse a view string into structured components.
|
||||||
|
*
|
||||||
|
* @param string $view The view definition string.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>|null Parsed values or null on failure.
|
||||||
|
* @since 5.1.1
|
||||||
|
*/
|
||||||
|
protected function parseViewDefinition(string $view): ?array
|
||||||
|
{
|
||||||
|
$add = false;
|
||||||
|
|
||||||
|
if (strpos($view, '||') !== false)
|
||||||
|
{
|
||||||
|
$parts = explode('||', $view);
|
||||||
|
if (count($parts) === 3)
|
||||||
|
{
|
||||||
|
[$type, $name, $url] = $parts;
|
||||||
|
return [
|
||||||
|
'type' => $type,
|
||||||
|
'name' => 'COM_###COMPONENT###_DASHBOARD_' . Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::safe($name, 'U'),
|
||||||
|
'url' => $url,
|
||||||
|
'image' => "{$name}.{$type}",
|
||||||
|
'alt' => $name,
|
||||||
|
'viewName' => $name,
|
||||||
|
'add' => false,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strpos($view, '.') !== false)
|
||||||
|
{
|
||||||
|
$parts = explode('.', $view);
|
||||||
|
$type = $parts[0] ?? '';
|
||||||
|
$name = $parts[1] ?? '';
|
||||||
|
$action = $parts[2] ?? null;
|
||||||
|
$viewName = $name;
|
||||||
|
|
||||||
|
if ($action)
|
||||||
|
{
|
||||||
|
if ($action === 'add')
|
||||||
|
{
|
||||||
|
$url = "index.php?option=com_###component###&view={$name}&layout=edit";
|
||||||
|
$image = "{$name}_{$action}.{$type}";
|
||||||
|
$alt = "{$name} {$action}";
|
||||||
|
$name = 'COM_###COMPONENT###_DASHBOARD_' .
|
||||||
|
Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::safe($name, 'U') . '_ADD';
|
||||||
|
$add = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (strpos($action, '_qpo0O0oqp_') !== false)
|
||||||
|
{
|
||||||
|
[$action, $ext] = explode('_qpo0O0oqp_', $action);
|
||||||
|
$extension = str_replace('_po0O0oq_', '.', $ext);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$extension = "com_###component###.{$name}";
|
||||||
|
}
|
||||||
|
$url = "index.php?option=com_categories&view=categories&extension={$extension}";
|
||||||
|
$image = "{$name}_{$action}.{$type}";
|
||||||
|
$alt = "{$name} {$action}";
|
||||||
|
$name = 'COM_###COMPONENT###_DASHBOARD_' .
|
||||||
|
Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::safe($name, 'U') . '_' .
|
||||||
|
Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::safe($action, 'U');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$url = "index.php?option=com_###component###&view={$name}";
|
||||||
|
$image = "{$name}.{$type}";
|
||||||
|
$alt = $name;
|
||||||
|
$name = 'COM_###COMPONENT###_DASHBOARD_' .
|
||||||
|
Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::safe($name, 'U');
|
||||||
|
}
|
||||||
|
|
||||||
|
return compact('type', 'name', 'url', 'image', 'alt', 'viewName', 'add');
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'type' => 'png',
|
||||||
|
'name' => ucwords($view) . '<br /><br />',
|
||||||
|
'url' => "index.php?option=com_###component###&view={$view}",
|
||||||
|
'image' => "{$view}.png",
|
||||||
|
'alt' => $view,
|
||||||
|
'viewName' => $view,
|
||||||
|
'add' => false,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the user has access to view or create the item.
|
||||||
|
*
|
||||||
|
* @param string $viewName The base name of the view.
|
||||||
|
* @param bool $add If this is an add-action.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
* @since 5.1.1
|
||||||
|
*/
|
||||||
|
protected function hasAccessToView(string $viewName, bool $add): bool
|
||||||
|
{
|
||||||
|
$viewAccess = $this->viewAccess;
|
||||||
|
$accessAdd = $add && isset($viewAccess["{$viewName}.create"])
|
||||||
|
? $viewAccess["{$viewName}.create"]
|
||||||
|
: ($add ? 'core.create' : '');
|
||||||
|
|
||||||
|
$accessTo = $viewAccess["{$viewName}.access"] ?? '';
|
||||||
|
|
||||||
|
$dashboardAdd = isset($viewAccess["{$viewName}.dashboard_add"]) &&
|
||||||
|
$this->user->authorise($viewAccess["{$viewName}.dashboard_add"], 'com_###component###');
|
||||||
|
|
||||||
|
$dashboardList = isset($viewAccess["{$viewName}.dashboard_list"]) &&
|
||||||
|
$this->user->authorise($viewAccess["{$viewName}.dashboard_list"], 'com_###component###');
|
||||||
|
|
||||||
|
if ($add && Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($accessAdd))
|
||||||
|
{
|
||||||
|
return $this->user->authorise($accessAdd, 'com_###component###') && $dashboardAdd;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($accessTo))
|
||||||
|
{
|
||||||
|
return $this->user->authorise($accessTo, 'com_###component###') && $dashboardList;
|
||||||
|
}
|
||||||
|
|
||||||
|
return !$accessTo && !$accessAdd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a \stdClass icon object.
|
||||||
|
*
|
||||||
|
* @param string $url Icon URL.
|
||||||
|
* @param string $name Language string or label.
|
||||||
|
* @param string $image Image filename.
|
||||||
|
* @param string $alt Alt text.
|
||||||
|
*
|
||||||
|
* @return \stdClass
|
||||||
|
* @since 5.1.1
|
||||||
|
*/
|
||||||
|
protected function createIconObject(string $url, string $name, string $image, string $alt): \stdClass
|
||||||
|
{
|
||||||
|
$icon = new \stdClass;
|
||||||
|
$icon->url = $url;
|
||||||
|
$icon->name = $name;
|
||||||
|
$icon->image = $image;
|
||||||
|
$icon->alt = $alt;
|
||||||
|
return $icon;
|
||||||
}###DASH_MODEL_METHODS###
|
}###DASH_MODEL_METHODS###
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,60 @@ namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Administrator
|
|||||||
#[\AllowDynamicProperties]
|
#[\AllowDynamicProperties]
|
||||||
class HtmlView extends BaseHtmlView
|
class HtmlView extends BaseHtmlView
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var array<string> List of icon identifiers to render in the dashboard view.
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public array $icons = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string> List of CSS file URLs to be added to the page.
|
||||||
|
* @since 4.3
|
||||||
|
*/
|
||||||
|
public array $styles = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string> List of JavaScript file URLs to be included on the page.
|
||||||
|
* @since 4.3
|
||||||
|
*/
|
||||||
|
public array $scripts = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<int, object> List of contributor objects fetched via the helper.
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public array $contributors = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var object|null The manifest metadata of the component as returned by `ComponentbuilderHelper::manifest()`.
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public $manifest = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string|null Markdown content of the component's wiki page.
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public ?string $wiki = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string|null The rendered or raw README markdown of the component.
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public ?string $readme = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string|null The current version of the component.
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public ?string $version = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string|null Help URL for the component dashboard view, if available.
|
||||||
|
* @since 1.6
|
||||||
|
*/
|
||||||
|
public ?string $help_url = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* View display method
|
* View display method
|
||||||
*
|
*
|
||||||
@ -71,18 +125,18 @@ class HtmlView extends BaseHtmlView
|
|||||||
protected function addToolbar(): void
|
protected function addToolbar(): void
|
||||||
{
|
{
|
||||||
$canDo = ###Component###Helper::getActions('###component###');
|
$canDo = ###Component###Helper::getActions('###component###');
|
||||||
ToolbarHelper::title(Text::_('COM_###COMPONENT###_DASHBOARD'), 'grid-2');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::title(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_DASHBOARD'), 'grid-2');
|
||||||
|
|
||||||
// set help url for this view if found
|
// set help url for this view if found
|
||||||
$this->help_url = ###Component###Helper::getHelpUrl('###component###');
|
$this->help_url = ###Component###Helper::getHelpUrl('###component###');
|
||||||
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
||||||
{
|
{
|
||||||
ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($canDo->get('core.admin') || $canDo->get('core.options'))
|
if ($canDo->get('core.admin') || $canDo->get('core.options'))
|
||||||
{
|
{
|
||||||
ToolbarHelper::preferences('com_###component###');
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::preferences('com_###component###');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,18 +149,22 @@ class HtmlView extends BaseHtmlView
|
|||||||
protected function _prepareDocument(): void
|
protected function _prepareDocument(): void
|
||||||
{
|
{
|
||||||
// set page title
|
// set page title
|
||||||
$this->getDocument()->setTitle(Text::_('COM_###COMPONENT###_DASHBOARD'));
|
$this->getDocument()->setTitle(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_DASHBOARD'));
|
||||||
// add manifest to page JavaScript
|
/** \Joomla\CMS\WebAsset\WebAssetManager $wa */
|
||||||
$this->getDocument()->addScriptDeclaration("var manifest = JSON.parse(" . json_encode($this->manifest) . ");", "text/javascript");
|
$wa = $this->getDocument()->getWebAssetManager();
|
||||||
|
// Register the inline script with properly encoded JSON
|
||||||
|
$wa->addInlineScript(
|
||||||
|
'var manifest = ' . json_encode($this->manifest, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . ';'
|
||||||
|
);
|
||||||
// add styles
|
// add styles
|
||||||
foreach ($this->styles as $style)
|
foreach ($this->styles as $style)
|
||||||
{
|
{
|
||||||
Html::_('stylesheet', $style, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('stylesheet', $style, ['version' => 'auto']);
|
||||||
}
|
}
|
||||||
// add scripts
|
// add scripts
|
||||||
foreach ($this->scripts as $script)
|
foreach ($this->scripts as $script)
|
||||||
{
|
{
|
||||||
Html::_('script', $script, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('script', $script, ['version' => 'auto']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
74
admin/compiler/joomla_4/FORM_MODAL_SELECT_FIELD.php
Normal file
74
admin/compiler/joomla_4/FORM_MODAL_SELECT_FIELD.php
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Component.Builder
|
||||||
|
*
|
||||||
|
* @created 4th September 2022
|
||||||
|
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||||
|
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
||||||
|
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
// No direct access to this JCB template file (EVER)
|
||||||
|
defined('_JCB_TEMPLATE') or die;
|
||||||
|
?>
|
||||||
|
###BOM###
|
||||||
|
namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Administrator\Field;
|
||||||
|
|
||||||
|
use Joomla\CMS\Factory;
|
||||||
|
use Joomla\CMS\Form\Field\ModalSelectField as ModalSelectFieldCore;
|
||||||
|
use Joomla\Database\ParameterType;
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
\defined('_JEXEC') or die;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A modal content selection field, now with the radical ability to handle string-based GUIDs.
|
||||||
|
* Because, apparently, assuming everything is an integer was the hill to die on.
|
||||||
|
*
|
||||||
|
* This override exists solely to bypass a hardcoded constraint that shouldn't have been there in the first place.
|
||||||
|
* But hey, at least we get another class extension to maintain!
|
||||||
|
*
|
||||||
|
* @since 5.0.0
|
||||||
|
*/
|
||||||
|
class ModalSelectField extends ModalSelectFieldCore
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Method to retrieve the title of selected item.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 5.0.0
|
||||||
|
*/
|
||||||
|
protected function getValueTitle()
|
||||||
|
{
|
||||||
|
// Selecting the title for the field value, when required info were given
|
||||||
|
if ($this->value && $this->sql_title_table && $this->sql_title_column && $this->sql_title_key) {
|
||||||
|
try {
|
||||||
|
$db = $this->getDatabase();
|
||||||
|
$query = $db->getQuery(true)
|
||||||
|
->select($db->quoteName($this->sql_title_column))
|
||||||
|
->from($db->quoteName($this->sql_title_table))
|
||||||
|
->where($db->quoteName($this->sql_title_key) . ' = :value')
|
||||||
|
->bind(':value', $this->value, is_numeric($this->value) ? ParameterType::INTEGER : ParameterType::STRING);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* All this—just because someone decided to hardcode [ParameterType::INTEGER] in the core.
|
||||||
|
* We could have just handle it dynamically, but no...
|
||||||
|
*
|
||||||
|
* Polymorphic behavior isn't the enemy. Hardcoded constraints that force class extensions?
|
||||||
|
* Now *that's* the real problem. But sure, let's keep pretending that integers are the
|
||||||
|
* only valid identifiers in a database.
|
||||||
|
*/
|
||||||
|
|
||||||
|
$db->setQuery($query);
|
||||||
|
|
||||||
|
return $db->loadResult() ?: $this->value;
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->value;
|
||||||
|
}
|
||||||
|
}
|
@ -16,12 +16,12 @@ defined('_JCB_TEMPLATE') or die;
|
|||||||
|
|
||||||
use Joomla\CMS\Factory;
|
use Joomla\CMS\Factory;
|
||||||
use Joomla\CMS\Language\Text;
|
use Joomla\CMS\Language\Text;
|
||||||
use Joomla\CMS\Filesystem\File;
|
|
||||||
use Joomla\CMS\Installer\InstallerAdapter;
|
use Joomla\CMS\Installer\InstallerAdapter;
|
||||||
use Joomla\CMS\Installer\InstallerScriptInterface;
|
use Joomla\CMS\Installer\InstallerScriptInterface;
|
||||||
use Joomla\CMS\Log\Log;
|
use Joomla\CMS\Log\Log;
|
||||||
use Joomla\CMS\Version;
|
use Joomla\CMS\Version;
|
||||||
use Joomla\CMS\HTML\HTMLHelper as Html;
|
use Joomla\CMS\HTML\HTMLHelper as Html;
|
||||||
|
use Joomla\Filesystem\File;
|
||||||
use Joomla\Filesystem\Folder;
|
use Joomla\Filesystem\Folder;
|
||||||
use Joomla\Database\DatabaseInterface;
|
use Joomla\Database\DatabaseInterface;
|
||||||
|
|
||||||
@ -122,8 +122,8 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
$this->minimumJoomla = '4.3';
|
$this->minimumJoomla = '4.3';
|
||||||
$this->minimumPhp = JOOMLA_MINIMUM_PHP;
|
$this->minimumPhp = JOOMLA_MINIMUM_PHP;
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$this->db = Factory::getContainer()->get(DatabaseInterface::class);
|
$this->db = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(DatabaseInterface::class);
|
||||||
|
|
||||||
// check if the files exist
|
// check if the files exist
|
||||||
if (is_file(JPATH_ROOT . '/administrator/components/com_###component###/###component###.php'))
|
if (is_file(JPATH_ROOT . '/administrator/components/com_###component###/###component###.php'))
|
||||||
@ -212,7 +212,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
// Check for the minimum PHP version before continuing
|
// Check for the minimum PHP version before continuing
|
||||||
if (!empty($this->minimumPhp) && version_compare(PHP_VERSION, $this->minimumPhp, '<'))
|
if (!empty($this->minimumPhp) && version_compare(PHP_VERSION, $this->minimumPhp, '<'))
|
||||||
{
|
{
|
||||||
Log::add(Text::sprintf('JLIB_INSTALLER_MINIMUM_PHP', $this->minimumPhp), Log::WARNING, 'jerror');
|
Log::add(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('JLIB_INSTALLER_MINIMUM_PHP', $this->minimumPhp), Log::WARNING, 'jerror');
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -220,7 +220,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
// Check for the minimum Joomla version before continuing
|
// Check for the minimum Joomla version before continuing
|
||||||
if (!empty($this->minimumJoomla) && version_compare(JVERSION, $this->minimumJoomla, '<'))
|
if (!empty($this->minimumJoomla) && version_compare(JVERSION, $this->minimumJoomla, '<'))
|
||||||
{
|
{
|
||||||
Log::add(Text::sprintf('JLIB_INSTALLER_MINIMUM_JOOMLA', $this->minimumJoomla), Log::WARNING, 'jerror');
|
Log::add(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('JLIB_INSTALLER_MINIMUM_JOOMLA', $this->minimumJoomla), Log::WARNING, 'jerror');
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -361,7 +361,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
if (is_file(JPATH_ROOT . $file) && !File::delete(JPATH_ROOT . $file))
|
if (is_file(JPATH_ROOT . $file) && !File::delete(JPATH_ROOT . $file))
|
||||||
{
|
{
|
||||||
echo Text::sprintf('JLIB_INSTALLER_ERROR_FILE_FOLDER', $file) . '<br>';
|
echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('JLIB_INSTALLER_ERROR_FILE_FOLDER', $file) . '<br>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -372,7 +372,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
if (is_dir(JPATH_ROOT . $folder) && !Folder::delete(JPATH_ROOT . $folder))
|
if (is_dir(JPATH_ROOT . $folder) && !Folder::delete(JPATH_ROOT . $folder))
|
||||||
{
|
{
|
||||||
echo Text::sprintf('JLIB_INSTALLER_ERROR_FILE_FOLDER', $folder) . '<br>';
|
echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('JLIB_INSTALLER_ERROR_FILE_FOLDER', $folder) . '<br>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -394,7 +394,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
|
|
||||||
if (file_exists(JPATH_ROOT . $file) && !File::move(JPATH_ROOT . $file, JPATH_ROOT . '/cli/' . $name))
|
if (file_exists(JPATH_ROOT . $file) && !File::move(JPATH_ROOT . $file, JPATH_ROOT . '/cli/' . $name))
|
||||||
{
|
{
|
||||||
echo Text::sprintf('JLIB_INSTALLER_FILE_ERROR_MOVE', $name);
|
echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('JLIB_INSTALLER_FILE_ERROR_MOVE', $name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -450,7 +450,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If its successfully update.
|
// If its successfully update.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The (%s) was found in the <b>#__content_types</b> table, and updated.', $content->type_alias)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The (%s) was found in the <b>#__content_types</b> table, and updated.', $content->type_alias)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -458,7 +458,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If its successfully added.
|
// If its successfully added.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The (%s) was added to the <b>#__content_types</b> table.', $content->type_alias)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The (%s) was added to the <b>#__content_types</b> table.', $content->type_alias)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -510,7 +510,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If its successfully update.
|
// If its successfully update.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The (%s) was found in the <b>#__action_log_config</b> table, and updated.', $content->type_alias)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The (%s) was found in the <b>#__action_log_config</b> table, and updated.', $content->type_alias)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -518,7 +518,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If its successfully added.
|
// If its successfully added.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The (%s) was added to the <b>#__action_log_config</b> table.', $content->type_alias)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The (%s) was added to the <b>#__action_log_config</b> table.', $content->type_alias)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -549,14 +549,14 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If its already set don't set it again.
|
// If its already set don't set it again.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::_('The (com_###component###) is already in the <b>#__action_logs_extensions</b> table.')
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('The (com_###component###) is already in the <b>#__action_logs_extensions</b> table.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
elseif ($this->db->insertObject('#__action_logs_extensions', $data))
|
elseif ($this->db->insertObject('#__action_logs_extensions', $data))
|
||||||
{
|
{
|
||||||
// give a success message
|
// give a success message
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::_('The (com_###component###) was successfully added to the <b>#__action_logs_extensions</b> table.')
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('The (com_###component###) was successfully added to the <b>#__action_logs_extensions</b> table.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -594,7 +594,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// give a success message
|
// give a success message
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::_('The (com_###component###) rules was successfully added to the <b>#__assets</b> table.')
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('The (com_###component###) rules was successfully added to the <b>#__assets</b> table.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -632,7 +632,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// give a success message
|
// give a success message
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::_('The (com_###component###) params was successfully added to the <b>#__extensions</b> table.')
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('The (com_###component###) params was successfully added to the <b>#__extensions</b> table.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -670,7 +670,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
if ($done)
|
if ($done)
|
||||||
{
|
{
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The <b>#__assets</b> table rules column was resized to the %s datatype for the components possible large permission rules.', $dataType)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The <b>#__assets</b> table rules column was resized to the %s datatype for the components possible large permission rules.', $dataType)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -749,7 +749,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If successfully remove Item add queued success message.
|
// If successfully remove Item add queued success message.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The (%s) type alias was removed from the <b>#__content_type</b> table.', $context)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The (%s) type alias was removed from the <b>#__content_type</b> table.', $context)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -810,7 +810,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If successfully remove context add queued success message.
|
// If successfully remove context add queued success message.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The fields with context (%s) was removed from the <b>#__fields</b> table.', $context)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The fields with context (%s) was removed from the <b>#__fields</b> table.', $context)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -846,7 +846,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If successfully remove release_check add queued success message.
|
// If successfully remove release_check add queued success message.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The fields values for (%s) was removed from the <b>#__fields_values</b> table.', $context)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The fields values for (%s) was removed from the <b>#__fields_values</b> table.', $context)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -900,7 +900,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If successfully remove context add queued success message.
|
// If successfully remove context add queued success message.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The fields with context (%s) was removed from the <b>#__fields_groups</b> table.', $context)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The fields with context (%s) was removed from the <b>#__fields_groups</b> table.', $context)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -933,7 +933,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If successfully removed Items add queued success message.
|
// If successfully removed Items add queued success message.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The (%s) items were removed from the <b>#__history</b> table.', $context)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The (%s) items were removed from the <b>#__history</b> table.', $context)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -967,7 +967,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::_('All related items was removed from the <b>#__ucm_base</b> table.')
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('All related items was removed from the <b>#__ucm_base</b> table.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -998,7 +998,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If successfully removed Item add queued success message.
|
// If successfully removed Item add queued success message.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The (%s) type alias was removed from the <b>#__ucm_content</b> table.', $context)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The (%s) type alias was removed from the <b>#__ucm_content</b> table.', $context)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1033,7 +1033,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If successfully remove Item add queued success message.
|
// If successfully remove Item add queued success message.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The (%s) type alias was removed from the <b>#__contentitem_tag_map</b> table.', $context)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The (%s) type alias was removed from the <b>#__contentitem_tag_map</b> table.', $context)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1065,7 +1065,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If successfully removed ###component### view add queued success message.
|
// If successfully removed ###component### view add queued success message.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::sprintf('The (%s) type alias was removed from the <b>#__action_log_config</b> table.', $context)
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('The (%s) type alias was removed from the <b>#__action_log_config</b> table.', $context)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1093,7 +1093,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If successfully removed ###component### add queued success message.
|
// If successfully removed ###component### add queued success message.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::_('All related (com_###component###) items was removed from the <b>#__assets</b> table.')
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('All related (com_###component###) items was removed from the <b>#__assets</b> table.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1123,7 +1123,7 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
{
|
{
|
||||||
// If successfully remove ###component### add queued success message.
|
// If successfully remove ###component### add queued success message.
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::_('The (com_###component###) extension was removed from the <b>#__action_logs_extensions</b> table.')
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('The (com_###component###) extension was removed from the <b>#__action_logs_extensions</b> table.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1151,13 +1151,13 @@ class Com_###Component###InstallerScript implements InstallerScriptInterface
|
|||||||
$this->db->execute();
|
$this->db->execute();
|
||||||
|
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::_('Reverted the <b>#__assets</b> table rules column back to its default size of varchar(5120).')
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('Reverted the <b>#__assets</b> table rules column back to its default size of varchar(5120).')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->app->enqueueMessage(
|
$this->app->enqueueMessage(
|
||||||
Text::_('Could not revert the <b>#__assets</b> table rules column back to its default size of varchar(5120), since there is still one or more components that still requires the column to be larger.')
|
Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('Could not revert the <b>#__assets</b> table rules column back to its default size of varchar(5120), since there is still one or more components that still requires the column to be larger.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ defined('_JEXEC') or die;
|
|||||||
?>
|
?>
|
||||||
<div class="###component###-###view###">
|
<div class="###component###-###view###">
|
||||||
<?php echo $this->toolbar->render(); ?>
|
<?php echo $this->toolbar->render(); ?>
|
||||||
<form action="<?php echo Route::_('index.php?option=com_###component###&layout=edit&id='. (int) $this->item->id . $this->referral); ?>" method="post" name="adminForm" id="adminForm" class="form-validate" enctype="multipart/form-data">
|
<form action="<?php echo Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###&layout=edit&id='. (int) $this->item->id . $this->referral); ?>" method="post" name="adminForm" id="adminForm" class="form-validate" enctype="multipart/form-data">
|
||||||
###EDITBODY###
|
###EDITBODY###
|
||||||
</form>
|
</form>
|
||||||
</div>###EDITBODYSCRIPT###
|
</div>###EDITBODYSCRIPT###
|
||||||
|
@ -149,13 +149,13 @@ class ###View###Controller extends FormController
|
|||||||
*/
|
*/
|
||||||
public function batch($model = null)
|
public function batch($model = null)
|
||||||
{
|
{
|
||||||
Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
|
Joomla___5ba38513_5c4f_4b0d_935e_49e986a6bce8___Power::checkToken() or jexit(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JINVALID_TOKEN'));
|
||||||
|
|
||||||
// Set the model
|
// Set the model
|
||||||
$model = $this->getModel('###View###', '', []);
|
$model = $this->getModel('###View###', '', []);
|
||||||
|
|
||||||
// Preset the redirect
|
// Preset the redirect
|
||||||
$this->setRedirect(Route::_('index.php?option=com_###component###&view=###views###' . $this->getRedirectToListAppend(), false));
|
$this->setRedirect(Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###&view=###views###' . $this->getRedirectToListAppend(), false));
|
||||||
|
|
||||||
return parent::batch($model);
|
return parent::batch($model);
|
||||||
}
|
}
|
||||||
@ -180,13 +180,13 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
$cancel = parent::cancel($key);
|
$cancel = parent::cancel($key);
|
||||||
|
|
||||||
if (!is_null($return) && Uri::isInternal(base64_decode($return)))
|
if (!is_null($return) && Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::isInternal(base64_decode($return)))
|
||||||
{
|
{
|
||||||
$redirect = base64_decode($return);
|
$redirect = base64_decode($return);
|
||||||
|
|
||||||
// Redirect to the return value.
|
// Redirect to the return value.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
$redirect, false
|
$redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -197,7 +197,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Redirect to the item screen.
|
// Redirect to the item screen.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
'index.php?option=' . $this->option . $redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -208,7 +208,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Redirect to the list screen.
|
// Redirect to the list screen.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
'index.php?option=' . $this->option . $redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -234,7 +234,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Check if there is a return value
|
// Check if there is a return value
|
||||||
$return = $this->input->get('return', null, 'base64');
|
$return = $this->input->get('return', null, 'base64');
|
||||||
$canReturn = (!is_null($return) && Uri::isInternal(base64_decode($return)));
|
$canReturn = (!is_null($return) && Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::isInternal(base64_decode($return)));
|
||||||
|
|
||||||
if ($this->ref || $this->refid || $canReturn)
|
if ($this->ref || $this->refid || $canReturn)
|
||||||
{
|
{
|
||||||
@ -252,7 +252,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Redirect to the return value.
|
// Redirect to the return value.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
$redirect, false
|
$redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -263,7 +263,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Redirect to the item screen.
|
// Redirect to the item screen.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
'index.php?option=' . $this->option . $redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -274,7 +274,7 @@ class ###View###Controller extends FormController
|
|||||||
|
|
||||||
// Redirect to the list screen.
|
// Redirect to the list screen.
|
||||||
$this->setRedirect(
|
$this->setRedirect(
|
||||||
Route::_(
|
Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_(
|
||||||
'index.php?option=' . $this->option . $redirect, false
|
'index.php?option=' . $this->option . $redirect, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -118,7 +118,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
public function display($tpl = null)
|
public function display($tpl = null)
|
||||||
{
|
{
|
||||||
// set params
|
// set params
|
||||||
$this->params = ComponentHelper::getParams('com_###component###');
|
$this->params = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
$this->useCoreUI = true;
|
$this->useCoreUI = true;
|
||||||
// Assign the variables
|
// Assign the variables
|
||||||
$this->form ??= $this->get('Form');
|
$this->form ??= $this->get('Form');
|
||||||
@ -129,7 +129,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
// get action permissions
|
// get action permissions
|
||||||
$this->canDo = ###Component###Helper::getActions('###view###', $this->item);
|
$this->canDo = ###Component###Helper::getActions('###view###', $this->item);
|
||||||
// get input
|
// get input
|
||||||
$jinput = Factory::getApplication()->input;
|
$jinput = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->input;
|
||||||
$this->ref = $jinput->get('ref', 0, 'word');
|
$this->ref = $jinput->get('ref', 0, 'word');
|
||||||
$this->refid = $jinput->get('refid', 0, 'int');
|
$this->refid = $jinput->get('refid', 0, 'int');
|
||||||
$return = $jinput->get('return', null, 'base64');
|
$return = $jinput->get('return', null, 'base64');
|
||||||
@ -138,18 +138,18 @@ class HtmlView extends BaseHtmlView
|
|||||||
if ($this->refid && $this->ref)
|
if ($this->refid && $this->ref)
|
||||||
{
|
{
|
||||||
// return to the item that referred to this item
|
// return to the item that referred to this item
|
||||||
$this->referral = '&ref=' . (string)$this->ref . '&refid=' . (int)$this->refid;
|
$this->referral = '&ref=' . (string) $this->ref . '&refid=' . (int) $this->refid;
|
||||||
}
|
}
|
||||||
elseif($this->ref)
|
elseif($this->ref)
|
||||||
{
|
{
|
||||||
// return to the list view that referred to this item
|
// return to the list view that referred to this item
|
||||||
$this->referral = '&ref=' . (string)$this->ref;
|
$this->referral = '&ref=' . (string) $this->ref;
|
||||||
}
|
}
|
||||||
// check return value
|
// check return value
|
||||||
if (!is_null($return))
|
if (!is_null($return))
|
||||||
{
|
{
|
||||||
// add the return value
|
// add the return value
|
||||||
$this->referral .= '&return=' . (string)$return;
|
$this->referral .= '&return=' . (string) $return;
|
||||||
}###LINKEDVIEWITEMS###
|
}###LINKEDVIEWITEMS###
|
||||||
|
|
||||||
// Set the toolbar
|
// Set the toolbar
|
||||||
@ -178,8 +178,8 @@ class HtmlView extends BaseHtmlView
|
|||||||
{
|
{
|
||||||
###ADDTOOLBAR###
|
###ADDTOOLBAR###
|
||||||
|
|
||||||
// now initiate the toolbar
|
// add the toolbar if it's not already loaded
|
||||||
$this->toolbar ??= Toolbar::getInstance();
|
$this->toolbar ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(Joomla___5d2ae99b_1ea1_44f0_9b59_f1aa7eab9e2e___Power::class)->createToolbar('toolbar');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -211,16 +211,16 @@ class HtmlView extends BaseHtmlView
|
|||||||
protected function _prepareDocument(): void
|
protected function _prepareDocument(): void
|
||||||
{###JQUERY###
|
{###JQUERY###
|
||||||
$isNew = ($this->item->id < 1);
|
$isNew = ($this->item->id < 1);
|
||||||
$this->getDocument()->setTitle(Text::_($isNew ? 'COM_###COMPONENT###_###VIEW###_NEW' : 'COM_###COMPONENT###_###VIEW###_EDIT'));
|
$this->getDocument()->setTitle(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_($isNew ? 'COM_###COMPONENT###_###VIEW###_NEW' : 'COM_###COMPONENT###_###VIEW###_EDIT'));
|
||||||
// add styles
|
// add styles
|
||||||
foreach ($this->styles as $style)
|
foreach ($this->styles as $style)
|
||||||
{
|
{
|
||||||
Html::_('stylesheet', $style, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('stylesheet', $style, ['version' => 'auto']);
|
||||||
}###AJAXTOKE######LINKEDVIEWTABLESCRIPTS###
|
}###AJAXTOKE######LINKEDVIEWTABLESCRIPTS###
|
||||||
// add scripts
|
// add scripts
|
||||||
foreach ($this->scripts as $script)
|
foreach ($this->scripts as $script)
|
||||||
{
|
{
|
||||||
Html::_('script', $script, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('script', $script, ['version' => 'auto']);
|
||||||
}###DOCUMENT_CUSTOM_PHP###
|
}###DOCUMENT_CUSTOM_PHP###
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
28
admin/compiler/joomla_4/SITE_ADMIN_VIEW_MODAL.php
Normal file
28
admin/compiler/joomla_4/SITE_ADMIN_VIEW_MODAL.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Component.Builder
|
||||||
|
*
|
||||||
|
* @created 4th September 2022
|
||||||
|
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||||
|
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
||||||
|
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
// No direct access to this JCB template file (EVER)
|
||||||
|
defined('_JCB_TEMPLATE') or die;
|
||||||
|
?>
|
||||||
|
###BOM###
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
||||||
|
|
||||||
|
/** @var \###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Site\View\###View###\HtmlView $this */
|
||||||
|
?>
|
||||||
|
<div class="subhead noshadow mb-3">
|
||||||
|
<?php echo $this->getDocument()->getToolbar('toolbar')->render(); ?>
|
||||||
|
</div>
|
||||||
|
<div class="container-popup">
|
||||||
|
<?php $this->setLayout('edit'); ?>
|
||||||
|
<?php echo $this->loadTemplate(); ?>
|
||||||
|
</div>
|
52
admin/compiler/joomla_4/SITE_ADMIN_VIEW_MODAL_RETURN.php
Normal file
52
admin/compiler/joomla_4/SITE_ADMIN_VIEW_MODAL_RETURN.php
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Component.Builder
|
||||||
|
*
|
||||||
|
* @created 4th September 2022
|
||||||
|
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||||
|
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
||||||
|
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
// No direct access to this JCB template file (EVER)
|
||||||
|
defined('_JCB_TEMPLATE') or die;
|
||||||
|
?>
|
||||||
|
###BOM###
|
||||||
|
|
||||||
|
use Joomla\CMS\Router\Route;
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
||||||
|
|
||||||
|
/** @var \###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Site\View\###View###\HtmlView $this */
|
||||||
|
|
||||||
|
$icon = 'icon-check';
|
||||||
|
$title_key = $this->item->###SQL_TITLE_KEY### ?? '';
|
||||||
|
$title_column = $this->item->###SQL_TITLE_COLUMN### ?? '';
|
||||||
|
$data = [
|
||||||
|
'contentType' => 'com_###component###.###view###',
|
||||||
|
'id' => $title_key,
|
||||||
|
'title' => $title_column,
|
||||||
|
'uri' => Route::_('index.php?option=com_###component###&layout=modal&tmpl=component&id='. (int) ($this->item->id ?? 0))
|
||||||
|
];
|
||||||
|
|
||||||
|
// Add Content select script
|
||||||
|
/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
|
||||||
|
$wa = $this->getDocument()->getWebAssetManager();
|
||||||
|
$wa->useScript('modal-content-select');
|
||||||
|
|
||||||
|
// The data for Content select script
|
||||||
|
$this->getDocument()->addScriptOptions('content-select-on-load', $data, false);
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="px-4 py-5 my-5 text-center">
|
||||||
|
<span class="fa-8x mb-4 <?php echo $icon; ?>" aria-hidden="true"></span>
|
||||||
|
<h1 class="display-5 fw-bold"><?php echo $title_column; ?></h1>
|
||||||
|
<div class="col-lg-6 mx-auto">
|
||||||
|
<p class="lead mb-4">
|
||||||
|
<?php echo $title_column; ?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -234,7 +234,7 @@ class ###View###Model extends AdminModel
|
|||||||
*/
|
*/
|
||||||
protected function prepareTable($table)
|
protected function prepareTable($table)
|
||||||
{###LICENSE_TABLE_LOCKED_CHECK###
|
{###LICENSE_TABLE_LOCKED_CHECK###
|
||||||
$date = Factory::getDate();
|
$date = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getDate();
|
||||||
$user = $this->getCurrentUser();
|
$user = $this->getCurrentUser();
|
||||||
|
|
||||||
if (isset($table->name))
|
if (isset($table->name))
|
||||||
@ -291,7 +291,7 @@ class ###View###Model extends AdminModel
|
|||||||
protected function loadFormData()
|
protected function loadFormData()
|
||||||
{
|
{
|
||||||
// Check the session for previously entered form data.
|
// Check the session for previously entered form data.
|
||||||
$data = Factory::getApplication()->getUserState('com_###component###.edit.###view###.data', []);
|
$data = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getUserState('com_###component###.edit.###view###.data', []);
|
||||||
|
|
||||||
if (empty($data))
|
if (empty($data))
|
||||||
{
|
{
|
||||||
@ -368,7 +368,7 @@ class ###View###Model extends AdminModel
|
|||||||
|
|
||||||
if (empty($pks))
|
if (empty($pks))
|
||||||
{
|
{
|
||||||
$this->setError(Text::_('JGLOBAL_NO_ITEM_SELECTED'));
|
$this->setError(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JGLOBAL_NO_ITEM_SELECTED'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,7 +385,7 @@ class ###View###Model extends AdminModel
|
|||||||
|
|
||||||
if (!$this->canDo->get('core.batch'))
|
if (!$this->canDo->get('core.batch'))
|
||||||
{
|
{
|
||||||
$this->setError(Text::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
$this->setError(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -428,7 +428,7 @@ class ###View###Model extends AdminModel
|
|||||||
|
|
||||||
if (!$done)
|
if (!$done)
|
||||||
{
|
{
|
||||||
$this->setError(Text::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
$this->setError(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -449,7 +449,7 @@ class ###View###Model extends AdminModel
|
|||||||
*/
|
*/
|
||||||
public function save($data)
|
public function save($data)
|
||||||
{
|
{
|
||||||
$input = Factory::getApplication()->input;
|
$input = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->input;
|
||||||
$filter = InputFilter::getInstance();
|
$filter = InputFilter::getInstance();
|
||||||
|
|
||||||
// set the metadata to the Item Data
|
// set the metadata to the Item Data
|
||||||
|
@ -67,7 +67,7 @@ class AjaxController extends BaseController
|
|||||||
// return to a callback function
|
// return to a callback function
|
||||||
$callback = $jinput->get('callback', null, 'CMD');
|
$callback = $jinput->get('callback', null, 'CMD');
|
||||||
// Check Token!
|
// Check Token!
|
||||||
$token = Session::getFormToken();
|
$token = Joomla___5ba38513_5c4f_4b0d_935e_49e986a6bce8___Power::getFormToken();
|
||||||
$call_token = $jinput->get('token', 0, 'ALNUM');
|
$call_token = $jinput->get('token', 0, 'ALNUM');
|
||||||
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
|
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
|
||||||
{
|
{
|
||||||
|
@ -56,7 +56,7 @@ class AjaxModel extends ListModel
|
|||||||
{
|
{
|
||||||
parent::__construct($config, $factory);
|
parent::__construct($config, $factory);
|
||||||
|
|
||||||
$this->app_params = ComponentHelper::getParams('com_###component###');
|
$this->app_params = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
}###AJAX_SITE_MODEL_METHODS###
|
}###AJAX_SITE_MODEL_METHODS###
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ class DisplayController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function __construct($config = [], MVCFactoryInterface $factory = null, $app = null, $input = null)
|
public function __construct($config = [], MVCFactoryInterface $factory = null, $app = null, $input = null)
|
||||||
{
|
{
|
||||||
$app ??= Factory::getApplication();
|
$app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$this->identity ??= $app->getIdentity();
|
$this->identity ??= $app->getIdentity();
|
||||||
|
|
||||||
parent::__construct($config, $factory, $app, $input);
|
parent::__construct($config, $factory, $app, $input);
|
||||||
@ -108,21 +108,21 @@ class DisplayController extends BaseController
|
|||||||
if ($refid > 0 && Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($ref))
|
if ($refid > 0 && Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($ref))
|
||||||
{
|
{
|
||||||
// redirect to item of ref
|
// redirect to item of ref
|
||||||
$this->setRedirect(Route::_('index.php?option=com_###component###&view=' . (string) $ref . '&layout=edit&id=' . (int) $refid, false));
|
$this->setRedirect(Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###&view=' . (string) $ref . '&layout=edit&id=' . (int) $refid, false));
|
||||||
}
|
}
|
||||||
elseif (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($ref))
|
elseif (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($ref))
|
||||||
{
|
{
|
||||||
// redirect to ref
|
// redirect to ref
|
||||||
$this->setRedirect(Route::_('index.php?option=com_###component###&view=' . (string) $ref, false));
|
$this->setRedirect(Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###&view=' . (string) $ref, false));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// normal redirect back to the list default site view
|
// normal redirect back to the list default site view
|
||||||
$this->setRedirect(Route::_('index.php?option=com_###component###&view=###SITE_DEFAULT_VIEW###', false));
|
$this->setRedirect(Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###&view=###SITE_DEFAULT_VIEW###', false));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Somehow the person just went to the form - we don't allow that.
|
// Somehow the person just went to the form - we don't allow that.
|
||||||
throw new \Exception(Text::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id), 403);
|
throw new \Exception(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id), 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
// we may need to make this more dynamic in the future. (TODO)
|
// we may need to make this more dynamic in the future. (TODO)
|
||||||
|
74
admin/compiler/joomla_4/SITE_FORM_MODAL_SELECT_FIELD.php
Normal file
74
admin/compiler/joomla_4/SITE_FORM_MODAL_SELECT_FIELD.php
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package Joomla.Component.Builder
|
||||||
|
*
|
||||||
|
* @created 4th September 2022
|
||||||
|
* @author Llewellyn van der Merwe <https://dev.vdm.io>
|
||||||
|
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
|
||||||
|
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||||
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
// No direct access to this JCB template file (EVER)
|
||||||
|
defined('_JCB_TEMPLATE') or die;
|
||||||
|
?>
|
||||||
|
###BOM###
|
||||||
|
namespace ###NAMESPACEPREFIX###\Component\###ComponentNamespace###\Site\Field;
|
||||||
|
|
||||||
|
use Joomla\CMS\Factory;
|
||||||
|
use Joomla\CMS\Form\Field\ModalSelectField as ModalSelectFieldCore;
|
||||||
|
use Joomla\Database\ParameterType;
|
||||||
|
|
||||||
|
// No direct access to this file
|
||||||
|
\defined('_JEXEC') or die;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A modal content selection field, now with the radical ability to handle string-based GUIDs.
|
||||||
|
* Because, apparently, assuming everything is an integer was the hill to die on.
|
||||||
|
*
|
||||||
|
* This override exists solely to bypass a hardcoded constraint that shouldn't have been there in the first place.
|
||||||
|
* But hey, at least we get another class extension to maintain!
|
||||||
|
*
|
||||||
|
* @since 5.0.0
|
||||||
|
*/
|
||||||
|
class ModalSelectField extends ModalSelectFieldCore
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Method to retrieve the title of selected item.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 5.0.0
|
||||||
|
*/
|
||||||
|
protected function getValueTitle()
|
||||||
|
{
|
||||||
|
// Selecting the title for the field value, when required info were given
|
||||||
|
if ($this->value && $this->sql_title_table && $this->sql_title_column && $this->sql_title_key) {
|
||||||
|
try {
|
||||||
|
$db = $this->getDatabase();
|
||||||
|
$query = $db->getQuery(true)
|
||||||
|
->select($db->quoteName($this->sql_title_column))
|
||||||
|
->from($db->quoteName($this->sql_title_table))
|
||||||
|
->where($db->quoteName($this->sql_title_key) . ' = :value')
|
||||||
|
->bind(':value', $this->value, is_numeric($this->value) ? ParameterType::INTEGER : ParameterType::STRING);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* All this—just because someone decided to hardcode [ParameterType::INTEGER] in the core.
|
||||||
|
* We could have just handle it dynamically, but no...
|
||||||
|
*
|
||||||
|
* Polymorphic behavior isn't the enemy. Hardcoded constraints that force class extensions?
|
||||||
|
* Now *that's* the real problem. But sure, let's keep pretending that integers are the
|
||||||
|
* only valid identifiers in a database.
|
||||||
|
*/
|
||||||
|
|
||||||
|
$db->setQuery($query);
|
||||||
|
|
||||||
|
return $db->loadResult() ?: $this->value;
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->value;
|
||||||
|
}
|
||||||
|
}
|
@ -51,7 +51,7 @@ class HeaderCheck
|
|||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
// Initializes the application object.
|
// Initializes the application object.
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
|
|
||||||
// Initializes the document object.
|
// Initializes the document object.
|
||||||
$this->document = $this->app->getDocument();
|
$this->document = $this->app->getDocument();
|
||||||
|
@ -115,7 +115,7 @@ abstract class ###Component###Helper
|
|||||||
public static function getContributors()
|
public static function getContributors()
|
||||||
{
|
{
|
||||||
// get params
|
// get params
|
||||||
$params = ComponentHelper::getParams('com_###component###');
|
$params = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
// start contributors array
|
// start contributors array
|
||||||
$contributors = [];
|
$contributors = [];
|
||||||
// get all Contributors (max 20)
|
// get all Contributors (max 20)
|
||||||
@ -172,7 +172,7 @@ abstract class ###Component###Helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get the model through the MVCFactory
|
// Get the model through the MVCFactory
|
||||||
return Factory::getApplication()->bootComponent('com_' . $component)->getMVCFactory()->createModel($type, $prefix, $config);
|
return Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->bootComponent('com_' . $component)->getMVCFactory()->createModel($type, $prefix, $config);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -242,7 +242,7 @@ abstract class ###Component###Helper
|
|||||||
|
|
||||||
if (!$asset->check() || !$asset->store())
|
if (!$asset->check() || !$asset->store())
|
||||||
{
|
{
|
||||||
Factory::getApplication()->enqueueMessage($asset->getError(), 'warning');
|
Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->enqueueMessage($asset->getError(), 'warning');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -255,7 +255,7 @@ abstract class ###Component###Helper
|
|||||||
$object->asset_id = (int) $asset->id;
|
$object->asset_id = (int) $asset->id;
|
||||||
|
|
||||||
// Update their asset_id to link to the asset table.
|
// Update their asset_id to link to the asset table.
|
||||||
return Factory::getDbo()->updateObject('#__###component###_'.$table, $object, 'id');
|
return Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getDbo()->updateObject('#__###component###_'.$table, $object, 'id');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -272,7 +272,7 @@ abstract class ###Component###Helper
|
|||||||
if (!$inherit)
|
if (!$inherit)
|
||||||
{
|
{
|
||||||
// Need to find the asset id by the name of the component.
|
// Need to find the asset id by the name of the component.
|
||||||
$db = Factory::getContainer()->get(DatabaseInterface::class);
|
$db = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(DatabaseInterface::class);
|
||||||
$query = $db->getQuery(true)
|
$query = $db->getQuery(true)
|
||||||
->select($db->quoteName('id'))
|
->select($db->quoteName('id'))
|
||||||
->from($db->quoteName('#__assets'))
|
->from($db->quoteName('#__assets'))
|
||||||
@ -497,7 +497,7 @@ abstract class ###Component###Helper
|
|||||||
{
|
{
|
||||||
$type = 'item';
|
$type = 'item';
|
||||||
}
|
}
|
||||||
$db = Factory::getContainer()->get(DatabaseInterface::class);
|
$db = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(DatabaseInterface::class);
|
||||||
$query = $db->getQuery(true);
|
$query = $db->getQuery(true);
|
||||||
$query->select(array('a.published'));
|
$query->select(array('a.published'));
|
||||||
$query->from('#__###component###_'.$type.' AS a');
|
$query->from('#__###component###_'.$type.' AS a');
|
||||||
@ -515,7 +515,7 @@ abstract class ###Component###Helper
|
|||||||
|
|
||||||
public static function getGroupName($id)
|
public static function getGroupName($id)
|
||||||
{
|
{
|
||||||
$db = Factory::getContainer()->get(DatabaseInterface::class);
|
$db = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(DatabaseInterface::class);
|
||||||
$query = $db->getQuery(true);
|
$query = $db->getQuery(true);
|
||||||
$query->select(array('a.title'));
|
$query->select(array('a.title'));
|
||||||
$query->from('#__usergroups AS a');
|
$query->from('#__usergroups AS a');
|
||||||
@ -549,7 +549,7 @@ abstract class ###Component###Helper
|
|||||||
if (!Super___91004529_94a9_4590_b842_e7c6b624ecf5___Power::check($user))
|
if (!Super___91004529_94a9_4590_b842_e7c6b624ecf5___Power::check($user))
|
||||||
{
|
{
|
||||||
// get the user object
|
// get the user object
|
||||||
$user = Factory::getApplication()->getIdentity();
|
$user = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getIdentity();
|
||||||
}
|
}
|
||||||
// load the CMSObject
|
// load the CMSObject
|
||||||
$result = new CMSObject;
|
$result = new CMSObject;
|
||||||
|
@ -41,10 +41,10 @@ class HelpController extends BaseController
|
|||||||
|
|
||||||
public function help()
|
public function help()
|
||||||
{
|
{
|
||||||
$user = Factory::getApplication()->getIdentity();
|
$user = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getIdentity();
|
||||||
$jinput = Factory::getApplication()->input;
|
$jinput = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->input;
|
||||||
// Check Token!
|
// Check Token!
|
||||||
$token = Session::getFormToken();
|
$token = Joomla___5ba38513_5c4f_4b0d_935e_49e986a6bce8___Power::getFormToken();
|
||||||
$call_token = $jinput->get('token', 0, 'ALNUM');
|
$call_token = $jinput->get('token', 0, 'ALNUM');
|
||||||
if($user->id != 0 && ($jinput->get($token, 0, 'ALNUM') || $token === $call_token))
|
if($user->id != 0 && ($jinput->get($token, 0, 'ALNUM') || $token === $call_token))
|
||||||
{
|
{
|
||||||
@ -83,7 +83,7 @@ class HelpController extends BaseController
|
|||||||
|
|
||||||
protected function getHelpDocumentText($id)
|
protected function getHelpDocumentText($id)
|
||||||
{
|
{
|
||||||
$db = Factory::getContainer()->get(DatabaseInterface::class);
|
$db = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getContainer()->get(DatabaseInterface::class);
|
||||||
$query = $db->getQuery(true);
|
$query = $db->getQuery(true);
|
||||||
$query->select(array('a.title','a.content'));
|
$query->select(array('a.title','a.content'));
|
||||||
$query->from('#__###component###_help_document AS a');
|
$query->from('#__###component###_help_document AS a');
|
||||||
@ -97,18 +97,18 @@ class HelpController extends BaseController
|
|||||||
$text = [];
|
$text = [];
|
||||||
$document = $db->loadObject();
|
$document = $db->loadObject();
|
||||||
// fix image issue
|
// fix image issue
|
||||||
$images['src="images'] = 'src="'.Uri::root().'images';
|
$images['src="images'] = 'src="'.Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root().'images';
|
||||||
$images["src='images"] = "src='".Uri::root()."images";
|
$images["src='images"] = "src='".Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root()."images";
|
||||||
$images['src="/images'] = 'src="'.Uri::root().'images';
|
$images['src="/images'] = 'src="'.Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root().'images';
|
||||||
$images["src='/images"] = "src='".Uri::root()."images";
|
$images["src='/images"] = "src='".Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root()."images";
|
||||||
// set document template
|
// set document template
|
||||||
$text[] = "<!doctype html>";
|
$text[] = "<!doctype html>";
|
||||||
$text[] = '<html>';
|
$text[] = '<html>';
|
||||||
$text[] = "<head>";
|
$text[] = "<head>";
|
||||||
$text[] = '<meta charset="utf-8">';
|
$text[] = '<meta charset="utf-8">';
|
||||||
$text[] = "<title>".$document->title."</title>";
|
$text[] = "<title>".$document->title."</title>";
|
||||||
$text[] = '<link type="text/css" href="'.Uri::root().'media/com_###component###/uikit/css/uikit.gradient.min.css" rel="stylesheet"></link>';
|
$text[] = '<link type="text/css" href="'.Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root().'media/com_###component###/uikit/css/uikit.gradient.min.css" rel="stylesheet"></link>';
|
||||||
$text[] = '<script type="text/javascript" src="'.Uri::root().'media/com_###component###/uikit/js/uikit.min.js"></script>';
|
$text[] = '<script type="text/javascript" src="'.Joomla___eecc143e_b5cf_4c33_ba4d_97da1df61422___Power::root().'media/com_###component###/uikit/js/uikit.min.js"></script>';
|
||||||
$text[] = "</head>";
|
$text[] = "</head>";
|
||||||
$text[] = '<body><br />';
|
$text[] = '<body><br />';
|
||||||
$text[] = '<div class="uk-container uk-container-center uk-grid-collapse">';
|
$text[] = '<div class="uk-container uk-container-center uk-grid-collapse">';
|
||||||
|
@ -85,7 +85,7 @@ class Router extends RouterView
|
|||||||
{
|
{
|
||||||
$this->categoryFactory = $categoryFactory;
|
$this->categoryFactory = $categoryFactory;
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
$this->params = ComponentHelper::getParams('com_###component###');
|
$this->params = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
$this->noIDs = (bool) $this->params->get('sef_ids', false);###SITE_ROUTER_CONSTRUCTOR_BEFORE_PARENT###
|
$this->noIDs = (bool) $this->params->get('sef_ids', false);###SITE_ROUTER_CONSTRUCTOR_BEFORE_PARENT###
|
||||||
|
|
||||||
parent::__construct($app, $menu);###SITE_ROUTER_CONSTRUCTOR_AFTER_PARENT###
|
parent::__construct($app, $menu);###SITE_ROUTER_CONSTRUCTOR_AFTER_PARENT###
|
||||||
|
@ -36,7 +36,7 @@ abstract class RouteHelper
|
|||||||
|
|
||||||
protected static function _findItem($needles = null,$type = null)
|
protected static function _findItem($needles = null,$type = null)
|
||||||
{
|
{
|
||||||
$app = Factory::getApplication();
|
$app = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$menus = $app->getMenu('site');
|
$menus = $app->getMenu('site');
|
||||||
$language = isset($needles['language']) ? $needles['language'] : '*';
|
$language = isset($needles['language']) ? $needles['language'] : '*';
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ abstract class RouteHelper
|
|||||||
{
|
{
|
||||||
self::$lookup[$language] = [];
|
self::$lookup[$language] = [];
|
||||||
|
|
||||||
$component = ComponentHelper::getComponent('com_###component###');
|
$component = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getComponent('com_###component###');
|
||||||
|
|
||||||
$attributes = array('component_id');
|
$attributes = array('component_id');
|
||||||
$values = array($component->id);
|
$values = array($component->id);
|
||||||
@ -116,7 +116,7 @@ abstract class RouteHelper
|
|||||||
if ($type)
|
if ($type)
|
||||||
{
|
{
|
||||||
// Check if the global menu item has been set.
|
// Check if the global menu item has been set.
|
||||||
$params = ComponentHelper::getParams('com_###component###');
|
$params = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###');
|
||||||
if ($item = $params->get($type.'_menu', 0))
|
if ($item = $params->get($type.'_menu', 0))
|
||||||
{
|
{
|
||||||
return $item;
|
return $item;
|
||||||
|
@ -87,7 +87,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
public function display($tpl = null): void
|
public function display($tpl = null): void
|
||||||
{
|
{
|
||||||
// get combined params of both component and menu
|
// get combined params of both component and menu
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$this->params = $this->app->getParams();
|
$this->params = $this->app->getParams();
|
||||||
$this->menu = $this->app->getMenu()->getActive();
|
$this->menu = $this->app->getMenu()->getActive();
|
||||||
$this->styles = $this->get('Styles');
|
$this->styles = $this->get('Styles');
|
||||||
@ -109,12 +109,12 @@ class HtmlView extends BaseHtmlView
|
|||||||
// add styles
|
// add styles
|
||||||
foreach ($this->styles as $style)
|
foreach ($this->styles as $style)
|
||||||
{
|
{
|
||||||
Html::_('stylesheet', $style, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('stylesheet', $style, ['version' => 'auto']);
|
||||||
}###SITE_DOCUMENT_CUSTOM_CSS###
|
}###SITE_DOCUMENT_CUSTOM_CSS###
|
||||||
// add scripts
|
// add scripts
|
||||||
foreach ($this->scripts as $script)
|
foreach ($this->scripts as $script)
|
||||||
{
|
{
|
||||||
Html::_('script', $script, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('script', $script, ['version' => 'auto']);
|
||||||
}###SITE_DOCUMENT_CUSTOM_JS######SITE_JAVASCRIPT_FOR_BUTTONS###
|
}###SITE_DOCUMENT_CUSTOM_JS######SITE_JAVASCRIPT_FOR_BUTTONS###
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,7 +131,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
$this->help_url = ###Component###Helper::getHelpUrl('###sviews###');
|
$this->help_url = ###Component###Helper::getHelpUrl('###sviews###');
|
||||||
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
||||||
{
|
{
|
||||||
ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
// now initiate the toolbar
|
// now initiate the toolbar
|
||||||
|
@ -122,7 +122,7 @@ class ###SViews###Model extends ListModel
|
|||||||
{
|
{
|
||||||
parent::__construct($config, $factory);
|
parent::__construct($config, $factory);
|
||||||
|
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$this->input ??= $this->app->getInput();
|
$this->input ??= $this->app->getInput();
|
||||||
|
|
||||||
// Set the current user for authorisation checks (for those calling this model directly)
|
// Set the current user for authorisation checks (for those calling this model directly)
|
||||||
@ -160,7 +160,7 @@ class ###SViews###Model extends ListModel
|
|||||||
$items = parent::getItems();
|
$items = parent::getItems();
|
||||||
|
|
||||||
// Get the global params
|
// Get the global params
|
||||||
$globalParams = ComponentHelper::getParams('com_###component###', true);###SITE_GET_ITEMS######SITE_AFTER_GET_ITEMS###
|
$globalParams = Joomla___aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_###component###', true);###SITE_GET_ITEMS######SITE_AFTER_GET_ITEMS###
|
||||||
|
|
||||||
// return items
|
// return items
|
||||||
return $items;
|
return $items;
|
||||||
|
@ -71,7 +71,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
public function display($tpl = null): void
|
public function display($tpl = null): void
|
||||||
{
|
{
|
||||||
// get combined params of both component and menu
|
// get combined params of both component and menu
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$this->params = $this->app->getParams();
|
$this->params = $this->app->getParams();
|
||||||
$this->menu = $this->app->getMenu()->getActive();
|
$this->menu = $this->app->getMenu()->getActive();
|
||||||
$this->styles = $this->get('Styles') ?? [];
|
$this->styles = $this->get('Styles') ?? [];
|
||||||
@ -93,12 +93,12 @@ class HtmlView extends BaseHtmlView
|
|||||||
// add styles
|
// add styles
|
||||||
foreach ($this->styles as $style)
|
foreach ($this->styles as $style)
|
||||||
{
|
{
|
||||||
Html::_('stylesheet', $style, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('stylesheet', $style, ['version' => 'auto']);
|
||||||
}###SITE_DOCUMENT_CUSTOM_CSS###
|
}###SITE_DOCUMENT_CUSTOM_CSS###
|
||||||
// add scripts
|
// add scripts
|
||||||
foreach ($this->scripts as $script)
|
foreach ($this->scripts as $script)
|
||||||
{
|
{
|
||||||
Html::_('script', $script, ['version' => 'auto']);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('script', $script, ['version' => 'auto']);
|
||||||
}###SITE_DOCUMENT_CUSTOM_JS######SITE_JAVASCRIPT_FOR_BUTTONS###
|
}###SITE_DOCUMENT_CUSTOM_JS######SITE_JAVASCRIPT_FOR_BUTTONS###
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ class HtmlView extends BaseHtmlView
|
|||||||
$this->help_url = ###Component###Helper::getHelpUrl('###sview###');
|
$this->help_url = ###Component###Helper::getHelpUrl('###sview###');
|
||||||
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
if (Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::check($this->help_url))
|
||||||
{
|
{
|
||||||
ToolbarHelper::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
Joomla___0c1a176a_304f_433a_8233_37d01ff87815___Power::help('COM_###COMPONENT###_HELP_MANAGER', false, $this->help_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
// now initiate the toolbar
|
// now initiate the toolbar
|
||||||
|
@ -139,7 +139,7 @@ class ###SView###Model extends ItemModel
|
|||||||
{
|
{
|
||||||
parent::__construct($config, $factory);
|
parent::__construct($config, $factory);
|
||||||
|
|
||||||
$this->app ??= Factory::getApplication();
|
$this->app ??= Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication();
|
||||||
$this->input ??= $this->app->getInput();
|
$this->input ??= $this->app->getInput();
|
||||||
|
|
||||||
// Set the current user for authorisation checks (for those calling this model directly)
|
// Set the current user for authorisation checks (for those calling this model directly)
|
||||||
|
BIN
admin/compiler/joomla_4/ajax.gif
Normal file
BIN
admin/compiler/joomla_4/ajax.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
@ -22,5 +22,5 @@ defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
|||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<p><?php echo Text::_('COM_###COMPONENT###_###VIEWS###_BATCH_TIP'); ?></p>
|
<p><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_###VIEWS###_BATCH_TIP'); ?></p>
|
||||||
<?php echo $this->batchDisplay; ?>
|
<?php echo $this->batchDisplay; ?>
|
@ -22,9 +22,9 @@ defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
|||||||
?>
|
?>
|
||||||
<!-- clear the batch values if cancel -->
|
<!-- clear the batch values if cancel -->
|
||||||
<button class="btn" type="button" onclick="###BATCH_ONCLICK_CANCEL_SCRIPT###" data-dismiss="modal">
|
<button class="btn" type="button" onclick="###BATCH_ONCLICK_CANCEL_SCRIPT###" data-dismiss="modal">
|
||||||
<?php echo Text::_('JCANCEL'); ?>
|
<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JCANCEL'); ?>
|
||||||
</button>
|
</button>
|
||||||
<!-- post the batch values if process -->
|
<!-- post the batch values if process -->
|
||||||
<button class="btn btn-success" type="submit" onclick="Joomla.submitbutton('###view###.batch');">
|
<button class="btn btn-success" type="submit" onclick="Joomla.submitbutton('###view###.batch');">
|
||||||
<?php echo Text::_('JGLOBAL_BATCH_PROCESS'); ?>
|
<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JGLOBAL_BATCH_PROCESS'); ?>
|
||||||
</button>
|
</button>
|
@ -21,10 +21,10 @@ use Joomla\CMS\HTML\HTMLHelper as Html;
|
|||||||
// No direct access to this file
|
// No direct access to this file
|
||||||
defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
||||||
|
|
||||||
Html::_('jquery.framework');
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('jquery.framework');
|
||||||
Html::_('bootstrap.tooltip');
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('bootstrap.tooltip');
|
||||||
Html::_('script', 'system/core.js', false, true);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('script', 'system/core.js', false, true);
|
||||||
Html::_('behavior.keepalive');
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('behavior.keepalive');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
@ -41,7 +41,7 @@ Joomla.continueImport = function() {
|
|||||||
}
|
}
|
||||||
// do field validation
|
// do field validation
|
||||||
if (error) {
|
if (error) {
|
||||||
alert("<?php echo Text::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_SELECT_ALL_COLUMNS', true); ?>");
|
alert("<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_SELECT_ALL_COLUMNS', true); ?>");
|
||||||
} else {
|
} else {
|
||||||
document.getElementById('loading').style.display = 'block';
|
document.getElementById('loading').style.display = 'block';
|
||||||
form.gettype.value = 'continue';
|
form.gettype.value = 'continue';
|
||||||
@ -53,7 +53,7 @@ Joomla.submitbutton = function() {
|
|||||||
var form = document.getElementById('adminForm');
|
var form = document.getElementById('adminForm');
|
||||||
// do field validation
|
// do field validation
|
||||||
if (form.import_package.value == "") {
|
if (form.import_package.value == "") {
|
||||||
alert("<?php echo Text::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_SELECT_A_FILE', true); ?>");
|
alert("<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_SELECT_A_FILE', true); ?>");
|
||||||
} else {
|
} else {
|
||||||
document.getElementById('loading').style.display = 'block';
|
document.getElementById('loading').style.display = 'block';
|
||||||
form.gettype.value = 'upload';
|
form.gettype.value = 'upload';
|
||||||
@ -65,7 +65,7 @@ Joomla.submitbutton3 = function() {
|
|||||||
var form = document.getElementById('adminForm');
|
var form = document.getElementById('adminForm');
|
||||||
// do field validation
|
// do field validation
|
||||||
if (form.import_directory.value == ""){
|
if (form.import_directory.value == ""){
|
||||||
alert("<?php echo Text::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_SELECT_A_DIRECTORY', true); ?>");
|
alert("<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_PLEASE_SELECT_A_DIRECTORY', true); ?>");
|
||||||
} else {
|
} else {
|
||||||
document.getElementById('loading').style.display = 'block';
|
document.getElementById('loading').style.display = 'block';
|
||||||
form.gettype.value = 'folder';
|
form.gettype.value = 'folder';
|
||||||
@ -77,7 +77,7 @@ Joomla.submitbutton4 = function() {
|
|||||||
var form = document.getElementById('adminForm');
|
var form = document.getElementById('adminForm');
|
||||||
// do field validation
|
// do field validation
|
||||||
if (form.import_url.value == "" || form.import_url.value == "http://") {
|
if (form.import_url.value == "" || form.import_url.value == "http://") {
|
||||||
alert("<?php echo Text::_('COM_###COMPONENT###_IMPORT_MSG_ENTER_A_URL', true); ?>");
|
alert("<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_MSG_ENTER_A_URL', true); ?>");
|
||||||
} else {
|
} else {
|
||||||
document.getElementById('loading').style.display = 'block';
|
document.getElementById('loading').style.display = 'block';
|
||||||
form.gettype.value = 'url';
|
form.gettype.value = 'url';
|
||||||
@ -111,16 +111,16 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div id="installer-import" class="clearfix">
|
<div id="installer-import" class="clearfix">
|
||||||
<form enctype="multipart/form-data" action="<?php echo Route::_('index.php?option=com_###component###&view=import');?>" method="post" name="adminForm" id="adminForm" class="form-horizontal form-validate">
|
<form enctype="multipart/form-data" action="<?php echo Joomla___d4c76099_4c32_408a_8701_d0a724484dfd___Power::_('index.php?option=com_###component###&view=import');?>" method="post" name="adminForm" id="adminForm" class="form-horizontal form-validate">
|
||||||
<div id="main-card">
|
<div id="main-card">
|
||||||
|
|
||||||
<?php if ($this->hasPackage && Super___0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check($this->headerList) && Super___0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check($this->headers)) : ?>
|
<?php if ($this->hasPackage && Super___0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check($this->headerList) && Super___0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check($this->headers)) : ?>
|
||||||
<fieldset class="uploadform">
|
<fieldset class="uploadform">
|
||||||
<legend><?php echo Text::_('COM_###COMPONENT###_IMPORT_LINK_FILE_TO_TABLE_COLUMNS'); ?></legend>
|
<legend><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_LINK_FILE_TO_TABLE_COLUMNS'); ?></legend>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label" ><h4><?php echo Text::_('COM_###COMPONENT###_IMPORT_TABLE_COLUMNS'); ?></h4></label>
|
<label class="control-label" ><h4><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_TABLE_COLUMNS'); ?></h4></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<label class="control-label" ><h4><?php echo Text::_('COM_###COMPONENT###_IMPORT_FILE_COLUMNS'); ?></h4></label>
|
<label class="control-label" ><h4><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_FILE_COLUMNS'); ?></h4></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php foreach($this->headerList as $name => $title): ?>
|
<?php foreach($this->headerList as $name => $title): ?>
|
||||||
@ -128,8 +128,8 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
<label for="<?php echo $name; ?>" class="control-label" ><?php echo $title; ?></label>
|
<label for="<?php echo $name; ?>" class="control-label" ><?php echo $title; ?></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<select name="<?php echo $name; ?>" id="vdm_<?php echo $name; ?>" required class="required input_box" >
|
<select name="<?php echo $name; ?>" id="vdm_<?php echo $name; ?>" required class="required input_box" >
|
||||||
<option value=""><?php echo Text::_('COM_###COMPONENT###_IMPORT_PLEASE_SELECT_COLUMN'); ?></option>
|
<option value=""><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_PLEASE_SELECT_COLUMN'); ?></option>
|
||||||
<option value="IGNORE"><?php echo Text::_('COM_###COMPONENT###_IMPORT_IGNORE_COLUMN'); ?></option>
|
<option value="IGNORE"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_IGNORE_COLUMN'); ?></option>
|
||||||
<?php foreach($this->headers as $value => $option): ?>
|
<?php foreach($this->headers as $value => $option): ?>
|
||||||
<?php $selected = (strtolower($option) == strtolower ($title) || strtolower($option) == strtolower($name))? 'selected="selected"':''; ?>
|
<?php $selected = (strtolower($option) == strtolower ($title) || strtolower($option) == strtolower($name))? 'selected="selected"':''; ?>
|
||||||
<option value="<?php echo Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::html($value); ?>" class="required" <?php echo $selected ?>><?php echo Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::html($option); ?></option>
|
<option value="<?php echo Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::html($value); ?>" class="required" <?php echo $selected ?>><?php echo Super___1f28cb53_60d9_4db1_b517_3c7dc6b429ef___Power::html($option); ?></option>
|
||||||
@ -139,61 +139,61 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
</div>
|
</div>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<input class="btn btn-primary" type="button" value="<?php echo Text::_('COM_###COMPONENT###_IMPORT_CONTINUE'); ?>" onclick="Joomla.continueImport()" />
|
<input class="btn btn-primary" type="button" value="<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_CONTINUE'); ?>" onclick="Joomla.continueImport()" />
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<input type="hidden" name="gettype" value="continue" />
|
<input type="hidden" name="gettype" value="continue" />
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<?php echo Html::_('uitab.startTabSet', 'myTab', array('active' => 'upload')); ?>
|
<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('uitab.startTabSet', 'myTab', array('active' => 'upload')); ?>
|
||||||
|
|
||||||
<?php echo Html::_('uitab.addTab', 'myTab', 'upload', Text::_('COM_###COMPONENT###_IMPORT_FROM_UPLOAD', true)); ?>
|
<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('uitab.addTab', 'myTab', 'upload', Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_FROM_UPLOAD', true)); ?>
|
||||||
<fieldset class="uploadform">
|
<fieldset class="uploadform">
|
||||||
<legend><?php echo Text::_('COM_###COMPONENT###_IMPORT_UPDATE_DATA'); ?></legend>
|
<legend><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_UPDATE_DATA'); ?></legend>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label for="import_package" class="control-label"><?php echo Text::_('COM_###COMPONENT###_IMPORT_SELECT_FILE'); ?></label>
|
<label for="import_package" class="control-label"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_SELECT_FILE'); ?></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input class="input_box" id="import_package" name="import_package" type="file" size="57" />
|
<input class="input_box" id="import_package" name="import_package" type="file" size="57" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<input class="btn btn-primary" type="button" value="<?php echo Text::_('COM_###COMPONENT###_IMPORT_UPLOAD_BOTTON'); ?>" onclick="Joomla.submitbutton()" /> <small><?php echo Text::_('COM_###COMPONENT###_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls .ods)</small>
|
<input class="btn btn-primary" type="button" value="<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_UPLOAD_BOTTON'); ?>" onclick="Joomla.submitbutton()" /> <small><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls .ods)</small>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<?php echo Html::_('uitab.endTab'); ?>
|
<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('uitab.endTab'); ?>
|
||||||
|
|
||||||
<?php echo Html::_('uitab.addTab', 'myTab', 'directory', Text::_('COM_###COMPONENT###_IMPORT_FROM_DIRECTORY', true)); ?>
|
<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('uitab.addTab', 'myTab', 'directory', Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_FROM_DIRECTORY', true)); ?>
|
||||||
<fieldset class="uploadform">
|
<fieldset class="uploadform">
|
||||||
<legend><?php echo Text::_('COM_###COMPONENT###_IMPORT_UPDATE_DATA'); ?></legend>
|
<legend><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_UPDATE_DATA'); ?></legend>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label for="import_directory" class="control-label"><?php echo Text::_('COM_###COMPONENT###_IMPORT_SELECT_FILE_DIRECTORY'); ?></label>
|
<label for="import_directory" class="control-label"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_SELECT_FILE_DIRECTORY'); ?></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="import_directory" name="import_directory" class="span5 input_box" size="70" value="<?php echo $this->state->get('import.directory'); ?>" />
|
<input type="text" id="import_directory" name="import_directory" class="span5 input_box" size="70" value="<?php echo $this->state->get('import.directory'); ?>" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<input type="button" class="btn btn-primary" value="<?php echo Text::_('COM_###COMPONENT###_IMPORT_GET_BOTTON'); ?>" onclick="Joomla.submitbutton3()" /> <small><?php echo Text::_('COM_###COMPONENT###_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls .ods)</small>
|
<input type="button" class="btn btn-primary" value="<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_GET_BOTTON'); ?>" onclick="Joomla.submitbutton3()" /> <small><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls .ods)</small>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<?php echo Html::_('uitab.endTab'); ?>
|
<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('uitab.endTab'); ?>
|
||||||
|
|
||||||
<?php echo Html::_('uitab.addTab', 'myTab', 'url', Text::_('COM_###COMPONENT###_IMPORT_FROM_URL', true)); ?>
|
<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('uitab.addTab', 'myTab', 'url', Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_FROM_URL', true)); ?>
|
||||||
<fieldset class="uploadform">
|
<fieldset class="uploadform">
|
||||||
<legend><?php echo Text::_('COM_###COMPONENT###_IMPORT_UPDATE_DATA'); ?></legend>
|
<legend><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_UPDATE_DATA'); ?></legend>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label for="import_url" class="control-label"><?php echo Text::_('COM_###COMPONENT###_IMPORT_SELECT_FILE_URL'); ?></label>
|
<label for="import_url" class="control-label"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_SELECT_FILE_URL'); ?></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="text" id="import_url" name="import_url" class="span5 input_box" size="70" value="http://" />
|
<input type="text" id="import_url" name="import_url" class="span5 input_box" size="70" value="http://" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<input type="button" class="btn btn-primary" value="<?php echo Text::_('COM_###COMPONENT###_IMPORT_GET_BOTTON'); ?>" onclick="Joomla.submitbutton4()" /> <small><?php echo Text::_('COM_###COMPONENT###_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls .ods)</small>
|
<input type="button" class="btn btn-primary" value="<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_GET_BOTTON'); ?>" onclick="Joomla.submitbutton4()" /> <small><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_IMPORT_FORMATS_ACCEPTED'); ?> (.csv .xls .ods)</small>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<?php echo Html::_('uitab.endTab'); ?>
|
<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('uitab.endTab'); ?>
|
||||||
<?php echo Html::_('uitab.endTabSet'); ?>
|
<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('uitab.endTabSet'); ?>
|
||||||
<input type="hidden" name="gettype" value="upload" />
|
<input type="hidden" name="gettype" value="upload" />
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<input type="hidden" name="task" value="import.import" />
|
<input type="hidden" name="task" value="import.import" />
|
||||||
<?php echo Html::_('form.token'); ?>
|
<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('form.token'); ?>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
@ -22,9 +22,9 @@ use Joomla\CMS\HTML\HTMLHelper as Html;
|
|||||||
// No direct access to this file
|
// No direct access to this file
|
||||||
defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
||||||
|
|
||||||
Html::_('jquery.framework');
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('jquery.framework');
|
||||||
Html::_('bootstrap.tooltip');
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('bootstrap.tooltip');
|
||||||
Html::_('script', 'system/core.js', false, true);
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('script', 'system/core.js', false, true);
|
||||||
Html::_('behavior.keepalive');
|
Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('behavior.keepalive');
|
||||||
|
|
||||||
?>###IMPORT_DEFAULT_VIEW_CUSTOM###
|
?>###IMPORT_DEFAULT_VIEW_CUSTOM###
|
||||||
|
@ -26,12 +26,12 @@ defined('_JEXEC') or die;
|
|||||||
<div class="dashboard-content">
|
<div class="dashboard-content">
|
||||||
<a class="icon" href="<?php echo $icon->url; ?>">
|
<a class="icon" href="<?php echo $icon->url; ?>">
|
||||||
<img alt="<?php echo $icon->alt; ?>" src="components/com_###component###/assets/images/icons/<?php echo $icon->image; ?>">
|
<img alt="<?php echo $icon->alt; ?>" src="components/com_###component###/assets/images/icons/<?php echo $icon->image; ?>">
|
||||||
<span class="dashboard-title"><?php echo Text::_($icon->name); ?></span>
|
<span class="dashboard-title"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_($icon->name); ?></span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<div class="alert alert-error"><h4 class="alert-heading"><?php echo Text::_("Permission denied, or not correctly set"); ?></h4><div class="alert-message"><?php echo Text::_("Please notify your System Administrator if result is unexpected."); ?></div></div>
|
<div class="alert alert-error"><h4 class="alert-heading"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_("Permission denied, or not correctly set"); ?></h4><div class="alert-message"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_("Please notify your System Administrator if result is unexpected."); ?></div></div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
@ -23,30 +23,30 @@ defined('_JEXEC') or die;###LICENSE_LOCKED_DEFINED###
|
|||||||
?>
|
?>
|
||||||
<div id="filter-bar" class="btn-toolbar">
|
<div id="filter-bar" class="btn-toolbar">
|
||||||
<div class="filter-search btn-group pull-left">
|
<div class="filter-search btn-group pull-left">
|
||||||
<label for="filter_search" class="element-invisible"><?php echo Text::_('Search');?></label>
|
<label for="filter_search" class="element-invisible"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('Search');?></label>
|
||||||
<input type="text" name="filter_search" id="filter_search" placeholder="<?php echo Text::_('JSEARCH_FILTER'); ?>" value="<?php echo $this->escape($this->state->get('filter.search')); ?>" class="hasTooltip" title="<?php echo Html::tooltipText('Search ###Views###'); ?>" />
|
<input type="text" name="filter_search" id="filter_search" placeholder="<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JSEARCH_FILTER'); ?>" value="<?php echo $this->escape($this->state->get('filter.search')); ?>" class="hasTooltip" title="<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::tooltipText('Search ###Views###'); ?>" />
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group pull-left">
|
<div class="btn-group pull-left">
|
||||||
<button type="submit" class="btn hasTooltip" title="<?php echo Html::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i class="icon-search"></i></button>
|
<button type="submit" class="btn hasTooltip" title="<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::tooltipText('JSEARCH_FILTER_SUBMIT'); ?>"><i class="icon-search"></i></button>
|
||||||
<button type="button" class="btn hasTooltip" title="<?php echo Html::tooltipText('JSEARCH_FILTER_CLEAR'); ?>" onclick="document.id('filter_search').value='';this.form.submit();"><i class="icon-remove"></i></button>
|
<button type="button" class="btn hasTooltip" title="<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::tooltipText('JSEARCH_FILTER_CLEAR'); ?>" onclick="document.id('filter_search').value='';this.form.submit();"><i class="icon-remove"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group pull-right hidden-phone">
|
<div class="btn-group pull-right hidden-phone">
|
||||||
<label for="limit" class="element-invisible"><?php echo Text::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
|
<label for="limit" class="element-invisible"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
|
||||||
<?php echo $this->pagination->getLimitBox(); ?>
|
<?php echo $this->pagination->getLimitBox(); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group pull-right hidden-phone">
|
<div class="btn-group pull-right hidden-phone">
|
||||||
<label for="directionTable" class="element-invisible"><?php echo Text::_('JFIELD_ORDERING_DESC');?></label>
|
<label for="directionTable" class="element-invisible"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JFIELD_ORDERING_DESC');?></label>
|
||||||
<select name="directionTable" id="directionTable" class="input-medium" onchange="Joomla.orderTable()">
|
<select name="directionTable" id="directionTable" class="input-medium" onchange="Joomla.orderTable()">
|
||||||
<option value=""><?php echo Text::_('JFIELD_ORDERING_DESC');?></option>
|
<option value=""><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JFIELD_ORDERING_DESC');?></option>
|
||||||
<option value="asc" <?php if ($this->listDirn == 'asc') echo 'selected="selected"'; ?>><?php echo Text::_('JGLOBAL_ORDER_ASCENDING');?></option>
|
<option value="asc" <?php if ($this->listDirn == 'asc') echo 'selected="selected"'; ?>><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JGLOBAL_ORDER_ASCENDING');?></option>
|
||||||
<option value="desc" <?php if ($this->listDirn == 'desc') echo 'selected="selected"'; ?>><?php echo Text::_('JGLOBAL_ORDER_DESCENDING');?></option>
|
<option value="desc" <?php if ($this->listDirn == 'desc') echo 'selected="selected"'; ?>><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JGLOBAL_ORDER_DESCENDING');?></option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group pull-right">
|
<div class="btn-group pull-right">
|
||||||
<label for="sortTable" class="element-invisible"><?php echo Text::_('JGLOBAL_SORT_BY');?></label>
|
<label for="sortTable" class="element-invisible"><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JGLOBAL_SORT_BY');?></label>
|
||||||
<select name="sortTable" id="sortTable" class="input-medium" onchange="Joomla.orderTable()">
|
<select name="sortTable" id="sortTable" class="input-medium" onchange="Joomla.orderTable()">
|
||||||
<option value=""><?php echo Text::_('JGLOBAL_SORT_BY');?></option>
|
<option value=""><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('JGLOBAL_SORT_BY');?></option>
|
||||||
<?php echo Html::_('select.options', $this->getSortFields(), 'value', 'text', $this->listOrder);?>
|
<?php echo Joomla___34690c75_1090_47eb_8c06_7228dc7eedd6___Power::_('select.options', $this->getSortFields(), 'value', 'text', $this->listOrder);?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -20,21 +20,21 @@ use Joomla\CMS\Language\Text;
|
|||||||
defined('_JEXEC') or die;
|
defined('_JEXEC') or die;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<img alt="<?php echo Text::_('COM_###COMPONENT###'); ?>" width="100%" src="components/com_###component###/assets/images/vdm-component.###COMP_IMAGE_TYPE###">
|
<img alt="<?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###'); ?>" width="100%" src="components/com_###component###/assets/images/vdm-component.###COMP_IMAGE_TYPE###">
|
||||||
<ul class="list-striped">
|
<ul class="list-striped">
|
||||||
<li><b><?php echo Text::_('COM_###COMPONENT###_VERSION'); ?>:</b> <?php echo $this->manifest->version; ?> <span class="update-notice" id="component-update-notice"></span></li>
|
<li><b><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_VERSION'); ?>:</b> <?php echo $this->manifest->version; ?> <span class="update-notice" id="component-update-notice"></span></li>
|
||||||
<li><b><?php echo Text::_('COM_###COMPONENT###_DATE'); ?>:</b> <?php echo $this->manifest->creationDate; ?></li>
|
<li><b><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_DATE'); ?>:</b> <?php echo $this->manifest->creationDate; ?></li>
|
||||||
<li><b><?php echo Text::_('COM_###COMPONENT###_AUTHOR'); ?>:</b> <a href="mailto:<?php echo $this->manifest->authorEmail; ?>"><?php echo $this->manifest->author; ?></a></li>
|
<li><b><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_AUTHOR'); ?>:</b> <a href="mailto:<?php echo $this->manifest->authorEmail; ?>"><?php echo $this->manifest->author; ?></a></li>
|
||||||
<li><b><?php echo Text::_('COM_###COMPONENT###_WEBSITE'); ?>:</b> <a href="<?php echo $this->manifest->authorUrl; ?>" target="_blank"><?php echo $this->manifest->authorUrl; ?></a></li>
|
<li><b><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_WEBSITE'); ?>:</b> <a href="<?php echo $this->manifest->authorUrl; ?>" target="_blank"><?php echo $this->manifest->authorUrl; ?></a></li>
|
||||||
<li><b><?php echo Text::_('COM_###COMPONENT###_LICENSE'); ?>:</b> <?php echo $this->manifest->license; ?></li>
|
<li><b><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_LICENSE'); ?>:</b> <?php echo $this->manifest->license; ?></li>
|
||||||
<li><b><?php echo $this->manifest->copyright; ?></b></li>
|
<li><b><?php echo $this->manifest->copyright; ?></b></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
<?php if(Super___0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check($this->contributors)): ?>
|
<?php if(Super___0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check($this->contributors)): ?>
|
||||||
<?php if(count($this->contributors) > 1): ?>
|
<?php if(count($this->contributors) > 1): ?>
|
||||||
<h3><?php echo Text::_('COM_###COMPONENT###_CONTRIBUTORS'); ?></h3>
|
<h3><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_CONTRIBUTORS'); ?></h3>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<h3><?php echo Text::_('COM_###COMPONENT###_CONTRIBUTOR'); ?></h3>
|
<h3><?php echo Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('COM_###COMPONENT###_CONTRIBUTOR'); ?></h3>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<ul class="list-striped">
|
<ul class="list-striped">
|
||||||
<?php foreach($this->contributors as $contributor): ?>
|
<?php foreach($this->contributors as $contributor): ?>
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 65 KiB |
@ -24,7 +24,7 @@ defined('_JEXEC') or die;
|
|||||||
|
|
||||||
// set the defaults
|
// set the defaults
|
||||||
$items = $displayData->###LAYOUTITEMS###;
|
$items = $displayData->###LAYOUTITEMS###;
|
||||||
$user = Factory::getApplication()->getIdentity();
|
$user = Joomla___39403062_84fb_46e0_bac4_0023f766e827___Power::getApplication()->getIdentity();
|
||||||
$id = $displayData->item->id;
|
$id = $displayData->item->id;
|
||||||
###LAYOUTITEMSHEADER###
|
###LAYOUTITEMSHEADER###
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ $fieldSets = $form->getFieldsets('metadata');
|
|||||||
|
|
||||||
<?php foreach ($fieldSets as $name => $fieldSet) : ?>
|
<?php foreach ($fieldSets as $name => $fieldSet) : ?>
|
||||||
<?php if (isset($fieldSet->description) && trim($fieldSet->description)) : ?>
|
<?php if (isset($fieldSet->description) && trim($fieldSet->description)) : ?>
|
||||||
<p class="alert alert-info"><?php echo $this->escape(Text::_($fieldSet->description)); ?></p>
|
<p class="alert alert-info"><?php echo $this->escape(Joomla___ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_($fieldSet->description)); ?></p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
@ -252,8 +252,8 @@
|
|||||||
"newName": "HeaderCheck.php",
|
"newName": "HeaderCheck.php",
|
||||||
"type": "file"
|
"type": "file"
|
||||||
},
|
},
|
||||||
"import.gif": {
|
"ajax.gif": {
|
||||||
"naam": "import.gif",
|
"naam": "ajax.gif",
|
||||||
"path": "c0mp0n3nt/admin/assets/images",
|
"path": "c0mp0n3nt/admin/assets/images",
|
||||||
"rename": false,
|
"rename": false,
|
||||||
"type": "file"
|
"type": "file"
|
||||||
@ -464,6 +464,30 @@
|
|||||||
"newName": "[[[Key]]]Field.php",
|
"newName": "[[[Key]]]Field.php",
|
||||||
"type": "fieldcustom"
|
"type": "fieldcustom"
|
||||||
},
|
},
|
||||||
|
"FORM_MODAL_SELECT_FIELD.php": {
|
||||||
|
"path": "c0mp0n3nt/admin/src/Field",
|
||||||
|
"rename": "new",
|
||||||
|
"newName": "ModalSelectField.php",
|
||||||
|
"type": "fieldmodalselect_override"
|
||||||
|
},
|
||||||
|
"ADMIN_VIEWS_MODAL.php": {
|
||||||
|
"path": "c0mp0n3nt/admin/tmpl/[[[name]]]",
|
||||||
|
"rename": "new",
|
||||||
|
"newName": "modal.php",
|
||||||
|
"type": "list_modal"
|
||||||
|
},
|
||||||
|
"ADMIN_VIEW_MODAL.php": {
|
||||||
|
"path": "c0mp0n3nt/admin/tmpl/[[[name]]]",
|
||||||
|
"rename": "new",
|
||||||
|
"newName": "modal.php",
|
||||||
|
"type": "single_modal"
|
||||||
|
},
|
||||||
|
"ADMIN_VIEW_MODAL_RETURN.php": {
|
||||||
|
"path": "c0mp0n3nt/admin/tmpl/[[[name]]]",
|
||||||
|
"rename": "new",
|
||||||
|
"newName": "modalreturn.php",
|
||||||
|
"type": "single_modal"
|
||||||
|
},
|
||||||
"FORM_LIST_FIELD.php": {
|
"FORM_LIST_FIELD.php": {
|
||||||
"path": "c0mp0n3nt/admin/src/Field",
|
"path": "c0mp0n3nt/admin/src/Field",
|
||||||
"rename": "new",
|
"rename": "new",
|
||||||
@ -732,6 +756,18 @@
|
|||||||
"newName": "HtmlView.php",
|
"newName": "HtmlView.php",
|
||||||
"type": "edit"
|
"type": "edit"
|
||||||
},
|
},
|
||||||
|
"SITE_ADMIN_VIEW_MODAL.php": {
|
||||||
|
"path": "c0mp0n3nt/site/tmpl/[[[name]]]",
|
||||||
|
"rename": "new",
|
||||||
|
"newName": "modal.php",
|
||||||
|
"type": "edit_modal"
|
||||||
|
},
|
||||||
|
"SITE_ADMIN_VIEW_MODAL_RETURN.php": {
|
||||||
|
"path": "c0mp0n3nt/site/tmpl/[[[name]]]",
|
||||||
|
"rename": "new",
|
||||||
|
"newName": "modalreturn.php",
|
||||||
|
"type": "edit_modal"
|
||||||
|
},
|
||||||
"view_site_edit.css": {
|
"view_site_edit.css": {
|
||||||
"path": "c0mp0n3nt/site/assets/css",
|
"path": "c0mp0n3nt/site/assets/css",
|
||||||
"rename": "view_site_edit",
|
"rename": "view_site_edit",
|
||||||
@ -743,6 +779,12 @@
|
|||||||
"newName": "[[[Key]]]Field.php",
|
"newName": "[[[Key]]]Field.php",
|
||||||
"type": "fieldcustom"
|
"type": "fieldcustom"
|
||||||
},
|
},
|
||||||
|
"SITE_FORM_MODAL_SELECT_FIELD.php": {
|
||||||
|
"path": "c0mp0n3nt/site/src/Field",
|
||||||
|
"rename": "new",
|
||||||
|
"newName": "ModalSelectField.php",
|
||||||
|
"type": "fieldmodalselect_override"
|
||||||
|
},
|
||||||
"SITE_FORM_LIST_FIELD.php": {
|
"SITE_FORM_LIST_FIELD.php": {
|
||||||
"path": "c0mp0n3nt/site/src/Field",
|
"path": "c0mp0n3nt/site/src/Field",
|
||||||
"rename": "new",
|
"rename": "new",
|
||||||
@ -874,4 +916,4 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -958,7 +958,7 @@
|
|||||||
label="COM_COMPONENTBUILDER_CONFIG_FIELD_NAME_BUILDER_LABEL"
|
label="COM_COMPONENTBUILDER_CONFIG_FIELD_NAME_BUILDER_LABEL"
|
||||||
description="COM_COMPONENTBUILDER_CONFIG_FIELD_NAME_BUILDER_DESCRIPTION"
|
description="COM_COMPONENTBUILDER_CONFIG_FIELD_NAME_BUILDER_DESCRIPTION"
|
||||||
class="btn-group btn-group-yesno"
|
class="btn-group btn-group-yesno"
|
||||||
default="1">
|
default="2">
|
||||||
<!-- Option Set. -->
|
<!-- Option Set. -->
|
||||||
<option value="1">
|
<option value="1">
|
||||||
COM_COMPONENTBUILDER_CONFIG_DEFAULT</option>
|
COM_COMPONENTBUILDER_CONFIG_DEFAULT</option>
|
||||||
@ -972,7 +972,7 @@
|
|||||||
label="COM_COMPONENTBUILDER_CONFIG_TYPE_NAME_BUILDER_LABEL"
|
label="COM_COMPONENTBUILDER_CONFIG_TYPE_NAME_BUILDER_LABEL"
|
||||||
description="COM_COMPONENTBUILDER_CONFIG_TYPE_NAME_BUILDER_DESCRIPTION"
|
description="COM_COMPONENTBUILDER_CONFIG_TYPE_NAME_BUILDER_DESCRIPTION"
|
||||||
class="btn-group btn-group-yesno"
|
class="btn-group btn-group-yesno"
|
||||||
default="1">
|
default="2">
|
||||||
<!-- Option Set. -->
|
<!-- Option Set. -->
|
||||||
<option value="1">
|
<option value="1">
|
||||||
COM_COMPONENTBUILDER_CONFIG_DEFAULT</option>
|
COM_COMPONENTBUILDER_CONFIG_DEFAULT</option>
|
||||||
|
@ -243,7 +243,6 @@
|
|||||||
name="icon"
|
name="icon"
|
||||||
label="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_LABEL"
|
label="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_LABEL"
|
||||||
description="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_DESCRIPTION"
|
description="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_DESCRIPTION"
|
||||||
directory=""
|
|
||||||
/>
|
/>
|
||||||
<!-- Php_after_publish Field. Type: Editor. (joomla) -->
|
<!-- Php_after_publish Field. Type: Editor. (joomla) -->
|
||||||
<field
|
<field
|
||||||
@ -295,7 +294,6 @@
|
|||||||
name="icon_category"
|
name="icon_category"
|
||||||
label="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_CATEGORY_LABEL"
|
label="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_CATEGORY_LABEL"
|
||||||
description="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_CATEGORY_DESCRIPTION"
|
description="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_CATEGORY_DESCRIPTION"
|
||||||
directory=""
|
|
||||||
/>
|
/>
|
||||||
<!-- Icon_add Field. Type: Media. (joomla) -->
|
<!-- Icon_add Field. Type: Media. (joomla) -->
|
||||||
<field
|
<field
|
||||||
@ -303,7 +301,6 @@
|
|||||||
name="icon_add"
|
name="icon_add"
|
||||||
label="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_ADD_LABEL"
|
label="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_ADD_LABEL"
|
||||||
description="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_ADD_DESCRIPTION"
|
description="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_ADD_DESCRIPTION"
|
||||||
directory=""
|
|
||||||
/>
|
/>
|
||||||
<!-- Php_after_cancel Field. Type: Editor. (joomla) -->
|
<!-- Php_after_cancel Field. Type: Editor. (joomla) -->
|
||||||
<field
|
<field
|
||||||
|
@ -140,7 +140,6 @@
|
|||||||
type="joomlamodules"
|
type="joomlamodules"
|
||||||
name="module"
|
name="module"
|
||||||
label="COM_COMPONENTBUILDER_COMPONENT_MODULES_MODULE_LABEL"
|
label="COM_COMPONENTBUILDER_COMPONENT_MODULES_MODULE_LABEL"
|
||||||
class="list_class span12"
|
|
||||||
multiple="false"
|
multiple="false"
|
||||||
default="0"
|
default="0"
|
||||||
button="false"
|
button="false"
|
||||||
|
@ -140,7 +140,7 @@
|
|||||||
type="joomlaplugins"
|
type="joomlaplugins"
|
||||||
name="plugin"
|
name="plugin"
|
||||||
label="COM_COMPONENTBUILDER_COMPONENT_PLUGINS_PLUGIN_LABEL"
|
label="COM_COMPONENTBUILDER_COMPONENT_PLUGINS_PLUGIN_LABEL"
|
||||||
class="list_class span12"
|
layout="joomla.form.field.list-fancy-select"
|
||||||
multiple="false"
|
multiple="false"
|
||||||
default="0"
|
default="0"
|
||||||
button="false"
|
button="false"
|
||||||
|
@ -288,7 +288,6 @@
|
|||||||
name="icon"
|
name="icon"
|
||||||
label="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_ICON_LABEL"
|
label="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_ICON_LABEL"
|
||||||
description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_ICON_DESCRIPTION"
|
description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_ICON_DESCRIPTION"
|
||||||
directory=""
|
|
||||||
/>
|
/>
|
||||||
<!-- Add_php_jview Field. Type: Radio. (joomla) -->
|
<!-- Add_php_jview Field. Type: Radio. (joomla) -->
|
||||||
<field
|
<field
|
||||||
|
@ -556,30 +556,52 @@
|
|||||||
multiple="false"
|
multiple="false"
|
||||||
filter="INT"
|
filter="INT"
|
||||||
required="true"
|
required="true"
|
||||||
default="0">
|
default="1">
|
||||||
<!-- Option Set. -->
|
<!-- Option Set. -->
|
||||||
<option value="1">
|
<option value="1">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL_</option>
|
||||||
<option value="2">
|
<option value="2">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL_NE</option>
|
||||||
<option value="3">
|
<option value="3">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL_OR_NOT</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL_ALT_LTGT</option>
|
||||||
<option value="4">
|
<option value="4">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_GT</option>
|
||||||
<option value="5">
|
<option value="5">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_LT</option>
|
||||||
<option value="6">
|
<option value="6">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_OR_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_OR_EQUAL_GE</option>
|
||||||
<option value="7">
|
<option value="7">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_OR_EQUAL_TO</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_OR_EQUAL_LE</option>
|
||||||
<option value="8">
|
<option value="8">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LESS_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LESS_THAN_LT</option>
|
||||||
<option value="9">
|
<option value="9">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_GREATER_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_GREATER_THAN_GT</option>
|
||||||
<option value="10">
|
<option value="10">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_IN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IN</option>
|
||||||
<option value="11">
|
<option value="11">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_IN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_IN</option>
|
||||||
|
<option value="12">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LIKE</option>
|
||||||
|
<option value="13">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LIKE</option>
|
||||||
|
<option value="14">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IS_NULL</option>
|
||||||
|
<option value="15">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IS_NOT_NULL</option>
|
||||||
|
<option value="16">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_BETWEEN</option>
|
||||||
|
<option value="17">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_BETWEEN</option>
|
||||||
|
<option value="18">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_EXISTS</option>
|
||||||
|
<option value="19">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EXISTS</option>
|
||||||
|
<option value="20">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_REGEXP</option>
|
||||||
|
<option value="21">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_REGEXP</option>
|
||||||
|
<option value="22">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_SOUNDS_LIKE</option>
|
||||||
</field>
|
</field>
|
||||||
<!-- Join_field Field. Type: Text. (joomla) -->
|
<!-- Join_field Field. Type: Text. (joomla) -->
|
||||||
<field
|
<field
|
||||||
@ -798,30 +820,52 @@
|
|||||||
multiple="false"
|
multiple="false"
|
||||||
filter="INT"
|
filter="INT"
|
||||||
required="true"
|
required="true"
|
||||||
default="0">
|
default="1">
|
||||||
<!-- Option Set. -->
|
<!-- Option Set. -->
|
||||||
<option value="1">
|
<option value="1">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL_</option>
|
||||||
<option value="2">
|
<option value="2">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL_NE</option>
|
||||||
<option value="3">
|
<option value="3">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL_OR_NOT</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL_ALT_LTGT</option>
|
||||||
<option value="4">
|
<option value="4">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_GT</option>
|
||||||
<option value="5">
|
<option value="5">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_LT</option>
|
||||||
<option value="6">
|
<option value="6">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_OR_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_OR_EQUAL_GE</option>
|
||||||
<option value="7">
|
<option value="7">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_OR_EQUAL_TO</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_OR_EQUAL_LE</option>
|
||||||
<option value="8">
|
<option value="8">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LESS_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LESS_THAN_LT</option>
|
||||||
<option value="9">
|
<option value="9">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_GREATER_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_GREATER_THAN_GT</option>
|
||||||
<option value="10">
|
<option value="10">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_IN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IN</option>
|
||||||
<option value="11">
|
<option value="11">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_IN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_IN</option>
|
||||||
|
<option value="12">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LIKE</option>
|
||||||
|
<option value="13">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LIKE</option>
|
||||||
|
<option value="14">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IS_NULL</option>
|
||||||
|
<option value="15">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IS_NOT_NULL</option>
|
||||||
|
<option value="16">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_BETWEEN</option>
|
||||||
|
<option value="17">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_BETWEEN</option>
|
||||||
|
<option value="18">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_EXISTS</option>
|
||||||
|
<option value="19">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EXISTS</option>
|
||||||
|
<option value="20">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_REGEXP</option>
|
||||||
|
<option value="21">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_REGEXP</option>
|
||||||
|
<option value="22">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_SOUNDS_LIKE</option>
|
||||||
</field>
|
</field>
|
||||||
<!-- Table_key Field. Type: Text. (joomla) -->
|
<!-- Table_key Field. Type: Text. (joomla) -->
|
||||||
<field
|
<field
|
||||||
@ -903,30 +947,52 @@
|
|||||||
multiple="false"
|
multiple="false"
|
||||||
filter="INT"
|
filter="INT"
|
||||||
required="true"
|
required="true"
|
||||||
default="0">
|
default="1">
|
||||||
<!-- Option Set. -->
|
<!-- Option Set. -->
|
||||||
<option value="1">
|
<option value="1">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL_</option>
|
||||||
<option value="2">
|
<option value="2">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL_NE</option>
|
||||||
<option value="3">
|
<option value="3">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL_OR_NOT</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL_ALT_LTGT</option>
|
||||||
<option value="4">
|
<option value="4">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_GT</option>
|
||||||
<option value="5">
|
<option value="5">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_LT</option>
|
||||||
<option value="6">
|
<option value="6">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_OR_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_OR_EQUAL_GE</option>
|
||||||
<option value="7">
|
<option value="7">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_OR_EQUAL_TO</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_OR_EQUAL_LE</option>
|
||||||
<option value="8">
|
<option value="8">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LESS_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LESS_THAN_LT</option>
|
||||||
<option value="9">
|
<option value="9">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_GREATER_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_GREATER_THAN_GT</option>
|
||||||
<option value="10">
|
<option value="10">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_IN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IN</option>
|
||||||
<option value="11">
|
<option value="11">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_IN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_IN</option>
|
||||||
|
<option value="12">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LIKE</option>
|
||||||
|
<option value="13">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LIKE</option>
|
||||||
|
<option value="14">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IS_NULL</option>
|
||||||
|
<option value="15">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IS_NOT_NULL</option>
|
||||||
|
<option value="16">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_BETWEEN</option>
|
||||||
|
<option value="17">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_BETWEEN</option>
|
||||||
|
<option value="18">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_EXISTS</option>
|
||||||
|
<option value="19">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EXISTS</option>
|
||||||
|
<option value="20">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_REGEXP</option>
|
||||||
|
<option value="21">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_REGEXP</option>
|
||||||
|
<option value="22">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_SOUNDS_LIKE</option>
|
||||||
</field>
|
</field>
|
||||||
<!-- Value_key Field. Type: Text. (joomla) -->
|
<!-- Value_key Field. Type: Text. (joomla) -->
|
||||||
<field
|
<field
|
||||||
@ -1424,30 +1490,52 @@
|
|||||||
multiple="false"
|
multiple="false"
|
||||||
filter="INT"
|
filter="INT"
|
||||||
required="true"
|
required="true"
|
||||||
default="0">
|
default="1">
|
||||||
<!-- Option Set. -->
|
<!-- Option Set. -->
|
||||||
<option value="1">
|
<option value="1">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL_</option>
|
||||||
<option value="2">
|
<option value="2">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL_NE</option>
|
||||||
<option value="3">
|
<option value="3">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_EQUAL_OR_NOT</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EQUAL_ALT_LTGT</option>
|
||||||
<option value="4">
|
<option value="4">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_GT</option>
|
||||||
<option value="5">
|
<option value="5">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_LT</option>
|
||||||
<option value="6">
|
<option value="6">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_OR_EQUAL</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_GREATER_THAN_OR_EQUAL_GE</option>
|
||||||
<option value="7">
|
<option value="7">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_OR_EQUAL_TO</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LESS_THAN_OR_EQUAL_LE</option>
|
||||||
<option value="8">
|
<option value="8">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LESS_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LESS_THAN_LT</option>
|
||||||
<option value="9">
|
<option value="9">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_GREATER_THAN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_GREATER_THAN_GT</option>
|
||||||
<option value="10">
|
<option value="10">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_IN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IN</option>
|
||||||
<option value="11">
|
<option value="11">
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_IN</option>
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_IN</option>
|
||||||
|
<option value="12">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_LIKE</option>
|
||||||
|
<option value="13">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_LIKE</option>
|
||||||
|
<option value="14">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IS_NULL</option>
|
||||||
|
<option value="15">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_IS_NOT_NULL</option>
|
||||||
|
<option value="16">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_BETWEEN</option>
|
||||||
|
<option value="17">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_BETWEEN</option>
|
||||||
|
<option value="18">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_EXISTS</option>
|
||||||
|
<option value="19">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_EXISTS</option>
|
||||||
|
<option value="20">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_REGEXP</option>
|
||||||
|
<option value="21">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_NOT_REGEXP</option>
|
||||||
|
<option value="22">
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_SOUNDS_LIKE</option>
|
||||||
</field>
|
</field>
|
||||||
<!-- Join_field Field. Type: Text. (joomla) -->
|
<!-- Join_field Field. Type: Text. (joomla) -->
|
||||||
<field
|
<field
|
||||||
|
@ -200,7 +200,7 @@
|
|||||||
name="null_switch"
|
name="null_switch"
|
||||||
label="COM_COMPONENTBUILDER_FIELD_NULL_SWITCH_LABEL"
|
label="COM_COMPONENTBUILDER_FIELD_NULL_SWITCH_LABEL"
|
||||||
class="btn-group btn-group-yesno"
|
class="btn-group btn-group-yesno"
|
||||||
default="NOT NULL"
|
default="NULL"
|
||||||
required="true">
|
required="true">
|
||||||
<!-- Option Set. -->
|
<!-- Option Set. -->
|
||||||
<option value="NULL">
|
<option value="NULL">
|
||||||
|
@ -145,7 +145,7 @@
|
|||||||
name="null_switch"
|
name="null_switch"
|
||||||
label="COM_COMPONENTBUILDER_FIELDTYPE_NULL_SWITCH_LABEL"
|
label="COM_COMPONENTBUILDER_FIELDTYPE_NULL_SWITCH_LABEL"
|
||||||
class="btn-group btn-group-yesno"
|
class="btn-group btn-group-yesno"
|
||||||
default="NOT NULL"
|
default="NULL"
|
||||||
required="true">
|
required="true">
|
||||||
<!-- Option Set. -->
|
<!-- Option Set. -->
|
||||||
<option value="NULL">
|
<option value="NULL">
|
||||||
|
@ -69,7 +69,7 @@
|
|||||||
type="list"
|
type="list"
|
||||||
label="JGLOBAL_SORT_BY"
|
label="JGLOBAL_SORT_BY"
|
||||||
class="js-select-submit-on-change"
|
class="js-select-submit-on-change"
|
||||||
default=" desc"
|
default="a.id desc"
|
||||||
validate="options"
|
validate="options"
|
||||||
>
|
>
|
||||||
<option value="">JGLOBAL_SORT_BY</option>
|
<option value="">JGLOBAL_SORT_BY</option>
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
type="list"
|
type="list"
|
||||||
label="JGLOBAL_SORT_BY"
|
label="JGLOBAL_SORT_BY"
|
||||||
class="js-select-submit-on-change"
|
class="js-select-submit-on-change"
|
||||||
default="a.id DESC"
|
default="a.name asc"
|
||||||
validate="options"
|
validate="options"
|
||||||
>
|
>
|
||||||
<option value="">JGLOBAL_SORT_BY</option>
|
<option value="">JGLOBAL_SORT_BY</option>
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
type="list"
|
type="list"
|
||||||
label="JGLOBAL_SORT_BY"
|
label="JGLOBAL_SORT_BY"
|
||||||
class="js-select-submit-on-change"
|
class="js-select-submit-on-change"
|
||||||
default="a.id desc"
|
default="a.name desc"
|
||||||
validate="options"
|
validate="options"
|
||||||
>
|
>
|
||||||
<option value="">JGLOBAL_SORT_BY</option>
|
<option value="">JGLOBAL_SORT_BY</option>
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
type="list"
|
type="list"
|
||||||
label="JGLOBAL_SORT_BY"
|
label="JGLOBAL_SORT_BY"
|
||||||
class="js-select-submit-on-change"
|
class="js-select-submit-on-change"
|
||||||
default=" desc"
|
default="a.name desc"
|
||||||
validate="options"
|
validate="options"
|
||||||
>
|
>
|
||||||
<option value="">JGLOBAL_SORT_BY</option>
|
<option value="">JGLOBAL_SORT_BY</option>
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
type="list"
|
type="list"
|
||||||
label="JGLOBAL_SORT_BY"
|
label="JGLOBAL_SORT_BY"
|
||||||
class="js-select-submit-on-change"
|
class="js-select-submit-on-change"
|
||||||
default=" desc"
|
default="a.id desc"
|
||||||
validate="options"
|
validate="options"
|
||||||
>
|
>
|
||||||
<option value="">JGLOBAL_SORT_BY</option>
|
<option value="">JGLOBAL_SORT_BY</option>
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
type="list"
|
type="list"
|
||||||
label="JGLOBAL_SORT_BY"
|
label="JGLOBAL_SORT_BY"
|
||||||
class="js-select-submit-on-change"
|
class="js-select-submit-on-change"
|
||||||
default="a.id DESC"
|
default="a.name asc"
|
||||||
validate="options"
|
validate="options"
|
||||||
>
|
>
|
||||||
<option value="">JGLOBAL_SORT_BY</option>
|
<option value="">JGLOBAL_SORT_BY</option>
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
type="list"
|
type="list"
|
||||||
label="JGLOBAL_SORT_BY"
|
label="JGLOBAL_SORT_BY"
|
||||||
class="js-select-submit-on-change"
|
class="js-select-submit-on-change"
|
||||||
default="a.id DESC"
|
default="a.name asc"
|
||||||
validate="options"
|
validate="options"
|
||||||
>
|
>
|
||||||
<option value="">JGLOBAL_SORT_BY</option>
|
<option value="">JGLOBAL_SORT_BY</option>
|
||||||
|
@ -51,6 +51,13 @@
|
|||||||
multiple="false"
|
multiple="false"
|
||||||
class="js-select-submit-on-change"
|
class="js-select-submit-on-change"
|
||||||
/>
|
/>
|
||||||
|
<field
|
||||||
|
type="repositoriesfiltertype"
|
||||||
|
name="type"
|
||||||
|
label="COM_COMPONENTBUILDER_REPOSITORY_TYPE_LABEL"
|
||||||
|
multiple="false"
|
||||||
|
class="js-select-submit-on-change"
|
||||||
|
/>
|
||||||
<field
|
<field
|
||||||
type="repositoriesfilterbase"
|
type="repositoriesfilterbase"
|
||||||
name="base"
|
name="base"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -111,6 +111,32 @@
|
|||||||
message="COM_COMPONENTBUILDER_JOOMLA_POWER_SYSTEM_NAME_MESSAGE"
|
message="COM_COMPONENTBUILDER_JOOMLA_POWER_SYSTEM_NAME_MESSAGE"
|
||||||
hint="COM_COMPONENTBUILDER_JOOMLA_POWER_SYSTEM_NAME_HINT"
|
hint="COM_COMPONENTBUILDER_JOOMLA_POWER_SYSTEM_NAME_HINT"
|
||||||
/>
|
/>
|
||||||
|
<!-- Guid Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="guid"
|
||||||
|
label="COM_COMPONENTBUILDER_JOOMLA_POWER_GUID_LABEL"
|
||||||
|
size="40"
|
||||||
|
maxlength="40"
|
||||||
|
description="COM_COMPONENTBUILDER_JOOMLA_POWER_GUID_DESCRIPTION"
|
||||||
|
class="text_area"
|
||||||
|
readonly="true"
|
||||||
|
filter="CMD"
|
||||||
|
validate="guid"
|
||||||
|
hint="COM_COMPONENTBUILDER_JOOMLA_POWER_GUID_HINT"
|
||||||
|
/>
|
||||||
|
<!-- Description Field. Type: Textarea. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="textarea"
|
||||||
|
name="description"
|
||||||
|
label="COM_COMPONENTBUILDER_JOOMLA_POWER_DESCRIPTION_LABEL"
|
||||||
|
rows="11"
|
||||||
|
cols="10"
|
||||||
|
description="COM_COMPONENTBUILDER_JOOMLA_POWER_DESCRIPTION_DESCRIPTION"
|
||||||
|
class="text_area span12"
|
||||||
|
filter="HTML"
|
||||||
|
hint="COM_COMPONENTBUILDER_JOOMLA_POWER_DESCRIPTION_HINT"
|
||||||
|
/>
|
||||||
<!-- Settings Field. Type: Subform. (joomla) -->
|
<!-- Settings Field. Type: Subform. (joomla) -->
|
||||||
<field
|
<field
|
||||||
type="subform"
|
type="subform"
|
||||||
@ -161,32 +187,6 @@
|
|||||||
</field>
|
</field>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
<!-- Guid Field. Type: Text. (joomla) -->
|
|
||||||
<field
|
|
||||||
type="text"
|
|
||||||
name="guid"
|
|
||||||
label="COM_COMPONENTBUILDER_JOOMLA_POWER_GUID_LABEL"
|
|
||||||
size="40"
|
|
||||||
maxlength="40"
|
|
||||||
description="COM_COMPONENTBUILDER_JOOMLA_POWER_GUID_DESCRIPTION"
|
|
||||||
class="text_area"
|
|
||||||
readonly="true"
|
|
||||||
filter="CMD"
|
|
||||||
validate="guid"
|
|
||||||
hint="COM_COMPONENTBUILDER_JOOMLA_POWER_GUID_HINT"
|
|
||||||
/>
|
|
||||||
<!-- Description Field. Type: Textarea. (joomla) -->
|
|
||||||
<field
|
|
||||||
type="textarea"
|
|
||||||
name="description"
|
|
||||||
label="COM_COMPONENTBUILDER_JOOMLA_POWER_DESCRIPTION_LABEL"
|
|
||||||
rows="11"
|
|
||||||
cols="10"
|
|
||||||
description="COM_COMPONENTBUILDER_JOOMLA_POWER_DESCRIPTION_DESCRIPTION"
|
|
||||||
class="text_area span12"
|
|
||||||
filter="HTML"
|
|
||||||
hint="COM_COMPONENTBUILDER_JOOMLA_POWER_DESCRIPTION_HINT"
|
|
||||||
/>
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<!-- Access Control Fields. -->
|
<!-- Access Control Fields. -->
|
||||||
|
@ -182,7 +182,7 @@
|
|||||||
type="namespaces"
|
type="namespaces"
|
||||||
name="load"
|
name="load"
|
||||||
label="COM_COMPONENTBUILDER_POWER_LOAD_LABEL"
|
label="COM_COMPONENTBUILDER_POWER_LOAD_LABEL"
|
||||||
class="list_class span12"
|
layout="joomla.form.field.list-fancy-select"
|
||||||
multiple="false"
|
multiple="false"
|
||||||
default="0"
|
default="0"
|
||||||
button="false"
|
button="false"
|
||||||
@ -379,7 +379,7 @@
|
|||||||
default="一_一"
|
default="一_一"
|
||||||
/>
|
/>
|
||||||
<!-- Note_approved_paths Field. Type: Note. A None Database Field. (joomla) -->
|
<!-- Note_approved_paths Field. Type: Note. A None Database Field. (joomla) -->
|
||||||
<field type="note" name="note_approved_paths" label="COM_COMPONENTBUILDER_POWER_NOTE_APPROVED_PATHS_LABEL" description="COM_COMPONENTBUILDER_POWER_NOTE_APPROVED_PATHS_DESCRIPTION" heading="h4" class="alert alert-info note_approved_paths" showon="approved:1" />
|
<field type="note" name="note_approved_paths" label="COM_COMPONENTBUILDER_POWER_NOTE_APPROVED_PATHS_LABEL" description="COM_COMPONENTBUILDER_POWER_NOTE_APPROVED_PATHS_DESCRIPTION" heading="h4" class="alert alert-info note_approved_paths" />
|
||||||
<!-- Property_selection Field. Type: Subform. (joomla) -->
|
<!-- Property_selection Field. Type: Subform. (joomla) -->
|
||||||
<field
|
<field
|
||||||
type="subform"
|
type="subform"
|
||||||
|
@ -154,12 +154,18 @@
|
|||||||
<!-- Option Set. -->
|
<!-- Option Set. -->
|
||||||
<option value="">
|
<option value="">
|
||||||
COM_COMPONENTBUILDER_REPOSITORY_SELECT_AN_OPTION</option>
|
COM_COMPONENTBUILDER_REPOSITORY_SELECT_AN_OPTION</option>
|
||||||
<option value="1">
|
<option value="4">
|
||||||
COM_COMPONENTBUILDER_REPOSITORY_SUPER_POWER</option>
|
COM_COMPONENTBUILDER_REPOSITORY_PACKAGES</option>
|
||||||
|
<option value="3">
|
||||||
|
COM_COMPONENTBUILDER_REPOSITORY_FIELD_TYPES</option>
|
||||||
<option value="2">
|
<option value="2">
|
||||||
COM_COMPONENTBUILDER_REPOSITORY_JOOMLA_POWER</option>
|
COM_COMPONENTBUILDER_REPOSITORY_JOOMLA_POWER</option>
|
||||||
<option value="3">
|
<option value="5">
|
||||||
COM_COMPONENTBUILDER_REPOSITORY_JOOMLA_FIELD_TYPES</option>
|
COM_COMPONENTBUILDER_REPOSITORY_SNIPPETS</option>
|
||||||
|
<option value="1">
|
||||||
|
COM_COMPONENTBUILDER_REPOSITORY_SUPER_POWER</option>
|
||||||
|
<option value="6">
|
||||||
|
COM_COMPONENTBUILDER_REPOSITORY_REPOSITORIES</option>
|
||||||
</field>
|
</field>
|
||||||
<!-- Type Field. Type: List. (joomla) -->
|
<!-- Type Field. Type: List. (joomla) -->
|
||||||
<field
|
<field
|
||||||
@ -178,6 +184,8 @@
|
|||||||
COM_COMPONENTBUILDER_REPOSITORY_SELECT_AN_OPTION</option>
|
COM_COMPONENTBUILDER_REPOSITORY_SELECT_AN_OPTION</option>
|
||||||
<option value="1">
|
<option value="1">
|
||||||
COM_COMPONENTBUILDER_REPOSITORY_GITEA</option>
|
COM_COMPONENTBUILDER_REPOSITORY_GITEA</option>
|
||||||
|
<option value="2">
|
||||||
|
COM_COMPONENTBUILDER_REPOSITORY_GITHUB</option>
|
||||||
</field>
|
</field>
|
||||||
<!-- Base Field. Type: Url. (joomla) -->
|
<!-- Base Field. Type: Url. (joomla) -->
|
||||||
<field
|
<field
|
||||||
@ -189,7 +197,6 @@
|
|||||||
default="https://git.vdm.dev"
|
default="https://git.vdm.dev"
|
||||||
description="COM_COMPONENTBUILDER_REPOSITORY_BASE_DESCRIPTION"
|
description="COM_COMPONENTBUILDER_REPOSITORY_BASE_DESCRIPTION"
|
||||||
class="text_area"
|
class="text_area"
|
||||||
required="true"
|
|
||||||
filter="url"
|
filter="url"
|
||||||
validated="url"
|
validated="url"
|
||||||
scheme="http,https"
|
scheme="http,https"
|
||||||
@ -264,7 +271,7 @@
|
|||||||
label="COM_COMPONENTBUILDER_REPOSITORY_ACCESS_REPO_LABEL"
|
label="COM_COMPONENTBUILDER_REPOSITORY_ACCESS_REPO_LABEL"
|
||||||
description="COM_COMPONENTBUILDER_REPOSITORY_ACCESS_REPO_DESCRIPTION"
|
description="COM_COMPONENTBUILDER_REPOSITORY_ACCESS_REPO_DESCRIPTION"
|
||||||
class="btn-group btn-group-yesno"
|
class="btn-group btn-group-yesno"
|
||||||
default="0">
|
default="1">
|
||||||
<!-- Option Set. -->
|
<!-- Option Set. -->
|
||||||
<option value="0">
|
<option value="0">
|
||||||
COM_COMPONENTBUILDER_REPOSITORY_GLOBAL</option>
|
COM_COMPONENTBUILDER_REPOSITORY_GLOBAL</option>
|
||||||
@ -297,6 +304,33 @@
|
|||||||
message="COM_COMPONENTBUILDER_REPOSITORY_READ_BRANCH_MESSAGE"
|
message="COM_COMPONENTBUILDER_REPOSITORY_READ_BRANCH_MESSAGE"
|
||||||
hint="COM_COMPONENTBUILDER_REPOSITORY_READ_BRANCH_HINT"
|
hint="COM_COMPONENTBUILDER_REPOSITORY_READ_BRANCH_HINT"
|
||||||
/>
|
/>
|
||||||
|
<!-- Author_email Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="author_email"
|
||||||
|
label="COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_EMAIL_LABEL"
|
||||||
|
size="40"
|
||||||
|
maxlength="150"
|
||||||
|
description="COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_EMAIL_DESCRIPTION"
|
||||||
|
class="text_area"
|
||||||
|
filter="STRING"
|
||||||
|
validate="email"
|
||||||
|
message="COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_EMAIL_MESSAGE"
|
||||||
|
hint="COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_EMAIL_HINT"
|
||||||
|
/>
|
||||||
|
<!-- Author_name Field. Type: Text. (joomla) -->
|
||||||
|
<field
|
||||||
|
type="text"
|
||||||
|
name="author_name"
|
||||||
|
label="COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_NAME_LABEL"
|
||||||
|
size="40"
|
||||||
|
maxlength="150"
|
||||||
|
description="COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_NAME_DESCRIPTION"
|
||||||
|
class="text_area"
|
||||||
|
filter="STRING"
|
||||||
|
message="COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_NAME_MESSAGE"
|
||||||
|
hint="COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_NAME_HINT"
|
||||||
|
/>
|
||||||
<!-- Token Field. Type: Password. (joomla) -->
|
<!-- Token Field. Type: Password. (joomla) -->
|
||||||
<field
|
<field
|
||||||
type="password"
|
type="password"
|
||||||
@ -309,7 +343,7 @@
|
|||||||
filter="STRING"
|
filter="STRING"
|
||||||
hint="COM_COMPONENTBUILDER_REPOSITORY_TOKEN_HINT"
|
hint="COM_COMPONENTBUILDER_REPOSITORY_TOKEN_HINT"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
showon="type:1[AND]access_repo:1"
|
showon="type:1[OR]type:2[AND]access_repo:1"
|
||||||
/>
|
/>
|
||||||
<!-- Username Field. Type: Text. (joomla) -->
|
<!-- Username Field. Type: Text. (joomla) -->
|
||||||
<field
|
<field
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -103,6 +103,12 @@ COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION="Admin Views Edit Version"
|
|||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version admin views"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version admin views"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_SUBMENU="Admin Views Submenu"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_SUBMENU="Admin Views Submenu"
|
||||||
COM_COMPONENTBUILDER_ADMIN_VIEWS_SUBMENU_DESC="Allows the users in this group to submenu of admin view"
|
COM_COMPONENTBUILDER_ADMIN_VIEWS_SUBMENU_DESC="Allows the users in this group to submenu of admin view"
|
||||||
|
COM_COMPONENTBUILDER_ADMIN_VIEW_INIT_BUTTON_ACCESS="Admin View Init Button Access"
|
||||||
|
COM_COMPONENTBUILDER_ADMIN_VIEW_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_ADMIN_VIEW_PUSH_BUTTON_ACCESS="Admin View Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_ADMIN_VIEW_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_ADMIN_VIEW_RESET_BUTTON_ACCESS="Admin View Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_ADMIN_VIEW_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_ACCESS="Class Extendings Access"
|
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_ACCESS="Class Extendings Access"
|
||||||
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_ACCESS_DESC="Allows the users in this group to access access class extendings"
|
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_ACCESS_DESC="Allows the users in this group to access access class extendings"
|
||||||
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_BATCH_USE="Class Extendings Batch Use"
|
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_BATCH_USE="Class Extendings Batch Use"
|
||||||
@ -123,6 +129,12 @@ COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE="Class Extendings Edit State"
|
|||||||
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE_DESC="Allows the users in this group to update the state of the class extends"
|
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE_DESC="Allows the users in this group to update the state of the class extends"
|
||||||
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION="Class Extendings Edit Version"
|
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION="Class Extendings Edit Version"
|
||||||
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version class extendings"
|
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version class extendings"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_EXTENDS_INIT_BUTTON_ACCESS="Class Extends Init Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_EXTENDS_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_CLASS_EXTENDS_PUSH_BUTTON_ACCESS="Class Extends Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_EXTENDS_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_CLASS_EXTENDS_RESET_BUTTON_ACCESS="Class Extends Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_EXTENDS_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_CLASS_METHODS_ACCESS="Class Methods Access"
|
COM_COMPONENTBUILDER_CLASS_METHODS_ACCESS="Class Methods Access"
|
||||||
COM_COMPONENTBUILDER_CLASS_METHODS_ACCESS_DESC="Allows the users in this group to access access class methods"
|
COM_COMPONENTBUILDER_CLASS_METHODS_ACCESS_DESC="Allows the users in this group to access access class methods"
|
||||||
COM_COMPONENTBUILDER_CLASS_METHODS_BATCH_USE="Class Methods Batch Use"
|
COM_COMPONENTBUILDER_CLASS_METHODS_BATCH_USE="Class Methods Batch Use"
|
||||||
@ -143,6 +155,12 @@ COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_STATE="Class Methods Edit State"
|
|||||||
COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_STATE_DESC="Allows the users in this group to update the state of the class method"
|
COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_STATE_DESC="Allows the users in this group to update the state of the class method"
|
||||||
COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_VERSION="Class Methods Edit Version"
|
COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_VERSION="Class Methods Edit Version"
|
||||||
COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version class methods"
|
COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version class methods"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_METHOD_INIT_BUTTON_ACCESS="Class Method Init Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_METHOD_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_CLASS_METHOD_PUSH_BUTTON_ACCESS="Class Method Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_METHOD_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_CLASS_METHOD_RESET_BUTTON_ACCESS="Class Method Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_METHOD_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_CLASS_PROPERTIES_ACCESS="Class Properties Access"
|
COM_COMPONENTBUILDER_CLASS_PROPERTIES_ACCESS="Class Properties Access"
|
||||||
COM_COMPONENTBUILDER_CLASS_PROPERTIES_ACCESS_DESC="Allows the users in this group to access access class properties"
|
COM_COMPONENTBUILDER_CLASS_PROPERTIES_ACCESS_DESC="Allows the users in this group to access access class properties"
|
||||||
COM_COMPONENTBUILDER_CLASS_PROPERTIES_BATCH_USE="Class Properties Batch Use"
|
COM_COMPONENTBUILDER_CLASS_PROPERTIES_BATCH_USE="Class Properties Batch Use"
|
||||||
@ -163,6 +181,12 @@ COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_STATE="Class Properties Edit State"
|
|||||||
COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_STATE_DESC="Allows the users in this group to update the state of the class property"
|
COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_STATE_DESC="Allows the users in this group to update the state of the class property"
|
||||||
COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_VERSION="Class Properties Edit Version"
|
COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_VERSION="Class Properties Edit Version"
|
||||||
COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version class properties"
|
COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version class properties"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_PROPERTY_INIT_BUTTON_ACCESS="Class Property Init Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_PROPERTY_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_CLASS_PROPERTY_PUSH_BUTTON_ACCESS="Class Property Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_PROPERTY_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_CLASS_PROPERTY_RESET_BUTTON_ACCESS="Class Property Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CLASS_PROPERTY_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_COMPILER_ACCESS="Compiler Access"
|
COM_COMPONENTBUILDER_COMPILER_ACCESS="Compiler Access"
|
||||||
COM_COMPONENTBUILDER_COMPILER_ACCESS_DESC="Allows the users in this group to access compiler."
|
COM_COMPONENTBUILDER_COMPILER_ACCESS_DESC="Allows the users in this group to access compiler."
|
||||||
COM_COMPONENTBUILDER_COMPILER_CLEAR_TMP_BUTTON_ACCESS="Compiler Clear tmp Button Access"
|
COM_COMPONENTBUILDER_COMPILER_CLEAR_TMP_BUTTON_ACCESS="Compiler Clear tmp Button Access"
|
||||||
@ -454,8 +478,12 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION="Custom Admin Views Edit Ve
|
|||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version custom admin views"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version custom admin views"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_SUBMENU="Custom Admin Views Submenu"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_SUBMENU="Custom Admin Views Submenu"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_SUBMENU_DESC="Allows the users in this group to submenu of custom admin view"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_SUBMENU_DESC="Allows the users in this group to submenu of custom admin view"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_GET_SNIPPETS_BUTTON_ACCESS="Custom Admin View Get Snippets Button Access"
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_INIT_BUTTON_ACCESS="Custom Admin View Init Button Access"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_GET_SNIPPETS_BUTTON_ACCESS_DESC="Allows the users in this group to access the get snippets button."
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_PUSH_BUTTON_ACCESS="Custom Admin View Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_RESET_BUTTON_ACCESS="Custom Admin View Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS="Custom Codes Access"
|
COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS="Custom Codes Access"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS_DESC="Allows the users in this group to access access custom codes"
|
COM_COMPONENTBUILDER_CUSTOM_CODES_ACCESS_DESC="Allows the users in this group to access access custom codes"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_CODES_BATCH_USE="Custom Codes Batch Use"
|
COM_COMPONENTBUILDER_CUSTOM_CODES_BATCH_USE="Custom Codes Batch Use"
|
||||||
@ -480,8 +508,12 @@ COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION="Custom Codes Edit Version"
|
|||||||
COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version custom codes"
|
COM_COMPONENTBUILDER_CUSTOM_CODES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version custom codes"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_CODES_SUBMENU="Custom Codes Submenu"
|
COM_COMPONENTBUILDER_CUSTOM_CODES_SUBMENU="Custom Codes Submenu"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_CODES_SUBMENU_DESC="Allows the users in this group to submenu of custom code"
|
COM_COMPONENTBUILDER_CUSTOM_CODES_SUBMENU_DESC="Allows the users in this group to submenu of custom code"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_CODE_RUN_EXPANSION_BUTTON_ACCESS="Custom Code Run Expansion Button Access"
|
COM_COMPONENTBUILDER_CUSTOM_CODE_INIT_BUTTON_ACCESS="Custom Code Init Button Access"
|
||||||
COM_COMPONENTBUILDER_CUSTOM_CODE_RUN_EXPANSION_BUTTON_ACCESS_DESC="Allows the users in this group to access the run expansion button."
|
COM_COMPONENTBUILDER_CUSTOM_CODE_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_CUSTOM_CODE_PUSH_BUTTON_ACCESS="Custom Code Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CUSTOM_CODE_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_CUSTOM_CODE_RESET_BUTTON_ACCESS="Custom Code Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_CUSTOM_CODE_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS="Dynamic Gets Access"
|
COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS="Dynamic Gets Access"
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS_DESC="Allows the users in this group to access access dynamic gets"
|
COM_COMPONENTBUILDER_DYNAMIC_GETS_ACCESS_DESC="Allows the users in this group to access access dynamic gets"
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GETS_BATCH_USE="Dynamic Gets Batch Use"
|
COM_COMPONENTBUILDER_DYNAMIC_GETS_BATCH_USE="Dynamic Gets Batch Use"
|
||||||
@ -504,6 +536,12 @@ COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION="Dynamic Gets Edit Version"
|
|||||||
COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version dynamic gets"
|
COM_COMPONENTBUILDER_DYNAMIC_GETS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version dynamic gets"
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GETS_SUBMENU="Dynamic Gets Submenu"
|
COM_COMPONENTBUILDER_DYNAMIC_GETS_SUBMENU="Dynamic Gets Submenu"
|
||||||
COM_COMPONENTBUILDER_DYNAMIC_GETS_SUBMENU_DESC="Allows the users in this group to submenu of dynamic get"
|
COM_COMPONENTBUILDER_DYNAMIC_GETS_SUBMENU_DESC="Allows the users in this group to submenu of dynamic get"
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_INIT_BUTTON_ACCESS="Dynamic Get Init Button Access"
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_PUSH_BUTTON_ACCESS="Dynamic Get Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_RESET_BUTTON_ACCESS="Dynamic Get Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_DYNAMIC_GET_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_EDIT_CREATED_BY="Edit Created By"
|
COM_COMPONENTBUILDER_EDIT_CREATED_BY="Edit Created By"
|
||||||
COM_COMPONENTBUILDER_EDIT_CREATED_BY_DESC="Allows users in this group to edit created by."
|
COM_COMPONENTBUILDER_EDIT_CREATED_BY_DESC="Allows users in this group to edit created by."
|
||||||
COM_COMPONENTBUILDER_EDIT_CREATED_DATE="Edit Created Date"
|
COM_COMPONENTBUILDER_EDIT_CREATED_DATE="Edit Created Date"
|
||||||
@ -558,20 +596,12 @@ COM_COMPONENTBUILDER_FIELDTYPE_PUSH_BUTTON_ACCESS="Fieldtype Push Button Access"
|
|||||||
COM_COMPONENTBUILDER_FIELDTYPE_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
COM_COMPONENTBUILDER_FIELDTYPE_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
COM_COMPONENTBUILDER_FIELDTYPE_RESET_BUTTON_ACCESS="Fieldtype Reset Button Access"
|
COM_COMPONENTBUILDER_FIELDTYPE_RESET_BUTTON_ACCESS="Fieldtype Reset Button Access"
|
||||||
COM_COMPONENTBUILDER_FIELDTYPE_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
COM_COMPONENTBUILDER_FIELDTYPE_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_ACCESS="Get Snippets Access"
|
COM_COMPONENTBUILDER_FIELD_INIT_BUTTON_ACCESS="Field Init Button Access"
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_ACCESS_DESC="Allows the users in this group to access get snippets."
|
COM_COMPONENTBUILDER_FIELD_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_CUSTOM_ADMIN_VIEWS_BUTTON_ACCESS="Get Snippets Custom Admin Views Button Access"
|
COM_COMPONENTBUILDER_FIELD_PUSH_BUTTON_ACCESS="Field Push Button Access"
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_CUSTOM_ADMIN_VIEWS_BUTTON_ACCESS_DESC="Allows the users in this group to access the custom admin views button."
|
COM_COMPONENTBUILDER_FIELD_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_LAYOUTS_BUTTON_ACCESS="Get Snippets Layouts Button Access"
|
COM_COMPONENTBUILDER_FIELD_RESET_BUTTON_ACCESS="Field Reset Button Access"
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_LAYOUTS_BUTTON_ACCESS_DESC="Allows the users in this group to access the layouts button."
|
COM_COMPONENTBUILDER_FIELD_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_LIBRARIES_BUTTON_ACCESS="Get Snippets Libraries Button Access"
|
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_LIBRARIES_BUTTON_ACCESS_DESC="Allows the users in this group to access the libraries button."
|
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_SITE_VIEWS_BUTTON_ACCESS="Get Snippets Site Views Button Access"
|
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_SITE_VIEWS_BUTTON_ACCESS_DESC="Allows the users in this group to access the site views button."
|
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_SNIPPETS_BUTTON_ACCESS="Get Snippets Snippets Button Access"
|
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_SNIPPETS_BUTTON_ACCESS_DESC="Allows the users in this group to access the snippets button."
|
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_TEMPLATES_BUTTON_ACCESS="Get Snippets Templates Button Access"
|
|
||||||
COM_COMPONENTBUILDER_GET_SNIPPETS_TEMPLATES_BUTTON_ACCESS_DESC="Allows the users in this group to access the templates button."
|
|
||||||
COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS="Help Documents Access"
|
COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS="Help Documents Access"
|
||||||
COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS_DESC="Allows the users in this group to access access help documents"
|
COM_COMPONENTBUILDER_HELP_DOCUMENTS_ACCESS_DESC="Allows the users in this group to access access help documents"
|
||||||
COM_COMPONENTBUILDER_HELP_DOCUMENTS_BATCH_USE="Help Documents Batch Use"
|
COM_COMPONENTBUILDER_HELP_DOCUMENTS_BATCH_USE="Help Documents Batch Use"
|
||||||
@ -618,6 +648,12 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU="Joomla Components Submenu"
|
|||||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU_DESC="Allows the users in this group to submenu of joomla component"
|
COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU_DESC="Allows the users in this group to submenu of joomla component"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CLEAR_TMP_BUTTON_ACCESS="Joomla Component Clear tmp Button Access"
|
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CLEAR_TMP_BUTTON_ACCESS="Joomla Component Clear tmp Button Access"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CLEAR_TMP_BUTTON_ACCESS_DESC="Allows the users in this group to access the clear tmp button."
|
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CLEAR_TMP_BUTTON_ACCESS_DESC="Allows the users in this group to access the clear tmp button."
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_INIT_BUTTON_ACCESS="Joomla Component Init Button Access"
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PUSH_BUTTON_ACCESS="Joomla Component Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_RESET_BUTTON_ACCESS="Joomla Component Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_JOOMLA_MODULES_ACCESS="Joomla Modules Access"
|
COM_COMPONENTBUILDER_JOOMLA_MODULES_ACCESS="Joomla Modules Access"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_MODULES_ACCESS_DESC="Allows the users in this group to access access joomla modules"
|
COM_COMPONENTBUILDER_JOOMLA_MODULES_ACCESS_DESC="Allows the users in this group to access access joomla modules"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_MODULES_BATCH_USE="Joomla Modules Batch Use"
|
COM_COMPONENTBUILDER_JOOMLA_MODULES_BATCH_USE="Joomla Modules Batch Use"
|
||||||
@ -682,6 +718,12 @@ COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_STATE="Joomla Modules Updates E
|
|||||||
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_STATE_DESC="Allows the users in this group to update the state of the joomla module updates"
|
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_STATE_DESC="Allows the users in this group to update the state of the joomla module updates"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_VERSION="Joomla Modules Updates Edit Version"
|
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_VERSION="Joomla Modules Updates Edit Version"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version joomla modules updates"
|
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version joomla modules updates"
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_MODULE_INIT_BUTTON_ACCESS="Joomla Module Init Button Access"
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_MODULE_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_MODULE_PUSH_BUTTON_ACCESS="Joomla Module Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_MODULE_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_MODULE_RESET_BUTTON_ACCESS="Joomla Module Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_MODULE_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS="Joomla Plugins Access"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS="Joomla Plugins Access"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS_DESC="Allows the users in this group to access access joomla plugins"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS_DESC="Allows the users in this group to access access joomla plugins"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_BATCH_USE="Joomla Plugins Batch Use"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_BATCH_USE="Joomla Plugins Batch Use"
|
||||||
@ -746,18 +788,18 @@ COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_STATE="Joomla Plugins Updates E
|
|||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_STATE_DESC="Allows the users in this group to update the state of the joomla plugin updates"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_STATE_DESC="Allows the users in this group to update the state of the joomla plugin updates"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_VERSION="Joomla Plugins Updates Edit Version"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_VERSION="Joomla Plugins Updates Edit Version"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version joomla plugins updates"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version joomla plugins updates"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GET_BOILERPLATE_BUTTON_ACCESS="Joomla Plugin Get Boilerplate Button Access"
|
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GET_BOILERPLATE_BUTTON_ACCESS_DESC="Allows the users in this group to access the get boilerplate button."
|
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS="Joomla Plugin Groups Access"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS="Joomla Plugin Groups Access"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS_DESC="Allows the users in this group to access access joomla plugin groups"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS_DESC="Allows the users in this group to access access joomla plugin groups"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_BATCH_USE="Joomla Plugin Groups Batch Use"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_BATCH_USE="Joomla Plugin Groups Batch Use"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_BATCH_USE_DESC="Allows the users in this group to use batch copy/update method of batch joomla plugin groups"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_BATCH_USE_DESC="Allows the users in this group to use batch copy/update method of batch joomla plugin groups"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_EDIT_VERSION="Joomla Plugin Groups Edit Version"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_EDIT_VERSION="Joomla Plugin Groups Edit Version"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version joomla plugin groups"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version joomla plugin groups"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHODS_BUTTON_ACCESS="Joomla Plugin Methods Button Access"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_INIT_BUTTON_ACCESS="Joomla Plugin Init Button Access"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHODS_BUTTON_ACCESS_DESC="Allows the users in this group to access the methods button."
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTIES_BUTTON_ACCESS="Joomla Plugin Properties Button Access"
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PUSH_BUTTON_ACCESS="Joomla Plugin Push Button Access"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTIES_BUTTON_ACCESS_DESC="Allows the users in this group to access the properties button."
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_RESET_BUTTON_ACCESS="Joomla Plugin Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_JOOMLA_POWERS_ACCESS="Joomla Powers Access"
|
COM_COMPONENTBUILDER_JOOMLA_POWERS_ACCESS="Joomla Powers Access"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_POWERS_ACCESS_DESC="Allows the users in this group to access access joomla powers"
|
COM_COMPONENTBUILDER_JOOMLA_POWERS_ACCESS_DESC="Allows the users in this group to access access joomla powers"
|
||||||
COM_COMPONENTBUILDER_JOOMLA_POWERS_BATCH_USE="Joomla Powers Batch Use"
|
COM_COMPONENTBUILDER_JOOMLA_POWERS_BATCH_USE="Joomla Powers Batch Use"
|
||||||
@ -848,8 +890,12 @@ COM_COMPONENTBUILDER_LAYOUTS_EDIT_VERSION="Layouts Edit Version"
|
|||||||
COM_COMPONENTBUILDER_LAYOUTS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version layouts"
|
COM_COMPONENTBUILDER_LAYOUTS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version layouts"
|
||||||
COM_COMPONENTBUILDER_LAYOUTS_SUBMENU="Layouts Submenu"
|
COM_COMPONENTBUILDER_LAYOUTS_SUBMENU="Layouts Submenu"
|
||||||
COM_COMPONENTBUILDER_LAYOUTS_SUBMENU_DESC="Allows the users in this group to submenu of layout"
|
COM_COMPONENTBUILDER_LAYOUTS_SUBMENU_DESC="Allows the users in this group to submenu of layout"
|
||||||
COM_COMPONENTBUILDER_LAYOUT_GET_SNIPPETS_BUTTON_ACCESS="Layout Get Snippets Button Access"
|
COM_COMPONENTBUILDER_LAYOUT_INIT_BUTTON_ACCESS="Layout Init Button Access"
|
||||||
COM_COMPONENTBUILDER_LAYOUT_GET_SNIPPETS_BUTTON_ACCESS_DESC="Allows the users in this group to access the get snippets button."
|
COM_COMPONENTBUILDER_LAYOUT_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_LAYOUT_PUSH_BUTTON_ACCESS="Layout Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_LAYOUT_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_LAYOUT_RESET_BUTTON_ACCESS="Layout Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_LAYOUT_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_LIBRARIES_ACCESS="Libraries Access"
|
COM_COMPONENTBUILDER_LIBRARIES_ACCESS="Libraries Access"
|
||||||
COM_COMPONENTBUILDER_LIBRARIES_ACCESS_DESC="Allows the users in this group to access access libraries"
|
COM_COMPONENTBUILDER_LIBRARIES_ACCESS_DESC="Allows the users in this group to access access libraries"
|
||||||
COM_COMPONENTBUILDER_LIBRARIES_BATCH_USE="Libraries Batch Use"
|
COM_COMPONENTBUILDER_LIBRARIES_BATCH_USE="Libraries Batch Use"
|
||||||
@ -910,10 +956,17 @@ COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION="Libraries Files
|
|||||||
COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version libraries files folders urls"
|
COM_COMPONENTBUILDER_LIBRARIES_FILES_FOLDERS_URLS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version libraries files folders urls"
|
||||||
COM_COMPONENTBUILDER_LIBRARIES_SUBMENU="Libraries Submenu"
|
COM_COMPONENTBUILDER_LIBRARIES_SUBMENU="Libraries Submenu"
|
||||||
COM_COMPONENTBUILDER_LIBRARIES_SUBMENU_DESC="Allows the users in this group to submenu of library"
|
COM_COMPONENTBUILDER_LIBRARIES_SUBMENU_DESC="Allows the users in this group to submenu of library"
|
||||||
COM_COMPONENTBUILDER_LIBRARY_GET_SNIPPETS_BUTTON_ACCESS="Library Get Snippets Button Access"
|
COM_COMPONENTBUILDER_LIBRARY_INIT_BUTTON_ACCESS="Library Init Button Access"
|
||||||
COM_COMPONENTBUILDER_LIBRARY_GET_SNIPPETS_BUTTON_ACCESS_DESC="Allows the users in this group to access the get snippets button."
|
COM_COMPONENTBUILDER_LIBRARY_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_LIBRARY_PUSH_BUTTON_ACCESS="Library Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_LIBRARY_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_LIBRARY_RESET_BUTTON_ACCESS="Library Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_LIBRARY_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_MENU="✓ Component Builder"
|
COM_COMPONENTBUILDER_MENU="✓ Component Builder"
|
||||||
COM_COMPONENTBUILDER_MENU_ADMIN_VIEWS="Admin Views"
|
COM_COMPONENTBUILDER_MENU_ADMIN_VIEWS="Admin Views"
|
||||||
|
COM_COMPONENTBUILDER_MENU_CLASS_EXTENDINGS="Class Extendings"
|
||||||
|
COM_COMPONENTBUILDER_MENU_CLASS_METHODS="Class Methods"
|
||||||
|
COM_COMPONENTBUILDER_MENU_CLASS_PROPERTIES="Class Properties"
|
||||||
COM_COMPONENTBUILDER_MENU_COMPILER="Compiler"
|
COM_COMPONENTBUILDER_MENU_COMPILER="Compiler"
|
||||||
COM_COMPONENTBUILDER_MENU_CUSTOM_ADMIN_VIEWS="Custom Admin Views"
|
COM_COMPONENTBUILDER_MENU_CUSTOM_ADMIN_VIEWS="Custom Admin Views"
|
||||||
COM_COMPONENTBUILDER_MENU_CUSTOM_CODES="Custom Codes"
|
COM_COMPONENTBUILDER_MENU_CUSTOM_CODES="Custom Codes"
|
||||||
@ -959,6 +1012,12 @@ COM_COMPONENTBUILDER_PLACEHOLDERS_EDIT_VERSION="Placeholders Edit Version"
|
|||||||
COM_COMPONENTBUILDER_PLACEHOLDERS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version placeholders"
|
COM_COMPONENTBUILDER_PLACEHOLDERS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version placeholders"
|
||||||
COM_COMPONENTBUILDER_PLACEHOLDERS_SUBMENU="Placeholders Submenu"
|
COM_COMPONENTBUILDER_PLACEHOLDERS_SUBMENU="Placeholders Submenu"
|
||||||
COM_COMPONENTBUILDER_PLACEHOLDERS_SUBMENU_DESC="Allows the users in this group to submenu of placeholder"
|
COM_COMPONENTBUILDER_PLACEHOLDERS_SUBMENU_DESC="Allows the users in this group to submenu of placeholder"
|
||||||
|
COM_COMPONENTBUILDER_PLACEHOLDER_INIT_BUTTON_ACCESS="Placeholder Init Button Access"
|
||||||
|
COM_COMPONENTBUILDER_PLACEHOLDER_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_PLACEHOLDER_PUSH_BUTTON_ACCESS="Placeholder Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_PLACEHOLDER_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_PLACEHOLDER_RESET_BUTTON_ACCESS="Placeholder Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_PLACEHOLDER_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_POWERS_ACCESS="Powers Access"
|
COM_COMPONENTBUILDER_POWERS_ACCESS="Powers Access"
|
||||||
COM_COMPONENTBUILDER_POWERS_ACCESS_DESC="Allows the users in this group to access access powers"
|
COM_COMPONENTBUILDER_POWERS_ACCESS_DESC="Allows the users in this group to access access powers"
|
||||||
COM_COMPONENTBUILDER_POWERS_BATCH_USE="Powers Batch Use"
|
COM_COMPONENTBUILDER_POWERS_BATCH_USE="Powers Batch Use"
|
||||||
@ -1013,6 +1072,12 @@ COM_COMPONENTBUILDER_REPOSITORIES_EDIT_VERSION="Repositories Edit Version"
|
|||||||
COM_COMPONENTBUILDER_REPOSITORIES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version repositories"
|
COM_COMPONENTBUILDER_REPOSITORIES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version repositories"
|
||||||
COM_COMPONENTBUILDER_REPOSITORIES_SUBMENU="Repositories Submenu"
|
COM_COMPONENTBUILDER_REPOSITORIES_SUBMENU="Repositories Submenu"
|
||||||
COM_COMPONENTBUILDER_REPOSITORIES_SUBMENU_DESC="Allows the users in this group to submenu of repository"
|
COM_COMPONENTBUILDER_REPOSITORIES_SUBMENU_DESC="Allows the users in this group to submenu of repository"
|
||||||
|
COM_COMPONENTBUILDER_REPOSITORY_INIT_BUTTON_ACCESS="Repository Init Button Access"
|
||||||
|
COM_COMPONENTBUILDER_REPOSITORY_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_REPOSITORY_PUSH_BUTTON_ACCESS="Repository Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_REPOSITORY_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_REPOSITORY_RESET_BUTTON_ACCESS="Repository Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_REPOSITORY_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_SEARCH_ACCESS="Search Access"
|
COM_COMPONENTBUILDER_SEARCH_ACCESS="Search Access"
|
||||||
COM_COMPONENTBUILDER_SEARCH_ACCESS_DESC="Allows the users in this group to access search."
|
COM_COMPONENTBUILDER_SEARCH_ACCESS_DESC="Allows the users in this group to access search."
|
||||||
COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS="Search Compiler Button Access"
|
COM_COMPONENTBUILDER_SEARCH_COMPILER_BUTTON_ACCESS="Search Compiler Button Access"
|
||||||
@ -1021,6 +1086,8 @@ COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST="Search Dashboard List"
|
|||||||
COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Search"
|
COM_COMPONENTBUILDER_SEARCH_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of Search"
|
||||||
COM_COMPONENTBUILDER_SEARCH_SUBMENU="Search Submenu"
|
COM_COMPONENTBUILDER_SEARCH_SUBMENU="Search Submenu"
|
||||||
COM_COMPONENTBUILDER_SEARCH_SUBMENU_DESC="Allows the users in this group to submenu of Search"
|
COM_COMPONENTBUILDER_SEARCH_SUBMENU_DESC="Allows the users in this group to submenu of Search"
|
||||||
|
COM_COMPONENTBUILDER_SELECTION_ACCESS="Selection Access"
|
||||||
|
COM_COMPONENTBUILDER_SELECTION_ACCESS_DESC="Allows the users in this group to access selection."
|
||||||
COM_COMPONENTBUILDER_SERVERS_ACCESS="Servers Access"
|
COM_COMPONENTBUILDER_SERVERS_ACCESS="Servers Access"
|
||||||
COM_COMPONENTBUILDER_SERVERS_ACCESS_DESC="Allows the users in this group to access access servers"
|
COM_COMPONENTBUILDER_SERVERS_ACCESS_DESC="Allows the users in this group to access access servers"
|
||||||
COM_COMPONENTBUILDER_SERVERS_BATCH_USE="Servers Batch Use"
|
COM_COMPONENTBUILDER_SERVERS_BATCH_USE="Servers Batch Use"
|
||||||
@ -1065,8 +1132,12 @@ COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION="Site Views Edit Version"
|
|||||||
COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version site views"
|
COM_COMPONENTBUILDER_SITE_VIEWS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version site views"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_SUBMENU="Site Views Submenu"
|
COM_COMPONENTBUILDER_SITE_VIEWS_SUBMENU="Site Views Submenu"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEWS_SUBMENU_DESC="Allows the users in this group to submenu of site view"
|
COM_COMPONENTBUILDER_SITE_VIEWS_SUBMENU_DESC="Allows the users in this group to submenu of site view"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEW_GET_SNIPPETS_BUTTON_ACCESS="Site View Get Snippets Button Access"
|
COM_COMPONENTBUILDER_SITE_VIEW_INIT_BUTTON_ACCESS="Site View Init Button Access"
|
||||||
COM_COMPONENTBUILDER_SITE_VIEW_GET_SNIPPETS_BUTTON_ACCESS_DESC="Allows the users in this group to access the get snippets button."
|
COM_COMPONENTBUILDER_SITE_VIEW_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_SITE_VIEW_PUSH_BUTTON_ACCESS="Site View Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_SITE_VIEW_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_SITE_VIEW_RESET_BUTTON_ACCESS="Site View Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_SITE_VIEW_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_SNIPPETS_ACCESS="Snippets Access"
|
COM_COMPONENTBUILDER_SNIPPETS_ACCESS="Snippets Access"
|
||||||
COM_COMPONENTBUILDER_SNIPPETS_ACCESS_DESC="Allows the users in this group to access access snippets"
|
COM_COMPONENTBUILDER_SNIPPETS_ACCESS_DESC="Allows the users in this group to access access snippets"
|
||||||
COM_COMPONENTBUILDER_SNIPPETS_BATCH_USE="Snippets Batch Use"
|
COM_COMPONENTBUILDER_SNIPPETS_BATCH_USE="Snippets Batch Use"
|
||||||
@ -1087,10 +1158,12 @@ COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION="Snippets Edit Version"
|
|||||||
COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version snippets"
|
COM_COMPONENTBUILDER_SNIPPETS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version snippets"
|
||||||
COM_COMPONENTBUILDER_SNIPPETS_SUBMENU="Snippets Submenu"
|
COM_COMPONENTBUILDER_SNIPPETS_SUBMENU="Snippets Submenu"
|
||||||
COM_COMPONENTBUILDER_SNIPPETS_SUBMENU_DESC="Allows the users in this group to submenu of snippet"
|
COM_COMPONENTBUILDER_SNIPPETS_SUBMENU_DESC="Allows the users in this group to submenu of snippet"
|
||||||
COM_COMPONENTBUILDER_SNIPPET_GET_SNIPPETS_BUTTON_ACCESS="Snippet Get Snippets Button Access"
|
COM_COMPONENTBUILDER_SNIPPET_INIT_BUTTON_ACCESS="Snippet Init Button Access"
|
||||||
COM_COMPONENTBUILDER_SNIPPET_GET_SNIPPETS_BUTTON_ACCESS_DESC="Allows the users in this group to access the get snippets button."
|
COM_COMPONENTBUILDER_SNIPPET_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
COM_COMPONENTBUILDER_SNIPPET_SHARE_SNIPPETS_BUTTON_ACCESS="Snippet Share Snippets Button Access"
|
COM_COMPONENTBUILDER_SNIPPET_PUSH_BUTTON_ACCESS="Snippet Push Button Access"
|
||||||
COM_COMPONENTBUILDER_SNIPPET_SHARE_SNIPPETS_BUTTON_ACCESS_DESC="Allows the users in this group to access the share snippets button."
|
COM_COMPONENTBUILDER_SNIPPET_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_SNIPPET_RESET_BUTTON_ACCESS="Snippet Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_SNIPPET_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_SNIPPET_TYPES_ACCESS="Snippet Types Access"
|
COM_COMPONENTBUILDER_SNIPPET_TYPES_ACCESS="Snippet Types Access"
|
||||||
COM_COMPONENTBUILDER_SNIPPET_TYPES_ACCESS_DESC="Allows the users in this group to access access snippet types"
|
COM_COMPONENTBUILDER_SNIPPET_TYPES_ACCESS_DESC="Allows the users in this group to access access snippet types"
|
||||||
COM_COMPONENTBUILDER_SNIPPET_TYPES_BATCH_USE="Snippet Types Batch Use"
|
COM_COMPONENTBUILDER_SNIPPET_TYPES_BATCH_USE="Snippet Types Batch Use"
|
||||||
@ -1129,8 +1202,12 @@ COM_COMPONENTBUILDER_TEMPLATES_EDIT_VERSION="Templates Edit Version"
|
|||||||
COM_COMPONENTBUILDER_TEMPLATES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version templates"
|
COM_COMPONENTBUILDER_TEMPLATES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version templates"
|
||||||
COM_COMPONENTBUILDER_TEMPLATES_SUBMENU="Templates Submenu"
|
COM_COMPONENTBUILDER_TEMPLATES_SUBMENU="Templates Submenu"
|
||||||
COM_COMPONENTBUILDER_TEMPLATES_SUBMENU_DESC="Allows the users in this group to submenu of template"
|
COM_COMPONENTBUILDER_TEMPLATES_SUBMENU_DESC="Allows the users in this group to submenu of template"
|
||||||
COM_COMPONENTBUILDER_TEMPLATE_GET_SNIPPETS_BUTTON_ACCESS="Template Get Snippets Button Access"
|
COM_COMPONENTBUILDER_TEMPLATE_INIT_BUTTON_ACCESS="Template Init Button Access"
|
||||||
COM_COMPONENTBUILDER_TEMPLATE_GET_SNIPPETS_BUTTON_ACCESS_DESC="Allows the users in this group to access the get snippets button."
|
COM_COMPONENTBUILDER_TEMPLATE_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
|
||||||
|
COM_COMPONENTBUILDER_TEMPLATE_PUSH_BUTTON_ACCESS="Template Push Button Access"
|
||||||
|
COM_COMPONENTBUILDER_TEMPLATE_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
|
||||||
|
COM_COMPONENTBUILDER_TEMPLATE_RESET_BUTTON_ACCESS="Template Reset Button Access"
|
||||||
|
COM_COMPONENTBUILDER_TEMPLATE_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
|
||||||
COM_COMPONENTBUILDER_USE_BATCH="Use Batch"
|
COM_COMPONENTBUILDER_USE_BATCH="Use Batch"
|
||||||
COM_COMPONENTBUILDER_USE_BATCH_DESC="Allows users in this group to use batch copy/update method."
|
COM_COMPONENTBUILDER_USE_BATCH_DESC="Allows users in this group to use batch copy/update method."
|
||||||
COM_COMPONENTBUILDER_VALIDATION_RULES_ACCESS="Validation Rules Access"
|
COM_COMPONENTBUILDER_VALIDATION_RULES_ACCESS="Validation Rules Access"
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user